diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt index a0bbc6d0eb0276080e7d675c7519973903084ce6..1987e809d218093d1645170621a3742bbd2e1b01 100644 --- a/Applications/ApplicationsLib/CMakeLists.txt +++ b/Applications/ApplicationsLib/CMakeLists.txt @@ -10,7 +10,7 @@ endif() target_link_libraries(ApplicationsLib PUBLIC BaseLib GeoLib Processes logog - PRIVATE MathLib MeshLib MeshGeoToolsLib NumLib + PRIVATE MathLib MeshLib MeshGeoToolsLib NumLib ParameterLib ) # Set cpp definitions if the cmake option is enabled for the given process. diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp index 626c62d116ab6be17d7cf7ed46892a1965111a4c..3b3514884469b88d8f6565b77f217f580fa9d0d3 100644 --- a/Applications/ApplicationsLib/ProjectData.cpp +++ b/Applications/ApplicationsLib/ProjectData.cpp @@ -23,6 +23,7 @@ #endif #include "BaseLib/Algorithm.h" +#include "BaseLib/ConfigTree.h" #include "BaseLib/FileTools.h" #include "GeoLib/GEOObjects.h" @@ -41,10 +42,10 @@ #include "GeoLib/IO/XmlIO/Boost/BoostXmlGmlInterface.h" #include "MeshLib/IO/readMeshFromFile.h" -#include "ProcessLib/Parameter/ConstantParameter.h" -#include "ProcessLib/Parameter/CoordinateSystem.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/CoordinateSystem.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/UncoupledProcessesTimeLoop.h" -#include "ProcessLib/Utils/ProcessUtils.h" #ifdef OGS_BUILD_PROCESS_COMPONENTTRANSPORT #include "ProcessLib/ComponentTransport/CreateComponentTransportProcess.h" @@ -196,9 +197,9 @@ std::vector<std::unique_ptr<MeshLib::Mesh>> readMeshes( return meshes; } -boost::optional<ProcessLib::CoordinateSystem> parseLocalCoordinateSystem( +boost::optional<ParameterLib::CoordinateSystem> parseLocalCoordinateSystem( boost::optional<BaseLib::ConfigTree> const& config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { if (!config) { @@ -210,7 +211,7 @@ boost::optional<ProcessLib::CoordinateSystem> parseLocalCoordinateSystem( // // Fetch the first basis vector; its length defines the dimension. // - auto const& basis_vector_0 = ProcessLib::findParameter<double>( + auto const& basis_vector_0 = ParameterLib::findParameter<double>( *config, //! \ogs_file_param_special{prj__local_coordinate_system__basis_vector_0} "basis_vector_0", parameters, 0 /* any dimension */); @@ -229,7 +230,7 @@ boost::optional<ProcessLib::CoordinateSystem> parseLocalCoordinateSystem( // Fetch the second basis vector, which must be of the same dimension as the // first one. // - auto const& basis_vector_1 = ProcessLib::findParameter<double>( + auto const& basis_vector_1 = ParameterLib::findParameter<double>( *config, //! \ogs_file_param_special{prj__local_coordinate_system__basis_vector_1} "basis_vector_1", parameters, dimension); @@ -239,18 +240,18 @@ boost::optional<ProcessLib::CoordinateSystem> parseLocalCoordinateSystem( // if (dimension == 2) { - return ProcessLib::CoordinateSystem{basis_vector_0, basis_vector_1}; + return ParameterLib::CoordinateSystem{basis_vector_0, basis_vector_1}; } // // Parse the third vector, for three dimensions. // - auto const& basis_vector_2 = ProcessLib::findParameter<double>( + auto const& basis_vector_2 = ParameterLib::findParameter<double>( *config, //! \ogs_file_param_special{prj__local_coordinate_system__basis_vector_2} "basis_vector_2", parameters, dimension); - return ProcessLib::CoordinateSystem{basis_vector_0, basis_vector_1, - basis_vector_2}; + return ParameterLib::CoordinateSystem{basis_vector_0, basis_vector_1, + basis_vector_2}; } } // namespace @@ -386,7 +387,7 @@ std::vector<std::string> ProjectData::parseParameters( parameters_config.getConfigSubtreeList("parameter")) { auto p = - ProcessLib::createParameter(parameter_config, _mesh_vec, _curves); + ParameterLib::createParameter(parameter_config, _mesh_vec, _curves); if (!names.insert(p->name).second) { OGS_FATAL("A parameter with name `%s' already exists.", @@ -407,7 +408,7 @@ std::vector<std::string> ProjectData::parseParameters( } _parameters.push_back( - std::make_unique<ProcessLib::ConstantParameter<double>>( + std::make_unique<ParameterLib::ConstantParameter<double>>( ProcessLib::DeactivatedSubdomain::zero_parameter_name, 0.0)); return parameter_names_for_transformation; diff --git a/Applications/ApplicationsLib/ProjectData.h b/Applications/ApplicationsLib/ProjectData.h index 2734994103ed12f3fa1a1206d83a284fec4c8ba9..932eb641de466c812be29f8c3d043b7913038aa9 100644 --- a/Applications/ApplicationsLib/ProjectData.h +++ b/Applications/ApplicationsLib/ProjectData.h @@ -21,7 +21,7 @@ #include "MaterialLib/MPL/Medium.h" #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Process.h" #include "ProcessLib/ProcessVariable.h" @@ -119,7 +119,7 @@ private: std::vector<ProcessLib::ProcessVariable> _process_variables; /// Buffer for each parameter config passed to the process. - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> _parameters; + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> _parameters; std::map<int, std::unique_ptr<MaterialPropertyLib::Medium>> _media; diff --git a/CMakeLists.txt b/CMakeLists.txt index f8194ee32cf823920ffb0bbd8b92e0100705f52e..8151513714f9be3927c8cc0da9530567a4fe80d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -333,6 +333,7 @@ add_subdirectory( MeshLib ) add_subdirectory( MeshGeoToolsLib ) add_subdirectory( NumLib ) if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR BUILD_TESTING) + add_subdirectory( ParameterLib ) add_subdirectory( MaterialLib ) add_subdirectory( ProcessLib ) endif() diff --git a/MaterialLib/CMakeLists.txt b/MaterialLib/CMakeLists.txt index 89f4ed54c2866a3cbf9a431e26c8930778f9a08d..7b7893c63c40e627a8512e383850cb0429d9977a 100644 --- a/MaterialLib/CMakeLists.txt +++ b/MaterialLib/CMakeLists.txt @@ -39,8 +39,8 @@ target_include_directories(MaterialLib ) target_link_libraries(MaterialLib - PUBLIC MaterialLib_SolidModels_MFront # ProcessLib - PRIVATE MathLib MeshLib + PUBLIC MaterialLib_SolidModels_MFront + PRIVATE MathLib MeshLib ParameterLib ) if(OGS_USE_PCH) diff --git a/MaterialLib/FractureModels/CohesiveZoneModeI.cpp b/MaterialLib/FractureModels/CohesiveZoneModeI.cpp index 928b642b17d51933d2d8f79b920e4cd2bd219cb8..4e1d9b823b071edbd7d17700d080b29ad7685c0e 100644 --- a/MaterialLib/FractureModels/CohesiveZoneModeI.cpp +++ b/MaterialLib/FractureModels/CohesiveZoneModeI.cpp @@ -38,10 +38,10 @@ double computeDamage(double const damage_prev, template <int DisplacementDim> void CohesiveZoneModeI<DisplacementDim>::computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> - /*sigma0*/, + /*sigma0*/, Eigen::Ref<Eigen::VectorXd const> /*w_prev*/, Eigen::Ref<Eigen::VectorXd const> diff --git a/MaterialLib/FractureModels/CohesiveZoneModeI.h b/MaterialLib/FractureModels/CohesiveZoneModeI.h index 1b62cde9fbbea02a89167ffd42e774b46a5d59aa..b68aeb5f748e8c142198e32c84558ded207bfbeb 100644 --- a/MaterialLib/FractureModels/CohesiveZoneModeI.h +++ b/MaterialLib/FractureModels/CohesiveZoneModeI.h @@ -12,7 +12,7 @@ #include <Eigen/Eigen> #include <utility> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "FractureModelBase.h" @@ -25,8 +25,8 @@ namespace CohesiveZoneModeI /// Variables specific to the material model struct MaterialPropertiesParameters { - using P = ProcessLib::Parameter<double>; - using X = ProcessLib::SpatialPosition; + using P = ParameterLib::Parameter<double>; + using X = ParameterLib::SpatialPosition; MaterialPropertiesParameters(P const& normal_stiffness_, P const& shear_stiffness_, @@ -84,7 +84,7 @@ struct MaterialPropertiesParameters /// details. struct MaterialProperties final { - MaterialProperties(double const t, ProcessLib::SpatialPosition const& x, + MaterialProperties(double const t, ParameterLib::SpatialPosition const& x, MaterialPropertiesParameters const& mp) : Kn(mp.normal_stiffness(t, x)[0]), Ks(mp.shear_stiffness(t, x)[0]), @@ -161,7 +161,7 @@ public: */ void computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, @@ -179,7 +179,7 @@ public: material_state_variables) override; MaterialProperties evaluatedMaterialProperties( - double const t, ProcessLib::SpatialPosition const& x) const + double const t, ParameterLib::SpatialPosition const& x) const { return MaterialProperties(t, x, _mp); } diff --git a/MaterialLib/FractureModels/CreateCohesiveZoneModeI.cpp b/MaterialLib/FractureModels/CreateCohesiveZoneModeI.cpp index fdbc4a408f9a9acd4ebcfef0afe95602a12ca5e6..125a9ef9a65cdacb46ee359843521dfe0a861131 100644 --- a/MaterialLib/FractureModels/CreateCohesiveZoneModeI.cpp +++ b/MaterialLib/FractureModels/CreateCohesiveZoneModeI.cpp @@ -9,8 +9,9 @@ #include "CreateCohesiveZoneModeI.h" +#include "ParameterLib/Utils.h" + #include "CohesiveZoneModeI.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter namespace MaterialLib { @@ -20,26 +21,26 @@ namespace CohesiveZoneModeI { template <int DisplacementDim> std::unique_ptr<FractureModelBase<DisplacementDim>> createCohesiveZoneModeI( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__fracture_model__type} config.checkConfigParameter("type", "CohesiveZoneModeI"); DBUG("Create CohesiveZoneModeI material"); - auto& Kn = ProcessLib::findParameter<double>( + auto& Kn = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__CohesiveZoneModeI__normal_stiffness} config, "normal_stiffness", parameters, 1); - auto& Ks = ProcessLib::findParameter<double>( + auto& Ks = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__CohesiveZoneModeI__shear_stiffness} config, "shear_stiffness", parameters, 1); - auto& Gc = ProcessLib::findParameter<double>( + auto& Gc = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__CohesiveZoneModeI__fracture_toughness} config, "fracture_toughness", parameters, 1); - auto& t_np = ProcessLib::findParameter<double>( + auto& t_np = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__CohesiveZoneModeI__peak_normal_traction} config, "peak_normal_traction", parameters, 1); @@ -58,11 +59,11 @@ std::unique_ptr<FractureModelBase<DisplacementDim>> createCohesiveZoneModeI( } template std::unique_ptr<FractureModelBase<2>> createCohesiveZoneModeI( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); template std::unique_ptr<FractureModelBase<3>> createCohesiveZoneModeI( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace CohesiveZoneModeI diff --git a/MaterialLib/FractureModels/CreateCohesiveZoneModeI.h b/MaterialLib/FractureModels/CreateCohesiveZoneModeI.h index 10a7d8128f18c66df68834d01ca36300477f22a9..7e2967a0cc189ce972b6f59fb798bb5ac21f39b1 100644 --- a/MaterialLib/FractureModels/CreateCohesiveZoneModeI.h +++ b/MaterialLib/FractureModels/CreateCohesiveZoneModeI.h @@ -19,7 +19,7 @@ namespace CohesiveZoneModeI { template <int DisplacementDim> std::unique_ptr<FractureModelBase<DisplacementDim>> createCohesiveZoneModeI( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace CohesiveZoneModeI diff --git a/MaterialLib/FractureModels/CreateLinearElasticIsotropic.cpp b/MaterialLib/FractureModels/CreateLinearElasticIsotropic.cpp index e7929a988f0c4b7c1fd21e27e5d4e87ec882e061..83631fc235459c2eb52087e0b525056f64a741fe 100644 --- a/MaterialLib/FractureModels/CreateLinearElasticIsotropic.cpp +++ b/MaterialLib/FractureModels/CreateLinearElasticIsotropic.cpp @@ -9,29 +9,29 @@ #include "CreateLinearElasticIsotropic.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Utils.h" + #include "LinearElasticIsotropic.h" namespace MaterialLib { namespace Fracture { - template <int DisplacementDim> std::unique_ptr<FractureModelBase<DisplacementDim>> createLinearElasticIsotropic( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__fracture_model__type} config.checkConfigParameter("type", "LinearElasticIsotropic"); DBUG("Create LinearElasticIsotropic material"); - auto& Kn = ProcessLib::findParameter<double>( + auto& Kn = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__LinearElasticIsotropic__normal_stiffness} config, "normal_stiffness", parameters, 1); - auto& Ks = ProcessLib::findParameter<double>( + auto& Ks = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__LinearElasticIsotropic__shear_stiffness} config, "shear_stiffness", parameters, 1); @@ -50,17 +50,12 @@ createLinearElasticIsotropic( penalty_aperture_cutoff, tension_cutoff, mp); } - -template -std::unique_ptr<FractureModelBase<2>> -createLinearElasticIsotropic( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +template std::unique_ptr<FractureModelBase<2>> createLinearElasticIsotropic( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); -template -std::unique_ptr<FractureModelBase<3>> -createLinearElasticIsotropic( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +template std::unique_ptr<FractureModelBase<3>> createLinearElasticIsotropic( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Fracture diff --git a/MaterialLib/FractureModels/CreateLinearElasticIsotropic.h b/MaterialLib/FractureModels/CreateLinearElasticIsotropic.h index b34e087109cfc8a95f90d74685c1b06f0b6fa249..330f21ee575dadaca59a25c9c3bb0c180f3d7141 100644 --- a/MaterialLib/FractureModels/CreateLinearElasticIsotropic.h +++ b/MaterialLib/FractureModels/CreateLinearElasticIsotropic.h @@ -15,11 +15,10 @@ namespace MaterialLib { namespace Fracture { - template <int DisplacementDim> std::unique_ptr<FractureModelBase<DisplacementDim>> createLinearElasticIsotropic( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Fracture diff --git a/MaterialLib/FractureModels/CreateMohrCoulomb.cpp b/MaterialLib/FractureModels/CreateMohrCoulomb.cpp index 830522a54f0f07d8ca92426cb6e874b47097d618..cde42940c0536a5faf04269c41a386d530103f3b 100644 --- a/MaterialLib/FractureModels/CreateMohrCoulomb.cpp +++ b/MaterialLib/FractureModels/CreateMohrCoulomb.cpp @@ -9,41 +9,40 @@ #include "CreateMohrCoulomb.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Utils.h" + #include "MohrCoulomb.h" namespace MaterialLib { namespace Fracture { - template <int DisplacementDim> -std::unique_ptr<FractureModelBase<DisplacementDim>> -createMohrCoulomb( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +std::unique_ptr<FractureModelBase<DisplacementDim>> createMohrCoulomb( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__fracture_model__type} config.checkConfigParameter("type", "MohrCoulomb"); DBUG("Create MohrCoulomb material"); - auto& Kn = ProcessLib::findParameter<double>( + auto& Kn = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__MohrCoulomb__normal_stiffness} config, "normal_stiffness", parameters, 1); - auto& Ks = ProcessLib::findParameter<double>( + auto& Ks = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__MohrCoulomb__shear_stiffness} config, "shear_stiffness", parameters, 1); - auto& friction_angle = ProcessLib::findParameter<double>( + auto& friction_angle = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__MohrCoulomb__friction_angle} config, "friction_angle", parameters, 1); - auto& dilatancy_angle = ProcessLib::findParameter<double>( + auto& dilatancy_angle = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__MohrCoulomb__dilatancy_angle} config, "dilatancy_angle", parameters, 1); - auto& cohesion = ProcessLib::findParameter<double>( + auto& cohesion = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__fracture_model__MohrCoulomb__cohesion} config, "cohesion", parameters, 1); @@ -62,17 +61,12 @@ createMohrCoulomb( penalty_aperture_cutoff, tension_cutoff, mp); } - -template -std::unique_ptr<FractureModelBase<2>> -createMohrCoulomb( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +template std::unique_ptr<FractureModelBase<2>> createMohrCoulomb( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); -template -std::unique_ptr<FractureModelBase<3>> -createMohrCoulomb( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +template std::unique_ptr<FractureModelBase<3>> createMohrCoulomb( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Fracture diff --git a/MaterialLib/FractureModels/CreateMohrCoulomb.h b/MaterialLib/FractureModels/CreateMohrCoulomb.h index 18b5797f5480e149622f3b5606e188fc92789817..e73781781ea5287a2953ada0fd94d175dd9779e0 100644 --- a/MaterialLib/FractureModels/CreateMohrCoulomb.h +++ b/MaterialLib/FractureModels/CreateMohrCoulomb.h @@ -15,11 +15,9 @@ namespace MaterialLib { namespace Fracture { - template <int DisplacementDim> -std::unique_ptr<FractureModelBase<DisplacementDim>> -createMohrCoulomb( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, +std::unique_ptr<FractureModelBase<DisplacementDim>> createMohrCoulomb( + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Fracture diff --git a/MaterialLib/FractureModels/FractureModelBase.h b/MaterialLib/FractureModels/FractureModelBase.h index 7cad143685b91441074d7fce08c0210bc17e7a4f..dc6cd9e135b8ad8e456a669ee43bd049af70a08b 100644 --- a/MaterialLib/FractureModels/FractureModelBase.h +++ b/MaterialLib/FractureModels/FractureModelBase.h @@ -11,7 +11,7 @@ #include <Eigen/Eigen> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -77,7 +77,7 @@ public: */ virtual void computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, diff --git a/MaterialLib/FractureModels/LinearElasticIsotropic.cpp b/MaterialLib/FractureModels/LinearElasticIsotropic.cpp index dbc3b4339900a79b0b3488a4c9176e04d8491220..74730170d7379a28ed29f46ecd31fbd7cd6baf94 100644 --- a/MaterialLib/FractureModels/LinearElasticIsotropic.cpp +++ b/MaterialLib/FractureModels/LinearElasticIsotropic.cpp @@ -18,7 +18,7 @@ namespace Fracture template <int DisplacementDim> void LinearElasticIsotropic<DisplacementDim>::computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, diff --git a/MaterialLib/FractureModels/LinearElasticIsotropic.h b/MaterialLib/FractureModels/LinearElasticIsotropic.h index 962a6e434ac7bcade94f3fbd8dfc5a6eea7178c6..25d586ac6f9daac66a84b4dd241b0d334bdad3cb 100644 --- a/MaterialLib/FractureModels/LinearElasticIsotropic.h +++ b/MaterialLib/FractureModels/LinearElasticIsotropic.h @@ -12,7 +12,7 @@ #include <Eigen/Eigen> #include <utility> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "FractureModelBase.h" @@ -28,8 +28,8 @@ public: /// Variables specific to the material model struct MaterialProperties { - using P = ProcessLib::Parameter<double>; - using X = ProcessLib::SpatialPosition; + using P = ParameterLib::Parameter<double>; + using X = ParameterLib::SpatialPosition; MaterialProperties(P const& normal_stiffness_, P const& shear_stiffness_) : normal_stiffness(normal_stiffness_), shear_stiffness(shear_stiffness_) @@ -83,7 +83,7 @@ public: */ void computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, diff --git a/MaterialLib/FractureModels/MohrCoulomb.cpp b/MaterialLib/FractureModels/MohrCoulomb.cpp index 1e86063670c244cf1c86f4ecdd38cb567790b3b6..80c8622829a130d4ddef788dd6820600cd1a39a5 100644 --- a/MaterialLib/FractureModels/MohrCoulomb.cpp +++ b/MaterialLib/FractureModels/MohrCoulomb.cpp @@ -30,10 +30,9 @@ struct MaterialPropertyValues double c = 0.0; template <typename MaterialProperties> - MaterialPropertyValues( - MaterialProperties const& mp, - double const t, - ProcessLib::SpatialPosition const& x) + MaterialPropertyValues(MaterialProperties const& mp, + double const t, + ParameterLib::SpatialPosition const& x) { Kn = mp.normal_stiffness(t,x)[0]; Ks = mp.shear_stiffness(t,x)[0]; @@ -48,7 +47,7 @@ struct MaterialPropertyValues template <int DisplacementDim> void MohrCoulomb<DisplacementDim>::computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, diff --git a/MaterialLib/FractureModels/MohrCoulomb.h b/MaterialLib/FractureModels/MohrCoulomb.h index 2e47a1ad4544c5f9e803f77074b98c1bef7f74c9..eb6cd5db4a16b52f24c41aa47eb19115a7736b87 100644 --- a/MaterialLib/FractureModels/MohrCoulomb.h +++ b/MaterialLib/FractureModels/MohrCoulomb.h @@ -12,7 +12,7 @@ #include <Eigen/Eigen> #include <utility> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "FractureModelBase.h" @@ -28,8 +28,8 @@ public: /// Variables specific to the material model struct MaterialProperties { - using P = ProcessLib::Parameter<double>; - using X = ProcessLib::SpatialPosition; + using P = ParameterLib::Parameter<double>; + using X = ParameterLib::SpatialPosition; MaterialProperties( P const& normal_stiffness_, P const& shear_stiffness_, @@ -98,7 +98,7 @@ public: */ void computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> sigma0, diff --git a/MaterialLib/PorousMedium/CreatePorousMediaProperties.cpp b/MaterialLib/PorousMedium/CreatePorousMediaProperties.cpp index 27651ac36925715d1d97326ef93bbd9bb6c92eb4..2697d2cc9f8516d9854d40500a6eb708292fdc94 100644 --- a/MaterialLib/PorousMedium/CreatePorousMediaProperties.cpp +++ b/MaterialLib/PorousMedium/CreatePorousMediaProperties.cpp @@ -24,7 +24,7 @@ namespace PorousMedium { PorousMediaProperties createPorousMediaProperties( MeshLib::Mesh& mesh, BaseLib::ConfigTree const& configs, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Create PorousMediaProperties."); diff --git a/MaterialLib/PorousMedium/CreatePorousMediaProperties.h b/MaterialLib/PorousMedium/CreatePorousMediaProperties.h index c91cf122a3ec6f3fa065a104333e785000d2ded7..c8181beab4b30470aa9ad59ae0ba7273f4bf9acb 100644 --- a/MaterialLib/PorousMedium/CreatePorousMediaProperties.h +++ b/MaterialLib/PorousMedium/CreatePorousMediaProperties.h @@ -11,9 +11,9 @@ #pragma once -#include "PorousMediaProperties.h" #include "BaseLib/ConfigTree.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" +#include "PorousMediaProperties.h" namespace MeshLib { @@ -26,6 +26,7 @@ namespace PorousMedium { PorousMediaProperties createPorousMediaProperties( MeshLib::Mesh& mesh, BaseLib::ConfigTree const& porous_media_config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } } diff --git a/MaterialLib/PorousMedium/Permeability/Permeability.h b/MaterialLib/PorousMedium/Permeability/Permeability.h index 4716f0135d2ef1c3c41b79283064a5ffa8937c6b..fa00cd304c1fdb51106226d08c26d3191573ffe1 100644 --- a/MaterialLib/PorousMedium/Permeability/Permeability.h +++ b/MaterialLib/PorousMedium/Permeability/Permeability.h @@ -14,7 +14,7 @@ #include <Eigen/Dense> #include "BaseLib/Error.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -27,7 +27,7 @@ class Permeability { public: explicit Permeability( - ProcessLib::Parameter<double> const& permeability_parameter, + ParameterLib::Parameter<double> const& permeability_parameter, int const dimension) : _permeability_parameter(permeability_parameter), _dimension(dimension) { @@ -52,11 +52,10 @@ public: * @param variable A variable with any double type value. * @param temperature Temperature with any double type value. */ - Eigen::MatrixXd const& getValue( - const double t, - ProcessLib::SpatialPosition const& pos, - const double variable, - const double temperature) const + Eigen::MatrixXd const& getValue(const double t, + ParameterLib::SpatialPosition const& pos, + const double variable, + const double temperature) const { (void)variable; (void)temperature; @@ -72,7 +71,7 @@ public: } private: - ProcessLib::Parameter<double> const& _permeability_parameter; + ParameterLib::Parameter<double> const& _permeability_parameter; int const _dimension; mutable Eigen::MatrixXd _intrinsic_permeability_tensor; }; diff --git a/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.cpp b/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.cpp index a8a510efa8bd6cb533357bfb899d66b822a3d1f4..c2f541d4e51584d7e9788a814e4b318ae687bd2e 100644 --- a/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.cpp +++ b/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.cpp @@ -18,9 +18,9 @@ #include "BaseLib/Error.h" #include "MathLib/LinAlg/Eigen/EigenMapTools.h" -#include "ProcessLib/Parameter/ConstantParameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/SpatialPosition.h" +#include "ParameterLib/Utils.h" namespace MaterialLib { @@ -28,14 +28,15 @@ namespace PorousMedium { std::unique_ptr<Permeability> createPermeabilityModel( BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { //! \ogs_file_param{material__porous_medium__permeability__type} auto const type = config.getConfigParameter<std::string>("type"); if (type == "Constant") { - auto const& permeability_parameter = ProcessLib::findParameter<double>( + auto const& permeability_parameter = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{material__porous_medium__permeability__permeability_tensor_entries} "permeability_tensor_entries", parameters, 0); diff --git a/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.h b/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.h index 0237ebea93b4228b2a118477c10f6f7e7c0a6510..727029b051b4e8efb26a73a0d1f4977c9cb774b2 100644 --- a/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.h +++ b/MaterialLib/PorousMedium/Permeability/createPermeabilityModel.h @@ -33,7 +33,8 @@ namespace PorousMedium */ std::unique_ptr<Permeability> createPermeabilityModel( BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace PorousMedium } // namespace MaterialLib diff --git a/MaterialLib/PorousMedium/Porosity/Porosity.h b/MaterialLib/PorousMedium/Porosity/Porosity.h index a4cca87dc1f838f09246c30ad62b0083e93ed268..e836f3b803194e332307b42a4d8b08db1c7788d1 100644 --- a/MaterialLib/PorousMedium/Porosity/Porosity.h +++ b/MaterialLib/PorousMedium/Porosity/Porosity.h @@ -14,7 +14,7 @@ #include <string> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -23,8 +23,7 @@ namespace PorousMedium class Porosity { public: - explicit Porosity( - ProcessLib::Parameter<double> const& parameter) + explicit Porosity(ParameterLib::Parameter<double> const& parameter) : _parameter(parameter) { } @@ -38,7 +37,7 @@ public: * @param temperature Temperature with any double type value. */ virtual double getValue(const double t, - ProcessLib::SpatialPosition const& pos, + ParameterLib::SpatialPosition const& pos, const double variable, const double temperature) const { @@ -48,7 +47,7 @@ public: } private: - ProcessLib::Parameter<double> const& _parameter; + ParameterLib::Parameter<double> const& _parameter; }; } // namespace PorousMedium diff --git a/MaterialLib/PorousMedium/Porosity/createPorosityModel.cpp b/MaterialLib/PorousMedium/Porosity/createPorosityModel.cpp index de4cd5b11e81a627d87827746b0f203938ebe25a..97817932bbe83b2756e5c0fa83e70bbbaad3eeff 100644 --- a/MaterialLib/PorousMedium/Porosity/createPorosityModel.cpp +++ b/MaterialLib/PorousMedium/Porosity/createPorosityModel.cpp @@ -12,10 +12,9 @@ #include "createPorosityModel.h" -#include "BaseLib/Error.h" #include "BaseLib/ConfigTree.h" - -#include "ProcessLib/Utils/ProcessUtils.h" +#include "BaseLib/Error.h" +#include "ParameterLib/Utils.h" #include "Porosity.h" @@ -23,15 +22,16 @@ namespace MaterialLib { namespace PorousMedium { -std::unique_ptr<Porosity> createPorosityModel(BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) +std::unique_ptr<Porosity> createPorosityModel( + BaseLib::ConfigTree const& config, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { //! \ogs_file_param{material__porous_medium__porosity__type} auto const type = config.getConfigParameter<std::string>("type"); if (type == "Constant") { - auto const& constant_porosity = ProcessLib::findParameter<double>( + auto const& constant_porosity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{material__porous_medium__porosity__porosity_parameter} "porosity_parameter", parameters, 1); diff --git a/MaterialLib/PorousMedium/Porosity/createPorosityModel.h b/MaterialLib/PorousMedium/Porosity/createPorosityModel.h index bdfb5602239a601481e20214379e2a8c70e3c9a3..fc0bfbbfe0b5dac8c1d4bcb50ab3bfa0de164375 100644 --- a/MaterialLib/PorousMedium/Porosity/createPorosityModel.h +++ b/MaterialLib/PorousMedium/Porosity/createPorosityModel.h @@ -13,7 +13,7 @@ #pragma once #include <memory> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace BaseLib { @@ -33,7 +33,8 @@ class Porosity; */ std::unique_ptr<Porosity> createPorosityModel( BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace PorousMedium } // namespace MaterialLib diff --git a/MaterialLib/PorousMedium/PorousMediaProperties.cpp b/MaterialLib/PorousMedium/PorousMediaProperties.cpp index 6c05d86e96b544a94849b2736c4eae43d4ed7217..e264f86799020d98c99068b4ccc532e80c32e503 100644 --- a/MaterialLib/PorousMedium/PorousMediaProperties.cpp +++ b/MaterialLib/PorousMedium/PorousMediaProperties.cpp @@ -16,27 +16,27 @@ namespace MaterialLib namespace PorousMedium { int PorousMediaProperties::getMaterialID( - ProcessLib::SpatialPosition const& pos) const + ParameterLib::SpatialPosition const& pos) const { return _material_ids ? (*_material_ids)[pos.getElementID().get()] : 0; } MaterialLib::PorousMedium::Porosity const& PorousMediaProperties::getPorosity( - double /*t*/, ProcessLib::SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_porosity_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::Permeability const& PorousMediaProperties::getIntrinsicPermeability( - double /*t*/, ProcessLib::SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_intrinsic_permeability_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::Storage const& PorousMediaProperties::getSpecificStorage( - double /*t*/, ProcessLib::SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_specific_storage_models[getMaterialID(pos)]; } diff --git a/MaterialLib/PorousMedium/PorousMediaProperties.h b/MaterialLib/PorousMedium/PorousMediaProperties.h index cc5965c6e8b8fff6c0debf4576e237cb8d6a43f2..dfd3c8c75ba4a76bf7ecd772af8b74adb023db06 100644 --- a/MaterialLib/PorousMedium/PorousMediaProperties.h +++ b/MaterialLib/PorousMedium/PorousMediaProperties.h @@ -19,7 +19,7 @@ #include "Porosity/Porosity.h" #include "Storage/Storage.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/SpatialPosition.h" namespace MaterialLib { @@ -48,16 +48,17 @@ public: PorousMediaProperties(PorousMediaProperties&& other) = default; MaterialLib::PorousMedium::Porosity const& getPorosity( - double t, ProcessLib::SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::Permeability const& getIntrinsicPermeability( - double t, ProcessLib::SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::Storage const& getSpecificStorage( - double t, ProcessLib::SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; private: - int getMaterialID(ProcessLib::SpatialPosition const& pos) const; + int getMaterialID(ParameterLib::SpatialPosition const& pos) const; + private: std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>> _porosity_models; diff --git a/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp b/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp index 5eed2b314b2418ee3642c847feb25f72e2892333..b2a5edf2d7483719c802987dd14cba1c535c66fd 100644 --- a/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp +++ b/MaterialLib/SolidModels/CreateConstitutiveRelation.cpp @@ -22,7 +22,7 @@ #include "BaseLib/ConfigTree.h" #include "BaseLib/Error.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -31,7 +31,7 @@ namespace Solids template <int DisplacementDim> std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>> createConstitutiveRelation( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { auto const type = @@ -72,7 +72,7 @@ template <int DisplacementDim> std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> createConstitutiveRelations( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { auto const constitutive_relation_configs = @@ -112,12 +112,12 @@ createConstitutiveRelations( template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>> createConstitutiveRelations<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>> createConstitutiveRelations<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Solids } // namespace MaterialLib diff --git a/MaterialLib/SolidModels/CreateConstitutiveRelation.h b/MaterialLib/SolidModels/CreateConstitutiveRelation.h index 9136a944b84dc804ba6b8421a273168db8ef436e..9c1d0bde62f8bf5069b343b3b5438ecebbc9ff87 100644 --- a/MaterialLib/SolidModels/CreateConstitutiveRelation.h +++ b/MaterialLib/SolidModels/CreateConstitutiveRelation.h @@ -20,7 +20,7 @@ namespace BaseLib class ConfigTree; } -namespace ProcessLib +namespace ParameterLib { struct ParameterBase; } @@ -36,19 +36,19 @@ template <int DisplacementDim> std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> createConstitutiveRelations( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>>> createConstitutiveRelations<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>>> createConstitutiveRelations<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Solids } // namespace MaterialLib diff --git a/MaterialLib/SolidModels/CreateCreepBGRa.cpp b/MaterialLib/SolidModels/CreateCreepBGRa.cpp index b8d08921856f614c5b261a58685f718d6ec8555c..9889c110bae54c9bde450abc6bd7baa5a4ebbd76 100644 --- a/MaterialLib/SolidModels/CreateCreepBGRa.cpp +++ b/MaterialLib/SolidModels/CreateCreepBGRa.cpp @@ -21,8 +21,8 @@ #include "BaseLib/ConfigTree.h" #include "BaseLib/Error.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Parameter.h" +#include "ParameterLib/Utils.h" namespace MaterialLib { @@ -33,7 +33,7 @@ namespace Creep template <int DisplacementDim> std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>> createCreepBGRa( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__solid__constitutive_relation__type} @@ -46,19 +46,19 @@ createCreepBGRa( MaterialLib::Solids::createLinearElasticIsotropic<DisplacementDim>( parameters, config, skip_type_checking); - auto& A = ProcessLib::findParameter<double>( + auto& A = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__CreepBGRa__a} config, "a", parameters, 1); - auto& n = ProcessLib::findParameter<double>( + auto& n = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__CreepBGRa__n} config, "n", parameters, 1); - auto& sigma0 = ProcessLib::findParameter<double>( + auto& sigma0 = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__CreepBGRa__sigma0} config, "sigma0", parameters, 1); - auto& Q = ProcessLib::findParameter<double>( + auto& Q = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__CreepBGRa__q} config, "q", parameters, 1); @@ -73,12 +73,12 @@ createCreepBGRa( template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>> createCreepBGRa<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>> createCreepBGRa<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Creep } // namespace Solids diff --git a/MaterialLib/SolidModels/CreateCreepBGRa.h b/MaterialLib/SolidModels/CreateCreepBGRa.h index 23b4c770c82ab14ec704edb42babcc81875dddc1..aa7f77d00a114edec25a1e5a896f06df1c707157 100644 --- a/MaterialLib/SolidModels/CreateCreepBGRa.h +++ b/MaterialLib/SolidModels/CreateCreepBGRa.h @@ -19,7 +19,7 @@ namespace BaseLib class ConfigTree; } -namespace ProcessLib +namespace ParameterLib { struct ParameterBase; } @@ -36,17 +36,17 @@ namespace Creep template <int DisplacementDim> std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>> createCreepBGRa( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<2>> createCreepBGRa<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::unique_ptr<MaterialLib::Solids::MechanicsBase<3>> createCreepBGRa<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace Creep } // namespace Solids diff --git a/MaterialLib/SolidModels/CreateEhlers.h b/MaterialLib/SolidModels/CreateEhlers.h index 0d4884449d634821027463bd21b3035814b4cb76..7b0002feedbc387ec8ca234d93036f0fe8f5ad1a 100644 --- a/MaterialLib/SolidModels/CreateEhlers.h +++ b/MaterialLib/SolidModels/CreateEhlers.h @@ -10,7 +10,8 @@ #pragma once #include "CreateNewtonRaphsonSolverParameters.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Utils.h" + #include "Ehlers.h" namespace MaterialLib @@ -20,23 +21,24 @@ namespace Solids namespace Ehlers { inline std::unique_ptr<DamagePropertiesParameters> createDamageProperties( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__damage_properties__alpha_d} auto& alpha_d = - ProcessLib::findParameter<double>(config, "alpha_d", parameters, 1); + ParameterLib::findParameter<double>(config, "alpha_d", parameters, 1); DBUG("Use '%s' as alpha_d.", alpha_d.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__damage_properties__beta_d} auto& beta_d = - ProcessLib::findParameter<double>(config, "beta_d", parameters, 1); + ParameterLib::findParameter<double>(config, "beta_d", parameters, 1); DBUG("Use '%s' as beta_d.", beta_d.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__damage_properties__h_d} - auto& h_d = ProcessLib::findParameter<double>(config, "h_d", parameters, 1); + auto& h_d = + ParameterLib::findParameter<double>(config, "h_d", parameters, 1); DBUG("Use '%s' as h_d.", h_d.name.c_str()); @@ -46,7 +48,7 @@ inline std::unique_ptr<DamagePropertiesParameters> createDamageProperties( template <int DisplacementDim> std::unique_ptr<SolidEhlers<DisplacementDim>> createEhlers( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__solid__constitutive_relation__type} @@ -54,37 +56,37 @@ std::unique_ptr<SolidEhlers<DisplacementDim>> createEhlers( DBUG("Create Ehlers material"); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__shear_modulus} - auto& shear_modulus = ProcessLib::findParameter<double>( + auto& shear_modulus = ParameterLib::findParameter<double>( config, "shear_modulus", parameters, 1); DBUG("Use '%s' as shear modulus parameter.", shear_modulus.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__bulk_modulus} - auto& bulk_modulus = ProcessLib::findParameter<double>( + auto& bulk_modulus = ParameterLib::findParameter<double>( config, "bulk_modulus", parameters, 1); DBUG("Use '%s' as bulk modulus parameter.", bulk_modulus.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__kappa} auto& kappa = - ProcessLib::findParameter<double>(config, "kappa", parameters, 1); + ParameterLib::findParameter<double>(config, "kappa", parameters, 1); DBUG("Use '%s' as kappa.", kappa.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__beta} auto& beta = - ProcessLib::findParameter<double>(config, "beta", parameters, 1); + ParameterLib::findParameter<double>(config, "beta", parameters, 1); DBUG("Use '%s' as beta.", beta.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__gamma} auto& gamma = - ProcessLib::findParameter<double>(config, "gamma", parameters, 1); + ParameterLib::findParameter<double>(config, "gamma", parameters, 1); DBUG("Use '%s' as gamma.", gamma.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__hardening_modulus} - auto& hardening_modulus = ProcessLib::findParameter<double>( + auto& hardening_modulus = ParameterLib::findParameter<double>( config, "hardening_modulus", parameters, 1); DBUG("Use '%s' as hardening modulus parameter.", @@ -92,59 +94,60 @@ std::unique_ptr<SolidEhlers<DisplacementDim>> createEhlers( //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__alpha} auto& alpha = - ProcessLib::findParameter<double>(config, "alpha", parameters, 1); + ParameterLib::findParameter<double>(config, "alpha", parameters, 1); DBUG("Use '%s' as alpha.", alpha.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__delta} auto& delta = - ProcessLib::findParameter<double>(config, "delta", parameters, 1); + ParameterLib::findParameter<double>(config, "delta", parameters, 1); DBUG("Use '%s' as delta.", delta.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__eps} - auto& eps = ProcessLib::findParameter<double>(config, "eps", parameters, 1); + auto& eps = + ParameterLib::findParameter<double>(config, "eps", parameters, 1); DBUG("Use '%s' as eps.", eps.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__m} - auto& m = ProcessLib::findParameter<double>(config, "m", parameters, 1); + auto& m = ParameterLib::findParameter<double>(config, "m", parameters, 1); DBUG("Use '%s' as m.", m.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__alphap} auto& alphap = - ProcessLib::findParameter<double>(config, "alphap", parameters, 1); + ParameterLib::findParameter<double>(config, "alphap", parameters, 1); DBUG("Use '%s' as alphap.", alphap.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__deltap} auto& deltap = - ProcessLib::findParameter<double>(config, "deltap", parameters, 1); + ParameterLib::findParameter<double>(config, "deltap", parameters, 1); DBUG("Use '%s' as deltap.", deltap.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__epsp} auto& epsp = - ProcessLib::findParameter<double>(config, "epsp", parameters, 1); + ParameterLib::findParameter<double>(config, "epsp", parameters, 1); DBUG("Use '%s' as epsp.", epsp.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__mp} auto& paremeter_mp = - ProcessLib::findParameter<double>(config, "mp", parameters, 1); + ParameterLib::findParameter<double>(config, "mp", parameters, 1); DBUG("Use '%s' as mp.", paremeter_mp.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__betap} auto& betap = - ProcessLib::findParameter<double>(config, "betap", parameters, 1); + ParameterLib::findParameter<double>(config, "betap", parameters, 1); DBUG("Use '%s' as betap.", betap.name.c_str()); //! \ogs_file_param_special{material__solid__constitutive_relation__Ehlers__gammap} auto& gammap = - ProcessLib::findParameter<double>(config, "gammap", parameters, 1); + ParameterLib::findParameter<double>(config, "gammap", parameters, 1); DBUG("Use '%s' as gammap.", gammap.name.c_str()); diff --git a/MaterialLib/SolidModels/CreateLinearElasticIsotropic.h b/MaterialLib/SolidModels/CreateLinearElasticIsotropic.h index cdf7826cdeb80ba39845ad1ea18ef8b56d3adc3c..ead3d10296cf2cef14e893f2c81644dcd634ad0a 100644 --- a/MaterialLib/SolidModels/CreateLinearElasticIsotropic.h +++ b/MaterialLib/SolidModels/CreateLinearElasticIsotropic.h @@ -9,7 +9,8 @@ #pragma once -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Utils.h" + #include "LinearElasticIsotropic.h" namespace MaterialLib @@ -19,7 +20,7 @@ namespace Solids template <int DisplacementDim> std::unique_ptr<LinearElasticIsotropic<DisplacementDim>> createLinearElasticIsotropic( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config, const bool skip_type_checking) { if (!skip_type_checking) @@ -30,14 +31,14 @@ createLinearElasticIsotropic( } // Youngs modulus - auto& youngs_modulus = ProcessLib::findParameter<double>( + auto& youngs_modulus = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__LinearElasticIsotropic__youngs_modulus} config, "youngs_modulus", parameters, 1); DBUG("Use '%s' as youngs_modulus parameter.", youngs_modulus.name.c_str()); // Poissons ratio - auto& poissons_ratio = ProcessLib::findParameter<double>( + auto& poissons_ratio = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__LinearElasticIsotropic__poissons_ratio} config, "poissons_ratio", parameters, 1); diff --git a/MaterialLib/SolidModels/CreateLubby2.h b/MaterialLib/SolidModels/CreateLubby2.h index 7b2427a228c3c898208fa4934bd356b637e3db40..8ea24ea44f2c8f1a6f0170bd3da1c5d2dc02cf6d 100644 --- a/MaterialLib/SolidModels/CreateLubby2.h +++ b/MaterialLib/SolidModels/CreateLubby2.h @@ -10,7 +10,7 @@ #pragma once #include "CreateNewtonRaphsonSolverParameters.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter +#include "ParameterLib/Utils.h" #include "Lubby2.h" @@ -22,7 +22,7 @@ namespace Lubby2 { template <int DisplacementDim> std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { //! \ogs_file_param{material__solid__constitutive_relation__type} @@ -30,7 +30,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( DBUG("Create Lubby2 material"); // Kelvin shear modulus. - auto& kelvin_shear_modulus = ProcessLib::findParameter<double>( + auto& kelvin_shear_modulus = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__kelvin_shear_modulus} config, "kelvin_shear_modulus", parameters, 1); @@ -38,7 +38,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( kelvin_shear_modulus.name.c_str()); // Kelvin viscosity. - auto& kelvin_viscosity = ProcessLib::findParameter<double>( + auto& kelvin_viscosity = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__kelvin_viscosity} config, "kelvin_viscosity", parameters, 1); @@ -46,7 +46,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( kelvin_viscosity.name.c_str()); // Maxwell shear modulus. - auto& maxwell_shear_modulus = ProcessLib::findParameter<double>( + auto& maxwell_shear_modulus = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__maxwell_shear_modulus} config, "maxwell_shear_modulus", parameters, 1); @@ -54,7 +54,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( maxwell_shear_modulus.name.c_str()); // Maxwell bulk modulus. - auto& maxwell_bulk_modulus = ProcessLib::findParameter<double>( + auto& maxwell_bulk_modulus = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__maxwell_bulk_modulus} config, "maxwell_bulk_modulus", parameters, 1); @@ -62,7 +62,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( maxwell_bulk_modulus.name.c_str()); // Maxwell viscosity. - auto& maxwell_viscosity = ProcessLib::findParameter<double>( + auto& maxwell_viscosity = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__maxwell_viscosity} config, "maxwell_viscosity", parameters, 1); @@ -70,7 +70,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( maxwell_viscosity.name.c_str()); // Dependency parameter for mK. - auto& dependency_parameter_mK = ProcessLib::findParameter<double>( + auto& dependency_parameter_mK = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__dependency_parameter_mk} config, "dependency_parameter_mk", parameters, 1); @@ -78,7 +78,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( dependency_parameter_mK.name.c_str()); // Dependency parameter for mvK. - auto& dependency_parameter_mvK = ProcessLib::findParameter<double>( + auto& dependency_parameter_mvK = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__dependency_parameter_mvk} config, "dependency_parameter_mvk", parameters, 1); @@ -86,7 +86,7 @@ std::unique_ptr<Lubby2<DisplacementDim>> createLubby2( dependency_parameter_mvK.name.c_str()); // Dependency parameter for mvM. - auto& dependency_parameter_mvM = ProcessLib::findParameter<double>( + auto& dependency_parameter_mvM = ParameterLib::findParameter<double>( //! \ogs_file_param_special{material__solid__constitutive_relation__Lubby2__dependency_parameter_mvm} config, "dependency_parameter_mvm", parameters, 1); diff --git a/MaterialLib/SolidModels/CreepBGRa.cpp b/MaterialLib/SolidModels/CreepBGRa.cpp index 0c58a8469f5277ed0d964b4ca526a83b214a192e..9671153de1ea580d94825371c536f82b13633f64 100644 --- a/MaterialLib/SolidModels/CreepBGRa.cpp +++ b/MaterialLib/SolidModels/CreepBGRa.cpp @@ -34,7 +34,7 @@ boost::optional<std::tuple<typename CreepBGRa<DisplacementDim>::KelvinVector, DisplacementDim>::MaterialStateVariables>, typename CreepBGRa<DisplacementDim>::KelvinMatrix>> CreepBGRa<DisplacementDim>::integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -134,7 +134,7 @@ CreepBGRa<DisplacementDim>::integrateStress( template <int DisplacementDim> double CreepBGRa<DisplacementDim>::getTemperatureRelatedCoefficient( - double const t, double const dt, ProcessLib::SpatialPosition const& x, + double const t, double const dt, ParameterLib::SpatialPosition const& x, double const T, double const deviatoric_stress_norm) const { const double A = _a(t, x)[0]; diff --git a/MaterialLib/SolidModels/CreepBGRa.h b/MaterialLib/SolidModels/CreepBGRa.h index 31b8d9126151607d4c3d6c1ffdfe94f8a0459acd..d8c02d0f5ef0cc7647ad5b717b871d8df40db0a8 100644 --- a/MaterialLib/SolidModels/CreepBGRa.h +++ b/MaterialLib/SolidModels/CreepBGRa.h @@ -18,7 +18,7 @@ #include "LinearElasticIsotropic.h" #include "MathLib/KelvinVector.h" #include "NumLib/NewtonRaphson.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -50,7 +50,7 @@ public: using KelvinMatrix = MathLib::KelvinVector::KelvinMatrixType<DisplacementDim>; - using Parameter = ProcessLib::Parameter<double>; + using Parameter = ParameterLib::Parameter<double>; std::unique_ptr< typename MechanicsBase<DisplacementDim>::MaterialStateVariables> @@ -79,7 +79,7 @@ public: DisplacementDim>::MaterialStateVariables>, KelvinMatrix>> integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -92,7 +92,7 @@ public: } double getTemperatureRelatedCoefficient( - double const t, double const dt, ProcessLib::SpatialPosition const& x, + double const t, double const dt, ParameterLib::SpatialPosition const& x, double const T, double const deviatoric_stress_norm) const override; private: diff --git a/MaterialLib/SolidModels/Ehlers.cpp b/MaterialLib/SolidModels/Ehlers.cpp index efece2a3756a84a2403c6c99087dff88f68e7d87..d9be5cbe16dfee062837cc578794b7fa12992260 100644 --- a/MaterialLib/SolidModels/Ehlers.cpp +++ b/MaterialLib/SolidModels/Ehlers.cpp @@ -484,7 +484,7 @@ SolidEhlers<DisplacementDim>::SolidEhlers( template <int DisplacementDim> double SolidEhlers<DisplacementDim>::computeFreeEnergyDensity( double const /*t*/, - ProcessLib::SpatialPosition const& /*x*/, + ParameterLib::SpatialPosition const& /*x*/, double const /*dt*/, KelvinVector const& eps, KelvinVector const& sigma, @@ -508,7 +508,7 @@ boost::optional<std::tuple<typename SolidEhlers<DisplacementDim>::KelvinVector, DisplacementDim>::MaterialStateVariables>, typename SolidEhlers<DisplacementDim>::KelvinMatrix>> SolidEhlers<DisplacementDim>::integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& diff --git a/MaterialLib/SolidModels/Ehlers.h b/MaterialLib/SolidModels/Ehlers.h index 3734d0fb2831f3c2962f06745ecdc08366c17ecd..9b892428a64aaa5bb33ed6b732a63041f4942ee8 100644 --- a/MaterialLib/SolidModels/Ehlers.h +++ b/MaterialLib/SolidModels/Ehlers.h @@ -25,7 +25,7 @@ #include "BaseLib/Error.h" #include "MathLib/KelvinVector.h" #include "NumLib/NewtonRaphson.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "MechanicsBase.h" @@ -64,7 +64,7 @@ inline TangentType makeTangentType(std::string const& s) /// \cite Ehlers1995. struct MaterialPropertiesParameters { - using P = ProcessLib::Parameter<double>; + using P = ParameterLib::Parameter<double>; MaterialPropertiesParameters(P const& G_, P const& K_, P const& alpha_, P const& beta_, P const& gamma_, @@ -117,7 +117,7 @@ struct MaterialPropertiesParameters struct DamagePropertiesParameters { - using P = ProcessLib::Parameter<double>; + using P = ParameterLib::Parameter<double>; P const& alpha_d; P const& beta_d; P const& h_d; @@ -127,7 +127,7 @@ struct DamagePropertiesParameters /// details. struct MaterialProperties final { - MaterialProperties(double const t, ProcessLib::SpatialPosition const& x, + MaterialProperties(double const t, ParameterLib::SpatialPosition const& x, MaterialPropertiesParameters const& mp) : G(mp.G(t, x)[0]), K(mp.K(t, x)[0]), @@ -173,7 +173,7 @@ struct MaterialProperties final struct DamageProperties { DamageProperties(double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, DamagePropertiesParameters const& dp) : alpha_d(dp.alpha_d(t, x)[0]), beta_d(dp.beta_d(t, x)[0]), @@ -311,7 +311,7 @@ public: double computeFreeEnergyDensity( double const /*t*/, - ProcessLib::SpatialPosition const& /*x*/, + ParameterLib::SpatialPosition const& /*x*/, double const /*dt*/, KelvinVector const& eps, KelvinVector const& sigma, @@ -323,7 +323,7 @@ public: DisplacementDim>::MaterialStateVariables>, KelvinMatrix>> integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -334,13 +334,13 @@ public: getInternalVariables() const override; MaterialProperties evaluatedMaterialProperties( - double const t, ProcessLib::SpatialPosition const& x) const + double const t, ParameterLib::SpatialPosition const& x) const { return MaterialProperties(t, x, _mp); } DamageProperties evaluatedDamageProperties( - double const t, ProcessLib::SpatialPosition const& x) const + double const t, ParameterLib::SpatialPosition const& x) const { return DamageProperties(t, x, *_damage_properties); } diff --git a/MaterialLib/SolidModels/LinearElasticIsotropic.cpp b/MaterialLib/SolidModels/LinearElasticIsotropic.cpp index 866f28751a4ebb4885eaa11835966270e52733e4..03c08c56f160a16c01d2a8bf3711889a31f2ab81 100644 --- a/MaterialLib/SolidModels/LinearElasticIsotropic.cpp +++ b/MaterialLib/SolidModels/LinearElasticIsotropic.cpp @@ -20,7 +20,7 @@ boost::optional< DisplacementDim>::MaterialStateVariables>, typename LinearElasticIsotropic<DisplacementDim>::KelvinMatrix>> LinearElasticIsotropic<DisplacementDim>::integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const /*dt*/, + double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -44,7 +44,7 @@ LinearElasticIsotropic<DisplacementDim>::integrateStress( template <int DisplacementDim> typename LinearElasticIsotropic<DisplacementDim>::KelvinMatrix LinearElasticIsotropic<DisplacementDim>::getElasticTensor( - double const t, ProcessLib::SpatialPosition const& x, + double const t, ParameterLib::SpatialPosition const& x, double const /*T*/) const { return elasticTangentStiffness<DisplacementDim>(_mp.lambda(t, x), diff --git a/MaterialLib/SolidModels/LinearElasticIsotropic.h b/MaterialLib/SolidModels/LinearElasticIsotropic.h index c6e91526e8eaa86636940d3479ec393ac04d7574..27aed3ee69316de8c7dac1b021e39a2c9dab438e 100644 --- a/MaterialLib/SolidModels/LinearElasticIsotropic.h +++ b/MaterialLib/SolidModels/LinearElasticIsotropic.h @@ -10,7 +10,7 @@ #pragma once #include "MechanicsBase.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -23,8 +23,8 @@ public: /// Variables specific to the material model class MaterialProperties { - using P = ProcessLib::Parameter<double>; - using X = ProcessLib::SpatialPosition; + using P = ParameterLib::Parameter<double>; + using X = ParameterLib::SpatialPosition; public: MaterialProperties(P const& youngs_modulus, P const& poissons_ratio) @@ -97,7 +97,7 @@ public: double computeFreeEnergyDensity( double const /*t*/, - ProcessLib::SpatialPosition const& /*x*/, + ParameterLib::SpatialPosition const& /*x*/, double const /*dt*/, KelvinVector const& eps, KelvinVector const& sigma, @@ -113,7 +113,7 @@ public: DisplacementDim>::MaterialStateVariables>, KelvinMatrix>> integrateStress( - double const t, ProcessLib::SpatialPosition const& x, + double const t, ParameterLib::SpatialPosition const& x, double const /*dt*/, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -121,7 +121,7 @@ public: double const T) const override; KelvinMatrix getElasticTensor(double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const T) const; MaterialProperties getMaterialProperties() const { return _mp; } diff --git a/MaterialLib/SolidModels/Lubby2.cpp b/MaterialLib/SolidModels/Lubby2.cpp index f804c9d8da1d6a23bc4826e5043aba5a8521b07a..bb735a625bbc54c1ecc725c618f219d2aa1b09a1 100644 --- a/MaterialLib/SolidModels/Lubby2.cpp +++ b/MaterialLib/SolidModels/Lubby2.cpp @@ -73,7 +73,7 @@ boost::optional<std::tuple<typename Lubby2<DisplacementDim>::KelvinVector, DisplacementDim>::MaterialStateVariables>, typename Lubby2<DisplacementDim>::KelvinMatrix>> Lubby2<DisplacementDim>::integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& /*eps_prev*/, KelvinVector const& eps, KelvinVector const& /*sigma_prev*/, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -227,7 +227,7 @@ void Lubby2<DisplacementDim>::calculateResidualBurgers( template <int DisplacementDim> void Lubby2<DisplacementDim>::calculateJacobianBurgers( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, const double dt, JacobianMatrix& Jac, double s_eff, diff --git a/MaterialLib/SolidModels/Lubby2.h b/MaterialLib/SolidModels/Lubby2.h index 58a0ebe58321c1a9786529bd21d761afd9279c26..cae32b1447145d80f2d3b0fe6f5797599aea53ed 100644 --- a/MaterialLib/SolidModels/Lubby2.h +++ b/MaterialLib/SolidModels/Lubby2.h @@ -11,7 +11,7 @@ #include "MathLib/KelvinVector.h" #include "NumLib/NewtonRaphson.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "MechanicsBase.h" @@ -26,7 +26,7 @@ namespace Lubby2 // struct Lubby2MaterialProperties { - using P = ProcessLib::Parameter<double>; + using P = ParameterLib::Parameter<double>; Lubby2MaterialProperties(P const& GK0_, P const& GM0_, P const& KM0_, @@ -63,7 +63,7 @@ template <int DisplacementDim> struct LocalLubby2Properties { LocalLubby2Properties(double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, Lubby2MaterialProperties const& mp) : GM0(mp.GM0(t, x)[0]), KM0(mp.KM0(t, x)[0]), @@ -192,7 +192,7 @@ public: double computeFreeEnergyDensity( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps, KelvinVector const& sigma, @@ -224,7 +224,7 @@ public: DisplacementDim>::MaterialStateVariables>, KelvinMatrix>> integrateStress( - double const t, ProcessLib::SpatialPosition const& x, double const dt, + double const t, ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, KelvinVector const& sigma_prev, typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& @@ -247,7 +247,7 @@ private: /// Calculates the 18x18 Jacobian. void calculateJacobianBurgers( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, JacobianMatrix& Jac, double s_eff, diff --git a/MaterialLib/SolidModels/MFront/CreateMFront.cpp b/MaterialLib/SolidModels/MFront/CreateMFront.cpp index 3d32185f92dd0bf16b30a668cdb6b7f9a4bf6479..97446167c46e28f6e5408233cdc9f3806f12bb17 100644 --- a/MaterialLib/SolidModels/MFront/CreateMFront.cpp +++ b/MaterialLib/SolidModels/MFront/CreateMFront.cpp @@ -11,11 +11,10 @@ #ifdef OGS_USE_MFRONT -#include "MFront.h" - #include "BaseLib/FileTools.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" +#include "MFront.h" namespace { /// Prints info about MFront variables. @@ -46,7 +45,7 @@ namespace MFront { template <int DisplacementDim> std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config) { INFO("### MFRONT ########################################################"); @@ -102,7 +101,7 @@ std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront( // MGIS library. varInfo("Parameters", behaviour.parameters, hypothesis); - std::vector<ProcessLib::Parameter<double> const*> material_properties; + std::vector<ParameterLib::Parameter<double> const*> material_properties; if (!behaviour.mps.empty()) { @@ -137,7 +136,7 @@ std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront( auto const param_name = it->second; auto const num_comp = mgis::behaviour::getVariableSize(mp, hypothesis); - auto const* param = &ProcessLib::findParameter<double>( + auto const* param = &ParameterLib::findParameter<double>( param_name, parameters, num_comp); INFO("Using OGS parameter `%s' for material property `%s'.", @@ -194,7 +193,7 @@ namespace MFront template <int DisplacementDim> std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront( std::vector< - std::unique_ptr<ProcessLib::ParameterBase>> const& /*parameters*/, + std::unique_ptr<ParameterLib::ParameterBase>> const& /*parameters*/, BaseLib::ConfigTree const& /*config*/) { OGS_FATAL("OpenGeoSys has not been build with MFront support."); @@ -212,10 +211,10 @@ namespace Solids namespace MFront { template std::unique_ptr<MechanicsBase<2>> createMFront<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); template std::unique_ptr<MechanicsBase<3>> createMFront<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace MFront } // namespace Solids diff --git a/MaterialLib/SolidModels/MFront/CreateMFront.h b/MaterialLib/SolidModels/MFront/CreateMFront.h index 26997aefae1cd2d956e207bee502c7535a551e88..638ca136a47c2c9b7f9b805053da4b59dddf497c 100644 --- a/MaterialLib/SolidModels/MFront/CreateMFront.h +++ b/MaterialLib/SolidModels/MFront/CreateMFront.h @@ -14,7 +14,7 @@ #include "BaseLib/ConfigTree.h" #include "MaterialLib/SolidModels/MechanicsBase.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -24,14 +24,14 @@ namespace MFront { template <int DisplacementDim> std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::unique_ptr<MechanicsBase<2>> createMFront<2>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); extern template std::unique_ptr<MechanicsBase<3>> createMFront<3>( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, BaseLib::ConfigTree const& config); } // namespace MFront } // namespace Solids diff --git a/MaterialLib/SolidModels/MFront/MFront.cpp b/MaterialLib/SolidModels/MFront/MFront.cpp index 081f760d00d6129d47c0a78d998a5bd83bcc4422..95e076e543a7471881fbb3b5925015cfd1f5f52f 100644 --- a/MaterialLib/SolidModels/MFront/MFront.cpp +++ b/MaterialLib/SolidModels/MFront/MFront.cpp @@ -157,7 +157,7 @@ const char* varTypeToString(int v) template <int DisplacementDim> MFront<DisplacementDim>::MFront( mgis::behaviour::Behaviour&& behaviour, - std::vector<ProcessLib::Parameter<double> const*>&& material_properties) + std::vector<ParameterLib::Parameter<double> const*>&& material_properties) : _behaviour(std::move(behaviour)), _material_properties(std::move(material_properties)) { @@ -238,7 +238,7 @@ boost::optional<std::tuple<typename MFront<DisplacementDim>::KelvinVector, typename MFront<DisplacementDim>::KelvinMatrix>> MFront<DisplacementDim>::integrateStress( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& /*eps_prev*/, KelvinVector const& eps, @@ -317,7 +317,7 @@ MFront<DisplacementDim>::integrateStress( template <int DisplacementDim> double MFront<DisplacementDim>::computeFreeEnergyDensity( double const /*t*/, - ProcessLib::SpatialPosition const& /*x*/, + ParameterLib::SpatialPosition const& /*x*/, double const /*dt*/, KelvinVector const& /*eps*/, KelvinVector const& /*sigma*/, diff --git a/MaterialLib/SolidModels/MFront/MFront.h b/MaterialLib/SolidModels/MFront/MFront.h index d59c742a86b3deb177f20ec115404bbc91e8ec8e..5f886b22d690d0c33a80f17ce300c8f89e4a6afc 100644 --- a/MaterialLib/SolidModels/MFront/MFront.h +++ b/MaterialLib/SolidModels/MFront/MFront.h @@ -14,7 +14,7 @@ #include <MGIS/Behaviour/Behaviour.hxx> #include <MGIS/Behaviour/BehaviourData.hxx> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -72,7 +72,7 @@ public: MathLib::KelvinVector::KelvinMatrixType<DisplacementDim>; MFront(mgis::behaviour::Behaviour&& behaviour, - std::vector<ProcessLib::Parameter<double> const*>&& + std::vector<ParameterLib::Parameter<double> const*>&& material_properties); std::unique_ptr< @@ -85,7 +85,7 @@ public: KelvinMatrix>> integrateStress( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, @@ -96,7 +96,7 @@ public: double computeFreeEnergyDensity( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps, KelvinVector const& sigma, @@ -105,7 +105,7 @@ public: private: mgis::behaviour::Behaviour _behaviour; - std::vector<ProcessLib::Parameter<double> const*> _material_properties; + std::vector<ParameterLib::Parameter<double> const*> _material_properties; }; extern template class MFront<2>; diff --git a/MaterialLib/SolidModels/MechanicsBase.h b/MaterialLib/SolidModels/MechanicsBase.h index 5082bb27ffd4a222d2e575ed7a98de0aa580d8f6..379b7970e83531f9d0bb0da09de379715cfd4f85 100644 --- a/MaterialLib/SolidModels/MechanicsBase.h +++ b/MaterialLib/SolidModels/MechanicsBase.h @@ -16,9 +16,9 @@ #include <vector> #include "BaseLib/Error.h" -#include "ProcessLib/Deformation/BMatrixPolicy.h" +#include "MathLib/KelvinVector.h" -namespace ProcessLib +namespace ParameterLib { class SpatialPosition; } @@ -80,7 +80,7 @@ struct MechanicsBase boost::optional<std::tuple< KelvinVector, std::unique_ptr<MaterialStateVariables>, KelvinMatrix>> integrateStress(double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, Eigen::Matrix<double, Eigen::Dynamic, 1> const& eps_prev, Eigen::Matrix<double, Eigen::Dynamic, 1> const& eps, @@ -111,7 +111,7 @@ struct MechanicsBase virtual boost::optional<std::tuple< KelvinVector, std::unique_ptr<MaterialStateVariables>, KelvinMatrix>> integrateStress(double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps_prev, KelvinVector const& eps, @@ -152,7 +152,7 @@ struct MechanicsBase /// one. virtual double getTemperatureRelatedCoefficient( double const /*t*/, double const /*dt*/, - ProcessLib::SpatialPosition const& /*x*/, double const /*T*/, + ParameterLib::SpatialPosition const& /*x*/, double const /*T*/, double const /*deviatoric_stress_norm*/) const { return 0.0; @@ -160,7 +160,7 @@ struct MechanicsBase virtual double computeFreeEnergyDensity( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const dt, KelvinVector const& eps, KelvinVector const& sigma, diff --git a/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.cpp b/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.cpp index 891ff1653ddf8fbf9a582c9f4f2c7c93118c9406..6fb4325312c8d16729d5cf3a84a09085d571f767 100644 --- a/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.cpp +++ b/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.cpp @@ -20,8 +20,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" #include "TwoPhaseFlowWithPPMaterialProperties.h" @@ -34,7 +34,7 @@ std::tuple<std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties>, createTwoPhaseFlowMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const& material_ids, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Reading material properties of two-phase flow process."); diff --git a/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.h b/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.h index 021ac92e594c1c6d03d1388e2bb4479e77720bda..6f1d3bc69d4e93b3d23143d8011524dd0fdc7cf3 100644 --- a/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.h +++ b/MaterialLib/TwoPhaseModels/CreateTwoPhaseFlowMaterialProperties.h @@ -32,7 +32,8 @@ std::tuple<std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties>, createTwoPhaseFlowMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const& material_ids, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // end namespace } // namespace MaterialLib diff --git a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp index b7a71d1922954c9eb4cb6f807bbc3583120509f3..5a50c0fd37d0332b516aade4f42e208e44fceb69 100644 --- a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp +++ b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.cpp @@ -21,8 +21,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" namespace MaterialLib { @@ -120,14 +120,14 @@ double TwoPhaseFlowWithPPMaterialProperties::getGasViscosity( Eigen::MatrixXd const& TwoPhaseFlowWithPPMaterialProperties::getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const int /*dim*/) const + const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { return _intrinsic_permeability_models[material_id]->getValue(t, pos, 0, 0); } double TwoPhaseFlowWithPPMaterialProperties::getPorosity( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double /*p*/, + const ParameterLib::SpatialPosition& pos, const double /*p*/, const double T, const double porosity_variable) const { return _porosity_models[material_id]->getValue(t, pos, porosity_variable, @@ -136,7 +136,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getPorosity( double TwoPhaseFlowWithPPMaterialProperties::getSaturation( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double pc) const { return _capillary_pressure_models[material_id]->getSaturation(pc); @@ -144,7 +144,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getSaturation( double TwoPhaseFlowWithPPMaterialProperties::getCapillaryPressure( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _capillary_pressure_models[material_id]->getCapillaryPressure( @@ -153,7 +153,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getCapillaryPressure( double TwoPhaseFlowWithPPMaterialProperties::getSaturationDerivative( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { const double dpcdsw = @@ -162,7 +162,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getSaturationDerivative( } double TwoPhaseFlowWithPPMaterialProperties::getNonwetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { if (saturation < 0.) @@ -177,7 +177,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getNonwetRelativePermeability( } double TwoPhaseFlowWithPPMaterialProperties::getWetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { if (saturation < 0) diff --git a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h index 4adb66bad51f2f10424b5ad3687742aa72e76596..b6f2811a39916bdd5a97194b70a5ee377173d9c6 100644 --- a/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h +++ b/MaterialLib/TwoPhaseModels/TwoPhaseFlowWithPPMaterialProperties.h @@ -82,21 +82,21 @@ public: Eigen::MatrixXd const& getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const int dim) const; double getPorosity(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double porosity_variable) const; double getSaturation(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, - const double T, const double pc) const; + const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double pc) const; double getCapillaryPressure(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getSaturationDerivative(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getLiquidDensity(const double p, const double T) const; @@ -104,12 +104,11 @@ public: double getGasViscosity(const double p, const double T) const; double getLiquidViscosity(const double p, const double T) const; double getGasDensityDerivative(double const p, double const T) const; - double getNonwetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, - const double p, const double T, - const double saturation) const; + double getNonwetRelativePermeability( + const double t, const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double saturation) const; double getWetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; diff --git a/MeshGeoToolsLib/MeshEditing/ResetMeshElementProperty.h b/MeshGeoToolsLib/MeshEditing/ResetMeshElementProperty.h index 9d8e36723ff4f37dac165d3d6fbcebe10ef63493..15173e04e570ff80cd4067882646e9eccd488927 100644 --- a/MeshGeoToolsLib/MeshEditing/ResetMeshElementProperty.h +++ b/MeshGeoToolsLib/MeshEditing/ResetMeshElementProperty.h @@ -13,11 +13,6 @@ #include <cstdlib> #include <vector> -#include <tclap/CmdLine.h> - -#include "Applications/ApplicationsLib/LogogSetup.h" -#include "Applications/FileIO/readGeometryFromFile.h" - #include "MeshLib/IO/readMeshFromFile.h" #include "MeshLib/IO/writeMeshToFile.h" diff --git a/ParameterLib/CMakeLists.txt b/ParameterLib/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..857be4c14f894b64dcde14ebb56845a4d783b822 --- /dev/null +++ b/ParameterLib/CMakeLists.txt @@ -0,0 +1,19 @@ +# Source files +get_source_files(SOURCES) + +add_library(ParameterLib ${SOURCES}) +if(BUILD_SHARED_LIBS) + install(TARGETS ParameterLib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + +include(GenerateExportHeader) +generate_export_header(ParameterLib) +target_include_directories(ParameterLib + PUBLIC ${CMAKE_CURRENT_BINARY_DIR} +) + +target_link_libraries(ParameterLib PRIVATE BaseLib MeshLib) + +if(OGS_USE_PCH) + cotire(ParameterLib) +endif() diff --git a/ProcessLib/Parameter/ConstantParameter.cpp b/ParameterLib/ConstantParameter.cpp similarity index 96% rename from ProcessLib/Parameter/ConstantParameter.cpp rename to ParameterLib/ConstantParameter.cpp index 5ccaab1592aa49d332a435957a832c4de3fa302c..8a296d70523869368d5fc7eea28f9144b2f5a978 100644 --- a/ProcessLib/Parameter/ConstantParameter.cpp +++ b/ParameterLib/ConstantParameter.cpp @@ -8,11 +8,10 @@ */ #include "ConstantParameter.h" -#include <logog/include/logog.hpp> #include "BaseLib/ConfigTree.h" #include "BaseLib/Error.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createConstantParameter( std::string const& name, BaseLib::ConfigTree const& config) @@ -62,4 +61,4 @@ std::unique_ptr<ParameterBase> createConstantParameter( return std::make_unique<ConstantParameter<double>>(name, values); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/ConstantParameter.h b/ParameterLib/ConstantParameter.h similarity index 96% rename from ProcessLib/Parameter/ConstantParameter.h rename to ParameterLib/ConstantParameter.h index 920322fa539f64ce3405a7fde4d19ad3489c2574..ab42c80c341a773978d838aa21417bfec50587bf 100644 --- a/ProcessLib/Parameter/ConstantParameter.h +++ b/ParameterLib/ConstantParameter.h @@ -9,11 +9,9 @@ #pragma once -#include <utility> - #include "Parameter.h" -namespace ProcessLib +namespace ParameterLib { /// Single, constant value parameter. template <typename T> @@ -76,4 +74,4 @@ private: std::unique_ptr<ParameterBase> createConstantParameter( std::string const& name, BaseLib::ConfigTree const& config); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/CoordinateSystem.cpp b/ParameterLib/CoordinateSystem.cpp similarity index 98% rename from ProcessLib/Parameter/CoordinateSystem.cpp rename to ParameterLib/CoordinateSystem.cpp index 5b14e428e7163589e56e0940b8109e80a8a552bd..3e16da75c729015c3a3d68dff953c25948180588 100644 --- a/ProcessLib/Parameter/CoordinateSystem.cpp +++ b/ParameterLib/CoordinateSystem.cpp @@ -14,7 +14,7 @@ #include "Parameter.h" -namespace ProcessLib +namespace ParameterLib { CoordinateSystem::CoordinateSystem(Parameter<double> const& e0, Parameter<double> const& e1) @@ -116,4 +116,4 @@ Eigen::Matrix<double, 3, 3> CoordinateSystem::transformation<3>( #endif // NDEBUG return t; } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/CoordinateSystem.h b/ParameterLib/CoordinateSystem.h similarity index 95% rename from ProcessLib/Parameter/CoordinateSystem.h rename to ParameterLib/CoordinateSystem.h index 0469cbd4e64a976401eda5040161072852bf734c..91fe860b9bb43407c731ed7f4882186003636a87 100644 --- a/ProcessLib/Parameter/CoordinateSystem.h +++ b/ParameterLib/CoordinateSystem.h @@ -14,14 +14,14 @@ #include <array> #include <vector> -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; class SpatialPosition; -} +} // namespace ParameterLib -namespace ProcessLib +namespace ParameterLib { struct CoordinateSystem final { @@ -65,4 +65,4 @@ private: std::array<Parameter<double> const*, 3> _base; }; -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/CurveScaledParameter.cpp b/ParameterLib/CurveScaledParameter.cpp similarity index 94% rename from ProcessLib/Parameter/CurveScaledParameter.cpp rename to ParameterLib/CurveScaledParameter.cpp index 0f941c7d7fdc0ed45c1b46d90749fb30b75c9f66..44335e00116da01c202f32ce7aae3ed79a322010 100644 --- a/ProcessLib/Parameter/CurveScaledParameter.cpp +++ b/ParameterLib/CurveScaledParameter.cpp @@ -8,9 +8,9 @@ */ #include "CurveScaledParameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "Utils.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createCurveScaledParameter( std::string const& name, @@ -42,4 +42,4 @@ std::unique_ptr<ParameterBase> createCurveScaledParameter( name, *curve_it->second, referenced_parameter_name); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/CurveScaledParameter.h b/ParameterLib/CurveScaledParameter.h similarity index 86% rename from ProcessLib/Parameter/CurveScaledParameter.h rename to ParameterLib/CurveScaledParameter.h index 04ed950db4d91c6a42e41fbb30da098e7d8afb6a..e9504e59db92fdb40726a9fd45c3f36da58d50c3 100644 --- a/ProcessLib/Parameter/CurveScaledParameter.h +++ b/ParameterLib/CurveScaledParameter.h @@ -13,12 +13,13 @@ #include <utility> #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "Parameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "Utils.h" -namespace ProcessLib +namespace ParameterLib { template <typename T> -struct CurveScaledParameter final : public Parameter<T> { +struct CurveScaledParameter final : public Parameter<T> +{ CurveScaledParameter(std::string const& name_, MathLib::PiecewiseLinearInterpolation const& curve, std::string referenced_parameter_name) @@ -30,8 +31,7 @@ struct CurveScaledParameter final : public Parameter<T> { bool isTimeDependent() const override { return true; } void initialize( - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& - parameters) override + std::vector<std::unique_ptr<ParameterBase>> const& parameters) override { _parameter = &findParameter<T>(_referenced_parameter_name, parameters, 0); @@ -44,7 +44,7 @@ struct CurveScaledParameter final : public Parameter<T> { } std::vector<T> operator()(double const t, - SpatialPosition const& pos) const override + SpatialPosition const& pos) const override { // No local coordinate transformation here, which might happen twice // otherwise. @@ -77,4 +77,4 @@ std::unique_ptr<ParameterBase> createCurveScaledParameter( std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& curves); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/FunctionParameter.cpp b/ParameterLib/FunctionParameter.cpp similarity index 83% rename from ProcessLib/Parameter/FunctionParameter.cpp rename to ParameterLib/FunctionParameter.cpp index 2a943202e54dd6ec8c7eea4f1b3ad0bc39b97a1b..e27062cae04b922edbf358200eb4195b225ce1b2 100644 --- a/ProcessLib/Parameter/FunctionParameter.cpp +++ b/ParameterLib/FunctionParameter.cpp @@ -12,7 +12,7 @@ #include "BaseLib/ConfigTree.h" #include "MeshLib/Mesh.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createFunctionParameter( std::string const& name, BaseLib::ConfigTree const& config, @@ -30,8 +30,8 @@ std::unique_ptr<ParameterBase> createFunctionParameter( vec_expressions.emplace_back(expression_str); } - return std::make_unique<FunctionParameter<double>>( - name, mesh, vec_expressions); + return std::make_unique<FunctionParameter<double>>(name, mesh, + vec_expressions); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/FunctionParameter.h b/ParameterLib/FunctionParameter.h similarity index 92% rename from ProcessLib/Parameter/FunctionParameter.h rename to ParameterLib/FunctionParameter.h index e0e65af60781cf3bd9eadb32865f98e9e4692679..a919b6a54899c4c50d6698baa5cbf9e9605a212e 100644 --- a/ProcessLib/Parameter/FunctionParameter.h +++ b/ParameterLib/FunctionParameter.h @@ -18,11 +18,10 @@ #include "MeshLib/Node.h" #include "Parameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "Utils.h" -namespace ProcessLib +namespace ParameterLib { - /// A parameter class evaluating functions defined by /// user-provided mathematical expressions. /// @@ -55,14 +54,14 @@ struct FunctionParameter final : public Parameter<T> _symbol_table.create_variable("z"); _vec_expression.resize(_vec_expression_str.size()); - for (unsigned i=0; i<_vec_expression_str.size(); i++) + for (unsigned i = 0; i < _vec_expression_str.size(); i++) { _vec_expression[i].register_symbol_table(_symbol_table); parser_t parser; if (!parser.compile(_vec_expression_str[i], _vec_expression[i])) { OGS_FATAL("Error: %s\tExpression: %s\n", parser.error().c_str(), - _vec_expression_str[i].c_str()); + _vec_expression_str[i].c_str()); } } } @@ -75,7 +74,7 @@ struct FunctionParameter final : public Parameter<T> } std::vector<T> operator()(double const /*t*/, - SpatialPosition const& pos) const override + SpatialPosition const& pos) const override { std::vector<T> cache(getNumberOfComponents()); auto& x = _symbol_table.get_variable("x")->ref(); @@ -120,4 +119,4 @@ std::unique_ptr<ParameterBase> createFunctionParameter( std::string const& name, BaseLib::ConfigTree const& config, MeshLib::Mesh const& mesh); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/GroupBasedParameter.cpp b/ParameterLib/GroupBasedParameter.cpp similarity index 92% rename from ProcessLib/Parameter/GroupBasedParameter.cpp rename to ParameterLib/GroupBasedParameter.cpp index e939846c857bb92794305146a3be0f224026f23f..b6d4a3f7247892dc9249d822a214ff0f97e8ef68 100644 --- a/ProcessLib/Parameter/GroupBasedParameter.cpp +++ b/ParameterLib/GroupBasedParameter.cpp @@ -13,7 +13,7 @@ #include "BaseLib/Error.h" #include "MeshLib/Mesh.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createGroupBasedParameter( std::string const& name, BaseLib::ConfigTree const& config, @@ -24,7 +24,8 @@ std::unique_ptr<ParameterBase> createGroupBasedParameter( // get a property vector of group IDs //! \ogs_file_param{prj__parameters__parameter__Group__group_id_property} - std::string const group_id_property_name = config.getConfigParameter<std::string>("group_id_property"); + std::string const group_id_property_name = + config.getConfigParameter<std::string>("group_id_property"); DBUG("Using group_id_property %s", group_id_property_name.c_str()); auto const& group_id_property = @@ -67,7 +68,8 @@ std::unique_ptr<ParameterBase> createGroupBasedParameter( unsigned n_values = vec_index_values.front().second.size(); for (auto p : vec_index_values) { - auto itr = std::find(group_id_property->begin(), group_id_property->end(), p.first); + auto itr = std::find(group_id_property->begin(), + group_id_property->end(), p.first); if (itr == group_id_property->end()) { OGS_FATAL( @@ -111,4 +113,4 @@ std::unique_ptr<ParameterBase> createGroupBasedParameter( OGS_FATAL("Mesh item type of the specified property is not supported."); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/GroupBasedParameter.h b/ParameterLib/GroupBasedParameter.h similarity index 82% rename from ProcessLib/Parameter/GroupBasedParameter.h rename to ParameterLib/GroupBasedParameter.h index a34c57eb563b81b4b3695cb5d1ef7613e16d4933..71d9d979cdfcba3fa5d18f21c107f9771e5059ae 100644 --- a/ProcessLib/Parameter/GroupBasedParameter.h +++ b/ParameterLib/GroupBasedParameter.h @@ -16,21 +16,18 @@ #include "Parameter.h" - namespace MeshLib { template <typename T> class PropertyVector; -} // MeshLib +} // namespace MeshLib -namespace ProcessLib +namespace ParameterLib { - /// A parameter class looking for values from indices in a property vector. /// This class can be used for material ID dependent parameters. template <typename T, MeshLib::MeshItemType MeshItemType> -struct GroupBasedParameter final - : public Parameter<T> +struct GroupBasedParameter final : public Parameter<T> { /** * Constructing from a property vector of index and corresponding values @@ -61,7 +58,7 @@ struct GroupBasedParameter final } std::vector<T> operator()(double const /*t*/, - SpatialPosition const& pos) const override + SpatialPosition const& pos) const override { auto const item_id = getMeshItemID(pos, type<MeshItemType>()); assert(item_id); @@ -81,16 +78,19 @@ struct GroupBasedParameter final } private: - template <MeshLib::MeshItemType ITEM_TYPE> struct type {}; + template <MeshLib::MeshItemType ITEM_TYPE> + struct type + { + }; - static boost::optional<std::size_t> - getMeshItemID(SpatialPosition const& pos, type<MeshLib::MeshItemType::Cell>) + static boost::optional<std::size_t> getMeshItemID( + SpatialPosition const& pos, type<MeshLib::MeshItemType::Cell>) { return pos.getElementID(); } - static boost::optional<std::size_t> - getMeshItemID(SpatialPosition const& pos, type<MeshLib::MeshItemType::Node>) + static boost::optional<std::size_t> getMeshItemID( + SpatialPosition const& pos, type<MeshLib::MeshItemType::Node>) { return pos.getNodeID(); } @@ -104,4 +104,4 @@ std::unique_ptr<ParameterBase> createGroupBasedParameter( BaseLib::ConfigTree const& config, MeshLib::Mesh const& mesh); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/MeshElementParameter.cpp b/ParameterLib/MeshElementParameter.cpp similarity index 89% rename from ProcessLib/Parameter/MeshElementParameter.cpp rename to ParameterLib/MeshElementParameter.cpp index 8c707397d762ec99737dbcc916871b4eabe2e35f..0968906ca777329eafcbd03ac847778797ff9438 100644 --- a/ProcessLib/Parameter/MeshElementParameter.cpp +++ b/ParameterLib/MeshElementParameter.cpp @@ -11,7 +11,7 @@ #include "BaseLib/ConfigTree.h" #include "MeshLib/Mesh.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createMeshElementParameter( std::string const& name, BaseLib::ConfigTree const& config, @@ -20,14 +20,16 @@ std::unique_ptr<ParameterBase> createMeshElementParameter( //! \ogs_file_param{prj__parameters__parameter__type} config.checkConfigParameter("type", "MeshElement"); //! \ogs_file_param{prj__parameters__parameter__MeshElement__field_name} - auto const field_name = config.getConfigParameter<std::string>("field_name"); + auto const field_name = + config.getConfigParameter<std::string>("field_name"); DBUG("Using field_name %s", field_name.c_str()); // TODO other data types than only double auto const& property = mesh.getProperties().getPropertyVector<double>(field_name); - if (property->getMeshItemType() != MeshLib::MeshItemType::Cell) { + if (property->getMeshItemType() != MeshLib::MeshItemType::Cell) + { OGS_FATAL("The mesh property `%s' is not an element property.", field_name.c_str()); } @@ -36,4 +38,4 @@ std::unique_ptr<ParameterBase> createMeshElementParameter( *property); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/MeshElementParameter.h b/ParameterLib/MeshElementParameter.h similarity index 92% rename from ProcessLib/Parameter/MeshElementParameter.h rename to ParameterLib/MeshElementParameter.h index ac86c05b6e83dc26ae7f2bb836e0418ee9d767fd..a94ab3f1fd078e809b4d7df4de6282b10697b39b 100644 --- a/ProcessLib/Parameter/MeshElementParameter.h +++ b/ParameterLib/MeshElementParameter.h @@ -15,13 +15,14 @@ namespace MeshLib { template <typename T> class PropertyVector; -} // MeshLib +} // namespace MeshLib -namespace ProcessLib +namespace ParameterLib { /// A parameter represented by a mesh property vector. template <typename T> -struct MeshElementParameter final : public Parameter<T> { +struct MeshElementParameter final : public Parameter<T> +{ MeshElementParameter(std::string const& name_, MeshLib::Mesh const& mesh, MeshLib::PropertyVector<T> const& property) @@ -37,7 +38,7 @@ struct MeshElementParameter final : public Parameter<T> { } std::vector<T> operator()(double const /*t*/, - SpatialPosition const& pos) const override + SpatialPosition const& pos) const override { auto const e = pos.getElementID(); if (!e) @@ -90,4 +91,4 @@ std::unique_ptr<ParameterBase> createMeshElementParameter( std::string const& name, BaseLib::ConfigTree const& config, MeshLib::Mesh const& mesh); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/MeshNodeParameter.cpp b/ParameterLib/MeshNodeParameter.cpp similarity index 88% rename from ProcessLib/Parameter/MeshNodeParameter.cpp rename to ParameterLib/MeshNodeParameter.cpp index 11b9ecbabe2186d6c82605503bf7ad8560c262ea..6f360a068c85184c34b17bed3fbd712b3d33b8e8 100644 --- a/ProcessLib/Parameter/MeshNodeParameter.cpp +++ b/ParameterLib/MeshNodeParameter.cpp @@ -11,7 +11,7 @@ #include "BaseLib/ConfigTree.h" #include "MeshLib/Mesh.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createMeshNodeParameter( std::string const& name, BaseLib::ConfigTree const& config, @@ -20,14 +20,16 @@ std::unique_ptr<ParameterBase> createMeshNodeParameter( //! \ogs_file_param{prj__parameters__parameter__type} config.checkConfigParameter("type", "MeshNode"); //! \ogs_file_param{prj__parameters__parameter__MeshNode__field_name} - auto const field_name = config.getConfigParameter<std::string>("field_name"); + auto const field_name = + config.getConfigParameter<std::string>("field_name"); DBUG("Using field_name %s", field_name.c_str()); // TODO other data types than only double auto const& property = mesh.getProperties().getPropertyVector<double>(field_name); - if (property->getMeshItemType() != MeshLib::MeshItemType::Node) { + if (property->getMeshItemType() != MeshLib::MeshItemType::Node) + { OGS_FATAL("The mesh property `%s' is not a nodal property.", field_name.c_str()); } @@ -35,4 +37,4 @@ std::unique_ptr<ParameterBase> createMeshNodeParameter( return std::make_unique<MeshNodeParameter<double>>(name, mesh, *property); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/MeshNodeParameter.h b/ParameterLib/MeshNodeParameter.h similarity index 92% rename from ProcessLib/Parameter/MeshNodeParameter.h rename to ParameterLib/MeshNodeParameter.h index 5f5286d98994197af77f937e1be9e5233dea64b3..7bfd7c4e1ad9d0f36339144d88b9a3559430dfd7 100644 --- a/ProcessLib/Parameter/MeshNodeParameter.h +++ b/ParameterLib/MeshNodeParameter.h @@ -19,13 +19,14 @@ namespace MeshLib { template <typename T> class PropertyVector; -} // MeshLib +} // namespace MeshLib -namespace ProcessLib +namespace ParameterLib { /// A parameter represented by a mesh property vector. template <typename T> -struct MeshNodeParameter final : public Parameter<T> { +struct MeshNodeParameter final : public Parameter<T> +{ MeshNodeParameter(std::string const& name_, MeshLib::Mesh const& mesh, MeshLib::PropertyVector<T> const& property) @@ -41,7 +42,7 @@ struct MeshNodeParameter final : public Parameter<T> { } std::vector<T> operator()(double const /*t*/, - SpatialPosition const& pos) const override + SpatialPosition const& pos) const override { auto const n = pos.getNodeID(); if (!n) @@ -94,4 +95,4 @@ std::unique_ptr<ParameterBase> createMeshNodeParameter( std::string const& name, BaseLib::ConfigTree const& config, MeshLib::Mesh const& mesh); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/Parameter.cpp b/ParameterLib/Parameter.cpp similarity index 98% rename from ProcessLib/Parameter/Parameter.cpp rename to ParameterLib/Parameter.cpp index 2cddcff1c57459e195d3c1b417d94cf0e8d25c9d..c535765cbc9895f06f7d908c59d72c4ef4bf08fe 100644 --- a/ProcessLib/Parameter/Parameter.cpp +++ b/ParameterLib/Parameter.cpp @@ -18,7 +18,7 @@ #include "MeshElementParameter.h" #include "MeshNodeParameter.h" -namespace ProcessLib +namespace ParameterLib { std::unique_ptr<ParameterBase> createParameter( BaseLib::ConfigTree const& config, @@ -27,7 +27,6 @@ std::unique_ptr<ParameterBase> createParameter( std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& curves) { - //! \ogs_file_param{prj__parameters__parameter__name} auto const name = config.getConfigParameter<std::string>("name"); //! \ogs_file_param{prj__parameters__parameter__type} @@ -85,4 +84,4 @@ std::unique_ptr<ParameterBase> createParameter( OGS_FATAL("Cannot construct a parameter of given type '%s'.", type.c_str()); } -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/Parameter.h b/ParameterLib/Parameter.h similarity index 94% rename from ProcessLib/Parameter/Parameter.h rename to ParameterLib/Parameter.h index e359ed8f414ae93ed64bffc1946f0deeba32170c..6a6ec97860f56f0c07d79729bc145007977606fb 100644 --- a/ProcessLib/Parameter/Parameter.h +++ b/ParameterLib/Parameter.h @@ -27,19 +27,19 @@ namespace BaseLib { class ConfigTree; -} // BaseLib +} // namespace BaseLib namespace MathLib { class PiecewiseLinearInterpolation; -} // MathLib +} // namespace MathLib namespace MeshLib { class Mesh; -} // MeshLib +} // namespace MeshLib -namespace ProcessLib +namespace ParameterLib { /// Base class for all parameters, not an interface class. This avoids using of /// void* when storing parameters and convenient destruction. @@ -64,8 +64,7 @@ struct ParameterBase /// Parameters might depend on each other; this method allows to set up the /// dependencies between parameters after they have been constructed. virtual void initialize( - std::vector< - std::unique_ptr<ProcessLib::ParameterBase>> const& /*parameters*/) + std::vector<std::unique_ptr<ParameterBase>> const& /*parameters*/) { } @@ -144,13 +143,13 @@ struct Parameter : public ParameterBase ~Parameter() override = default; - //! Returns the number of components this Parameter has at every position and - //! point in time. + //! Returns the number of components this Parameter has at every position + //! and point in time. virtual int getNumberOfComponents() const = 0; //! Returns the parameter value at the given time and position. - virtual std::vector<T> operator()( - double const t, SpatialPosition const& pos) const = 0; + virtual std::vector<T> operator()(double const t, + SpatialPosition const& pos) const = 0; //! Returns a matrix of values for all nodes of the given element. // @@ -198,4 +197,4 @@ std::unique_ptr<ParameterBase> createParameter( std::unique_ptr<MathLib::PiecewiseLinearInterpolation>> const& curves); -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ProcessLib/Parameter/SpatialPosition.h b/ParameterLib/SpatialPosition.h similarity index 97% rename from ProcessLib/Parameter/SpatialPosition.h rename to ParameterLib/SpatialPosition.h index 30a87e0973348680a2f3474f699b54845094e2e7..e1d98fea26607fd5a56440fdef548522bf7b1f7e 100644 --- a/ProcessLib/Parameter/SpatialPosition.h +++ b/ParameterLib/SpatialPosition.h @@ -12,7 +12,7 @@ #include <boost/optional.hpp> #include "MathLib/TemplatePoint.h" -namespace ProcessLib +namespace ParameterLib { //! Represents a position in space which can be either one of //! a node, an element, an integration point or a cartesian coordinates triple. @@ -86,4 +86,4 @@ private: boost::optional<MathLib::TemplatePoint<double, 3>> _coordinates; }; -} // namespace ProcessLib +} // namespace ParameterLib diff --git a/ParameterLib/Utils.cpp b/ParameterLib/Utils.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b903042c5529e78053ce2e656aa1931d04804f01 --- /dev/null +++ b/ParameterLib/Utils.cpp @@ -0,0 +1,33 @@ +/** + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#include "Utils.h" + +namespace ParameterLib +{ +ParameterBase* findParameterByName( + std::string const& parameter_name, + std::vector<std::unique_ptr<ParameterBase>> const& parameters) +{ + // Find corresponding parameter by name. + auto const it = std::find_if( + parameters.cbegin(), parameters.cend(), + [¶meter_name](std::unique_ptr<ParameterBase> const& p) { + return p->name == parameter_name; + }); + + if (it == parameters.end()) + { + return nullptr; + } + + DBUG("Found parameter `%s'.", (*it)->name.c_str()); + return it->get(); +} +} // namespace ParameterLib diff --git a/ParameterLib/Utils.h b/ParameterLib/Utils.h new file mode 100644 index 0000000000000000000000000000000000000000..fd191cdb83e4123f4abdbb058dec1af204a84019 --- /dev/null +++ b/ParameterLib/Utils.h @@ -0,0 +1,127 @@ +/** + * \copyright + * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <vector> +#include "BaseLib/ConfigTree.h" +#include "BaseLib/Error.h" + +#include "Parameter.h" + +namespace ParameterLib +{ +/// Find an optional parameter of specific type for a given name. +/// +/// \tparam ParameterDataType the data type of the parameter +/// \param parameter_name name of the requested parameter +/// \param parameters list of parameters in which it will be searched +ParameterBase* findParameterByName( + std::string const& parameter_name, + std::vector<std::unique_ptr<ParameterBase>> const& parameters); + +/// Find an optional parameter of specific type for a given name. +/// +/// \tparam ParameterDataType the data type of the parameter +/// \param parameter_name name of the requested parameter +/// \param parameters list of parameters in which it will be searched +/// \param num_components the number of components of the parameters or zero if +/// any number is acceptable +/// +/// \see The documentation of the other findParameter() function. +template <typename ParameterDataType> +Parameter<ParameterDataType>* findParameterOptional( + std::string const& parameter_name, + std::vector<std::unique_ptr<ParameterBase>> const& parameters, + int const num_components) +{ + // Find corresponding parameter by name. + ParameterBase* parameter_ptr = + findParameterByName(parameter_name, parameters); + if (parameter_ptr == nullptr) + { + return nullptr; + } + + // Check the type correctness of the found parameter. + auto* const parameter = + dynamic_cast<Parameter<ParameterDataType>*>(parameter_ptr); + if (!parameter) + { + OGS_FATAL("The read parameter `%s' is of incompatible type.", + parameter_name.c_str()); + } + + if (num_components != 0 && + parameter->getNumberOfComponents() != num_components) + { + OGS_FATAL( + "The read parameter `%s' has the wrong number of components (%lu " + "instead of %u).", + parameter_name.c_str(), parameter->getNumberOfComponents(), + num_components); + } + + return parameter; +} + +/// Find a parameter of specific type for a given name. +/// +/// \tparam ParameterDataType the data type of the parameter +/// \param parameter_name name of the requested parameter +/// \param parameters list of parameters in which it will be searched +/// \param num_components the number of components of the parameters or zero if +/// any number is acceptable +/// +/// \see The documentation of the other findParameter() function. +template <typename ParameterDataType> +Parameter<ParameterDataType>& findParameter( + std::string const& parameter_name, + std::vector<std::unique_ptr<ParameterBase>> const& parameters, + int const num_components) +{ + auto* parameter = findParameterOptional<ParameterDataType>( + parameter_name, parameters, num_components); + + if (!parameter) + { + OGS_FATAL( + "Could not find parameter `%s' in the provided parameters list.", + parameter_name.c_str()); + } + return *parameter; +} + +/// Find a parameter of specific type for a name given in the process +/// configuration under the tag. +/// The parameter must have the specified number of components. +/// In the process config a parameter is referenced by a name. For example it +/// will be looking for a parameter named "K" in the list of parameters +/// when the tag is "hydraulic_conductivity": +/// \code +/// <process> +/// ... +/// <hydraulic_conductivity>K</hydraulic_conductivity> +/// </process> +/// \endcode +/// and return a reference to that parameter. Additionally it checks for the +/// type of the found parameter. +template <typename ParameterDataType> +Parameter<ParameterDataType>& findParameter( + BaseLib::ConfigTree const& process_config, std::string const& tag, + std::vector<std::unique_ptr<ParameterBase>> const& parameters, + int const num_components) +{ + // Find parameter name in process config. + //! \ogs_file_special + auto const name = process_config.getConfigParameter<std::string>(tag); + + return findParameter<ParameterDataType>(name, parameters, num_components); +} +} // namespace ParameterLib diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.h b/ProcessLib/BoundaryCondition/BoundaryCondition.h index 127bbe49f24b29399f5fcbcec10980692e95e8a5..c9f201807c71a13a8c8c93d8883b209cbe13d4c6 100644 --- a/ProcessLib/BoundaryCondition/BoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/BoundaryCondition.h @@ -22,11 +22,13 @@ class LocalToGlobalIndexMap; template <typename> struct IndexValueVector; } - +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { struct BoundaryConditionConfig; -struct ParameterBase; class Process; class BoundaryCondition diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h index b6bebef421be6022d3a1e7b8d146e77e8e86a873..8db720690fb145e70328b47fdb24dffbecc5ddf0 100644 --- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h +++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h @@ -20,7 +20,8 @@ class BoundaryConditionCollection final { public: explicit BoundaryConditionCollection( - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters) : _parameters(parameters) { } @@ -62,7 +63,8 @@ public: private: mutable std::vector<NumLib::IndexValueVector<GlobalIndexType>> _dirichlet_bcs; std::vector<std::unique_ptr<BoundaryCondition>> _boundary_conditions; - std::vector<std::unique_ptr<ParameterBase>> const& _parameters; + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + _parameters; }; } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.cpp index 51e87faf7f4151c20bb5298abeef28fdad698510..1000972862ed17a5a96f825ddd3ca8bf9a4ad328 100644 --- a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.cpp @@ -13,15 +13,15 @@ #include <vector> #include <logog/include/logog.hpp> -#include "MeshLib/Node.h" #include "MeshLib/MeshSearch/NodeSearch.h" // for getUniqueNodes +#include "MeshLib/Node.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Utils/CreateLocalAssemblers.h" -#include "ProcessLib/Utils/ProcessUtils.h" namespace ProcessLib { ConstraintDirichletBoundaryCondition::ConstraintDirichletBoundaryCondition( - Parameter<double> const& parameter, + ParameterLib::Parameter<double> const& parameter, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, MeshLib::Mesh const& bc_mesh, unsigned const integration_order, MeshLib::Mesh const& bulk_mesh, @@ -128,7 +128,7 @@ void ConstraintDirichletBoundaryCondition::getEssentialBCValues( const double t, const GlobalVector& /*x*/, NumLib::IndexValueVector<GlobalIndexType>& bc_values) const { - SpatialPosition pos; + ParameterLib::SpatialPosition pos; bc_values.ids.clear(); bc_values.values.clear(); @@ -228,7 +228,7 @@ createConstraintDirichletBoundaryCondition( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, unsigned const integration_order, int const component_id, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, Process const& constraining_process) { DBUG("Constructing ConstraintDirichletBoundaryCondition from config."); @@ -298,7 +298,8 @@ createConstraintDirichletBoundaryCondition( auto const param_name = config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", param_name.c_str()); - auto& param = findParameter<double>(param_name, parameters, 1); + auto& param = + ParameterLib::findParameter<double>(param_name, parameters, 1); // In case of partitioned mesh the boundary could be empty, i.e. there is no // boundary condition. diff --git a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.h b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.h index 5d05b6e4bfd0567ee288b3ff5fb26978646bdd21..186542d89d26ab7a847db2dfe73ef1efc6f8a977 100644 --- a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryCondition.h @@ -9,10 +9,10 @@ #pragma once +#include "BoundaryCondition.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" #include "NumLib/IndexValueVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "BoundaryCondition.h" +#include "ParameterLib/Parameter.h" #include "ConstraintDirichletBoundaryConditionLocalAssembler.h" @@ -49,7 +49,7 @@ public: /// @note The function has to be stored by value, else the process value is /// not captured properly. ConstraintDirichletBoundaryCondition( - Parameter<double> const& parameter, + ParameterLib::Parameter<double> const& parameter, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, MeshLib::Mesh const& bc_mesh, unsigned const integration_order, @@ -67,7 +67,7 @@ public: NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override; private: - Parameter<double> const& _parameter; + ParameterLib::Parameter<double> const& _parameter; /// Local dof table, a subset of the global one restricted to the /// participating number of elements of the boundary condition. @@ -123,6 +123,6 @@ createConstraintDirichletBoundaryCondition( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, unsigned const integration_order, int const component_id, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, Process const& constraining_process); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryConditionLocalAssembler.h index 87a351ca4aa3d9a9836d55ee97a63196bf4f5544..9c214e163e3e389e931bc09db99f37e8dd7330c4 100644 --- a/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/ConstraintDirichletBoundaryConditionLocalAssembler.h @@ -13,8 +13,8 @@ #include "NumLib/DOF/DOFTableUtil.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Process.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "MeshLib/Elements/MapBulkElementPoint.h" diff --git a/ProcessLib/BoundaryCondition/CreateBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/CreateBoundaryCondition.cpp index 4efc1805feff70ab82ca80a24de38952e3bf9bdd..844d1e4586ac4d84c04ee34df94de447cb12f17e 100644 --- a/ProcessLib/BoundaryCondition/CreateBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/CreateBoundaryCondition.cpp @@ -33,7 +33,7 @@ std::unique_ptr<BoundaryCondition> createBoundaryCondition( const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& bulk_mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters, + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters, const Process& process) { // Surface mesh and bulk mesh must have equal axial symmetry flags! diff --git a/ProcessLib/BoundaryCondition/CreateBoundaryCondition.h b/ProcessLib/BoundaryCondition/CreateBoundaryCondition.h index 752d7a574a7014cac17f50dc3352ba9b03a0f070..7c36f45fab971b8bfd99f40be235d237e8e57c54 100644 --- a/ProcessLib/BoundaryCondition/CreateBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/CreateBoundaryCondition.h @@ -20,13 +20,15 @@ class Mesh; namespace NumLib { class LocalToGlobalIndexMap; -} // namespace NumLib - +} +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class BoundaryCondition; struct BoundaryConditionConfig; -struct ParameterBase; class Process; std::unique_ptr<BoundaryCondition> createBoundaryCondition( @@ -34,7 +36,7 @@ std::unique_ptr<BoundaryCondition> createBoundaryCondition( const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& bulk_mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters, + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters, const Process& process); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp index c714a531dec83f6ec4c75e076bfd18b546aa4d0d..1385562e9bdaf627c51da32595c14df5196661ca 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp @@ -16,15 +16,16 @@ #include "DirichletBoundaryConditionAuxiliaryFunctions.h" #include "BaseLib/ConfigTree.h" -#include "NumLib/IndexValueVector.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "NumLib/IndexValueVector.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/Utils.h" namespace ProcessLib { DirichletBoundaryCondition::DirichletBoundaryCondition( - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id) : _parameter(parameter), @@ -57,7 +58,7 @@ std::unique_ptr<DirichletBoundaryCondition> createDirichletBoundaryCondition( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters) + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters) { DBUG("Constructing DirichletBoundaryCondition from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} @@ -67,7 +68,8 @@ std::unique_ptr<DirichletBoundaryCondition> createDirichletBoundaryCondition( auto const param_name = config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", param_name.c_str()); - auto& parameter = findParameter<double>(param_name, parameters, 1); + auto& parameter = + ParameterLib::findParameter<double>(param_name, parameters, 1); if (parameter.mesh() && *parameter.mesh() != bc_mesh) { diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.h b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.h index 123ef2924cd4b52c503e4ac65169d78825ffa40a..1f3681199e0bf4e7c90685a44374be79f65a56e8 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.h @@ -15,12 +15,14 @@ namespace BaseLib { class ConfigTree; } - -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; +} +namespace ProcessLib +{ // TODO docu /// The DirichletBoundaryCondition class describes a constant in space /// and time Dirichlet boundary condition. @@ -30,7 +32,8 @@ class DirichletBoundaryCondition final : public BoundaryCondition { public: DirichletBoundaryCondition( - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id); @@ -39,7 +42,7 @@ public: NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override; private: - Parameter<double> const& _parameter; + ParameterLib::Parameter<double> const& _parameter; MeshLib::Mesh const& _bc_mesh; std::unique_ptr<NumLib::LocalToGlobalIndexMap const> _dof_table_boundary; @@ -51,6 +54,7 @@ std::unique_ptr<DirichletBoundaryCondition> createDirichletBoundaryCondition( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters); + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.cpp b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.cpp index 58f9714b057c4008a2969dbff16a060679bf70b3..05ff01e5848b5b0de41912cdabcebf84503d9cbd 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.cpp +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.cpp @@ -15,9 +15,9 @@ #include "MeshLib/Mesh.h" #include "MeshLib/Node.h" -#include "NumLib/IndexValueVector.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "NumLib/IndexValueVector.h" +#include "ParameterLib/Parameter.h" namespace ProcessLib { @@ -56,14 +56,15 @@ void checkParametersOfDirichletBoundaryCondition( } void getEssentialBCValuesLocal( - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, std::vector<MeshLib::Node*> const& nodes_in_bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_boundary, int const variable_id, int const component_id, const double t, GlobalVector const& /*x*/, NumLib::IndexValueVector<GlobalIndexType>& bc_values) { - SpatialPosition pos; + ParameterLib::SpatialPosition pos; bc_values.ids.clear(); bc_values.values.clear(); diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.h b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.h index db69d1b76a40fcd8c842f20655d30b5b07fd0ab0..8de251719ce58e37d51229d155a0930cd14fb4b6 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.h +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionAuxiliaryFunctions.h @@ -33,11 +33,14 @@ template <typename> struct IndexValueVector; } -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; +} +namespace ProcessLib +{ void checkParametersOfDirichletBoundaryCondition( MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, @@ -45,7 +48,8 @@ void checkParametersOfDirichletBoundaryCondition( int const component_id); void getEssentialBCValuesLocal( - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, std::vector<MeshLib::Node*> const& nodes_in_bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_boundary, int const variable_id, int const component_id, const double t, diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.cpp b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.cpp index 2392094e8bc2da30cc36ec71b2104822584a2220..1631031eada59b4492bf7247d45eae7a46dc1191 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.cpp +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.cpp @@ -21,15 +21,16 @@ #include "NumLib/DOF/LocalToGlobalIndexMap.h" #include "NumLib/IndexValueVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/Utils.h" namespace ProcessLib { DirichletBoundaryConditionWithinTimeInterval:: DirichletBoundaryConditionWithinTimeInterval( std::unique_ptr<BaseLib::TimeInterval> time_interval, - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id) : _parameter(parameter), @@ -45,7 +46,8 @@ DirichletBoundaryConditionWithinTimeInterval:: DirichletBoundaryConditionWithinTimeInterval:: DirichletBoundaryConditionWithinTimeInterval( std::unique_ptr<BaseLib::TimeInterval> time_interval, - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, std::vector<MeshLib::Node*> const& nodes_in_bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id) @@ -95,7 +97,7 @@ createDirichletBoundaryConditionWithinTimeInterval( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters) + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters) { DBUG( "Constructing DirichletBoundaryConditionWithinTimeInterval from " @@ -108,7 +110,8 @@ createDirichletBoundaryConditionWithinTimeInterval( auto const param_name = config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", param_name.c_str()); - auto& param = findParameter<double>(param_name, parameters, 1); + auto& param = + ParameterLib::findParameter<double>(param_name, parameters, 1); // In case of partitioned mesh the boundary could be empty, i.e. there is no // boundary condition. diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h index f5e9c2a70f1cfefc6b68ae5620d4c34f8ce6b915..89a4cc61233c0c8acd60be7ed1f7e3da7d042756 100644 --- a/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h +++ b/ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h @@ -28,24 +28,29 @@ namespace MeshLib class Node; } -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; +} +namespace ProcessLib +{ class DirichletBoundaryConditionWithinTimeInterval final : public BoundaryCondition { public: DirichletBoundaryConditionWithinTimeInterval( std::unique_ptr<BaseLib::TimeInterval> time_interval, - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id); DirichletBoundaryConditionWithinTimeInterval( std::unique_ptr<BaseLib::TimeInterval> time_interval, - Parameter<double> const& parameter, MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& parameter, + MeshLib::Mesh const& bc_mesh, std::vector<MeshLib::Node*> const& nodes_in_bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id); @@ -55,7 +60,7 @@ public: NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override; private: - Parameter<double> const& _parameter; + ParameterLib::Parameter<double> const& _parameter; MeshLib::Mesh const& _bc_mesh; /// Some nodes in _bc_mesh @@ -75,6 +80,7 @@ createDirichletBoundaryConditionWithinTimeInterval( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, int const component_id, - const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters); + const std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp index a94d1f6588b788fa866e895fded3ff5413846df4..7f5d8b791941e7d8d765e826bedd33e14bbf2620 100644 --- a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp @@ -8,7 +8,7 @@ */ #include "NeumannBoundaryCondition.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" namespace ProcessLib { @@ -17,7 +17,7 @@ std::unique_ptr<NeumannBoundaryCondition> createNeumannBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Constructing Neumann BC from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} @@ -27,7 +27,8 @@ std::unique_ptr<NeumannBoundaryCondition> createNeumannBoundaryCondition( auto const param_name = config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", param_name.c_str()); - auto const& param = findParameter<double>(param_name, parameters, 1); + auto const& param = + ParameterLib::findParameter<double>(param_name, parameters, 1); // In case of partitioned mesh the boundary could be empty, i.e. there is no // boundary condition. diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.h b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.h index e9dd44035d2921d2f9c8ff96cd8ff55f31697146..3b67bd65e79125afda7dfdf3eb53e7fbf0542987 100644 --- a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.h @@ -9,20 +9,22 @@ #pragma once -#include "ProcessLib/Parameter/Parameter.h" #include "GenericNaturalBoundaryCondition.h" #include "NeumannBoundaryConditionLocalAssembler.h" +#include "ParameterLib/Parameter.h" namespace ProcessLib { -using NeumannBoundaryCondition = GenericNaturalBoundaryCondition< - Parameter<double> const&, NeumannBoundaryConditionLocalAssembler>; +using NeumannBoundaryCondition = + GenericNaturalBoundaryCondition<ParameterLib::Parameter<double> const&, + NeumannBoundaryConditionLocalAssembler>; std::unique_ptr<NeumannBoundaryCondition> createNeumannBoundaryCondition( BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh, NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h index 0f09c01d8a8d7d5be1a4ee471ef20da288defdfd..9296b1db422cc6ec61926127cc29a5d50856d309 100644 --- a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h @@ -12,7 +12,7 @@ #include "GenericNaturalBoundaryConditionLocalAssembler.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" namespace ProcessLib @@ -36,7 +36,7 @@ public: std::size_t const local_matrix_size, bool const is_axially_symmetric, unsigned const integration_order, - Parameter<double> const& neumann_bc_parameter) + ParameterLib::Parameter<double> const& neumann_bc_parameter) : Base(e, is_axially_symmetric, integration_order), _neumann_bc_parameter(neumann_bc_parameter), _local_rhs(local_matrix_size) @@ -73,7 +73,7 @@ public: } private: - Parameter<double> const& _neumann_bc_parameter; + ParameterLib::Parameter<double> const& _neumann_bc_parameter; NodalVectorType _local_rhs; public: diff --git a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h index 68faa079cc93c47cb2f039f122d67f9d4ce26c1d..d02bff937f6e9d65d9b08a59b1bcfcd13b6b3f5e 100644 --- a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h +++ b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition-impl.h @@ -13,8 +13,8 @@ #include <numeric> #include "MeshLib/MeshSearch/NodeSearch.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Utils/CreateLocalAssemblers.h" -#include "ProcessLib/Utils/ProcessUtils.h" #include "NormalTractionBoundaryConditionLocalAssembler.h" @@ -29,7 +29,8 @@ NormalTractionBoundaryCondition<LocalAssemblerImplementation>:: unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, unsigned const global_dim, - MeshLib::Mesh const& bc_mesh, Parameter<double> const& pressure) + MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& pressure) : _bc_mesh(bc_mesh), _integration_order(integration_order), _pressure(pressure) @@ -79,7 +80,7 @@ createNormalTractionBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Constructing NormalTractionBoundaryCondition from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} @@ -90,7 +91,8 @@ createNormalTractionBoundaryCondition( config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s", parameter_name.c_str()); - auto const& pressure = findParameter<double>(parameter_name, parameters, 1); + auto const& pressure = + ParameterLib::findParameter<double>(parameter_name, parameters, 1); return std::make_unique<NormalTractionBoundaryCondition< NormalTractionBoundaryConditionLocalAssembler>>( integration_order, shapefunction_order, dof_table, variable_id, diff --git a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition.h b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition.h index 9caeea9009dbc39ef61d8eb75b96cd1f48ce92ae..b13faa3dbffc2ea795c71a8c8d96970b93588791 100644 --- a/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/NormalTractionBoundaryCondition.h @@ -39,7 +39,8 @@ public: unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const& dof_table_bulk, int const variable_id, unsigned const global_dim, - MeshLib::Mesh const& bc_mesh, Parameter<double> const& pressure); + MeshLib::Mesh const& bc_mesh, + ParameterLib::Parameter<double> const& pressure); /// Calls local assemblers which calculate their contributions to the global /// matrix and the right-hand-side. @@ -67,7 +68,7 @@ private: std::unique_ptr<NormalTractionBoundaryConditionLocalAssemblerInterface>> _local_assemblers; - Parameter<double> const& _pressure; + ParameterLib::Parameter<double> const& _pressure; }; std::unique_ptr<NormalTractionBoundaryCondition< @@ -77,7 +78,8 @@ createNormalTractionBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace NormalTractionBoundaryCondition } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/NormalTractionBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/NormalTractionBoundaryConditionLocalAssembler.h index 368a45ef2e88a1f4ac8025411eb383f054109a61..b6365f249751d04dbdb0f6488e0edc0166379bfa 100644 --- a/ProcessLib/BoundaryCondition/NormalTractionBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/NormalTractionBoundaryConditionLocalAssembler.h @@ -13,7 +13,7 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "MeshLib/Elements/FaceRule.h" #include "NumLib/DOF/DOFTableUtil.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "GenericNaturalBoundaryConditionLocalAssembler.h" @@ -64,7 +64,7 @@ public: std::size_t const local_matrix_size, bool const is_axially_symmetric, unsigned const integration_order, - Parameter<double> const& pressure) + ParameterLib::Parameter<double> const& pressure) : _integration_method(integration_order), _pressure(pressure), _element(e) @@ -154,7 +154,7 @@ public: private: IntegrationMethod const _integration_method; - Parameter<double> const& _pressure; + ParameterLib::Parameter<double> const& _pressure; static const int displacement_size = ShapeFunctionDisplacement::NPOINTS * GlobalDim; diff --git a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp index 2de4055ed37c67e3ec5c12635018c217f088b1a3..8e2d1e336ef3d72ce4ffd81ddb8c26c587113c82 100644 --- a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp @@ -12,7 +12,6 @@ #include <algorithm> #include <logog/include/logog.hpp> #include <vector> -#include "ProcessLib/Utils/ProcessUtils.h" namespace ProcessLib { @@ -20,7 +19,7 @@ void PhaseFieldIrreversibleDamageOracleBoundaryCondition::getEssentialBCValues( const double /*t*/, GlobalVector const& /*x*/, NumLib::IndexValueVector<GlobalIndexType>& bc_values) const { - SpatialPosition pos; + ParameterLib::SpatialPosition pos; bc_values.ids.clear(); bc_values.values.clear(); diff --git a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.h b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.h index 47f0fd0c2f081b5df6b62bb68d9300ab352ca8c1..10fe3f2bd932ea55c2f5a1fdc96b74f50d43a4c5 100644 --- a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.h @@ -12,7 +12,7 @@ #include "BoundaryCondition.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" #include "NumLib/IndexValueVector.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace ProcessLib { diff --git a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp index 83764467e52dffd9adb14443ec14be7d0bdad9bf..6797cfb6fff1ee63d34623c4bf75f327c34e8625 100644 --- a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp @@ -14,7 +14,6 @@ #include "MeshLib/MeshSearch/NodeSearch.h" #include "ProcessLib/Utils/CreateLocalAssemblers.h" -#include "ProcessLib/Utils/ProcessUtils.h" #include "PythonBoundaryConditionLocalAssembler.h" namespace diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp index 3f7870f9dbd4cb6af58022b840d0ac0da75f37c0..8d2d0331e7fa3db8365110502eb9144291c8c3c4 100644 --- a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp @@ -8,7 +8,7 @@ */ #include "RobinBoundaryCondition.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" namespace ProcessLib { @@ -17,7 +17,7 @@ std::unique_ptr<RobinBoundaryCondition> createRobinBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Constructing RobinBcConfig from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} @@ -28,8 +28,10 @@ std::unique_ptr<RobinBoundaryCondition> createRobinBoundaryCondition( //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Robin__u_0} auto const u_0_name = config.getConfigParameter<std::string>("u_0"); - auto const& alpha = findParameter<double>(alpha_name, parameters, 1); - auto const& u_0 = findParameter<double>(u_0_name, parameters, 1); + auto const& alpha = + ParameterLib::findParameter<double>(alpha_name, parameters, 1); + auto const& u_0 = + ParameterLib::findParameter<double>(u_0_name, parameters, 1); // In case of partitioned mesh the boundary could be empty, i.e. there is no // boundary condition. diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.h b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.h index 30b8c941df7ddde65665e5b4a52c2e60109f459b..1f91cf1f497292c423bf86fb73e1ebe8824bd698 100644 --- a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.h @@ -34,6 +34,7 @@ std::unique_ptr<RobinBoundaryCondition> createRobinBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h index 434afb14b34402374a9f42c87d7d92cb350d0779..762f6470493cf6fbae3b85ef63bb9526640b0c36 100644 --- a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h @@ -9,15 +9,15 @@ #pragma once -#include "NumLib/DOF/DOFTableUtil.h" -#include "ProcessLib/Parameter/Parameter.h" #include "GenericNaturalBoundaryConditionLocalAssembler.h" +#include "NumLib/DOF/DOFTableUtil.h" +#include "ParameterLib/Parameter.h" namespace ProcessLib { struct RobinBoundaryConditionData final { - Parameter<double> const& alpha; - Parameter<double> const& u_0; + ParameterLib::Parameter<double> const& alpha; + ParameterLib::Parameter<double> const& u_0; }; template <typename ShapeFunction, typename IntegrationMethod, diff --git a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.cpp index 36f30cd6753d1f4b4eb6fdeb092b11cd4dacbf9c..58ca3b6e1859cca4cfeb3b128d7c5a977f7407f9 100644 --- a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.cpp +++ b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.cpp @@ -9,7 +9,7 @@ #include "VariableDependentNeumannBoundaryCondition.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" namespace ProcessLib { @@ -19,7 +19,7 @@ createVariableDependentNeumannBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Constructing VariableDependentNeumann BC from config."); //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type} @@ -35,28 +35,32 @@ createVariableDependentNeumannBoundaryCondition( auto const constant_name = //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__VariableDependentNeumann__constant_name} config.getConfigParameter<std::string>("constant_name"); - auto const& constant = findParameter<double>(constant_name, parameters, 1); + auto const& constant = + ParameterLib::findParameter<double>(constant_name, parameters, 1); auto const coefficient_current_variable_name = //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__VariableDependentNeumann__coefficient_current_variable_name} config.getConfigParameter<std::string>( "coefficient_current_variable_name"); auto const& coefficient_current_variable = - findParameter<double>(coefficient_current_variable_name, parameters, 1); + ParameterLib::findParameter<double>(coefficient_current_variable_name, + parameters, 1); auto const coefficient_other_variable_name = //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__VariableDependentNeumann__coefficient_other_variable_name} config.getConfigParameter<std::string>( "coefficient_other_variable_name"); auto const& coefficient_other_variable = - findParameter<double>(coefficient_other_variable_name, parameters, 1); + ParameterLib::findParameter<double>(coefficient_other_variable_name, + parameters, 1); auto const coefficient_mixed_variables_name = //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__VariableDependentNeumann__coefficient_mixed_variables_name} config.getConfigParameter<std::string>( "coefficient_mixed_variables_name"); auto const& coefficient_mixed_variables = - findParameter<double>(coefficient_mixed_variables_name, parameters, 1); + ParameterLib::findParameter<double>(coefficient_mixed_variables_name, + parameters, 1); std::vector<MeshLib::Node*> const& bc_nodes = bc_mesh.getNodes(); MeshLib::MeshSubset bc_mesh_subset(bc_mesh, bc_nodes); diff --git a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.h b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.h index 82f1170ff5c824b5cad03e4ddfcabb119c3e8e42..0b3606cfcba0cf1cb27a97862e542b7694def3e0 100644 --- a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryCondition.h @@ -26,6 +26,7 @@ createVariableDependentNeumannBoundaryCondition( NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h index b5e0b0112f1c4c736d1796e82f0e301e1e46cc16..471c2974b50eeb9ec9e1cfff5bce43318163394c 100644 --- a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h @@ -12,7 +12,7 @@ #include "MeshLib/PropertyVector.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Function/Interpolation.h" -#include "ProcessLib/Parameter/MeshNodeParameter.h" +#include "ParameterLib/MeshNodeParameter.h" #include "GenericNaturalBoundaryConditionLocalAssembler.h" @@ -20,10 +20,10 @@ namespace ProcessLib { struct VariableDependentNeumannBoundaryConditionData { - Parameter<double> const& constant; - Parameter<double> const& coefficient_current_variable; - Parameter<double> const& coefficient_other_variable; - Parameter<double> const& coefficient_mixed_variables; + ParameterLib::Parameter<double> const& constant; + ParameterLib::Parameter<double> const& coefficient_current_variable; + ParameterLib::Parameter<double> const& coefficient_other_variable; + ParameterLib::Parameter<double> const& coefficient_mixed_variables; // Used for mapping boundary nodes to bulk nodes. NumLib::LocalToGlobalIndexMap const& dof_table_boundary_other_variable; }; diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt index 162ba4aacc5185ee79e8b4ad4f3c706984316932..eaae9cbab5f7ad8657a8ff2cbc638f2a2a2c712e 100644 --- a/ProcessLib/CMakeLists.txt +++ b/ProcessLib/CMakeLists.txt @@ -15,7 +15,6 @@ APPEND_SOURCE_FILES(SOURCES) APPEND_SOURCE_FILES(SOURCES BoundaryCondition) APPEND_SOURCE_FILES(SOURCES SurfaceFlux) APPEND_SOURCE_FILES(SOURCES Output) -APPEND_SOURCE_FILES(SOURCES Parameter) APPEND_SOURCE_FILES(SOURCES SourceTerms) APPEND_SOURCE_FILES(SOURCES Utils) @@ -25,7 +24,16 @@ if(BUILD_SHARED_LIBS) endif() target_link_libraries(ProcessLib - PUBLIC BaseLib MaterialLib MathLib MeshLib NumLib logog MeshGeoToolsLib + PUBLIC + BaseLib + MaterialLib + MathLib + MeshGeoToolsLib + MeshLib + NumLib + logog + PRIVATE + ParameterLib ) if(OGS_USE_PYTHON) diff --git a/ProcessLib/ComponentTransport/CMakeLists.txt b/ProcessLib/ComponentTransport/CMakeLists.txt index 0b90efa851b2a1bfa9101674341b65f3d6012e0c..15a0a6a3c54b221d2da26472c72344de90303e29 100644 --- a/ProcessLib/ComponentTransport/CMakeLists.txt +++ b/ProcessLib/ComponentTransport/CMakeLists.txt @@ -7,6 +7,7 @@ endif() target_link_libraries(ComponentTransport PUBLIC ProcessLib + PRIVATE ParameterLib ) include(Tests.cmake) diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h index 5a6939ed1908905d834233c317d03dad58241fb9..8f150157ca44c45dba5cfc63adad990cafb1244b 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h +++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h @@ -23,9 +23,9 @@ #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" #include "NumLib/Function/Interpolation.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/CoupledSolutionsForStaggeredScheme.h" #include "ProcessLib/LocalAssemblerInterface.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/ProcessVariable.h" #include "ProcessLib/Utils/InitShapeMatrices.h" @@ -228,7 +228,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const& b = _process_data.specific_body_force; @@ -418,7 +418,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const& b = _process_data.specific_body_force; @@ -519,7 +519,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const& b = _process_data.specific_body_force; @@ -700,7 +700,7 @@ public: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( cache, GlobalDim, n_integration_points); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); MaterialLib::Fluid::FluidProperty::ArrayType vars; @@ -802,7 +802,7 @@ public: return shape_matrices; }(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); MaterialLib::Fluid::FluidProperty::ArrayType vars; diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp index 40aa75f8e6dd3d693f9cfdaeb6d4f743abb0659f..3e77b63db2ba1c334af7bb45ecda3cfc4e135d25 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp @@ -22,7 +22,7 @@ namespace ComponentTransport ComponentTransportProcess::ComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.h b/ProcessLib/ComponentTransport/ComponentTransportProcess.h index 04b1a141a403692ac775813935f48ac0cd44c090..4e02bfa0efd190ea02711c0dc2196c2ec2b500ab 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.h +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.h @@ -92,7 +92,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h index 4ca9c3bf8e3d1bb86d82f2fc6fb73dc91dfe35f0..33c12649f735a42e41666e79ea40e90a6d1b07ee 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h +++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h @@ -34,13 +34,13 @@ struct ComponentTransportProcessData ComponentTransportProcessData( MaterialLib::PorousMedium::PorousMediaProperties&& porous_media_properties_, - ProcessLib::Parameter<double> const& fluid_reference_density_, + ParameterLib::Parameter<double> const& fluid_reference_density_, std::unique_ptr<MaterialLib::Fluid::FluidProperties>&& fluid_properties_, std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&& media_map_, - ProcessLib::Parameter<double> const& retardation_factor_, - ProcessLib::Parameter<double> const& decay_rate_, + ParameterLib::Parameter<double> const& retardation_factor_, + ParameterLib::Parameter<double> const& decay_rate_, Eigen::VectorXd const& specific_body_force_, bool const has_gravity_) : porous_media_properties(std::move(porous_media_properties_)), @@ -67,12 +67,12 @@ struct ComponentTransportProcessData void operator=(ComponentTransportProcessData&&) = delete; MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties; - Parameter<double> const& fluid_reference_density; + ParameterLib::Parameter<double> const& fluid_reference_density; std::unique_ptr<MaterialLib::Fluid::FluidProperties> fluid_properties; std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> media_map; - Parameter<double> const& retardation_factor; - Parameter<double> const& decay_rate; + ParameterLib::Parameter<double> const& retardation_factor; + ParameterLib::Parameter<double> const& decay_rate; Eigen::VectorXd const specific_body_force; bool const has_gravity; }; diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp index 640fb0cd63127cfec1cc0692ec7debf9e4e1c970..c919fe849a2ffd26d24d450116e69d343252b95b 100644 --- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp @@ -12,12 +12,11 @@ #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MaterialLib/PorousMedium/CreatePorousMediaProperties.h" - #include "MeshLib/IO/readMeshFromFile.h" - -#include "ProcessLib/SurfaceFlux/SurfaceFluxData.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" +#include "ProcessLib/SurfaceFlux/SurfaceFluxData.h" #include "ProcessLib/Utils/ProcessUtils.h" #include "ComponentTransportProcess.h" @@ -30,7 +29,7 @@ std::unique_ptr<Process> createComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, @@ -110,7 +109,7 @@ std::unique_ptr<Process> createComponentTransportProcess( MaterialLib::Fluid::createFluidProperties(fluid_config); // Parameter for the density of the fluid. - auto& fluid_reference_density= findParameter<double>( + auto& fluid_reference_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__ComponentTransport__fluid_reference_density} "fluid_reference_density", parameters, 1); @@ -118,14 +117,14 @@ std::unique_ptr<Process> createComponentTransportProcess( fluid_reference_density.name.c_str()); // Parameter for the retardation factor. - auto const& retardation_factor = - findParameter<double>(config, + auto const& retardation_factor = ParameterLib::findParameter<double>( + config, //! \ogs_file_param_special{prj__processes__process__ComponentTransport__retardation_factor} "retardation_factor", parameters, 1); // Parameter for the decay rate. - auto const& decay_rate = - findParameter<double>(config, + auto const& decay_rate = ParameterLib::findParameter<double>( + config, //! \ogs_file_param_special{prj__processes__process__ComponentTransport__decay_rate} "decay_rate", parameters, 1); diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h index beb66dd3180dabd51de7c67001bcf4cfd51a1d23..7f85498bdfbeb831716efa37b37107b045a58f2e 100644 --- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h +++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.h @@ -25,7 +25,7 @@ std::unique_ptr<Process> createComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, diff --git a/ProcessLib/GroundwaterFlow/CMakeLists.txt b/ProcessLib/GroundwaterFlow/CMakeLists.txt index b60fc65b178c3b2b4b210a034cfdfbc41415e9a3..c2aa630efeb6d20e878a5497ba0f7f526d104e43 100644 --- a/ProcessLib/GroundwaterFlow/CMakeLists.txt +++ b/ProcessLib/GroundwaterFlow/CMakeLists.txt @@ -7,6 +7,7 @@ endif() target_link_libraries(GroundwaterFlow PUBLIC ProcessLib + PRIVATE ParameterLib ) include(Tests.cmake) diff --git a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp index f5aa21684d70d54d82dddf3f20d80506203b352e..772e003eb281dedcab53dd94ce65b87a38e834e7 100644 --- a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp +++ b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp @@ -12,11 +12,11 @@ #include "BaseLib/FileTools.h" #include "GroundwaterFlowProcess.h" #include "GroundwaterFlowProcessData.h" +#include "MeshLib/IO/readMeshFromFile.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" -#include "MeshLib/IO/readMeshFromFile.h" - namespace ProcessLib { namespace GroundwaterFlow @@ -25,7 +25,7 @@ std::unique_ptr<Process> createGroundwaterFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, @@ -50,7 +50,7 @@ std::unique_ptr<Process> createGroundwaterFlowProcess( process_variables.push_back(std::move(per_process_variables)); // Hydraulic conductivity parameter. - auto& hydraulic_conductivity = findParameter<double>( + auto& hydraulic_conductivity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__GROUNDWATER_FLOW__hydraulic_conductivity} "hydraulic_conductivity", parameters, 0 /*arbitrary many components*/); diff --git a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.h index 2398e105a8fe284964ddf3e65006148ff86973ec..009fc80362712b4cefdc04b6ddc2bae59145d5ed 100644 --- a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.h +++ b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.h @@ -21,7 +21,7 @@ std::unique_ptr<Process> createGroundwaterFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h b/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h index 2bc3727aee66a3b1ec96329c354e4536b5537332..c4be98e8eacbe3ef909294170144b6c07e9b0149 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h @@ -17,9 +17,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" namespace ProcessLib @@ -115,7 +115,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -153,7 +153,7 @@ public: GlobalDim, false); // fetch hydraulic conductivity - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const k = _process_data.hydraulic_conductivity(t, pos)[0]; @@ -195,7 +195,7 @@ public: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( cache, GlobalDim, n_integration_points); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); for (unsigned i = 0; i < n_integration_points; ++i) diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp index 8af6f1f5f9b16ebfcfc2e162ec27ba8c1b34aaf2..e25befb3081b458a75f959d0bb23250ca32472c3 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp @@ -20,7 +20,7 @@ namespace GroundwaterFlow GroundwaterFlowProcess::GroundwaterFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h index ff879376800bf3723bec4f3405e9c954679132e0..c25f2dba7c6a0368d28cfb258fa44ef1a329447b 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h @@ -29,7 +29,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcessData.h b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcessData.h index a6280ac7d7863a06d7fdad183fc403c314876808..37d4e339b8eab0722ba7ab012a779036efaef6a0 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcessData.h +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcessData.h @@ -21,7 +21,7 @@ namespace GroundwaterFlow struct GroundwaterFlowProcessData { GroundwaterFlowProcessData( - Parameter<double> const& hydraulic_conductivity_) + ParameterLib::Parameter<double> const& hydraulic_conductivity_) : hydraulic_conductivity(hydraulic_conductivity_) {} @@ -38,7 +38,7 @@ struct GroundwaterFlowProcessData //! Assignments are not needed. void operator=(GroundwaterFlowProcessData&&) = delete; - Parameter<double> const& hydraulic_conductivity; + ParameterLib::Parameter<double> const& hydraulic_conductivity; }; } // namespace GroundwaterFlow diff --git a/ProcessLib/HT/CMakeLists.txt b/ProcessLib/HT/CMakeLists.txt index 0adfff1a8c7d0074814fcb0a09c0f5672fc37be7..1cf1581847e218a58452bd21cf1f249545c069a4 100644 --- a/ProcessLib/HT/CMakeLists.txt +++ b/ProcessLib/HT/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(HT ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS HT LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(HT PUBLIC ProcessLib) +target_link_libraries(HT + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index ca665c136bea98c4cd6982489c60c1d229f6c7f4..24023603476b7dca5bcccddd07ec9ebb42d159c4 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -11,13 +11,12 @@ #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" #include "MaterialLib/PorousMedium/CreatePorousMediaProperties.h" - #include "MeshLib/IO/readMeshFromFile.h" - +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" -#include "ProcessLib/Utils/ProcessUtils.h" #include "ProcessLib/SurfaceFlux/SurfaceFluxData.h" +#include "ProcessLib/Utils/ProcessUtils.h" #include "HTProcess.h" #include "HTMaterialProperties.h" @@ -31,7 +30,7 @@ std::unique_ptr<Process> createHTProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, @@ -90,14 +89,14 @@ std::unique_ptr<Process> createHTProcess( MaterialLib::Fluid::createFluidProperties(fluid_config); // Parameter for the density of the solid. - auto& density_solid = findParameter<double>( + auto& density_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HT__density_solid} "density_solid", parameters, 1); DBUG("Use '%s' as density_solid parameter.", density_solid.name.c_str()); // Parameter for the specific heat capacity of the solid. - auto& specific_heat_capacity_solid = findParameter<double>( + auto& specific_heat_capacity_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HT__specific_heat_capacity_solid} "specific_heat_capacity_solid", parameters, 1); @@ -107,14 +106,16 @@ std::unique_ptr<Process> createHTProcess( // Parameter for the thermal conductivity of the solid (only one scalar per // element, i.e., the isotropic case is handled at the moment) - ConstantParameter<double> default_thermal_dispersivity_longitudinal( - "default thermal dispersivity longitudinal", 0.); - ConstantParameter<double> default_thermal_dispersivity_transversal( - "default thermal dispersivity transversal", 0.); + ParameterLib::ConstantParameter<double> + default_thermal_dispersivity_longitudinal( + "default thermal dispersivity longitudinal", 0.); + ParameterLib::ConstantParameter<double> + default_thermal_dispersivity_transversal( + "default thermal dispersivity transversal", 0.); - Parameter<double>* thermal_dispersivity_longitudinal = + ParameterLib::Parameter<double>* thermal_dispersivity_longitudinal = &default_thermal_dispersivity_longitudinal; - Parameter<double>* thermal_dispersivity_transversal = + ParameterLib::Parameter<double>* thermal_dispersivity_transversal = &default_thermal_dispersivity_transversal; auto const dispersion_config = //! \ogs_file_param{prj__processes__process__HT__thermal_dispersivity} @@ -123,7 +124,8 @@ std::unique_ptr<Process> createHTProcess( static_cast<bool>(dispersion_config); if (dispersion_config) { - thermal_dispersivity_longitudinal = &findParameter<double>( + thermal_dispersivity_longitudinal = &ParameterLib::findParameter< + double>( *dispersion_config, //! \ogs_file_param_special{prj__processes__process__HT__thermal_dispersivity__longitudinal} "longitudinal", parameters, 1); @@ -133,7 +135,7 @@ std::unique_ptr<Process> createHTProcess( // Parameter for the thermal conductivity of the solid (only one scalar // per // element, i.e., the isotropic case is handled at the moment) - thermal_dispersivity_transversal = &findParameter<double>( + thermal_dispersivity_transversal = &ParameterLib::findParameter<double>( *dispersion_config, //! \ogs_file_param_special{prj__processes__process__HT__thermal_dispersivity__transversal} "transversal", parameters, 1); @@ -143,7 +145,7 @@ std::unique_ptr<Process> createHTProcess( // Parameter for the thermal conductivity of the solid (only one scalar per // element, i.e., the isotropic case is handled at the moment) - auto& thermal_conductivity_solid = findParameter<double>( + auto& thermal_conductivity_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HT__thermal_conductivity_solid} "thermal_conductivity_solid", parameters, 1); @@ -151,7 +153,7 @@ std::unique_ptr<Process> createHTProcess( thermal_conductivity_solid.name.c_str()); // Parameter for the thermal conductivity of the fluid. - auto& thermal_conductivity_fluid = findParameter<double>( + auto& thermal_conductivity_fluid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HT__thermal_conductivity_fluid} "thermal_conductivity_fluid", parameters, 1); @@ -178,13 +180,13 @@ std::unique_ptr<Process> createHTProcess( std::copy_n(b.data(), b.size(), specific_body_force.data()); } - ConstantParameter<double> default_solid_thermal_expansion( + ParameterLib::ConstantParameter<double> default_solid_thermal_expansion( "default solid thermal expansion", 0.); - ConstantParameter<double> default_biot_constant("default_biot constant", - 0.); - Parameter<double>* solid_thermal_expansion = + ParameterLib::ConstantParameter<double> default_biot_constant( + "default_biot constant", 0.); + ParameterLib::Parameter<double>* solid_thermal_expansion = &default_solid_thermal_expansion; - Parameter<double>* biot_constant = &default_biot_constant; + ParameterLib::Parameter<double>* biot_constant = &default_biot_constant; auto const solid_config = //! \ogs_file_param{prj__processes__process__HT__solid_thermal_expansion} @@ -192,12 +194,12 @@ std::unique_ptr<Process> createHTProcess( const bool has_fluid_thermal_expansion = static_cast<bool>(solid_config); if (solid_config) { - solid_thermal_expansion = &findParameter<double>( + solid_thermal_expansion = &ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__HT__solid_thermal_expansion__thermal_expansion} *solid_config, "thermal_expansion", parameters, 1); DBUG("Use '%s' as solid thermal expansion.", solid_thermal_expansion->name.c_str()); - biot_constant = &findParameter<double>( + biot_constant = &ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__HT__solid_thermal_expansion__biot_constant} *solid_config, "biot_constant", parameters, 1); DBUG("Use '%s' as Biot's constant.", biot_constant->name.c_str()); diff --git a/ProcessLib/HT/CreateHTProcess.h b/ProcessLib/HT/CreateHTProcess.h index 8d711cf0b5e428bce82adc77bd0b58181428bd6c..2e3e78644e1bef2bbba9e36273f1341e178c95a5 100644 --- a/ProcessLib/HT/CreateHTProcess.h +++ b/ProcessLib/HT/CreateHTProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createHTProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, diff --git a/ProcessLib/HT/HTFEM.h b/ProcessLib/HT/HTFEM.h index 2ac9e6274e57aca51e23ae3b24afd0314592f5d1..bf6372035e13d6e153d59a76095f3371412afa09 100644 --- a/ProcessLib/HT/HTFEM.h +++ b/ProcessLib/HT/HTFEM.h @@ -18,7 +18,7 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "HTLocalAssemblerInterface.h" @@ -111,7 +111,7 @@ public: GlobalDim, false); // fetch permeability, viscosity, density - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); MaterialLib::Fluid::FluidProperty::ArrayType vars; @@ -164,7 +164,8 @@ protected: IntegrationPointData<NodalRowVectorType, GlobalDimNodalMatrixType>>> _ip_data; - double getHeatEnergyCoefficient(const double t, const SpatialPosition& pos, + double getHeatEnergyCoefficient(const double t, + const ParameterLib::SpatialPosition& pos, const double porosity, const double fluid_density, const double specific_heat_capacity_fluid) @@ -179,8 +180,9 @@ protected: } GlobalDimMatrixType getThermalConductivityDispersivity( - const double t, const SpatialPosition& pos, const double porosity, - const double fluid_density, const double specific_heat_capacity_fluid, + const double t, const ParameterLib::SpatialPosition& pos, + const double porosity, const double fluid_density, + const double specific_heat_capacity_fluid, const GlobalDimVectorType& velocity, const GlobalDimMatrixType& I) { auto const thermal_conductivity_solid = @@ -229,7 +231,7 @@ protected: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( cache, GlobalDim, n_integration_points); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); MaterialLib::Fluid::FluidProperty::ArrayType vars; diff --git a/ProcessLib/HT/HTMaterialProperties.h b/ProcessLib/HT/HTMaterialProperties.h index 94a251167e8107ca226de0d7074adb4f0a21add4..a80663c2489c116651b95a8b4cfdcde50de0985b 100644 --- a/ProcessLib/HT/HTMaterialProperties.h +++ b/ProcessLib/HT/HTMaterialProperties.h @@ -27,18 +27,20 @@ struct HTMaterialProperties HTMaterialProperties( MaterialLib::PorousMedium::PorousMediaProperties&& porous_media_properties_, - ProcessLib::Parameter<double> const& density_solid_, + ParameterLib::Parameter<double> const& density_solid_, std::unique_ptr<MaterialLib::Fluid::FluidProperties>&& fluid_properties_, bool const has_fluid_thermal_dispersivity_, - ProcessLib::Parameter<double> const& thermal_dispersivity_longitudinal_, - ProcessLib::Parameter<double> const& thermal_dispersivity_transversal_, - ProcessLib::Parameter<double> const& specific_heat_capacity_solid_, - ProcessLib::Parameter<double> const& thermal_conductivity_solid_, - ProcessLib::Parameter<double> const& thermal_conductivity_fluid_, + ParameterLib::Parameter<double> const& + thermal_dispersivity_longitudinal_, + ParameterLib::Parameter<double> const& + thermal_dispersivity_transversal_, + ParameterLib::Parameter<double> const& specific_heat_capacity_solid_, + ParameterLib::Parameter<double> const& thermal_conductivity_solid_, + ParameterLib::Parameter<double> const& thermal_conductivity_fluid_, bool const has_fluid_thermal_expansion_, - Parameter<double> const& solid_thermal_expansion_, - Parameter<double> const& biot_constant_, + ParameterLib::Parameter<double> const& solid_thermal_expansion_, + ParameterLib::Parameter<double> const& biot_constant_, Eigen::VectorXd specific_body_force_, bool const has_gravity_) : porous_media_properties(std::move(porous_media_properties_)), @@ -59,18 +61,18 @@ struct HTMaterialProperties } MaterialLib::PorousMedium::PorousMediaProperties porous_media_properties; - Parameter<double> const& density_solid; + ParameterLib::Parameter<double> const& density_solid; std::unique_ptr<MaterialLib::Fluid::FluidProperties> fluid_properties; - Parameter<double> const& specific_heat_capacity_solid; + ParameterLib::Parameter<double> const& specific_heat_capacity_solid; bool const has_fluid_thermal_dispersivity; - Parameter<double> const& thermal_dispersivity_longitudinal; - Parameter<double> const& thermal_dispersivity_transversal; - Parameter<double> const& thermal_conductivity_solid; - Parameter<double> const& thermal_conductivity_fluid; + ParameterLib::Parameter<double> const& thermal_dispersivity_longitudinal; + ParameterLib::Parameter<double> const& thermal_dispersivity_transversal; + ParameterLib::Parameter<double> const& thermal_conductivity_solid; + ParameterLib::Parameter<double> const& thermal_conductivity_fluid; bool const has_fluid_thermal_expansion; - Parameter<double> const& solid_thermal_expansion; - Parameter<double> const& biot_constant; + ParameterLib::Parameter<double> const& solid_thermal_expansion; + ParameterLib::Parameter<double> const& biot_constant; Eigen::VectorXd const specific_body_force; bool const has_gravity; diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp index d19f57f597b89dcecb5c982326f7f2fc589d7293..300725dd1fc51499c54dd52ec1ecc7a5ef6bef3a 100644 --- a/ProcessLib/HT/HTProcess.cpp +++ b/ProcessLib/HT/HTProcess.cpp @@ -27,7 +27,7 @@ namespace HT HTProcess::HTProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HT/HTProcess.h b/ProcessLib/HT/HTProcess.h index a955d35d4ae8402d0a6075ac83cbd94249e6edbb..d5f03eb344ea6bc2d06e0af9ecc5ea0fd394f537 100644 --- a/ProcessLib/HT/HTProcess.h +++ b/ProcessLib/HT/HTProcess.h @@ -53,7 +53,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HT/MonolithicHTFEM.h b/ProcessLib/HT/MonolithicHTFEM.h index a9a7e20bf6d1c66c2deb7e293d8290d1d2ae5b85..31986d6cae17374974329e2699f5fa55c8c8960a 100644 --- a/ProcessLib/HT/MonolithicHTFEM.h +++ b/ProcessLib/HT/MonolithicHTFEM.h @@ -19,7 +19,7 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "HTFEM.h" @@ -90,7 +90,7 @@ public: local_M.template block<num_nodes, num_nodes>(num_nodes, num_nodes); auto Bp = local_b.template block<num_nodes, 1>(num_nodes, 0); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); auto p_nodal_values = diff --git a/ProcessLib/HT/StaggeredHTFEM-impl.h b/ProcessLib/HT/StaggeredHTFEM-impl.h index 0308f8608bc07d9c7bda5d103c2e6d75c2e74310..8f1b0b798a69385b431daeab3ce3a8fbebdcb1ed 100644 --- a/ProcessLib/HT/StaggeredHTFEM-impl.h +++ b/ProcessLib/HT/StaggeredHTFEM-impl.h @@ -66,7 +66,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: auto local_b = MathLib::createZeroedVector<LocalVectorType>( local_b_data, local_matrix_size); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); auto const& material_properties = this->_material_properties; @@ -193,7 +193,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: auto local_K = MathLib::createZeroedMatrix<LocalMatrixType>( local_K_data, local_matrix_size, local_matrix_size); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); auto const& material_properties = this->_material_properties; diff --git a/ProcessLib/HT/StaggeredHTFEM.h b/ProcessLib/HT/StaggeredHTFEM.h index e451c77a1caed592aadfa294a7648a9616c4f7f2..8a8c5e47baec5111d7c5922e524d1e304e4cea85 100644 --- a/ProcessLib/HT/StaggeredHTFEM.h +++ b/ProcessLib/HT/StaggeredHTFEM.h @@ -18,7 +18,7 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "HTFEM.h" diff --git a/ProcessLib/HeatConduction/CMakeLists.txt b/ProcessLib/HeatConduction/CMakeLists.txt index d254ac48d5593c99de3c32811d2f3b825781d51e..5b1b842b98b83b0b5960dcc78ea090f9a6a5837c 100644 --- a/ProcessLib/HeatConduction/CMakeLists.txt +++ b/ProcessLib/HeatConduction/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(HeatConduction ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS HeatConduction LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(HeatConduction PUBLIC ProcessLib) +target_link_libraries(HeatConduction + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp index 563d50afc0d83d623991eec455868c8ebee41583..69b0f8c5ec37408d701ffe45ad6a33dec10c7267 100644 --- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp @@ -11,6 +11,7 @@ #include "HeatConductionProcess.h" #include "HeatConductionProcessData.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -22,7 +23,7 @@ std::unique_ptr<Process> createHeatConductionProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -45,7 +46,7 @@ std::unique_ptr<Process> createHeatConductionProcess( process_variables.push_back(std::move(per_process_variables)); // thermal conductivity parameter. - auto& thermal_conductivity = findParameter<double>( + auto& thermal_conductivity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__thermal_conductivity} "thermal_conductivity", parameters, 1); @@ -54,7 +55,7 @@ std::unique_ptr<Process> createHeatConductionProcess( thermal_conductivity.name.c_str()); // heat capacity parameter. - auto& heat_capacity = findParameter<double>( + auto& heat_capacity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__heat_capacity} "heat_capacity", parameters, 1); @@ -62,7 +63,7 @@ std::unique_ptr<Process> createHeatConductionProcess( DBUG("Use '%s' as heat capacity parameter.", heat_capacity.name.c_str()); // density parameter. - auto& density = findParameter<double>( + auto& density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__density} "density", parameters, 1); diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.h b/ProcessLib/HeatConduction/CreateHeatConductionProcess.h index 594629f216eb1d12696b3a33a9552e1d872d4d00..5c9481568bccc305fb9925ad28b8c5bbe13ef1fd 100644 --- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.h +++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createHeatConductionProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h index 33142679aa48c6c19fcd6c4339d07750fee709d6..bee07d3f3118196acc3d5ffe8464c0a0662e54b7 100644 --- a/ProcessLib/HeatConduction/HeatConductionFEM.h +++ b/ProcessLib/HeatConduction/HeatConductionFEM.h @@ -16,9 +16,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" namespace ProcessLib @@ -107,7 +107,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -138,7 +138,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const auto local_x_vec = MathLib::toVector<NodalVectorType>(local_x, local_matrix_size); diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp index a60192b80abf0981c038d1c06a1142012e43dd29..2e0f2c37fb1a577798bd99906b888b61c732c099 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp @@ -20,7 +20,7 @@ namespace HeatConduction HeatConductionProcess::HeatConductionProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.h b/ProcessLib/HeatConduction/HeatConductionProcess.h index 4e204abf0c3c46401b16c8c09c85d5c795f225ec..b073add6204e33101738604c785a43534c5972fe 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.h +++ b/ProcessLib/HeatConduction/HeatConductionProcess.h @@ -25,7 +25,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HeatConduction/HeatConductionProcessData.h b/ProcessLib/HeatConduction/HeatConductionProcessData.h index 288e0e3cbfee207fdad7f8a87a492f9b0e84292f..e1d641d457060ef57c6b5480646379ff0f108f9d 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcessData.h +++ b/ProcessLib/HeatConduction/HeatConductionProcessData.h @@ -9,19 +9,20 @@ #pragma once -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; +} -namespace HeatConduction +namespace ProcessLib::HeatConduction { - struct HeatConductionProcessData { - HeatConductionProcessData(Parameter<double> const& thermal_conductivity_, - Parameter<double> const& heat_capacity_, - Parameter<double> const& density_) + HeatConductionProcessData( + ParameterLib::Parameter<double> const& thermal_conductivity_, + ParameterLib::Parameter<double> const& heat_capacity_, + ParameterLib::Parameter<double> const& density_) : thermal_conductivity(thermal_conductivity_), heat_capacity(heat_capacity_), density(density_) @@ -44,10 +45,8 @@ struct HeatConductionProcessData //! Assignments are not needed. void operator=(HeatConductionProcessData&&) = delete; - Parameter<double> const& thermal_conductivity; - Parameter<double> const& heat_capacity; - Parameter<double> const& density; + ParameterLib::Parameter<double> const& thermal_conductivity; + ParameterLib::Parameter<double> const& heat_capacity; + ParameterLib::Parameter<double> const& density; }; - -} // namespace HeatConduction -} // namespace ProcessLib +} // namespace ProcessLib::HeatConduction diff --git a/ProcessLib/HeatTransportBHE/CMakeLists.txt b/ProcessLib/HeatTransportBHE/CMakeLists.txt index df2b08f43964b5c5535834342543fd056eea6333..76f61d448c91b312dccc5c228465d434d5938611 100644 --- a/ProcessLib/HeatTransportBHE/CMakeLists.txt +++ b/ProcessLib/HeatTransportBHE/CMakeLists.txt @@ -3,9 +3,12 @@ APPEND_SOURCE_FILES(SOURCES BHE) APPEND_SOURCE_FILES(SOURCES LocalAssemblers) add_library(HeatTransportBHE ${SOURCES}) -target_link_libraries(HeatTransportBHE PUBLIC ProcessLib) if(BUILD_SHARED_LIBS) install(TARGETS HeatTransportBHE LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() +target_link_libraries(HeatTransportBHE + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp index 2028bcbe9dc18c78db25901990c82b4418dc105d..2af6e6ab19758c8fbb84b6181440f1e40915d2c0 100644 --- a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp +++ b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp @@ -11,8 +11,8 @@ #include <vector> +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Utils/ProcessUtils.h" #include "BHE/BHETypes.h" #include "BHE/CreateBHE1U.h" @@ -28,7 +28,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, @@ -87,7 +87,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( // BHE---------------------------------------------------------- // solid phase thermal conductivity parameter. - auto& thermal_conductivity_solid = findParameter<double>( + auto& thermal_conductivity_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__thermal_conductivity_solid} "thermal_conductivity_solid", parameters, 1); @@ -96,7 +96,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( thermal_conductivity_solid.name.c_str()); // solid phase thermal conductivity parameter. - auto& thermal_conductivity_fluid = findParameter<double>( + auto& thermal_conductivity_fluid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__thermal_conductivity_fluid} "thermal_conductivity_fluid", parameters, 1); @@ -105,7 +105,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( thermal_conductivity_fluid.name.c_str()); // gas phase thermal conductivity parameter. - auto& thermal_conductivity_gas = findParameter<double>( + auto& thermal_conductivity_gas = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__thermal_conductivity_gas} "thermal_conductivity_gas", parameters, 1); @@ -114,7 +114,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( thermal_conductivity_gas.name.c_str()); // solid phase heat capacity parameter. - auto& heat_capacity_solid = findParameter<double>( + auto& heat_capacity_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__heat_capacity_solid} "heat_capacity_solid", parameters, 1); @@ -123,7 +123,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( heat_capacity_solid.name.c_str()); // fluid phase heat capacity parameter. - auto& heat_capacity_fluid = findParameter<double>( + auto& heat_capacity_fluid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__heat_capacity_fluid} "heat_capacity_fluid", parameters, 1); @@ -132,7 +132,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( heat_capacity_fluid.name.c_str()); // gas phase heat capacity parameter. - auto& heat_capacity_gas = findParameter<double>( + auto& heat_capacity_gas = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__heat_capacity_gas} "heat_capacity_gas", parameters, 1); @@ -141,7 +141,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( heat_capacity_gas.name.c_str()); // solid phase density parameter. - auto& density_solid = findParameter<double>( + auto& density_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__density_solid} "density_solid", parameters, 1); @@ -150,7 +150,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( density_solid.name.c_str()); // fluid phase density parameter. - auto& density_fluid = findParameter<double>( + auto& density_fluid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__density_fluid} "density_fluid", parameters, 1); @@ -159,7 +159,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( density_fluid.name.c_str()); // gas phase density parameter. - auto& density_gas = findParameter<double>( + auto& density_gas = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HEAT_TRANSPORT_BHE__density_gas} "density_gas", parameters, 1); diff --git a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.h b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.h index 7f83a24b21707ffbbfca873cc55e6b1c87bd1ec8..12571971481e63e15c907e233267eee599661885 100644 --- a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.h +++ b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createHeatTransportBHEProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp index 352cba5e762376fbe021ad2809588e1da2ea17ab..c1269c7d28e485112b28a8bc44cd580627b37246 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp @@ -26,7 +26,7 @@ namespace HeatTransportBHE HeatTransportBHEProcess::HeatTransportBHEProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h index 6a53a9fdece750ff6e838d3ae5eeaa659c886170..11ce3d4d90254be7a45b66faaf9ed30fc73482be 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.h @@ -27,7 +27,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h index f028243ee92c31dcdf5a472978084c1d151d6062..658206e8cc51878d5e0e4d38b596a6debde9c369 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h @@ -19,25 +19,26 @@ namespace MeshLib class Element; } -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; +} -namespace HeatTransportBHE +namespace ProcessLib::HeatTransportBHE { struct HeatTransportBHEProcessData { HeatTransportBHEProcessData( - Parameter<double> const& thermal_conductivity_solid_, - Parameter<double> const& thermal_conductivity_fluid_, - Parameter<double> const& thermal_conductivity_gas_, - Parameter<double> const& heat_capacity_solid_, - Parameter<double> const& heat_capacity_fluid_, - Parameter<double> const& heat_capacity_gas_, - Parameter<double> const& density_solid_, - Parameter<double> const& density_fluid_, - Parameter<double> const& density_gas_, + ParameterLib::Parameter<double> const& thermal_conductivity_solid_, + ParameterLib::Parameter<double> const& thermal_conductivity_fluid_, + ParameterLib::Parameter<double> const& thermal_conductivity_gas_, + ParameterLib::Parameter<double> const& heat_capacity_solid_, + ParameterLib::Parameter<double> const& heat_capacity_fluid_, + ParameterLib::Parameter<double> const& heat_capacity_gas_, + ParameterLib::Parameter<double> const& density_solid_, + ParameterLib::Parameter<double> const& density_fluid_, + ParameterLib::Parameter<double> const& density_gas_, std::vector<BHE::BHETypes>&& vec_BHEs_) : thermal_conductivity_solid(thermal_conductivity_solid_), thermal_conductivity_fluid(thermal_conductivity_fluid_), @@ -64,24 +65,23 @@ struct HeatTransportBHEProcessData void operator=(HeatTransportBHEProcessData&&) = delete; // ! thermal conductivity values for the three phases - Parameter<double> const& thermal_conductivity_solid; - Parameter<double> const& thermal_conductivity_fluid; - Parameter<double> const& thermal_conductivity_gas; + ParameterLib::Parameter<double> const& thermal_conductivity_solid; + ParameterLib::Parameter<double> const& thermal_conductivity_fluid; + ParameterLib::Parameter<double> const& thermal_conductivity_gas; // ! heat capacity values for the three phases - Parameter<double> const& heat_capacity_solid; - Parameter<double> const& heat_capacity_fluid; - Parameter<double> const& heat_capacity_gas; + ParameterLib::Parameter<double> const& heat_capacity_solid; + ParameterLib::Parameter<double> const& heat_capacity_fluid; + ParameterLib::Parameter<double> const& heat_capacity_gas; // ! density values for the three phases - Parameter<double> const& density_solid; - Parameter<double> const& density_fluid; - Parameter<double> const& density_gas; + ParameterLib::Parameter<double> const& density_solid; + ParameterLib::Parameter<double> const& density_fluid; + ParameterLib::Parameter<double> const& density_gas; MeshLib::PropertyVector<int> const* _mesh_prop_materialIDs = nullptr; std::unordered_map<int, int> _map_materialID_to_BHE_ID; std::vector<BHE::BHETypes> _vec_BHE_property; }; -} // namespace HeatTransportBHE -} // namespace ProcessLib +} // namespace ProcessLib::HeatTransportBHE diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h index f00b211a02893fde477dfd78d0a3cdbaa66471db..35c0efa165fe025174b601a8e0f1fddc658ee234 100644 --- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h +++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h @@ -47,7 +47,7 @@ HeatTransportBHELocalAssemblerSoil<ShapeFunction, IntegrationMethod>:: 3 /* GlobalDim */>( e, is_axially_symmetric, _integration_method); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element_id); // ip data initialization @@ -85,7 +85,7 @@ void HeatTransportBHELocalAssemblerSoil<ShapeFunction, IntegrationMethod>:: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element_id); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/HydroMechanics/CMakeLists.txt b/ProcessLib/HydroMechanics/CMakeLists.txt index abd91957bfbd49272c4a49101081df12e33cbc87..924a3aec796c880dea61704475e70f2f53092ea6 100644 --- a/ProcessLib/HydroMechanics/CMakeLists.txt +++ b/ProcessLib/HydroMechanics/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(HydroMechanics ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS HydroMechanics LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(HydroMechanics PUBLIC ProcessLib) +target_link_libraries(HydroMechanics + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp index 226449735e7c687531bd22afa72c7c5fbc025be4..7a95b4d9a7988b6d8748d8150b4b38bdf6163811 100644 --- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp @@ -11,8 +11,9 @@ #include <cassert> -#include "MaterialLib/SolidModels/MechanicsBase.h" #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" +#include "MaterialLib/SolidModels/MechanicsBase.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -23,13 +24,12 @@ namespace ProcessLib { namespace HydroMechanics { - template <int DisplacementDim> std::unique_ptr<Process> createHydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -106,7 +106,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( parameters, config); // Intrinsic permeability - auto& intrinsic_permeability = findParameter<double>( + auto& intrinsic_permeability = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__intrinsic_permeability} "intrinsic_permeability", parameters, 1); @@ -115,7 +115,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( intrinsic_permeability.name.c_str()); // Storage coefficient - auto& specific_storage = findParameter<double>( + auto& specific_storage = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__specific_storage} "specific_storage", parameters, 1); @@ -124,7 +124,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( specific_storage.name.c_str()); // Fluid viscosity - auto& fluid_viscosity = findParameter<double>( + auto& fluid_viscosity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__fluid_viscosity} "fluid_viscosity", parameters, 1); @@ -132,14 +132,14 @@ std::unique_ptr<Process> createHydroMechanicsProcess( fluid_viscosity.name.c_str()); // Fluid density - auto& fluid_density = findParameter<double>( + auto& fluid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__fluid_density} "fluid_density", parameters, 1); DBUG("Use '%s' as fluid density parameter.", fluid_density.name.c_str()); // Biot coefficient - auto& biot_coefficient = findParameter<double>( + auto& biot_coefficient = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__biot_coefficient} "biot_coefficient", parameters, 1); @@ -147,14 +147,14 @@ std::unique_ptr<Process> createHydroMechanicsProcess( biot_coefficient.name.c_str()); // Porosity - auto& porosity = findParameter<double>( + auto& porosity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__porosity} "porosity", parameters, 1); DBUG("Use '%s' as porosity parameter.", porosity.name.c_str()); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS__solid_density} "solid_density", parameters, 1); @@ -212,7 +212,7 @@ template std::unique_ptr<Process> createHydroMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -220,7 +220,7 @@ template std::unique_ptr<Process> createHydroMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h index 3965efb0d82f36d4885234a85fcbbe7055c221ec..5a523b325d47fa3be6ca8f4f3ea6acb782a867d8 100644 --- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h +++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.h @@ -20,10 +20,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } @@ -37,7 +40,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -45,7 +48,7 @@ extern template std::unique_ptr<Process> createHydroMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -53,7 +56,7 @@ extern template std::unique_ptr<Process> createHydroMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); } // namespace HydroMechanics diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h index 1e730badd8dde31195cfa1f4edb93d11a56b3025..ad8b7de7c5fb65bbf86ac1c6fec8b80f1aa48ad7 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h @@ -160,7 +160,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = @@ -296,7 +296,7 @@ HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure, unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -341,7 +341,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, template VectorType<pressure_size>>( local_b_data, local_matrix_size); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); auto p = Eigen::Map<typename ShapeMatricesTypePressure::template VectorType< @@ -368,7 +368,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -453,7 +453,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -557,7 +557,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, displacement_size> const>(local_x.data() + displacement_offset, displacement_size); double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h index e56ae1a01dbf56c59e6a99ed399a72f585bf2cd7..c91b80179a623ff2e91604dc67b73e62ab3dcd98 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h @@ -18,10 +18,10 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "HydroMechanicsProcessData.h" @@ -72,7 +72,7 @@ struct IntegrationPointData final template <typename DisplacementVectorType> typename BMatricesType::KelvinMatrixType updateConstitutiveRelation( double const t, - SpatialPosition const& x_position, + ParameterLib::SpatialPosition const& x_position, double const dt, DisplacementVectorType const& /*u*/, double const T) diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp index b4f7639c85d217c267736b4d6a4bdba90b97bc71..3ed900d0a0b0a5c0315a301f78d668c8d5b7c8f1 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp @@ -27,7 +27,7 @@ template <int DisplacementDim> HydroMechanicsProcess<DisplacementDim>::HydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h index bec3237060ad9bef87a5ac27e5358e96465179a8..ece83764fa4304c48b3326efb9fcd05ff8b8b019 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.h @@ -31,7 +31,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h index 2b2c3c1785b86895a8cde623a7a301bf7850f7fa..42213c18a3934dea560c09371a290e8578c93713 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h @@ -9,7 +9,7 @@ #pragma once -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include <memory> #include <utility> @@ -37,13 +37,13 @@ struct HydroMechanicsProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& intrinsic_permeability_, - Parameter<double> const& specific_storage_, - Parameter<double> const& fluid_viscosity_, - Parameter<double> const& fluid_density_, - Parameter<double> const& biot_coefficient_, - Parameter<double> const& porosity_, - Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& intrinsic_permeability_, + ParameterLib::Parameter<double> const& specific_storage_, + ParameterLib::Parameter<double> const& fluid_viscosity_, + ParameterLib::Parameter<double> const& fluid_density_, + ParameterLib::Parameter<double> const& biot_coefficient_, + ParameterLib::Parameter<double> const& porosity_, + ParameterLib::Parameter<double> const& solid_density_, Eigen::Matrix<double, DisplacementDim, 1> specific_body_force_, double const reference_temperature_) @@ -80,21 +80,23 @@ struct HydroMechanicsProcessData int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - /// Permeability of the solid. A scalar quantity, Parameter<double>. - Parameter<double> const& intrinsic_permeability; + /// Permeability of the solid. A scalar quantity, + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& intrinsic_permeability; /// Volumetric average specific storage of the solid and fluid phases. - /// A scalar quantity, Parameter<double>. - Parameter<double> const& specific_storage; - /// Fluid's viscosity. A scalar quantity, Parameter<double>. - Parameter<double> const& fluid_viscosity; - /// Fluid's density. A scalar quantity, Parameter<double>. - Parameter<double> const& fluid_density; - /// Biot coefficient. A scalar quantity, Parameter<double>. - Parameter<double> const& biot_coefficient; - /// Porosity of the solid. A scalar quantity, Parameter<double>. - Parameter<double> const& porosity; - /// Solid's density. A scalar quantity, Parameter<double>. - Parameter<double> const& solid_density; + /// A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& specific_storage; + /// Fluid's viscosity. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& fluid_viscosity; + /// Fluid's density. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& fluid_density; + /// Biot coefficient. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& biot_coefficient; + /// Porosity of the solid. A scalar quantity, + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& porosity; + /// Solid's density. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& solid_density; /// Specific body forces applied to solid and fluid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. diff --git a/ProcessLib/LIE/CMakeLists.txt b/ProcessLib/LIE/CMakeLists.txt index f8057b51edca3a641ff9f80e2b42fc4884b19add..8f82689a0e2fb74a6df19c514f3fb0e013b35e48 100644 --- a/ProcessLib/LIE/CMakeLists.txt +++ b/ProcessLib/LIE/CMakeLists.txt @@ -8,7 +8,10 @@ add_library(LIE ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS LIE LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(LIE PUBLIC ProcessLib LIECommon) +target_link_libraries(LIE + PUBLIC ProcessLib LIECommon + PRIVATE ParameterLib +) include(HydroMechanics/Tests.cmake) include(SmallDeformation/Tests.cmake) diff --git a/ProcessLib/LIE/Common/FractureProperty.h b/ProcessLib/LIE/Common/FractureProperty.h index 393df6239ae1d2683903866a1296f4dfc72c7e1b..c273dfdef916aa71248eb21382e8d8ade2c52bcc 100644 --- a/ProcessLib/LIE/Common/FractureProperty.h +++ b/ProcessLib/LIE/Common/FractureProperty.h @@ -21,11 +21,12 @@ namespace MeshLib { class Element; } -namespace ProcessLib +namespace ParameterLib { template <typename T> struct Parameter; } + namespace ProcessLib { namespace LIE @@ -39,12 +40,12 @@ struct FractureProperty /// Rotation matrix from global to local coordinates Eigen::MatrixXd R; /// Initial aperture - ProcessLib::Parameter<double> const& aperture0; + ParameterLib::Parameter<double> const& aperture0; std::vector<BranchProperty> branches_master; std::vector<BranchProperty> branches_slave; FractureProperty(int const fracture_id_, int const material_id, - ProcessLib::Parameter<double> const& initial_aperture) + ParameterLib::Parameter<double> const& initial_aperture) : fracture_id(fracture_id_), mat_id(material_id), aperture0(initial_aperture) @@ -57,16 +58,16 @@ struct FractureProperty struct FracturePropertyHM : public FractureProperty { FracturePropertyHM(int const fracture_id_, int const material_id, - ProcessLib::Parameter<double> const& initial_aperture, - ProcessLib::Parameter<double> const& specific_storage_, - ProcessLib::Parameter<double> const& biot_coefficient_) + ParameterLib::Parameter<double> const& initial_aperture, + ParameterLib::Parameter<double> const& specific_storage_, + ParameterLib::Parameter<double> const& biot_coefficient_) : FractureProperty(fracture_id_, material_id, initial_aperture), specific_storage(specific_storage_), biot_coefficient(biot_coefficient_) { } - ProcessLib::Parameter<double> const& specific_storage; - ProcessLib::Parameter<double> const& biot_coefficient; + ParameterLib::Parameter<double> const& specific_storage; + ParameterLib::Parameter<double> const& biot_coefficient; }; /// configure fracture property based on a fracture element assuming diff --git a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.cpp index 5477b7f48a31fc491facd4529c4688db05854c93..dd66e4bfdb5b40ed80265083dcc43c1b638541eb 100644 --- a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.cpp +++ b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.cpp @@ -15,9 +15,8 @@ #include "MaterialLib/FractureModels/CreateLinearElasticIsotropic.h" #include "MaterialLib/FractureModels/CreateMohrCoulomb.h" #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" - +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter #include "HydroMechanicsProcess.h" #include "HydroMechanicsProcessData.h" @@ -33,7 +32,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -134,7 +133,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( config); // Intrinsic permeability - auto& intrinsic_permeability = findParameter<double>( + auto& intrinsic_permeability = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__intrinsic_permeability} "intrinsic_permeability", parameters, 1); @@ -143,7 +142,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( intrinsic_permeability.name.c_str()); // Storage coefficient - auto& specific_storage = findParameter<double>( + auto& specific_storage = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__specific_storage} "specific_storage", parameters, 1); @@ -152,7 +151,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( specific_storage.name.c_str()); // Fluid viscosity - auto& fluid_viscosity = findParameter<double>( + auto& fluid_viscosity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fluid_viscosity} "fluid_viscosity", parameters, 1); @@ -160,14 +159,14 @@ std::unique_ptr<Process> createHydroMechanicsProcess( fluid_viscosity.name.c_str()); // Fluid density - auto& fluid_density = findParameter<double>( + auto& fluid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fluid_density} "fluid_density", parameters, 1); DBUG("Use '%s' as fluid density parameter.", fluid_density.name.c_str()); // Biot coefficient - auto& biot_coefficient = findParameter<double>( + auto& biot_coefficient = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__biot_coefficient} "biot_coefficient", parameters, 1); @@ -175,14 +174,14 @@ std::unique_ptr<Process> createHydroMechanicsProcess( biot_coefficient.name.c_str()); // Porosity - auto& porosity = findParameter<double>( + auto& porosity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__porosity} "porosity", parameters, 1); DBUG("Use '%s' as porosity parameter.", porosity.name.c_str()); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__solid_density} "solid_density", parameters, 1); @@ -261,13 +260,13 @@ std::unique_ptr<Process> createHydroMechanicsProcess( 0 /*fracture_id*/, //! \ogs_file_param{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fracture_properties__material_id} fracture_properties_config.getConfigParameter<int>("material_id"), - ProcessLib::findParameter<double>( + ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fracture_properties__initial_aperture} fracture_properties_config, "initial_aperture", parameters, 1), - ProcessLib::findParameter<double>( + ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fracture_properties__specific_storage} fracture_properties_config, "specific_storage", parameters, 1), - ProcessLib::findParameter<double>( + ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__fracture_properties__biot_coefficient} fracture_properties_config, "biot_coefficient", parameters, 1)); if (frac_prop->aperture0.isTimeDependent()) @@ -280,7 +279,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( } // initial effective stress in matrix - auto& initial_effective_stress = findParameter<double>( + auto& initial_effective_stress = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__initial_effective_stress} "initial_effective_stress", parameters, @@ -289,7 +288,8 @@ std::unique_ptr<Process> createHydroMechanicsProcess( initial_effective_stress.name.c_str()); // initial effective stress in fracture - auto& initial_fracture_effective_stress = findParameter<double>( + auto& initial_fracture_effective_stress = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{prj__processes__process__HYDRO_MECHANICS_WITH_LIE__initial_fracture_effective_stress} "initial_fracture_effective_stress", parameters, GlobalDim); @@ -349,14 +349,14 @@ template std::unique_ptr<Process> createHydroMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); template std::unique_ptr<Process> createHydroMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h index 9d66a35b8480e4605a7b81bff48a29f15feb86e9..e6b0c65ae97082dac525bf882e4050b3e52cc605 100644 --- a/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h +++ b/ProcessLib/LIE/HydroMechanics/CreateHydroMechanicsProcess.h @@ -15,15 +15,18 @@ namespace BaseLib { class ConfigTree; -} // namespace BaseLib +} namespace MeshLib { class Mesh; -} // namespace MeshLib +} +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } // namespace ProcessLib @@ -39,7 +42,7 @@ std::unique_ptr<Process> createHydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp index 1358a8eb538829d25f1da58a46dd2198ee1c33ae..32503e146947094638d128240a3c0752b8373f99 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp @@ -19,10 +19,10 @@ #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" +#include "ParameterLib/MeshElementParameter.h" #include "ProcessLib/LIE/Common/BranchProperty.h" #include "ProcessLib/LIE/Common/JunctionProperty.h" #include "ProcessLib/LIE/Common/MeshUtils.h" -#include "ProcessLib/Parameter/MeshElementParameter.h" #include "LocalAssembler/CreateLocalAssemblers.h" #include "LocalAssembler/HydroMechanicsLocalAssemblerFracture.h" @@ -39,9 +39,10 @@ template <int GlobalDim> HydroMechanicsProcess<GlobalDim>::HydroMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, - std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, + std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& + process_variables, HydroMechanicsProcessData<GlobalDim>&& process_data, SecondaryVariableCollection&& secondary_variables, NumLib::NamedFunctionCaller&& named_function_caller, @@ -347,7 +348,7 @@ void HydroMechanicsProcess<GlobalDim>::initializeConcreteProcess( { continue; } - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; x.setElementID(e->getID()); (*mesh_prop_b)[e->getID()] = frac->aperture0(0, x)[0]; } @@ -515,12 +516,13 @@ void HydroMechanicsProcess<GlobalDim>::computeSecondaryVariableConcrete( double const w_n) { // skip aperture computation for element-wise defined b0 because there // are jumps on the nodes between the element's values. - if (dynamic_cast<MeshElementParameter<double> const*>(&b0)) + if (dynamic_cast<ParameterLib::MeshElementParameter<double> const*>( + &b0)) { return std::numeric_limits<double>::quiet_NaN(); } - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; x.setNodeID(node_id); return w_n + b0(/*time independent*/ 0, x)[0]; }; diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h index 5c6f84e7d419830df59ad90cb8a3d219172d3982..cff95684784e1be498a22680ab8ef8b72592fb8c 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.h @@ -34,7 +34,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h index c0dcf8033c3e7d13f0339f296077dfeb85952518..d7010524d3c3595dd60c98be91c226e920d9ca38 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcessData.h @@ -41,20 +41,21 @@ struct HydroMechanicsProcessData int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<GlobalDim>>>&& solid_materials_, - Parameter<double> const& intrinsic_permeability_, - Parameter<double> const& specific_storage_, - Parameter<double> const& fluid_viscosity_, - Parameter<double> const& fluid_density_, - Parameter<double> const& biot_coefficient_, - Parameter<double> const& porosity_, - Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& intrinsic_permeability_, + ParameterLib::Parameter<double> const& specific_storage_, + ParameterLib::Parameter<double> const& fluid_viscosity_, + ParameterLib::Parameter<double> const& fluid_density_, + ParameterLib::Parameter<double> const& biot_coefficient_, + ParameterLib::Parameter<double> const& porosity_, + ParameterLib::Parameter<double> const& solid_density_, Eigen::Matrix<double, GlobalDim, 1> specific_body_force_, std::unique_ptr<MaterialLib::Fracture::FractureModelBase<GlobalDim>>&& fracture_model, std::unique_ptr<FracturePropertyHM>&& fracture_prop, - Parameter<double> const& initial_effective_stress_, - Parameter<double> const& initial_fracture_effective_stress_, + ParameterLib::Parameter<double> const& initial_effective_stress_, + ParameterLib::Parameter<double> const& + initial_fracture_effective_stress_, bool const deactivate_matrix_in_flow_, double const reference_temperature_) : material_ids(material_ids_), @@ -91,23 +92,23 @@ struct HydroMechanicsProcessData std::map<int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<GlobalDim>>> solid_materials; - Parameter<double> const& intrinsic_permeability; - Parameter<double> const& specific_storage; - Parameter<double> const& fluid_viscosity; - Parameter<double> const& fluid_density; - Parameter<double> const& biot_coefficient; - Parameter<double> const& porosity; - Parameter<double> const& solid_density; + ParameterLib::Parameter<double> const& intrinsic_permeability; + ParameterLib::Parameter<double> const& specific_storage; + ParameterLib::Parameter<double> const& fluid_viscosity; + ParameterLib::Parameter<double> const& fluid_density; + ParameterLib::Parameter<double> const& biot_coefficient; + ParameterLib::Parameter<double> const& porosity; + ParameterLib::Parameter<double> const& solid_density; Eigen::Matrix<double, GlobalDim, 1> const specific_body_force; std::unique_ptr<MaterialLib::Fracture::FractureModelBase<GlobalDim>> fracture_model; std::unique_ptr<FracturePropertyHM> fracture_property; - Parameter<double> const& initial_effective_stress; - Parameter<double> const& initial_fracture_effective_stress; + ParameterLib::Parameter<double> const& initial_effective_stress; + ParameterLib::Parameter<double> const& initial_fracture_effective_stress; bool const deactivate_matrix_in_flow; std::unique_ptr<MeshLib::ElementStatus> p_element_status; - Parameter<double> const* p0 = nullptr; + ParameterLib::Parameter<double> const* p0 = nullptr; double dt = 0.0; double t = 0.0; diff --git a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h index 9bbf15bcc3546eb4fece014d9ab5d0853566afa6..e274b06ba37f1a6c3b4adb2b33446a36b169a022 100644 --- a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h +++ b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerFracture-impl.h @@ -69,7 +69,7 @@ HydroMechanicsLocalAssemblerFracture<ShapeFunctionDisplacement, aperture0_node_values = frac_prop.aperture0.getNodalValuesOnElement( e, /*time independent*/ 0); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(e.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -188,7 +188,7 @@ void HydroMechanicsLocalAssemblerFracture<ShapeFunctionDisplacement, auto const& gravity_vec = _process_data.specific_body_force; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = _ip_data.size(); @@ -329,7 +329,7 @@ void HydroMechanicsLocalAssemblerFracture<ShapeFunctionDisplacement, // in a displacement vector auto constexpr index_normal = GlobalDim - 1; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = _ip_data.size(); diff --git a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerMatrix-impl.h b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerMatrix-impl.h index 150260e3d414865878ea283b4a57e9a66d88f1f4..6146b3c0c98954f5f84a402baa5e52931972942b 100644 --- a/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerMatrix-impl.h +++ b/ProcessLib/LIE/HydroMechanics/LocalAssembler/HydroMechanicsLocalAssemblerMatrix-impl.h @@ -65,7 +65,7 @@ HydroMechanicsLocalAssemblerMatrix<ShapeFunctionDisplacement, auto& solid_material = MaterialLib::Solids::selectSolidConstitutiveRelation( _process_data.solid_materials, _process_data.material_ids, e.getID()); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(e.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -194,7 +194,7 @@ void HydroMechanicsLocalAssemblerMatrix<ShapeFunctionDisplacement, double const& dt = _process_data.dt; auto const& gravity_vec = _process_data.specific_body_force; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = _ip_data.size(); @@ -330,7 +330,7 @@ void HydroMechanicsLocalAssemblerMatrix<ShapeFunctionDisplacement, Eigen::Ref<const Eigen::VectorXd> const& p, Eigen::Ref<const Eigen::VectorXd> const& u) { - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = _ip_data.size(); @@ -446,7 +446,7 @@ void HydroMechanicsLocalAssemblerMatrix< Eigen::Ref<Eigen::VectorXd> p) { - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned i = 0; i < pressure_size; i++) { diff --git a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.cpp index afff8e5cf6e3b91319f59ac588cc71fec04cf9ce..28ccb4baa3405a3369bab519b6129b0bdc23dabf 100644 --- a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.cpp +++ b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.cpp @@ -15,9 +15,8 @@ #include "MaterialLib/FractureModels/CreateLinearElasticIsotropic.h" #include "MaterialLib/FractureModels/CreateMohrCoulomb.h" #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" - +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Utils/ProcessUtils.h" // required for findParameter #include "SmallDeformationProcess.h" #include "SmallDeformationProcessData.h" @@ -33,7 +32,7 @@ std::unique_ptr<Process> createSmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -158,7 +157,7 @@ std::unique_ptr<Process> createSmallDeformationProcess( fracture_properties.size(), //! \ogs_file_param{prj__processes__process__SMALL_DEFORMATION_WITH_LIE__fracture_properties__material_id} fracture_properties_config.getConfigParameter<int>("material_id"), - ProcessLib::findParameter<double>( + ParameterLib::findParameter<double>( //! \ogs_file_param_special{prj__processes__process__SMALL_DEFORMATION_WITH_LIE__fracture_properties__initial_aperture} fracture_properties_config, "initial_aperture", parameters, 1)); } @@ -200,7 +199,7 @@ template std::unique_ptr<Process> createSmallDeformationProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -208,7 +207,7 @@ template std::unique_ptr<Process> createSmallDeformationProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h index a546bd8dfaaeea6e0f6eff200352577e1a44768a..96a17d0b36be9dab7329c4ae193a8474bdfe9f32 100644 --- a/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h +++ b/ProcessLib/LIE/SmallDeformation/CreateSmallDeformationProcess.h @@ -15,15 +15,18 @@ namespace BaseLib { class ConfigTree; -} // namespace BaseLib +} namespace MeshLib { class Mesh; -} // namespace MeshLib +} +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } // namespace ProcessLib @@ -39,7 +42,7 @@ std::unique_ptr<Process> createSmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h index a180c7fc5e14008e331239b91fda90794ea60824..46e30af5c34bdf136cd4970577e8b2dc06ecf3ab 100644 --- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h +++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerFracture-impl.h @@ -69,7 +69,7 @@ SmallDeformationLocalAssemblerFracture<ShapeFunction, IntegrationMethod, _junction_props.push_back(&_process_data.junction_properties[jid]); } - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -172,7 +172,7 @@ void SmallDeformationLocalAssemblerFracture< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -264,7 +264,7 @@ void SmallDeformationLocalAssemblerFracture<ShapeFunction, IntegrationMethod, unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); std::vector<Eigen::VectorXd> vec_nodal_g; diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h index b8fda67a40d75e62265dbeaadcb8e954e987eaa4..ed4d89efb08f7a2d36e59697856e52d269c0049c 100644 --- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h +++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrix-impl.h @@ -119,7 +119,7 @@ void SmallDeformationLocalAssemblerMatrix<ShapeFunction, IntegrationMethod, unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h index 0bff13ab6a01d92a5d6dbc630ad32e6f2361c61f..a7c521995ead46ee867125305b7c9077857229ba 100644 --- a/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h +++ b/ProcessLib/LIE/SmallDeformation/LocalAssembler/SmallDeformationLocalAssemblerMatrixNearFracture-impl.h @@ -206,7 +206,7 @@ void SmallDeformationLocalAssemblerMatrixNearFracture< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp index 37f878fd6504b4019f1e96ff4a425ffd7e331002..416501e73c5d1c5b1fdcb65c60d15913783c7b99 100644 --- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp +++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp @@ -32,7 +32,7 @@ template <int DisplacementDim> SmallDeformationProcess<DisplacementDim>::SmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, @@ -495,7 +495,7 @@ void SmallDeformationProcess<DisplacementDim>::initializeConcreteProcess( { continue; } - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; x.setElementID(e->getID()); (*mesh_prop_b)[e->getID()] = fracture_prop.aperture0(0, x)[0]; } diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h index 1c98bdfc879da73a8a9bdd2fed467e6455049142..706f198d43f0a3ffcc63dfd131b9de6cb3b323ac 100644 --- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h +++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.h @@ -31,7 +31,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/LiquidFlow/CMakeLists.txt b/ProcessLib/LiquidFlow/CMakeLists.txt index b6a430d96d2d33749bff5253cadea6ad9b9c9ea8..ff8694cc576af6e9f0fcabea5a591636685d6560 100644 --- a/ProcessLib/LiquidFlow/CMakeLists.txt +++ b/ProcessLib/LiquidFlow/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(LiquidFlow ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS LiquidFlow LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(LiquidFlow PUBLIC ProcessLib) +target_link_libraries(LiquidFlow + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.cpp b/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.cpp index fff96752fab05c40f110fd29a362cf9cc0f624fe..f14f3e341b7b9d43fdda3d20b90bb22810828667 100644 --- a/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.cpp +++ b/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.cpp @@ -14,22 +14,22 @@ #include "BaseLib/Algorithm.h" #include "BaseLib/ConfigTree.h" - -#include "MeshLib/PropertyVector.h" - +#include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" #include "MaterialLib/Fluid/FluidProperty.h" +#include "MaterialLib/Fluid/FluidPropertyHeaders.h" #include "MaterialLib/PorousMedium/Permeability/Permeability.h" #include "MaterialLib/PorousMedium/Porosity/Porosity.h" -#include "MaterialLib/PorousMedium/Storage/Storage.h" -#include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" - -#include "MaterialLib/Fluid/FluidPropertyHeaders.h" #include "MaterialLib/PorousMedium/PorousPropertyHeaders.h" - -#include "ProcessLib/Utils/ProcessUtils.h" +#include "MaterialLib/PorousMedium/Storage/Storage.h" +#include "MeshLib/PropertyVector.h" #include "LiquidFlowMaterialProperties.h" +namespace ParameterLib +{ +struct ParameterBase; +} + namespace ProcessLib { namespace LiquidFlow @@ -39,7 +39,7 @@ class LiquidFlowMaterialProperties; std::unique_ptr<LiquidFlowMaterialProperties> createLiquidFlowMaterialProperties( BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, MeshLib::PropertyVector<int> const* const material_ids) { DBUG("Reading material properties of liquid flow process."); diff --git a/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.h b/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.h index 6721514df1baf9c78a3ceb2d830fbadf9a57bcf2..86199632a824c34e503238a227ef6b2738fff380 100644 --- a/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.h +++ b/ProcessLib/LiquidFlow/CreateLiquidFlowMaterialProperties.h @@ -26,11 +26,12 @@ template <typename PROP_VAL_TYPE> class PropertyVector; } -namespace ProcessLib +namespace ParameterLib { struct ParameterBase; +} -namespace LiquidFlow +namespace ProcessLib::LiquidFlow { class LiquidFlowMaterialProperties; @@ -44,8 +45,7 @@ class LiquidFlowMaterialProperties; std::unique_ptr<LiquidFlowMaterialProperties> createLiquidFlowMaterialProperties( BaseLib::ConfigTree const& config, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, MeshLib::PropertyVector<int> const* const material_ids); -} // namespace LiquidFlow -} // namespace ProcessLib +} // namespace ProcessLib::LiquidFlow diff --git a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp index e9a2ec112fa8bce5a5ff547a479a2e230a9a3b3b..17ad2706f14e8d3f0f8fbe36f63090ea1c070557 100644 --- a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp +++ b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp @@ -13,9 +13,9 @@ #include <algorithm> -#include "MeshLib/MeshGenerators/MeshGenerator.h" - #include "MaterialLib/PhysicalConstant.h" +#include "MeshLib/MeshGenerators/MeshGenerator.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -29,7 +29,7 @@ std::unique_ptr<Process> createLiquidFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { diff --git a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.h b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.h index 2ae8ebce567d18cea6456d2bf8d620f9c031827e..b333fe1818616dc47dd3815147c9fb15a80e7c01 100644 --- a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.h +++ b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.h @@ -23,7 +23,7 @@ std::unique_ptr<Process> createLiquidFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); } // end of namespace diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h index eeff64bb5309618883c3c923c6204f1f99ce1cb0..10db2179c6e15ae8ec894d2cb5aadeefacc02190 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h +++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h @@ -28,7 +28,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, IntegrationMethod, GlobalDim>:: std::vector<double>& local_K_data, std::vector<double>& local_b_data) { - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _material_properties.getMaterialID(pos); @@ -62,7 +62,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, IntegrationMethod, GlobalDim>:: std::vector<double>& local_M_data, std::vector<double>& local_K_data, std::vector<double>& local_b_data, - SpatialPosition const& pos, + ParameterLib::SpatialPosition const& pos, Eigen::MatrixXd const& permeability) { auto const local_matrix_size = local_x.size(); @@ -128,7 +128,7 @@ LiquidFlowLocalAssembler<ShapeFunction, IntegrationMethod, GlobalDim>:: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( velocity_cache, GlobalDim, num_intpts); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _material_properties.getMaterialID(pos); const Eigen::MatrixXd& permeability = _material_properties.getPermeability( diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h index da251f2404dfa866b99579f8ab21c0aa2d7be6ab..f1845b8c2ea828fdde487f93e43b50f1c3407bdb 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h +++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h @@ -20,13 +20,13 @@ #include "MaterialLib/PorousMedium/Permeability/Permeability.h" #include "MaterialLib/PorousMedium/Storage/Storage.h" #include "MathLib/LinAlg/Eigen/EigenMapTools.h" -#include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/DOF/DOFTableUtil.h" +#include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "LiquidFlowMaterialProperties.h" @@ -205,7 +205,7 @@ private: std::vector<double>& local_M_data, std::vector<double>& local_K_data, std::vector<double>& local_b_data, - SpatialPosition const& pos, + ParameterLib::SpatialPosition const& pos, Eigen::MatrixXd const& permeability); template <typename LaplacianGravityVelocityCalculator> diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp index 014d585f99a164aa241d41d3d2fb28ada934bbfb..908b2dd0f2b6898ede45a19d575823b5505e8821 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp +++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp @@ -17,7 +17,7 @@ #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/SpatialPosition.h" #include "MaterialLib/PorousMedium/Permeability/Permeability.h" #include "MaterialLib/PorousMedium/Porosity/Porosity.h" @@ -31,7 +31,7 @@ namespace ProcessLib namespace LiquidFlow { int LiquidFlowMaterialProperties::getMaterialID( - const SpatialPosition& pos) const + const ParameterLib::SpatialPosition& pos) const { if (!_material_ids) { @@ -62,20 +62,21 @@ double LiquidFlowMaterialProperties::getViscosity(const double p, MaterialLib::Fluid::FluidPropertyType::Viscosity, vars); } -double LiquidFlowMaterialProperties::getPorosity(const int material_id, - const double t, - const SpatialPosition& pos, - const double porosity_variable, - const double T) const +double LiquidFlowMaterialProperties::getPorosity( + const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const double porosity_variable, + const double T) const { return _porosity_models[material_id]->getValue(t, pos, porosity_variable, T); } double LiquidFlowMaterialProperties::getMassCoefficient( - const int material_id, const double t, const SpatialPosition& pos, - const double p, const double T, const double porosity_variable, - const double storage_variable) const + const int material_id, const double t, + const ParameterLib::SpatialPosition& pos, const double p, const double T, + const double porosity_variable, const double storage_variable) const { ArrayType vars; vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T; @@ -95,8 +96,8 @@ double LiquidFlowMaterialProperties::getMassCoefficient( } Eigen::MatrixXd const& LiquidFlowMaterialProperties::getPermeability( - const int material_id, const double t, const SpatialPosition& pos, - const int /*dim*/) const + const int material_id, const double t, + const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { return _intrinsic_permeability_models[material_id]->getValue(t, pos, 0.0, 0.0); diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h index 2fdc8c838930c27a9e67815d0978f37eb4ae51e9..09eb9d85e2472764ff684d19f2ad574d3fcaaf51 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h +++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h @@ -66,7 +66,7 @@ public: { } - int getMaterialID(const SpatialPosition& pos) const; + int getMaterialID(const ParameterLib::SpatialPosition& pos) const; /** * \brief Compute the coefficient of the mass term by @@ -86,21 +86,23 @@ public: * \param storage_variable Variable for storage model. */ double getMassCoefficient(const int material_id, const double t, - const SpatialPosition& pos, const double p, - const double T, const double porosity_variable, + const ParameterLib::SpatialPosition& pos, + const double p, const double T, + const double porosity_variable, const double storage_variable) const; - Eigen::MatrixXd const& getPermeability(const int material_id, - const double t, - const SpatialPosition& pos, - const int dim) const; + Eigen::MatrixXd const& getPermeability( + const int material_id, + const double t, + const ParameterLib::SpatialPosition& pos, + const int dim) const; double getLiquidDensity(const double p, const double T) const; double getViscosity(const double p, const double T) const; double getPorosity(const int material_id, const double t, - const SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double porosity_variable, const double T) const; private: diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp index a2f82b798fa94de43dfcce984a3b26bfec23e4f8..c477aa1f4230cebf1623001ce8c6ff14f907840c 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp +++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp @@ -33,7 +33,7 @@ namespace LiquidFlow LiquidFlowProcess::LiquidFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.h b/ProcessLib/LiquidFlow/LiquidFlowProcess.h index 21259b69d0443530e35f6cf28818b3fb939e45f8..6e839dcbb15ffaf7b0561f278dc211370f2ebb63 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowProcess.h +++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.h @@ -60,7 +60,8 @@ public: LiquidFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/PhaseField/CMakeLists.txt b/ProcessLib/PhaseField/CMakeLists.txt index d3575e49e7e03d07dbc2ba61dc9df7d102ade163..03c6de7205b747233cd055394adca8f800276105 100644 --- a/ProcessLib/PhaseField/CMakeLists.txt +++ b/ProcessLib/PhaseField/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(PhaseField ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS PhaseField LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(PhaseField PUBLIC ProcessLib) +target_link_libraries(PhaseField + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp b/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp index 9df731fb6564858d278bf0979b49d59963d8c881..c88edf1c9d04a050847ac63079478f38b7549992 100644 --- a/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp +++ b/ProcessLib/PhaseField/CreatePhaseFieldProcess.cpp @@ -13,6 +13,7 @@ #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" #include "MaterialLib/SolidModels/MechanicsBase.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -28,7 +29,7 @@ std::unique_ptr<Process> createPhaseFieldProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -106,42 +107,42 @@ std::unique_ptr<Process> createPhaseFieldProcess( config.getConfigSubtree("phasefield_parameters"); // Residual stiffness - auto& residual_stiffness = findParameter<double>( + auto& residual_stiffness = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__phasefield_parameters__residual_stiffness} "residual_stiffness", parameters, 1); DBUG("Use '%s' as residual stiffness.", residual_stiffness.name.c_str()); // Crack resistance - auto& crack_resistance = findParameter<double>( + auto& crack_resistance = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__phasefield_parameters__crack_resistance} "crack_resistance", parameters, 1); DBUG("Use '%s' as crack resistance.", crack_resistance.name.c_str()); // Crack length scale - auto& crack_length_scale = findParameter<double>( + auto& crack_length_scale = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__phasefield_parameters__crack_length_scale} "crack_length_scale", parameters, 1); DBUG("Use '%s' as crack length scale.", crack_length_scale.name.c_str()); // Kinetic coefficient - auto& kinetic_coefficient = findParameter<double>( + auto& kinetic_coefficient = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__phasefield_parameters__kinetic_coefficient} "kinetic_coefficient", parameters, 1); DBUG("Use '%s' as kinetic coefficient.", kinetic_coefficient.name.c_str()); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__solid_density} "solid_density", parameters, 1); DBUG("Use '%s' as solid density parameter.", solid_density.name.c_str()); // History field - auto& history_field = findParameter<double>( + auto& history_field = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__PHASE_FIELD__phasefield_parameters__history_field} "history_field", parameters, 1); @@ -211,7 +212,7 @@ template std::unique_ptr<Process> createPhaseFieldProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -219,7 +220,7 @@ template std::unique_ptr<Process> createPhaseFieldProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/PhaseField/CreatePhaseFieldProcess.h b/ProcessLib/PhaseField/CreatePhaseFieldProcess.h index 2c396135cee8d3f7137d64ff8f0f725f67462c0e..d096dc71d66736d2df250884aa462a85e3d6fdc4 100644 --- a/ProcessLib/PhaseField/CreatePhaseFieldProcess.h +++ b/ProcessLib/PhaseField/CreatePhaseFieldProcess.h @@ -20,10 +20,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } @@ -37,7 +40,7 @@ std::unique_ptr<Process> createPhaseFieldProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -45,7 +48,7 @@ extern template std::unique_ptr<Process> createPhaseFieldProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -53,7 +56,7 @@ extern template std::unique_ptr<Process> createPhaseFieldProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); } // namespace PhaseField diff --git a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h index f0140afa87d89c027667731afae3ccf82a37ba37..82f5c2b91aac9cd982e7d9494f6a0e1303b652e0 100644 --- a/ProcessLib/PhaseField/PhaseFieldFEM-impl.h +++ b/ProcessLib/PhaseField/PhaseFieldFEM-impl.h @@ -81,7 +81,7 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, auto local_rhs = MathLib::createZeroedVector<DeformationVector>( local_b_data, local_matrix_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); double const& dt = _process_data.dt; @@ -183,7 +183,7 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, auto local_rhs = MathLib::createZeroedVector<PhaseFieldVector>( local_b_data, local_matrix_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); double const& dt = _process_data.dt; @@ -298,7 +298,7 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, auto u = Eigen::Map<typename ShapeMatricesType::template VectorType< displacement_size> const>(local_u.data(), displacement_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -365,7 +365,7 @@ void PhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, auto u = Eigen::Map<typename ShapeMatricesType::template VectorType< displacement_size> const>(local_u.data(), displacement_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); diff --git a/ProcessLib/PhaseField/PhaseFieldFEM.h b/ProcessLib/PhaseField/PhaseFieldFEM.h index fe20b9a87ed47650b84a9193b2adf1298958fba5..458cde06b9132acdb07f41df2dab3def80b82b44 100644 --- a/ProcessLib/PhaseField/PhaseFieldFEM.h +++ b/ProcessLib/PhaseField/PhaseFieldFEM.h @@ -18,9 +18,9 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/SpatialPosition.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" -#include "ProcessLib/Parameter/SpatialPosition.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "LocalAssemblerInterface.h" @@ -70,7 +70,7 @@ struct IntegrationPointData final template <typename DisplacementVectorType> void updateConstitutiveRelation(double const t, - SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const /*dt*/, DisplacementVectorType const& /*u*/, double const degradation) @@ -154,7 +154,7 @@ public: IntegrationMethod, DisplacementDim>( e, is_axially_symmetric, _integration_method); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp index 38f88283a3b4457d2f4d8df75234a57210a8595a..f33ba34db09d1f147ce8f3bed4d91ce9ed83a512 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp +++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp @@ -28,7 +28,7 @@ template <int DisplacementDim> PhaseFieldProcess<DisplacementDim>::PhaseFieldProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.h b/ProcessLib/PhaseField/PhaseFieldProcess.h index 02e83b9923ee0da8a182a575bd001d6c2f6ff98a..d552a483864975d5f473f7aebc8ec3c76ce1e4a1 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcess.h +++ b/ProcessLib/PhaseField/PhaseFieldProcess.h @@ -52,7 +52,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/PhaseField/PhaseFieldProcessData.h b/ProcessLib/PhaseField/PhaseFieldProcessData.h index baa5859e59c3cfa654005e321bc3dbfeb019467e..89080d0e1bbb45a4552ada3749f41c8602c18736 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcessData.h +++ b/ProcessLib/PhaseField/PhaseFieldProcessData.h @@ -38,12 +38,12 @@ struct PhaseFieldProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& residual_stiffness_, - Parameter<double> const& crack_resistance_, - Parameter<double> const& crack_length_scale_, - Parameter<double> const& kinetic_coefficient_, - Parameter<double> const& solid_density_, - Parameter<double>& history_field_, + ParameterLib::Parameter<double> const& residual_stiffness_, + ParameterLib::Parameter<double> const& crack_resistance_, + ParameterLib::Parameter<double> const& crack_length_scale_, + ParameterLib::Parameter<double> const& kinetic_coefficient_, + ParameterLib::Parameter<double> const& solid_density_, + ParameterLib::Parameter<double>& history_field_, Eigen::Matrix<double, DisplacementDim, 1> const& specific_body_force_, bool const propagating_crack_, bool const crack_pressure_) @@ -77,12 +77,12 @@ struct PhaseFieldProcessData std::map<int, std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - Parameter<double> const& residual_stiffness; - Parameter<double> const& crack_resistance; - Parameter<double> const& crack_length_scale; - Parameter<double> const& kinetic_coefficient; - Parameter<double> const& solid_density; - Parameter<double>& history_field; + ParameterLib::Parameter<double> const& residual_stiffness; + ParameterLib::Parameter<double> const& crack_resistance; + ParameterLib::Parameter<double> const& crack_length_scale; + ParameterLib::Parameter<double> const& kinetic_coefficient; + ParameterLib::Parameter<double> const& solid_density; + ParameterLib::Parameter<double>& history_field; Eigen::Matrix<double, DisplacementDim, 1> const specific_body_force; double dt = 0.0; double t = 0.0; diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index f741a461fd543b142c8cd87c0038087f79aff8dd..ba05df875ccd53ffe993ec59545e46e37d35ab27 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -13,6 +13,7 @@ #include "NumLib/DOF/ComputeSparsityPattern.h" #include "NumLib/Extrapolation/LocalLinearLeastSquaresExtrapolator.h" #include "NumLib/ODESolver/ConvergenceCriterionPerComponent.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Output/GlobalVectorFromNamedFunction.h" #include "ProcessVariable.h" @@ -23,7 +24,7 @@ namespace ProcessLib Process::Process( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, @@ -122,7 +123,7 @@ void Process::setInitialConditions(const int process_id, double const t, variable_id++) { MathLib::LinAlg::setLocalAccessibleVector(x); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; auto const& pv = per_process_variables[variable_id]; DBUG("Set the initial condition of variable %s of process %d.", diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h index 25c70fd6e66867eae2b207ff3f16a7d729146f1d..fdcfdf0fd21bac060f5d23c058941352ece945f6 100644 --- a/ProcessLib/Process.h +++ b/ProcessLib/Process.h @@ -15,12 +15,12 @@ #include "NumLib/ODESolver/NonlinearSolver.h" #include "NumLib/ODESolver/ODESystem.h" #include "NumLib/ODESolver/TimeDiscretization.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/BoundaryCondition/BoundaryConditionCollection.h" #include "ProcessLib/Output/CachedSecondaryVariable.h" #include "ProcessLib/Output/ExtrapolatorData.h" #include "ProcessLib/Output/IntegrationPointWriter.h" #include "ProcessLib/Output/SecondaryVariable.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/SourceTerms/SourceTermCollection.h" #include "AbstractJacobianAssembler.h" @@ -47,7 +47,8 @@ public: Process(MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp index dac2b422919cbbdc1676e9c505c77f40b2d9ed95..bb1ad5aafe16db70d3407ff775bc7e16b10a9702 100644 --- a/ProcessLib/ProcessVariable.cpp +++ b/ProcessLib/ProcessVariable.cpp @@ -10,23 +10,20 @@ #include "ProcessVariable.h" #include <algorithm> -#include <utility> - #include <logog/include/logog.hpp> +#include <utility> #include "BaseLib/Algorithm.h" #include "BaseLib/TimeInterval.h" - #include "MeshGeoToolsLib/ConstructMeshesFromGeometries.h" #include "MeshLib/Mesh.h" #include "MeshLib/Node.h" - +#include "ParameterLib/Utils.h" #include "ProcessLib/BoundaryCondition/BoundaryCondition.h" #include "ProcessLib/BoundaryCondition/CreateBoundaryCondition.h" #include "ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h" #include "ProcessLib/SourceTerms/CreateSourceTerm.h" #include "ProcessLib/SourceTerms/SourceTerm.h" -#include "ProcessLib/Utils/ProcessUtils.h" namespace { @@ -95,7 +92,7 @@ ProcessVariable::ProcessVariable( BaseLib::ConfigTree const& config, MeshLib::Mesh& mesh, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) : //! \ogs_file_param{prj__process_variables__process_variable__name} _name(config.getConfigParameter<std::string>("name")), _mesh(mesh), @@ -104,7 +101,7 @@ ProcessVariable::ProcessVariable( //! \ogs_file_param{prj__process_variables__process_variable__order} _shapefunction_order(config.getConfigParameter<unsigned>("order")), _deactivated_subdomains(createDeactivatedSubdomains(config, mesh)), - _initial_condition(findParameter<double>( + _initial_condition(ParameterLib::findParameter<double>( //! \ogs_file_param{prj__process_variables__process_variable__initial_condition} config.getConfigParameter<std::string>("initial_condition"), parameters, _n_components)) @@ -204,7 +201,7 @@ ProcessVariable::createBoundaryConditions( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, unsigned const integration_order, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, Process const& process) { std::vector<std::unique_ptr<BoundaryCondition>> bcs; @@ -236,10 +233,10 @@ ProcessVariable::createBoundaryConditions( void ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, std::vector<std::unique_ptr<BoundaryCondition>>& bcs) { - auto& parameter = findParameter<double>( + auto& parameter = ParameterLib::findParameter<double>( DeactivatedSubdomain::zero_parameter_name, parameters, 1); for (auto const& deactivated_subdomain : _deactivated_subdomains) @@ -327,7 +324,7 @@ std::vector<std::unique_ptr<SourceTerm>> ProcessVariable::createSourceTerms( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, unsigned const integration_order, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { std::vector<std::unique_ptr<SourceTerm>> source_terms; diff --git a/ProcessLib/ProcessVariable.h b/ProcessLib/ProcessVariable.h index 55fb76147be6493628657cb4204bbcef3f5495b6..30b374aa60b0152d5c95e30ab4fcaa0c4787ec84 100644 --- a/ProcessLib/ProcessVariable.h +++ b/ProcessLib/ProcessVariable.h @@ -11,8 +11,8 @@ #include "MathLib/LinAlg/GlobalMatrixVectorTypes.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/BoundaryCondition/BoundaryConditionConfig.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/SourceTerms/SourceTermConfig.h" // DeactivatedSubdomain cannot be forwardly declared because that @@ -48,7 +48,8 @@ public: ProcessVariable( BaseLib::ConfigTree const& config, MeshLib::Mesh& mesh, std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); ProcessVariable(ProcessVariable&&); @@ -75,15 +76,17 @@ public: std::vector<std::unique_ptr<BoundaryCondition>> createBoundaryConditions( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, unsigned const integration_order, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, Process const& process); std::vector<std::unique_ptr<SourceTerm>> createSourceTerms( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, unsigned const integration_order, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); - Parameter<double> const& getInitialCondition() const + ParameterLib::Parameter<double> const& getInitialCondition() const { return _initial_condition; } @@ -117,10 +120,11 @@ private: void createBoundaryConditionsForDeactivatedSubDomains( const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, std::vector<std::unique_ptr<BoundaryCondition>>& bcs); - Parameter<double> const& _initial_condition; + ParameterLib::Parameter<double> const& _initial_condition; std::vector<BoundaryConditionConfig> _bc_configs; std::vector<SourceTermConfig> _source_term_configs; diff --git a/ProcessLib/RichardsComponentTransport/CMakeLists.txt b/ProcessLib/RichardsComponentTransport/CMakeLists.txt index 1ea94214a510b4a1be06bad769b1ee74507807ea..1727d5762755dc26cde5b83cad7bca70bc88e626 100644 --- a/ProcessLib/RichardsComponentTransport/CMakeLists.txt +++ b/ProcessLib/RichardsComponentTransport/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(RichardsComponentTransport ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS RichardsComponentTransport LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(RichardsComponentTransport PUBLIC ProcessLib) +target_link_libraries(RichardsComponentTransport + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.cpp b/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.cpp index 5e9a684bdf5e673d5638ec9b767cb0ce2f804757..36bfc26865a09cafcdc9ca3bed5e29e20cf1b785 100644 --- a/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.cpp +++ b/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.cpp @@ -26,7 +26,7 @@ namespace RichardsComponentTransport { PorousMediaProperties createPorousMediaProperties( MeshLib::Mesh& mesh, BaseLib::ConfigTree const& porous_medium_configs, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Create PorousMediaProperties."); diff --git a/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.h b/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.h index 826baaca269d284231553fd9148afc575b7de474..194eca74506724ad82eff0e8a670ca0c3c3076ac 100644 --- a/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.h +++ b/ProcessLib/RichardsComponentTransport/CreatePorousMediaProperties.h @@ -25,6 +25,7 @@ namespace RichardsComponentTransport { PorousMediaProperties createPorousMediaProperties( MeshLib::Mesh& mesh, BaseLib::ConfigTree const& porous_medium_configs, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } } diff --git a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp index fa960ea873d194a26d3a5dab70aaf2e69a53b01a..4b41756284c00404fe8818dce927d60b018ee3bc 100644 --- a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp +++ b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp @@ -10,9 +10,9 @@ #include "CreateRichardsComponentTransportProcess.h" #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" - +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/Utils/ProcessUtils.h" #include "CreatePorousMediaProperties.h" @@ -27,7 +27,7 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -84,7 +84,7 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( MaterialLib::Fluid::createFluidProperties(fluid_config); // Parameter for the density of the fluid. - auto& fluid_reference_density= findParameter<double>( + auto& fluid_reference_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__fluid_reference_density} "fluid_reference_density", parameters, 1); @@ -92,7 +92,8 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( fluid_reference_density.name.c_str()); // Parameter for the longitudinal solute dispersivity. - auto const& molecular_diffusion_coefficient = findParameter<double>( + auto const& molecular_diffusion_coefficient = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__molecular_diffusion_coefficient} "molecular_diffusion_coefficient", parameters, 1); @@ -100,7 +101,8 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( molecular_diffusion_coefficient.name.c_str()); // Parameter for the longitudinal solute dispersivity. - auto const& solute_dispersivity_longitudinal = findParameter<double>( + auto const& solute_dispersivity_longitudinal = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__solute_dispersivity_longitudinal} "solute_dispersivity_longitudinal", parameters, 1); @@ -108,7 +110,8 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( solute_dispersivity_longitudinal.name.c_str()); // Parameter for the transverse solute dispersivity. - auto const& solute_dispersivity_transverse = findParameter<double>( + auto const& solute_dispersivity_transverse = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__solute_dispersivity_transverse} "solute_dispersivity_transverse", parameters, 1); @@ -116,13 +119,13 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( solute_dispersivity_transverse.name.c_str()); // Parameter for the retardation factor. - auto const& retardation_factor = findParameter<double>( + auto const& retardation_factor = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__retardation_factor} "retardation_factor", parameters, 1); // Parameter for the decay rate. - auto const& decay_rate = findParameter<double>( + auto const& decay_rate = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RichardsComponentTransport__decay_rate} "decay_rate", parameters, 1); diff --git a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.h b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.h index 2162355aa2c0f45c465c359e1b1c714513e1d8f2..6ab1ff83b093085c243345e30a0847ae73138b19 100644 --- a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.h +++ b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/RichardsComponentTransport/PorousMediaProperties.cpp b/ProcessLib/RichardsComponentTransport/PorousMediaProperties.cpp index 042d0237a99f1719f8a4eced668048c6dcaea539..38863a8135c9bdecc3d60295d53e46f25fafe9e1 100644 --- a/ProcessLib/RichardsComponentTransport/PorousMediaProperties.cpp +++ b/ProcessLib/RichardsComponentTransport/PorousMediaProperties.cpp @@ -15,42 +15,43 @@ namespace ProcessLib { namespace RichardsComponentTransport { -int PorousMediaProperties::getMaterialID(SpatialPosition const& pos) const +int PorousMediaProperties::getMaterialID( + ParameterLib::SpatialPosition const& pos) const { int const element_id = pos.getElementID().get(); return _material_ids[element_id]; } MaterialLib::PorousMedium::Porosity const& PorousMediaProperties::getPorosity( - double /*t*/, SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_porosity_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::Permeability const& PorousMediaProperties::getIntrinsicPermeability( - double /*t*/, SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_intrinsic_permeability_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::Storage const& -PorousMediaProperties::getSpecificStorage(double /*t*/, - SpatialPosition const& pos) const +PorousMediaProperties::getSpecificStorage( + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_specific_storage_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::CapillaryPressureSaturation const& PorousMediaProperties::getCapillaryPressureSaturationModel( - double /*t*/, SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_capillary_pressure_saturation_models[getMaterialID(pos)]; } MaterialLib::PorousMedium::RelativePermeability const& PorousMediaProperties::getRelativePermeability( - double /*t*/, SpatialPosition const& pos) const + double /*t*/, ParameterLib::SpatialPosition const& pos) const { return *_relative_permeability_models[getMaterialID(pos)]; } diff --git a/ProcessLib/RichardsComponentTransport/PorousMediaProperties.h b/ProcessLib/RichardsComponentTransport/PorousMediaProperties.h index 1abc5850bed921c26d1a58230af9752bc398c69b..d8009abf4f362e3568de2765c69ef9868829fe36 100644 --- a/ProcessLib/RichardsComponentTransport/PorousMediaProperties.h +++ b/ProcessLib/RichardsComponentTransport/PorousMediaProperties.h @@ -21,7 +21,10 @@ #include "MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h" #include "MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +namespace ParameterLib +{ +class SpatialPosition; +} namespace ProcessLib { @@ -71,23 +74,25 @@ public: } MaterialLib::PorousMedium::Porosity const& getPorosity( - double t, SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::Permeability const& getIntrinsicPermeability( - double t, SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::Storage const& getSpecificStorage( - double t, SpatialPosition const& pos) const; + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::CapillaryPressureSaturation const& - getCapillaryPressureSaturationModel(double t, - SpatialPosition const& pos) const; + getCapillaryPressureSaturationModel( + double t, ParameterLib::SpatialPosition const& pos) const; MaterialLib::PorousMedium::RelativePermeability const& - getRelativePermeability(double t, SpatialPosition const& pos) const; + getRelativePermeability(double t, + ParameterLib::SpatialPosition const& pos) const; private: - int getMaterialID(SpatialPosition const& pos) const; + int getMaterialID(ParameterLib::SpatialPosition const& pos) const; + private: std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>> _porosity_models; diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h index b8f236f4734d161a4a829e19c7982dd3591b761b..b309069d3af3bbf61a6e82e993f8e971ac5460a6 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h @@ -77,7 +77,7 @@ void LocalAssemblerData<ShapeFunction, IntegrationMethod, GlobalDim>::assemble( unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element_id); auto p_nodal_values = Eigen::Map<const NodalVectorType>( @@ -232,7 +232,7 @@ LocalAssemblerData<ShapeFunction, IntegrationMethod, GlobalDim>:: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( cache, GlobalDim, n_integration_points); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element_id); MaterialLib::Fluid::FluidProperty::ArrayType vars; @@ -308,7 +308,7 @@ LocalAssemblerData<ShapeFunction, IntegrationMethod, GlobalDim>:: NumLib::LocalToGlobalIndexMap const& dof_table, std::vector<double>& cache) const { - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element_id); unsigned const n_integration_points = diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h index b11ace3208f634272c186e023e4d48caadbb7140..da19a752aad88c4ec31cc655aa1fd15dbc5dea9d 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM.h @@ -12,7 +12,6 @@ #include <Eigen/Dense> #include <vector> -#include "RichardsComponentTransportProcessData.h" #include "MaterialLib/Fluid/FluidProperties/FluidProperties.h" #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/DOF/DOFTableUtil.h" @@ -20,9 +19,10 @@ #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" #include "NumLib/Function/Interpolation.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" +#include "RichardsComponentTransportProcessData.h" namespace ProcessLib { diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp index 5cf44c93ca9ef6e71b2080ee3fff7074f20de9c2..db26bbd754e16332550fb0f19245c4216ffc6b16 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp @@ -20,7 +20,7 @@ namespace RichardsComponentTransport RichardsComponentTransportProcess::RichardsComponentTransportProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h index bbf33643e5f1f95dfee8d310d72239690ac72b40..dda41a7185bc3b5922e513ce02d2be308591bf83 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.h @@ -105,7 +105,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h index 40597710d44e8a19efec077ca0c4d05bc3468573..38b64b9fd83da3925879e2f5180c20f80cdda3d6 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h @@ -28,14 +28,15 @@ struct RichardsComponentTransportProcessData { RichardsComponentTransportProcessData( PorousMediaProperties&& porous_media_properties_, - ProcessLib::Parameter<double> const& fluid_reference_density_, + ParameterLib::Parameter<double> const& fluid_reference_density_, std::unique_ptr<MaterialLib::Fluid::FluidProperties>&& fluid_properties_, - ProcessLib::Parameter<double> const& molecular_diffusion_coefficient_, - ProcessLib::Parameter<double> const& solute_dispersivity_longitudinal_, - ProcessLib::Parameter<double> const& solute_dispersivity_transverse_, - ProcessLib::Parameter<double> const& retardation_factor_, - ProcessLib::Parameter<double> const& decay_rate_, + ParameterLib::Parameter<double> const& molecular_diffusion_coefficient_, + ParameterLib::Parameter<double> const& + solute_dispersivity_longitudinal_, + ParameterLib::Parameter<double> const& solute_dispersivity_transverse_, + ParameterLib::Parameter<double> const& retardation_factor_, + ParameterLib::Parameter<double> const& decay_rate_, Eigen::VectorXd const& specific_body_force_, bool const has_gravity_) : porous_media_properties(std::move(porous_media_properties_)), @@ -79,13 +80,13 @@ struct RichardsComponentTransportProcessData void operator=(RichardsComponentTransportProcessData&&) = delete; PorousMediaProperties porous_media_properties; - Parameter<double> const& fluid_reference_density; + ParameterLib::Parameter<double> const& fluid_reference_density; std::unique_ptr<MaterialLib::Fluid::FluidProperties> fluid_properties; - Parameter<double> const& molecular_diffusion_coefficient; - Parameter<double> const& solute_dispersivity_longitudinal; - Parameter<double> const& solute_dispersivity_transverse; - Parameter<double> const& retardation_factor; - Parameter<double> const& decay_rate; + ParameterLib::Parameter<double> const& molecular_diffusion_coefficient; + ParameterLib::Parameter<double> const& solute_dispersivity_longitudinal; + ParameterLib::Parameter<double> const& solute_dispersivity_transverse; + ParameterLib::Parameter<double> const& retardation_factor; + ParameterLib::Parameter<double> const& decay_rate; Eigen::VectorXd const specific_body_force; bool const has_gravity; }; diff --git a/ProcessLib/RichardsFlow/CMakeLists.txt b/ProcessLib/RichardsFlow/CMakeLists.txt index ce0770b754636661f24682070520a97fa363b77f..e0cf9f1684c62e3a2e3a86e017c0244fc998067c 100644 --- a/ProcessLib/RichardsFlow/CMakeLists.txt +++ b/ProcessLib/RichardsFlow/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(RichardsFlow ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS RichardsFlow LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(RichardsFlow PUBLIC ProcessLib) +target_link_libraries(RichardsFlow + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp index 4bed8c3f514e99f41fc1330581a29ecfaf3d34fa..a711cb7ffb48b77ec2949b4c7aa8277182bd4c7c 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.cpp @@ -11,8 +11,8 @@ #include <logog/include/logog.hpp> -#include "MaterialLib/Fluid/FluidProperty.h" #include "MaterialLib/Fluid/FluidProperties/CreateFluidProperties.h" +#include "MaterialLib/Fluid/FluidProperty.h" #include "MaterialLib/PorousMedium/Porosity/Porosity.h" #include "MaterialLib/PorousMedium/Storage/Storage.h" #include "MaterialLib/PorousMedium/UnsaturatedProperty/CapillaryPressure/CapillaryPressureSaturation.h" @@ -22,8 +22,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" #include "RichardsFlowMaterialProperties.h" @@ -35,7 +35,7 @@ std::unique_ptr<RichardsFlowMaterialProperties> createRichardsFlowMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const* const material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Reading material properties of Richards flow process."); diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h index 20731abc377cdc4d2150d1ca56c22d68a6e86e9f..a8ff30747f1de62d0b3c01497c72e76995a84c16 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h @@ -23,7 +23,8 @@ std::unique_ptr<RichardsFlowMaterialProperties> createRichardsFlowMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const* material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // end namespace } // namespace ProcessLib diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp index 24d1d4593a1205b6db57dca04a46b2ed88b6b4e6..cf78a715d565d48a98cdfcf6ac0829f6e731d514 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp @@ -9,8 +9,9 @@ #include "CreateRichardsFlowProcess.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/Utils/ProcessUtils.h" #include "CreateRichardsFlowMaterialProperties.h" @@ -25,7 +26,7 @@ std::unique_ptr<Process> createRichardsFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, @@ -74,7 +75,7 @@ std::unique_ptr<Process> createRichardsFlowProcess( //! \ogs_file_param{prj__processes__process__RICHARDS_FLOW__mass_lumping} auto mass_lumping = config.getConfigParameter<bool>("mass_lumping"); - auto& temperature = findParameter<double>( + auto& temperature = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_FLOW__temperature} "temperature", parameters, 1); diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.h b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.h index 9291568990b6e185e2d0f905b6b03dc2b786187f..3e1c3d9024e06577c65a19957f17131da91b0fd9 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.h +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createRichardsFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, diff --git a/ProcessLib/RichardsFlow/RichardsFlowFEM.h b/ProcessLib/RichardsFlow/RichardsFlowFEM.h index 47faea78cd1edfc48a3c78e605adcdb57b9832ae..c7f48b4c1dcce15737d4fc09370d3e8200ba6235 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowFEM.h +++ b/ProcessLib/RichardsFlow/RichardsFlowFEM.h @@ -18,9 +18,9 @@ #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" #include "NumLib/Function/Interpolation.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "RichardsFlowProcessData.h" @@ -146,7 +146,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _process_data.material->getMaterialID(_element.getID()); @@ -261,7 +261,7 @@ public: Eigen::Matrix<double, GlobalDim, Eigen::Dynamic, Eigen::RowMajor>>( cache, GlobalDim, num_intpts); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _process_data.material->getMaterialID(_element.getID()); diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp index 7d2a6f268eb5b3875807cba998a92343e6bbc867..62200a5ebac41865653538284cd165bbb78ebff1 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.cpp @@ -21,8 +21,8 @@ #include "MaterialLib/PorousMedium/UnsaturatedProperty/RelativePermeability/RelativePermeability.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" namespace ProcessLib { @@ -87,7 +87,7 @@ double RichardsFlowMaterialProperties::getFluidViscosity(const double p, Eigen::MatrixXd const& RichardsFlowMaterialProperties::getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const int /*dim*/) const + const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { return _intrinsic_permeability_models[material_id]->getValue(t, pos, 0.0, 0.0); @@ -95,7 +95,7 @@ Eigen::MatrixXd const& RichardsFlowMaterialProperties::getPermeability( double RichardsFlowMaterialProperties::getPorosity( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double /*p*/, + const ParameterLib::SpatialPosition& pos, const double /*p*/, const double T, const double porosity_variable) const { return _porosity_models[material_id]->getValue(t, pos, porosity_variable, @@ -104,7 +104,7 @@ double RichardsFlowMaterialProperties::getPorosity( double RichardsFlowMaterialProperties::getStorage( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double storage_variable) const { // \todo getValue() can be extended for non @@ -113,14 +113,14 @@ double RichardsFlowMaterialProperties::getStorage( } double RichardsFlowMaterialProperties::getRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[0]->getValue(saturation); } double RichardsFlowMaterialProperties::getRelativePermeabilityDerivative( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[0]->getdValue(saturation); @@ -128,7 +128,7 @@ double RichardsFlowMaterialProperties::getRelativePermeabilityDerivative( double RichardsFlowMaterialProperties::getSaturation( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double pc) const { return _capillary_pressure_models[material_id]->getSaturation(pc); @@ -136,7 +136,7 @@ double RichardsFlowMaterialProperties::getSaturation( double RichardsFlowMaterialProperties::getSaturationDerivative( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { const double dpcdsw = @@ -146,7 +146,7 @@ double RichardsFlowMaterialProperties::getSaturationDerivative( double RichardsFlowMaterialProperties::getSaturationDerivative2( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { const double dpcdsw = diff --git a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h index c75561c3811a96a2e206b6a2f9b62469568201dc..7b7f8683921510ca2c2b08a33a58b939d543455e 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h +++ b/ProcessLib/RichardsFlow/RichardsFlowMaterialProperties.h @@ -69,36 +69,35 @@ public: Eigen::MatrixXd const& getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const int dim) const; double getPorosity(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double porosity_variable) const; - double getStorage( - const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, - const double T, const double storage_variable) const; + double getStorage(const int material_id, const double t, + const ParameterLib::SpatialPosition& pos, const double p, + const double T, const double storage_variable) const; double getRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getRelativePermeabilityDerivative( - const double t, const ProcessLib::SpatialPosition& pos, const double p, - const double T, const double saturation) const; + const double t, const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double saturation) const; double getSaturation(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, - const double T, const double pc) const; + const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double pc) const; double getSaturationDerivative(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getSaturationDerivative2(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getFluidDensity(const double p, const double T) const; diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp index baea254c30435336be5432d7a946a16a2f823e74..5700226b402a474a38757f2cdf3f5803f3f65bfb 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp @@ -20,7 +20,7 @@ namespace RichardsFlow RichardsFlowProcess::RichardsFlowProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.h b/ProcessLib/RichardsFlow/RichardsFlowProcess.h index 66399e6bd08359d5f44433322315ecb0ee49dc18..9569cc383345f2c02975e5d2a71e3fb111363446 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.h +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.h @@ -26,7 +26,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h index b9fe9b1e431c0b66c4c9650755256ef09f73dea7..5992ae4e172c0469452b07fbc7839aeeb3024679 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h +++ b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h @@ -24,7 +24,7 @@ struct RichardsFlowProcessData Eigen::VectorXd const specific_body_force_, bool const has_gravity_, bool const has_mass_lumping_, - Parameter<double> const& temperature_) + ParameterLib::Parameter<double> const& temperature_) : material(std::move(material_)), specific_body_force(specific_body_force_), has_gravity(has_gravity_), @@ -55,7 +55,7 @@ struct RichardsFlowProcessData Eigen::VectorXd const specific_body_force; bool const has_gravity; bool const has_mass_lumping; - Parameter<double> const& temperature; + ParameterLib::Parameter<double> const& temperature; }; } // namespace RichardsFlow diff --git a/ProcessLib/RichardsMechanics/CMakeLists.txt b/ProcessLib/RichardsMechanics/CMakeLists.txt index 6886684b525c2b643810403c4e5acfffa9e027f3..8dc36b502aa066f28f82943259ae5c44a7a2cc2c 100644 --- a/ProcessLib/RichardsMechanics/CMakeLists.txt +++ b/ProcessLib/RichardsMechanics/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(RichardsMechanics ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS RichardsMechanics LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(RichardsMechanics PUBLIC ProcessLib RichardsFlow) +target_link_libraries(RichardsMechanics + PUBLIC ProcessLib + PRIVATE RichardsFlow ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.cpp index 44a939c5534a60e2ca3f3d7ff0a4e8be6174b451..c3fb92ccc15265142d71d5395a694469148010ee 100644 --- a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.cpp +++ b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.cpp @@ -13,6 +13,7 @@ #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" #include "MaterialLib/SolidModels/MechanicsBase.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/RichardsFlow/CreateRichardsFlowMaterialProperties.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -29,7 +30,7 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -106,7 +107,7 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( parameters, config); // Fluid bulk modulus - auto& fluid_bulk_modulus = findParameter<double>( + auto& fluid_bulk_modulus = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_MECHANICS__fluid_bulk_modulus} "fluid_bulk_modulus", parameters, 1); @@ -114,7 +115,7 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( fluid_bulk_modulus.name.c_str()); // Biot coefficient - auto& biot_coefficient = findParameter<double>( + auto& biot_coefficient = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_MECHANICS__biot_coefficient} "biot_coefficient", parameters, 1); @@ -122,14 +123,14 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( biot_coefficient.name.c_str()); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_MECHANICS__solid_density} "solid_density", parameters, 1); DBUG("Use '%s' as solid density parameter.", solid_density.name.c_str()); // Solid bulk modulus - auto& solid_bulk_modulus = findParameter<double>( + auto& solid_bulk_modulus = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_MECHANICS__solid_bulk_modulus} "solid_bulk_modulus", parameters, 1); @@ -155,7 +156,7 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( std::copy_n(b.data(), b.size(), specific_body_force.data()); } - auto& temperature = findParameter<double>( + auto& temperature = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__RICHARDS_MECHANICS__temperature} "temperature", parameters, 1); @@ -214,7 +215,7 @@ template std::unique_ptr<Process> createRichardsMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -222,7 +223,7 @@ template std::unique_ptr<Process> createRichardsMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h index 7497a0cdc67295c83438757467e8480b2c9500f6..769ebaeb79dd87ee389f280e86c5a18fdfaa8d78 100644 --- a/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h +++ b/ProcessLib/RichardsMechanics/CreateRichardsMechanicsProcess.h @@ -25,10 +25,13 @@ namespace MathLib { class PiecewiseLinearInterpolation; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } // namespace ProcessLib @@ -42,7 +45,7 @@ std::unique_ptr<Process> createRichardsMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -50,7 +53,7 @@ extern template std::unique_ptr<Process> createRichardsMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -58,7 +61,7 @@ extern template std::unique_ptr<Process> createRichardsMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); } // namespace RichardsMechanics diff --git a/ProcessLib/RichardsMechanics/IntegrationPointData.h b/ProcessLib/RichardsMechanics/IntegrationPointData.h index 207a6276c74c2beb75d6eb000cfd0500be3adde0..3f770a3ee703ec41dbd454fdad34d3804c032608 100644 --- a/ProcessLib/RichardsMechanics/IntegrationPointData.h +++ b/ProcessLib/RichardsMechanics/IntegrationPointData.h @@ -72,7 +72,7 @@ struct IntegrationPointData final template <typename DisplacementVectorType> typename BMatricesType::KelvinMatrixType updateConstitutiveRelation( double const t, - SpatialPosition const& x_position, + ParameterLib::SpatialPosition const& x_position, double const dt, DisplacementVectorType const& /*u*/, double const temperature) diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h index 0e6b8b81285d7c1672b00faaf305fdac370a88d2..f64ec0152854ab908941d047af478fa5c711ea2e 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h @@ -26,7 +26,8 @@ namespace RichardsMechanics { template <int DisplacementDim> Eigen::Matrix<double, DisplacementDim, DisplacementDim> intrinsicPermeability( - double const t, SpatialPosition const& x_position, int const material_id, + double const t, ParameterLib::SpatialPosition const& x_position, + int const material_id, RichardsFlow::RichardsFlowMaterialProperties const& material) { const Eigen::MatrixXd& permeability = @@ -160,7 +161,7 @@ void RichardsMechanicsLocalAssembler< auto const material_id = _process_data.flow_material->getMaterialID(_element.getID()); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = @@ -352,7 +353,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, auto const material_id = _process_data.flow_material->getMaterialID(_element.getID()); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = @@ -663,7 +664,7 @@ std::vector<double> const& RichardsMechanicsLocalAssembler< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -799,7 +800,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, displacement_size> const>(local_x.data() + displacement_offset, displacement_size); double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -843,7 +844,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, auto const material_id = _process_data.flow_material->getMaterialID(_element.getID()); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); unsigned const n_integration_points = diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h index 1632ab1a4831e243818819a2166d166054c87cd1..bafa45af12a31031cad53f2834244a94b7153852 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h @@ -17,10 +17,10 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "IntegrationPointData.h" diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp index f79f587d284b0dc9d2006a369c77fb48c3733c79..e769eb695aaf2d9a83807dc653eb1983eae1ce4d 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp @@ -27,7 +27,7 @@ template <int DisplacementDim> RichardsMechanicsProcess<DisplacementDim>::RichardsMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h index 5a6a95671089f3b17636ef3c4f231f3024b6cad3..42abbab1fdb8e36a60ba05259bf63f97caf67863 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.h @@ -31,7 +31,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h index 6b22b03b1de2a6dc1845f7407a3df33e7a148327..0ea1097941182905676b0d20e47af91675379b46 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h @@ -9,7 +9,7 @@ #pragma once -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" #include <memory> #include <utility> @@ -42,11 +42,11 @@ struct RichardsMechanicsProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& fluid_bulk_modulus_, - Parameter<double> const& biot_coefficient_, - Parameter<double> const& solid_density_, - Parameter<double> const& solid_bulk_modulus_, - Parameter<double> const& temperature_, + ParameterLib::Parameter<double> const& fluid_bulk_modulus_, + ParameterLib::Parameter<double> const& biot_coefficient_, + ParameterLib::Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& solid_bulk_modulus_, + ParameterLib::Parameter<double> const& temperature_, Eigen::Matrix<double, DisplacementDim, 1> specific_body_force_) : material_ids(material_ids_), @@ -81,17 +81,20 @@ struct RichardsMechanicsProcessData int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - /// Fluid's bulk modulus. A scalar quantity, Parameter<double>. - Parameter<double> const& fluid_bulk_modulus; - /// Biot coefficient. A scalar quantity, Parameter<double>. - Parameter<double> const& biot_coefficient; - /// Density of the solid. A scalar quantity, Parameter<double>. - Parameter<double> const& solid_density; - /// Solid's bulk modulus. A scalar quantity, Parameter<double>. - Parameter<double> const& solid_bulk_modulus; + /// Fluid's bulk modulus. A scalar quantity, + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& fluid_bulk_modulus; + /// Biot coefficient. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& biot_coefficient; + /// Density of the solid. A scalar quantity, + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& solid_density; + /// Solid's bulk modulus. A scalar quantity, + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& solid_bulk_modulus; /// Reference temperature for material properties. A scalar quantity, - /// Parameter<double>. - Parameter<double> const& temperature; + /// ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& temperature; /// Specific body forces applied to solid and fluid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. diff --git a/ProcessLib/SmallDeformation/CMakeLists.txt b/ProcessLib/SmallDeformation/CMakeLists.txt index a2fee7f8872cba77dc5c3db006a557e3efaaf2a9..462c3245b63dabed9df2945d1f457d61bb16a44f 100644 --- a/ProcessLib/SmallDeformation/CMakeLists.txt +++ b/ProcessLib/SmallDeformation/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(SmallDeformation ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS SmallDeformation LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(SmallDeformation PUBLIC ProcessLib) +target_link_libraries(SmallDeformation + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp index 5835471f4b252157ab5e221d8fbd037207697bae..8c1364081366215cfa7ff6041e8691cb152467b4 100644 --- a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp +++ b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.cpp @@ -12,6 +12,7 @@ #include <cassert> #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -22,14 +23,12 @@ namespace ProcessLib { namespace SmallDeformation { - template <int DisplacementDim> -std::unique_ptr<Process> -createSmallDeformationProcess( +std::unique_ptr<Process> createSmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -69,7 +68,7 @@ createSmallDeformationProcess( parameters, config); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__SMALL_DEFORMATION__solid_density} "solid_density", parameters, 1); @@ -122,7 +121,7 @@ template std::unique_ptr<Process> createSmallDeformationProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -130,7 +129,7 @@ template std::unique_ptr<Process> createSmallDeformationProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h index 245d9b30a6c138a76069c3814b45d985861cedea..eb82b43381e02ee0a0b005bb01dd448f9ac3fc10 100644 --- a/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h +++ b/ProcessLib/SmallDeformation/CreateSmallDeformationProcess.h @@ -20,10 +20,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } @@ -37,7 +40,7 @@ std::unique_ptr<Process> createSmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -45,7 +48,7 @@ extern template std::unique_ptr<Process> createSmallDeformationProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -53,7 +56,7 @@ extern template std::unique_ptr<Process> createSmallDeformationProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index 5a30e3f49767192d7143f7aedeeeca1aa18ece77..8754beff00fa1dbc70f19c8fa76ac6c06d01db45 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -18,12 +18,12 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/GMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "LocalAssemblerInterface.h" @@ -212,7 +212,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -294,7 +294,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp index 3001d7aa91b2acac21b140113a77cd36bd943664..347496c52cfbb15281fc553e1f26225cd215a546 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp @@ -26,7 +26,7 @@ template <int DisplacementDim> SmallDeformationProcess<DisplacementDim>::SmallDeformationProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/SmallDeformation/SmallDeformationProcess.h index c699471b6e158a457f2e7ada590048f19fe44607..43b781fd77df2b74e464c68a571e7b609004448c 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.h @@ -60,7 +60,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h index ec5fc1064eb35c7101228cab1720835517eef5fa..8fd7f3260b4e79d4f5a2a6dab0983c1b4481e3c4 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h @@ -14,7 +14,7 @@ #include <Eigen/Eigen> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -37,7 +37,7 @@ struct SmallDeformationProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& solid_density_, Eigen::Matrix<double, DisplacementDim, 1> specific_body_force_, double const reference_temperature_) @@ -66,8 +66,8 @@ struct SmallDeformationProcessData int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - /// Solid's density. A scalar quantity, Parameter<double>. - Parameter<double> const& solid_density; + /// Solid's density. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& solid_density; /// Specific body forces applied to the solid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. diff --git a/ProcessLib/SmallDeformationNonlocal/CMakeLists.txt b/ProcessLib/SmallDeformationNonlocal/CMakeLists.txt index f99ef53c547de078cdd9a0d49275a1a88629a72c..dc507d89e8818c2866717b942960911717cbed81 100644 --- a/ProcessLib/SmallDeformationNonlocal/CMakeLists.txt +++ b/ProcessLib/SmallDeformationNonlocal/CMakeLists.txt @@ -1,6 +1,9 @@ APPEND_SOURCE_FILES(SOURCES) add_library(SmallDeformationNonlocal ${SOURCES}) -target_link_libraries(SmallDeformationNonlocal PUBLIC ProcessLib) +target_link_libraries(SmallDeformationNonlocal + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.cpp index 9459c48d64d685d3e764a6920d4d3cbcf05abe92..f3c066b33b459c9b942bf8801b7bc99aaa92ba57 100644 --- a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.cpp +++ b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.cpp @@ -14,6 +14,7 @@ #include <cassert> #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -29,7 +30,7 @@ std::unique_ptr<Process> createSmallDeformationNonlocalProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -69,7 +70,7 @@ std::unique_ptr<Process> createSmallDeformationNonlocalProcess( parameters, config); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__SMALL_DEFORMATION_NONLOCAL__solid_density} "solid_density", parameters, 1); @@ -127,7 +128,7 @@ template std::unique_ptr<Process> createSmallDeformationNonlocalProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -135,7 +136,7 @@ template std::unique_ptr<Process> createSmallDeformationNonlocalProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h index 9a5cf72580d42d7b065a25fdaf05ee51d4aee8a0..88fc497315e8b4af9384dcbce6038cd68119900c 100644 --- a/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h +++ b/ProcessLib/SmallDeformationNonlocal/CreateSmallDeformationNonlocalProcess.h @@ -22,10 +22,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } // namespace ProcessLib @@ -39,7 +42,7 @@ std::unique_ptr<Process> createSmallDeformationNonlocalProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -48,7 +51,7 @@ createSmallDeformationNonlocalProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -57,7 +60,7 @@ createSmallDeformationNonlocalProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h index c668b0c78c054380beee283c94a94722b9a3c28f..792fcf80b0088301052b1b5a06b5761aa13d2b11 100644 --- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h +++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalFEM.h @@ -23,11 +23,11 @@ #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" #include "NumLib/Function/Interpolation.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/Divergence.h" #include "ProcessLib/Deformation/LinearBMatrix.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "Damage.h" @@ -322,7 +322,7 @@ public: auto const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -439,7 +439,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); // Non-local integration. diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp index b4de897c3c8b1d335e48a0bbde6f7de217e725a6..bb57a0f0812900c063a76e382cd84c86db2e3c72 100644 --- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp +++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp @@ -27,7 +27,8 @@ SmallDeformationNonlocalProcess<DisplacementDim>:: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h index b31f4027ef89dba3ae5de4ffda04ad3d93033b76..0aa405f9fa510343aa50127d07cbad88024478e8 100644 --- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h +++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.h @@ -33,7 +33,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h index c81229b5e2e9ec808cc7edf6373817807100cc59..28a0967d661a79a7e5c5a39a00d86f5119791b95 100644 --- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h +++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcessData.h @@ -37,7 +37,7 @@ struct SmallDeformationNonlocalProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& solid_density_, Eigen::Matrix<double, DisplacementDim, 1> specific_body_force_, double const reference_temperature_, @@ -70,8 +70,8 @@ struct SmallDeformationNonlocalProcessData int, std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - /// Solid's density. A scalar quantity, Parameter<double>. - Parameter<double> const& solid_density; + /// Solid's density. A scalar quantity, ParameterLib::Parameter<double>. + ParameterLib::Parameter<double> const& solid_density; /// Specific body forces applied to the solid. /// It is usually used to apply gravitational forces. /// A vector of displacement dimension's length. diff --git a/ProcessLib/SourceTerms/CreateNodalSourceTerm.cpp b/ProcessLib/SourceTerms/CreateNodalSourceTerm.cpp index 2c8c5d3e14b278d851966a193b3b64077d4a3815..5e9e2afcab05374b1711ea5b451f9239d73f6be3 100644 --- a/ProcessLib/SourceTerms/CreateNodalSourceTerm.cpp +++ b/ProcessLib/SourceTerms/CreateNodalSourceTerm.cpp @@ -12,7 +12,7 @@ #include <logog/include/logog.hpp> #include "BaseLib/ConfigTree.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" #include "NodalSourceTerm.h" @@ -23,7 +23,7 @@ std::unique_ptr<SourceTerm> createNodalSourceTerm( std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table, std::size_t const source_term_mesh_id, const int variable_id, const int component_id, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Constructing NodalSourceTerm from config."); //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type} @@ -33,7 +33,8 @@ std::unique_ptr<SourceTerm> createNodalSourceTerm( auto const param_name = config.getConfigParameter<std::string>("parameter"); DBUG("Using parameter %s as nodal source term.", param_name.c_str()); - auto& param = findParameter<double>(param_name, parameters, 1); + auto& param = + ParameterLib::findParameter<double>(param_name, parameters, 1); return std::make_unique<NodalSourceTerm>(std::move(dof_table), source_term_mesh_id, st_mesh, diff --git a/ProcessLib/SourceTerms/CreateNodalSourceTerm.h b/ProcessLib/SourceTerms/CreateNodalSourceTerm.h index 7d56a0a1b680595454dbed81e282e77432620bb4..31413ceddca6b1685db75bc78b99b9dd3c177f67 100644 --- a/ProcessLib/SourceTerms/CreateNodalSourceTerm.h +++ b/ProcessLib/SourceTerms/CreateNodalSourceTerm.h @@ -24,11 +24,14 @@ namespace NumLib { class LocalToGlobalIndexMap; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class SourceTerm; -struct ParameterBase; -} // namespace ProcessLib +} namespace ProcessLib { @@ -36,6 +39,7 @@ std::unique_ptr<SourceTerm> createNodalSourceTerm( BaseLib::ConfigTree const& config, MeshLib::Mesh const& st_mesh, std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table, std::size_t mesh_id, const int variable_id, const int component_id, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/CreateSourceTerm.cpp b/ProcessLib/SourceTerms/CreateSourceTerm.cpp index 2649720dd71efe2a999aa4bf2ba79dda72bca661..93e148daed4f0e623dfad2821842d3bcda7d1bb1 100644 --- a/ProcessLib/SourceTerms/CreateSourceTerm.cpp +++ b/ProcessLib/SourceTerms/CreateSourceTerm.cpp @@ -24,7 +24,7 @@ std::unique_ptr<SourceTerm> createSourceTerm( const NumLib::LocalToGlobalIndexMap& dof_table_bulk, const MeshLib::Mesh& source_term_mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type} auto const type = config.config.peekConfigParameter<std::string>("type"); diff --git a/ProcessLib/SourceTerms/CreateSourceTerm.h b/ProcessLib/SourceTerms/CreateSourceTerm.h index e6a60639b1a808ba8a154322e116903884e13e45..0d0939294ca4516ed1ef2a85568eff81b48772ed 100644 --- a/ProcessLib/SourceTerms/CreateSourceTerm.h +++ b/ProcessLib/SourceTerms/CreateSourceTerm.h @@ -12,7 +12,7 @@ #include <vector> #include <memory> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MeshLib { @@ -38,6 +38,7 @@ std::unique_ptr<SourceTerm> createSourceTerm( const NumLib::LocalToGlobalIndexMap& dof_table, const MeshLib::Mesh& mesh, const int variable_id, const unsigned integration_order, const unsigned shapefunction_order, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.cpp b/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.cpp index 8f59ff3b262549730ebfff95b4735da632fdc2a7..bcb98b017cad4bffdc70fa81ed9f9f6318e4c220 100644 --- a/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.cpp +++ b/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.cpp @@ -13,16 +13,15 @@ #include "BaseLib/FileTools.h" #include "MeshLib/Mesh.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" -#include "ProcessLib/Utils/ProcessUtils.h" +#include "ParameterLib/Utils.h" #include "VolumetricSourceTerm.h" namespace ProcessLib { std::unique_ptr<SourceTerm> createVolumetricSourceTerm( - BaseLib::ConfigTree const& config, - MeshLib::Mesh const& source_term_mesh, + BaseLib::ConfigTree const& config, MeshLib::Mesh const& source_term_mesh, std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, unsigned const shapefunction_order) { //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__type} @@ -34,7 +33,7 @@ std::unique_ptr<SourceTerm> createVolumetricSourceTerm( auto const& volumetric_source_term_parameter_name = //! \ogs_file_param{prj__process_variables__process_variable__source_terms__source_term__Volumetric__parameter} config.getConfigParameter<std::string>("parameter"); - auto& volumetric_source_term = findParameter<double>( + auto& volumetric_source_term = ParameterLib::findParameter<double>( volumetric_source_term_parameter_name, parameters, 1); DBUG("Using '%s` as volumetric source term parameter.", diff --git a/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.h b/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.h index 18d2568388a98e55a33759c27b8264b13a2b3509..f60fa69cc51a6a722b01bbf4630276e3d94a0441 100644 --- a/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.h +++ b/ProcessLib/SourceTerms/CreateVolumetricSourceTerm.h @@ -27,16 +27,19 @@ namespace NumLib class LocalToGlobalIndexMap; } -namespace ProcessLib +namespace ParameterLib { struct ParameterBase; +} + +namespace ProcessLib +{ class SourceTerm; std::unique_ptr<SourceTerm> createVolumetricSourceTerm( - BaseLib::ConfigTree const& config, - MeshLib::Mesh const& source_term_mesh, + BaseLib::ConfigTree const& config, MeshLib::Mesh const& source_term_mesh, std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, unsigned const shapefunction_order); } // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/NodalSourceTerm.cpp b/ProcessLib/SourceTerms/NodalSourceTerm.cpp index e32cd1a2a1971891faefa1c3106a270fcba71612..93ba965e2cb81e75b73bf4ca9c90f5ca1660b45d 100644 --- a/ProcessLib/SourceTerms/NodalSourceTerm.cpp +++ b/ProcessLib/SourceTerms/NodalSourceTerm.cpp @@ -19,7 +19,7 @@ NodalSourceTerm::NodalSourceTerm( MeshLib::Mesh const& st_mesh, const int variable_id, const int component_id, - Parameter<double> const& parameter) + ParameterLib::Parameter<double> const& parameter) : SourceTerm(std::move(source_term_dof_table)), _source_term_mesh_id(source_term_mesh_id), _st_mesh(st_mesh), @@ -43,7 +43,7 @@ void NodalSourceTerm::integrate(const double t, GlobalVector const& /*x*/, auto const index = _source_term_dof_table->getGlobalIndex( l, _variable_id, _component_id); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setNodeID(node_id); b.add(index, _parameter(t, pos).front()); diff --git a/ProcessLib/SourceTerms/NodalSourceTerm.h b/ProcessLib/SourceTerms/NodalSourceTerm.h index 78f74842b97be3924cf8aa12819f336192972120..931577ec6e97a9367814dc0ba56a4027a4990567 100644 --- a/ProcessLib/SourceTerms/NodalSourceTerm.h +++ b/ProcessLib/SourceTerms/NodalSourceTerm.h @@ -20,7 +20,7 @@ public: std::unique_ptr<NumLib::LocalToGlobalIndexMap> dof_table, std::size_t const source_term_mesh_id, MeshLib::Mesh const& st_mesh, const int variable_id, const int component_id, - Parameter<double> const& parameter); + ParameterLib::Parameter<double> const& parameter); void integrate(const double t, GlobalVector const& x, GlobalVector& b, GlobalMatrix* jac) const override; @@ -30,7 +30,7 @@ private: MeshLib::Mesh const& _st_mesh; int const _variable_id; int const _component_id; - Parameter<double> const& _parameter; + ParameterLib::Parameter<double> const& _parameter; }; } // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/Python/PythonSourceTerm.cpp b/ProcessLib/SourceTerms/Python/PythonSourceTerm.cpp index ae85a23db8c3b7caef6b9de5a7313ae42fe6f8be..06401a8660b3742c65e8ed6b39f9c8897dfe9e76 100644 --- a/ProcessLib/SourceTerms/Python/PythonSourceTerm.cpp +++ b/ProcessLib/SourceTerms/Python/PythonSourceTerm.cpp @@ -15,7 +15,6 @@ #include "MeshLib/MeshSearch/NodeSearch.h" #include "NumLib/DOF/LocalToGlobalIndexMap.h" #include "ProcessLib/Utils/CreateLocalAssemblers.h" -#include "ProcessLib/Utils/ProcessUtils.h" #include "PythonSourceTermLocalAssembler.h" namespace diff --git a/ProcessLib/SourceTerms/SourceTerm.h b/ProcessLib/SourceTerms/SourceTerm.h index 9ae1248df7872c92b11604b1579a17e9b23eebf1..1174e24f38dc4d375882a46b2ad39f75a9fd19af 100644 --- a/ProcessLib/SourceTerms/SourceTerm.h +++ b/ProcessLib/SourceTerms/SourceTerm.h @@ -12,7 +12,7 @@ #include <memory> #include "NumLib/DOF/LocalToGlobalIndexMap.h" -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace ProcessLib { diff --git a/ProcessLib/SourceTerms/SourceTermCollection.h b/ProcessLib/SourceTerms/SourceTermCollection.h index b27a51e878868f7458f1d4305867847ab2bf20a2..5351feb1c3dd9e42c2b5f903ab5bf482f3864faa 100644 --- a/ProcessLib/SourceTerms/SourceTermCollection.h +++ b/ProcessLib/SourceTerms/SourceTermCollection.h @@ -18,7 +18,8 @@ class SourceTermCollection final { public: explicit SourceTermCollection( - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters) : _parameters(parameters) { } @@ -34,7 +35,8 @@ public: private: std::vector<std::unique_ptr<SourceTerm>> _source_terms; - std::vector<std::unique_ptr<ParameterBase>> const& _parameters; + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + _parameters; }; } // namespace ProcessLib diff --git a/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp b/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp index 55db90e52df9c820a1c64ea55866cbcd925bf32e..a973196058c9aeac84de5678ced50f1aaa15a703 100644 --- a/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp +++ b/ProcessLib/SourceTerms/VolumetricSourceTerm.cpp @@ -17,7 +17,7 @@ VolumetricSourceTerm::VolumetricSourceTerm( MeshLib::Mesh const& source_term_mesh, std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, unsigned const integration_order, unsigned const shapefunction_order, - Parameter<double> const& volumetric_source_term) + ParameterLib::Parameter<double> const& volumetric_source_term) : SourceTerm(std::move(source_term_dof_table)), _volumetric_source_term(volumetric_source_term) { diff --git a/ProcessLib/SourceTerms/VolumetricSourceTerm.h b/ProcessLib/SourceTerms/VolumetricSourceTerm.h index 92e3bb7c74079ea036a03231ecc9ce8ad8cd788f..dcf3e55ae811d757e8a65dc2e44743bcd5866f0d 100644 --- a/ProcessLib/SourceTerms/VolumetricSourceTerm.h +++ b/ProcessLib/SourceTerms/VolumetricSourceTerm.h @@ -24,13 +24,13 @@ public: MeshLib::Mesh const& source_term_mesh, std::unique_ptr<NumLib::LocalToGlobalIndexMap> source_term_dof_table, unsigned const integration_order, unsigned const shapefunction_order, - Parameter<double> const& volumetric_source_term); + ParameterLib::Parameter<double> const& volumetric_source_term); void integrate(const double t, GlobalVector const& x, GlobalVector& b, GlobalMatrix* jac) const override; private: - Parameter<double> const& _volumetric_source_term; + ParameterLib::Parameter<double> const& _volumetric_source_term; std::vector<std::unique_ptr<VolumetricSourceTermLocalAssemblerInterface>> _local_assemblers; }; diff --git a/ProcessLib/SourceTerms/VolumetricSourceTermFEM.h b/ProcessLib/SourceTerms/VolumetricSourceTermFEM.h index 9e3d91ed3944145ca60884860e4c1cd214afaf09..b369b7f02c130a60461d74975416df68e32ca40d 100644 --- a/ProcessLib/SourceTerms/VolumetricSourceTermFEM.h +++ b/ProcessLib/SourceTerms/VolumetricSourceTermFEM.h @@ -14,8 +14,8 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/DOF/DOFTableUtil.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" namespace ProcessLib @@ -65,7 +65,7 @@ public: std::size_t const local_matrix_size, bool is_axially_symmetric, unsigned const integration_order, - Parameter<double> const& volumetric_source_term) + ParameterLib::Parameter<double> const& volumetric_source_term) : _volumetric_source_term(volumetric_source_term), _integration_method(integration_order), _local_rhs(local_matrix_size) @@ -97,7 +97,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(id); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -113,7 +113,7 @@ public: } private: - Parameter<double> const& _volumetric_source_term; + ParameterLib::Parameter<double> const& _volumetric_source_term; IntegrationMethod const _integration_method; std::vector< diff --git a/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h b/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h index 93673d46feced68485043207fd4a1798b54fa3d9..e281e7be17999653ad1e798ec8aa8b273c78f754 100644 --- a/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h +++ b/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h @@ -13,8 +13,8 @@ #include "NumLib/DOF/DOFTableUtil.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Process.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "MeshLib/Elements/MapBulkElementPoint.h" diff --git a/ProcessLib/TES/CMakeLists.txt b/ProcessLib/TES/CMakeLists.txt index d1632b690167d971df4d44c2c2755564a2ab22cc..afa13b23b39d63a90bac893c646546a2ac800bc0 100644 --- a/ProcessLib/TES/CMakeLists.txt +++ b/ProcessLib/TES/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(TES ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS TES LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(TES PUBLIC ProcessLib) +target_link_libraries(TES + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/TES/CreateTESProcess.cpp b/ProcessLib/TES/CreateTESProcess.cpp index 5407dda751a325154125dbe2af72b38fbb66f488..18529dad88f62e287ce963fd0c7daa6d2f68d188 100644 --- a/ProcessLib/TES/CreateTESProcess.cpp +++ b/ProcessLib/TES/CreateTESProcess.cpp @@ -20,7 +20,7 @@ std::unique_ptr<Process> createTESProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { diff --git a/ProcessLib/TES/CreateTESProcess.h b/ProcessLib/TES/CreateTESProcess.h index 4af7d4c2f6e39aee4a019f3d73eae3cf4225fa68..19ab317d38b655a7c4f5d69254ac862e8cb7b70b 100644 --- a/ProcessLib/TES/CreateTESProcess.h +++ b/ProcessLib/TES/CreateTESProcess.h @@ -20,7 +20,8 @@ std::unique_ptr<Process> createTESProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& /*parameters*/, + std::vector< + std::unique_ptr<ParameterLib::ParameterBase>> const& /*parameters*/, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp index 9fbc3bd3844a0cd07037d26cd339a5ba4e6a2ec3..fff9197d14f17a83a42792654adbd711b3cc52fb 100644 --- a/ProcessLib/TES/TESProcess.cpp +++ b/ProcessLib/TES/TESProcess.cpp @@ -19,7 +19,7 @@ namespace TES TESProcess::TESProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/TES/TESProcess.h b/ProcessLib/TES/TESProcess.h index ad8c316688eff2fa893c53c8fd0f89ccca6857f7..9779b6352728bcd28f497cd0ef727f45fa8bae54 100644 --- a/ProcessLib/TES/TESProcess.h +++ b/ProcessLib/TES/TESProcess.h @@ -30,15 +30,17 @@ namespace TES class TESProcess final : public Process { public: - TESProcess(MeshLib::Mesh& mesh, - std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, - unsigned const integration_order, - std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& - process_variables, - SecondaryVariableCollection&& secondary_variables, - NumLib::NamedFunctionCaller&& named_function_caller, - BaseLib::ConfigTree const& config); + TESProcess( + MeshLib::Mesh& mesh, + std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, + unsigned const integration_order, + std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& + process_variables, + SecondaryVariableCollection&& secondary_variables, + NumLib::NamedFunctionCaller&& named_function_caller, + BaseLib::ConfigTree const& config); void preTimestepConcreteProcess(GlobalVector const& x, const double t, const double delta_t, diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/CMakeLists.txt b/ProcessLib/ThermalTwoPhaseFlowWithPP/CMakeLists.txt index 3c5d458490fd6540cd08afc62c61d8c5c6350b30..9f2c0e4977828c78953999dc6eccdd1fb578a089 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/CMakeLists.txt +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(ThermalTwoPhaseFlowWithPP ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS ThermalTwoPhaseFlowWithPP LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(ThermalTwoPhaseFlowWithPP PUBLIC ProcessLib) +target_link_libraries(ThermalTwoPhaseFlowWithPP + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.cpp index 66c73326055f8a120e6df222699c1bec5460d340..1de4f7206adc46f5459389145b39af84d947e4a5 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.cpp @@ -25,8 +25,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" #include "ThermalTwoPhaseFlowWithPPMaterialProperties.h" @@ -38,7 +38,7 @@ std::unique_ptr<ThermalTwoPhaseFlowWithPPMaterialProperties> createThermalTwoPhaseFlowWithPPMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const& material_ids, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG( "Reading material properties of nonisothermal two-phase flow process."); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.h index e51387b61b7168386ad42179157ad798b7784357..4748ea58c966bf90381fe187f96b8b66f9d9eb6d 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.h @@ -31,7 +31,8 @@ std::unique_ptr<ThermalTwoPhaseFlowWithPPMaterialProperties> createThermalTwoPhaseFlowWithPPMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const& material_ids, - std::vector<std::unique_ptr<ProcessLib::ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // end namespace } // namespace ProcessLib diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.cpp index cbe14e348f5adcc04733552aedacb75ff4590acf..2b16dd30f0b91badae698904e6cf38a1af798594 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.cpp @@ -12,8 +12,9 @@ #include "BaseLib/Functional.h" #include "MeshLib/MeshGenerators/MeshGenerator.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPMaterialProperties.h" #include "ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -29,7 +30,7 @@ std::unique_ptr<Process> createThermalTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, @@ -77,25 +78,25 @@ std::unique_ptr<Process> createThermalTwoPhaseFlowWithPPProcess( //! \ogs_file_param{prj__processes__process__TWOPHASE_FLOW_THERMAL__mass_lumping} auto mass_lumping = config.getConfigParameter<bool>("mass_lumping"); // diffusion coeff - auto& diff_coeff_b = findParameter<double>( + auto& diff_coeff_b = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_THERMAL__diffusion_coeff_component_b} "diffusion_coeff_component_b", parameters, 1); - auto& diff_coeff_a = findParameter<double>( + auto& diff_coeff_a = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_THERMAL__diffusion_coeff_component_a} "diffusion_coeff_component_a", parameters, 1); // Parameter for the density of the solid. - auto& density_solid = findParameter<double>( + auto& density_solid = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_THERMAL__density_solid} "density_solid", parameters, 1); DBUG("Use '%s' as density_solid parameter.", density_solid.name.c_str()); // Parameter for the latent heat of evaporation. - auto& latent_heat_evaporation = findParameter<double>( + auto& latent_heat_evaporation = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_THERMAL__latent_heat_evaporation} "latent_heat_evaporation", parameters, 1); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.h index bb93b33d64e2674760c4888b36f6bfc97281992c..450dcb2ffaa79066a34f8eb7eb0ba3fec6d4ff0b 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/CreateThermalTwoPhaseFlowWithPPProcess.h @@ -21,7 +21,7 @@ std::unique_ptr<Process> createThermalTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h index 97ae3dd571699e26a2f48df4c9c5581f06cc3c58..2b572794265eff9cfcfa008b7f8229d7cc6d9d90 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h @@ -135,7 +135,7 @@ void ThermalTwoPhaseFlowWithPPLocalAssembler< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const& two_phase_material_model = _process_data.material->getTwoPhaseMaterialModel(); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler.h index e20b9b761bb482d7dfb70295c24b7a0eb44c036f..3445847c958683eb285644e5399c388a2affb1fe 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler.h @@ -16,9 +16,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "ThermalTwoPhaseFlowWithPPProcessData.h" diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.cpp index aa8fa51f48af57afa72f4e746e35dfdc3a946856..3093042b322b83d2b403763bb1cc854fbffc23a9 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.cpp @@ -23,8 +23,8 @@ #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" #include "NumLib/NewtonRaphson.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" namespace ProcessLib { @@ -127,7 +127,7 @@ ThermalTwoPhaseFlowWithPPMaterialProperties::getThermalConductivityWetSolid( double ThermalTwoPhaseFlowWithPPMaterialProperties::calculateUnsatHeatConductivity( - double const /*t*/, ProcessLib::SpatialPosition const& /*x*/, + double const /*t*/, ParameterLib::SpatialPosition const& /*x*/, double const Sw, double const lambda_pm_dry, double const lambda_pm_wet) const { diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.h index 91469113e1af1aa809f7e016ad94a23979281314..d2d68b65aab6987cbfe50b89691c46b8e80c06e8 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPMaterialProperties.h @@ -77,11 +77,12 @@ public: double getThermalConductivityDrySolid(const double p, const double T) const; double getThermalConductivityWetSolid(const double p, const double T) const; /// Calculates the unsaturated heat conductivity - double calculateUnsatHeatConductivity(double const t, - ProcessLib::SpatialPosition const& x, - double const Sw, - double const lambda_pm_dry, - double const lambda_pm_wet) const; + double calculateUnsatHeatConductivity( + double const t, + ParameterLib::SpatialPosition const& x, + double const Sw, + double const lambda_pm_dry, + double const lambda_pm_wet) const; /// water vapor saturation pressure double calculateSaturatedVaporPressure(const double T) const; /// partial water vapor pressure in nonwetting phase diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp index a89fa3b1920fbeb933b22b2d532c0efd3c83d764..a448deb03052d86a35a808e849f6cc0f36cb121c 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp @@ -27,7 +27,7 @@ namespace ThermalTwoPhaseFlowWithPP ThermalTwoPhaseFlowWithPPProcess::ThermalTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h index d4aeb57f12b801537adaf8a11826f5ce9e73c1f4..5cac5af027f2b9257648b9c5eabd9083d6f0c583 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.h @@ -40,7 +40,8 @@ public: ThermalTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h index fce7cd756476be3273499ded034d7d210f8bf3d4..204d9e81762b44433d3e08d7e20a6626ffb94624 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h @@ -24,10 +24,10 @@ struct ThermalTwoPhaseFlowWithPPProcessData Eigen::VectorXd const specific_body_force_, bool const has_gravity_, bool const has_mass_lumping_, - Parameter<double> const& diffusion_coeff_component_b_, - Parameter<double> const& diffusion_coeff_component_a_, - Parameter<double> const& density_solid_, - Parameter<double> const& latent_heat_evaporation_, + ParameterLib::Parameter<double> const& diffusion_coeff_component_b_, + ParameterLib::Parameter<double> const& diffusion_coeff_component_a_, + ParameterLib::Parameter<double> const& density_solid_, + ParameterLib::Parameter<double> const& latent_heat_evaporation_, std::unique_ptr<ThermalTwoPhaseFlowWithPPMaterialProperties>&& material_) : specific_body_force(specific_body_force_), @@ -68,10 +68,10 @@ struct ThermalTwoPhaseFlowWithPPProcessData bool const has_gravity; bool const has_mass_lumping; - Parameter<double> const& diffusion_coeff_component_b; - Parameter<double> const& diffusion_coeff_component_a; - Parameter<double> const& density_solid; - Parameter<double> const& latent_heat_evaporation; + ParameterLib::Parameter<double> const& diffusion_coeff_component_b; + ParameterLib::Parameter<double> const& diffusion_coeff_component_a; + ParameterLib::Parameter<double> const& density_solid; + ParameterLib::Parameter<double> const& latent_heat_evaporation; std::unique_ptr<ThermalTwoPhaseFlowWithPPMaterialProperties> material; }; diff --git a/ProcessLib/ThermoMechanicalPhaseField/CMakeLists.txt b/ProcessLib/ThermoMechanicalPhaseField/CMakeLists.txt index d13bd372521a1cd80b1562b4ca2ef186a97cf59b..9151b31a37f2f8e90ed9f7272605f2e23a1081b6 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/CMakeLists.txt +++ b/ProcessLib/ThermoMechanicalPhaseField/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(ThermoMechanicalPhaseField ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS ThermoMechanicalPhaseField LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(ThermoMechanicalPhaseField PUBLIC ProcessLib) +target_link_libraries(ThermoMechanicalPhaseField + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.cpp index b51104304ab685355a5145e5c695d309b58ec817..3b2f6e810fb22f6c64c7d021d5ec2fe793ff3039 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.cpp +++ b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.cpp @@ -13,6 +13,7 @@ #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" #include "MaterialLib/SolidModels/MechanicsBase.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -28,7 +29,7 @@ std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -122,42 +123,43 @@ std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess( config.getConfigSubtree("thermal_parameters"); // Residual stiffness - auto& residual_stiffness = findParameter<double>( + auto& residual_stiffness = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__phasefield_parameters__residual_stiffness} "residual_stiffness", parameters, 1); DBUG("Use '%s' as residual stiffness.", residual_stiffness.name.c_str()); // Crack resistance - auto& crack_resistance = findParameter<double>( + auto& crack_resistance = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__phasefield_parameters__crack_resistance} "crack_resistance", parameters, 1); DBUG("Use '%s' as crack resistance.", crack_resistance.name.c_str()); // Crack length scale - auto& crack_length_scale = findParameter<double>( + auto& crack_length_scale = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__phasefield_parameters__crack_length_scale} "crack_length_scale", parameters, 1); DBUG("Use '%s' as crack length scale.", crack_length_scale.name.c_str()); // Kinetic coefficient - auto& kinetic_coefficient = findParameter<double>( + auto& kinetic_coefficient = ParameterLib::findParameter<double>( phasefield_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__phasefield_parameters__kinetic_coefficient} "kinetic_coefficient", parameters, 1); DBUG("Use '%s' as kinetic coefficient.", kinetic_coefficient.name.c_str()); // Solid density - auto& solid_density = findParameter<double>( + auto& solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__reference_solid_density} "solid_density", parameters, 1); DBUG("Use '%s' as solid density parameter.", solid_density.name.c_str()); // Linear thermal expansion coefficient - auto& linear_thermal_expansion_coefficient = findParameter<double>( + auto& linear_thermal_expansion_coefficient = ParameterLib::findParameter< + double>( thermal_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__thermal_parameters__linear_thermal_expansion_coefficient} "linear_thermal_expansion_coefficient", parameters, 1); @@ -165,7 +167,7 @@ std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess( linear_thermal_expansion_coefficient.name.c_str()); // Specific heat capacity - auto& specific_heat_capacity = findParameter<double>( + auto& specific_heat_capacity = ParameterLib::findParameter<double>( thermal_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__thermal_parameters__specific_heat_capacity} "specific_heat_capacity", parameters, 1); @@ -173,14 +175,14 @@ std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess( specific_heat_capacity.name.c_str()); // Thermal conductivity - auto& thermal_conductivity = findParameter<double>( + auto& thermal_conductivity = ParameterLib::findParameter<double>( thermal_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__thermal_parameters__thermal_conductivity} "thermal_conductivity", parameters, 1); DBUG("Use '%s' as thermal conductivity parameter.", thermal_conductivity.name.c_str()); // Residual thermal conductivity - auto& residual_thermal_conductivity = findParameter<double>( + auto& residual_thermal_conductivity = ParameterLib::findParameter<double>( thermal_parameters_config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICAL_PHASE_FIELD__thermal_parameters__residual_thermal_conductivity} "residual_thermal_conductivity", parameters, 1); @@ -245,7 +247,7 @@ template std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -253,7 +255,7 @@ template std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h index de1135e1d8956eb23248feeb92ec9f3b8ba2e947..fc79bd9a5f2f6518d4d0d659d63574315ec062d7 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h +++ b/ProcessLib/ThermoMechanicalPhaseField/CreateThermoMechanicalPhaseFieldProcess.h @@ -20,10 +20,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } // namespace ProcessLib @@ -37,7 +40,7 @@ std::unique_ptr<Process> createThermoMechanicalPhaseFieldProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -46,7 +49,7 @@ createThermoMechanicalPhaseFieldProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -55,7 +58,7 @@ createThermoMechanicalPhaseFieldProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h index a8d23a00acd37e1a1394c0e20bedcad1b038e946..e1551a278e81654fff43fb7cab344af68fe8840d 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM-impl.h @@ -95,7 +95,7 @@ void ThermoMechanicalPhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -202,7 +202,7 @@ void ThermoMechanicalPhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, double const& dt = _process_data.dt; - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); @@ -297,7 +297,7 @@ void ThermoMechanicalPhaseFieldLocalAssembler<ShapeFunction, IntegrationMethod, typename ShapeMatricesType::template VectorType<phasefield_size>>( local_b_data, phasefield_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); int const n_integration_points = _integration_method.getNumberOfPoints(); diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h index ba4b463f951b2ed516890064636e34932b14bb6c..7d6f68728dfceb250ee0f81d55160def8e8fdef3 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldFEM.h @@ -18,9 +18,9 @@ #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/SpatialPosition.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" -#include "ProcessLib/Parameter/SpatialPosition.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "LocalAssemblerInterface.h" @@ -72,7 +72,7 @@ struct IntegrationPointData final template <typename DisplacementVectorType> void updateConstitutiveRelation(double const t, - SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const /*dt*/, DisplacementVectorType const& /*u*/, double const alpha, @@ -169,7 +169,7 @@ public: IntegrationMethod, DisplacementDim>( e, is_axially_symmetric, _integration_method); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h index eb37e7d58a9c9cd7c38ad8fd75013dc2ff152968..d8f13f88c7eaf8424b12c73a0c4a1d0230e117b0 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess-impl.h @@ -29,7 +29,8 @@ ThermoMechanicalPhaseFieldProcess<DisplacementDim>:: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h index 1da3a9d818676b086dd7e3c36bd5129ecfc5794f..85fbcc32cb036f60133ee6819cc9e65e58b32750 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.h @@ -57,7 +57,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h index 14aacd34faf89b39e0e7369dbe604026b6a9e17b..8e9ba034e7cd42ad2c39f6509722d4e1a39dc441 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcessData.h @@ -38,15 +38,16 @@ struct ThermoMechanicalPhaseFieldProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& residual_stiffness_, - Parameter<double> const& crack_resistance_, - Parameter<double> const& crack_length_scale_, - Parameter<double> const& kinetic_coefficient_, - Parameter<double> const& solid_density_, - Parameter<double> const& linear_thermal_expansion_coefficient_, - Parameter<double> const& specific_heat_capacity_, - Parameter<double> const& thermal_conductivity_, - Parameter<double> const& residual_thermal_conductivity_, + ParameterLib::Parameter<double> const& residual_stiffness_, + ParameterLib::Parameter<double> const& crack_resistance_, + ParameterLib::Parameter<double> const& crack_length_scale_, + ParameterLib::Parameter<double> const& kinetic_coefficient_, + ParameterLib::Parameter<double> const& solid_density_, + ParameterLib::Parameter<double> const& + linear_thermal_expansion_coefficient_, + ParameterLib::Parameter<double> const& specific_heat_capacity_, + ParameterLib::Parameter<double> const& thermal_conductivity_, + ParameterLib::Parameter<double> const& residual_thermal_conductivity_, double const reference_temperature_, Eigen::Matrix<double, DisplacementDim, 1> const& specific_body_force_) : material_ids(material_ids_), @@ -84,15 +85,15 @@ struct ThermoMechanicalPhaseFieldProcessData std::map<int, std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - Parameter<double> const& residual_stiffness; - Parameter<double> const& crack_resistance; - Parameter<double> const& crack_length_scale; - Parameter<double> const& kinetic_coefficient; - Parameter<double> const& solid_density; - Parameter<double> const& linear_thermal_expansion_coefficient; - Parameter<double> const& specific_heat_capacity; - Parameter<double> const& thermal_conductivity; - Parameter<double> const& residual_thermal_conductivity; + ParameterLib::Parameter<double> const& residual_stiffness; + ParameterLib::Parameter<double> const& crack_resistance; + ParameterLib::Parameter<double> const& crack_length_scale; + ParameterLib::Parameter<double> const& kinetic_coefficient; + ParameterLib::Parameter<double> const& solid_density; + ParameterLib::Parameter<double> const& linear_thermal_expansion_coefficient; + ParameterLib::Parameter<double> const& specific_heat_capacity; + ParameterLib::Parameter<double> const& thermal_conductivity; + ParameterLib::Parameter<double> const& residual_thermal_conductivity; double const reference_temperature; Eigen::Matrix<double, DisplacementDim, 1> const specific_body_force; double dt; diff --git a/ProcessLib/ThermoMechanics/CMakeLists.txt b/ProcessLib/ThermoMechanics/CMakeLists.txt index 7368f6f8d2e09f33211fdc24f195f567049c0e95..7b4955907f37fca219756b148c24d119b568052a 100644 --- a/ProcessLib/ThermoMechanics/CMakeLists.txt +++ b/ProcessLib/ThermoMechanics/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(ThermoMechanics ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS ThermoMechanics LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(ThermoMechanics PUBLIC ProcessLib) +target_link_libraries(ThermoMechanics + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp index 6e62d363d128a3ee25f9315730167eab25a4d2bc..38d689bdd7a837158b674e4a0256f1c626c78367 100644 --- a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp +++ b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.cpp @@ -11,8 +11,9 @@ #include <cassert> -#include "MaterialLib/SolidModels/MechanicsBase.h" #include "MaterialLib/SolidModels/CreateConstitutiveRelation.h" +#include "MaterialLib/SolidModels/MechanicsBase.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -28,7 +29,7 @@ std::unique_ptr<Process> createThermoMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config) { @@ -107,7 +108,7 @@ std::unique_ptr<Process> createThermoMechanicsProcess( parameters, config); // Reference solid density - auto& reference_solid_density = findParameter<double>( + auto& reference_solid_density = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICS__reference_solid_density} "reference_solid_density", parameters, 1); @@ -115,21 +116,22 @@ std::unique_ptr<Process> createThermoMechanicsProcess( reference_solid_density.name.c_str()); // Linear thermal expansion coefficient - auto& linear_thermal_expansion_coefficient = findParameter<double>( + auto& linear_thermal_expansion_coefficient = ParameterLib::findParameter< + double>( config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICS__linear_thermal_expansion_coefficient} "linear_thermal_expansion_coefficient", parameters, 1); DBUG("Use '%s' as linear thermal expansion coefficient.", linear_thermal_expansion_coefficient.name.c_str()); // Specific heat capacity - auto& specific_heat_capacity = findParameter<double>( + auto& specific_heat_capacity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICS__specific_heat_capacity} "specific_heat_capacity", parameters, 1); DBUG("Use '%s' as specific heat capacity parameter.", specific_heat_capacity.name.c_str()); // Thermal conductivity // TODO To be changed as tensor input. - auto& thermal_conductivity = findParameter<double>( + auto& thermal_conductivity = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__THERMO_MECHANICS__thermal_conductivity} "thermal_conductivity", parameters, 1); @@ -180,7 +182,7 @@ template std::unique_ptr<Process> createThermoMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -188,7 +190,7 @@ template std::unique_ptr<Process> createThermoMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h index bf12092369ed53f36293b8c798fb124e02ea910b..30d0c79d58a0e8b3734ba0785648bed277bb9bc6 100644 --- a/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h +++ b/ProcessLib/ThermoMechanics/CreateThermoMechanicsProcess.h @@ -20,10 +20,13 @@ namespace MeshLib { class Mesh; } +namespace ParameterLib +{ +struct ParameterBase; +} namespace ProcessLib { class AbstractJacobianAssembler; -struct ParameterBase; class Process; class ProcessVariable; } @@ -37,7 +40,7 @@ std::unique_ptr<Process> createThermoMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -45,7 +48,7 @@ extern template std::unique_ptr<Process> createThermoMechanicsProcess<2>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); @@ -53,7 +56,7 @@ extern template std::unique_ptr<Process> createThermoMechanicsProcess<3>( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config); diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h index 64f4d650cba336e909915f241214f1786bfa4275..36172c27fcfcf04cf1a479409ef8329d163ab79b 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h @@ -18,9 +18,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/Deformation/BMatrixPolicy.h" #include "ProcessLib/Deformation/LinearBMatrix.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "LocalAssemblerInterface.h" @@ -154,7 +154,7 @@ public: ip_data.eps_m.setZero(kelvin_vector_size); ip_data.eps_m_prev.setZero(kelvin_vector_size); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); ip_data.solid_density = _process_data.reference_solid_density(0, x_position)[0]; @@ -254,7 +254,7 @@ public: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition x_position; + ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp index c819806691ca022883bd20a5c9140e839e4bb153..8221e64e1c7f8f65046bd04b22b9564e856e32b3 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp @@ -24,7 +24,7 @@ template <int DisplacementDim> ThermoMechanicsProcess<DisplacementDim>::ThermoMechanicsProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h index 869e7e7e41cc8ed2c880e481448d067bdded7d13..9477ff3d14766584ed07d1795543993a574167df 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.h @@ -66,7 +66,8 @@ public: MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h index b6b90df54c520451ce0c1f7b8223dd8373894e80..f1dd907c12bd1c07a2890db57beba37fe563ab46 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h @@ -14,7 +14,7 @@ #include <Eigen/Eigen> -#include "ProcessLib/Parameter/Parameter.h" +#include "ParameterLib/Parameter.h" namespace MaterialLib { @@ -37,10 +37,11 @@ struct ThermoMechanicsProcessData std::unique_ptr< MaterialLib::Solids::MechanicsBase<DisplacementDim>>>&& solid_materials_, - Parameter<double> const& reference_solid_density_, - Parameter<double> const& linear_thermal_expansion_coefficient_, - Parameter<double> const& specific_heat_capacity_, - Parameter<double> const& thermal_conductivity_, + ParameterLib::Parameter<double> const& reference_solid_density_, + ParameterLib::Parameter<double> const& + linear_thermal_expansion_coefficient_, + ParameterLib::Parameter<double> const& specific_heat_capacity_, + ParameterLib::Parameter<double> const& thermal_conductivity_, Eigen::Matrix<double, DisplacementDim, 1> const& specific_body_force_) : material_ids(material_ids_), solid_materials{std::move(solid_materials_)}, @@ -72,10 +73,10 @@ struct ThermoMechanicsProcessData std::unique_ptr<MaterialLib::Solids::MechanicsBase<DisplacementDim>>> solid_materials; - Parameter<double> const& reference_solid_density; - Parameter<double> const& linear_thermal_expansion_coefficient; - Parameter<double> const& specific_heat_capacity; - Parameter<double> const& + ParameterLib::Parameter<double> const& reference_solid_density; + ParameterLib::Parameter<double> const& linear_thermal_expansion_coefficient; + ParameterLib::Parameter<double> const& specific_heat_capacity; + ParameterLib::Parameter<double> const& thermal_conductivity; // TODO To be changed as a matrix type variable. Eigen::Matrix<double, DisplacementDim, 1> const specific_body_force; double dt = 0; diff --git a/ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt b/ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt index 5b194400ac17e0cda531ce73db8b424c77ee175e..8196b7acf38ea1d9dedaa5b6f25276dab5504b47 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt +++ b/ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(TwoPhaseFlowWithPP ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS TwoPhaseFlowWithPP LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(TwoPhaseFlowWithPP PUBLIC ProcessLib) +target_link_libraries(TwoPhaseFlowWithPP + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.cpp index 990d7e062a97ed84634857f89e0dbe90ca7d8c78..51338f5c88ec99faf1ea857ca1880d3af9a058ea 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.cpp @@ -20,8 +20,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" #include "TwoPhaseFlowWithPPMaterialProperties.h" namespace ProcessLib @@ -32,7 +32,7 @@ std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties> createTwoPhaseFlowWithPPMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const* const material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Reading material properties of two-phase flow process."); diff --git a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.h index 4c76a9c9f18acd7402f48ba690d00af76413eacb..8ec223ff34d49c6764ecb494caae2238f5c70fb2 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPMaterialProperties.h @@ -24,7 +24,8 @@ std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties> createTwoPhaseFlowWithPPMaterialProperties( BaseLib::ConfigTree const& config, MeshLib::PropertyVector<int> const* const material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // end namespace } // namespace ProcessLib diff --git a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.cpp index d4395852be655d130733f5029c58d801f962c000..5b9d540019f168c9059e5e91b548dd26801fa24c 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.cpp @@ -10,8 +10,9 @@ #include <cassert> #include "MeshLib/MeshGenerators/MeshGenerator.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/Utils/ProcessUtils.h" #include "CreateTwoPhaseFlowWithPPMaterialProperties.h" @@ -26,7 +27,7 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, @@ -72,7 +73,7 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPPProcess( //! \ogs_file_param{prj__processes__process__TWOPHASE_FLOW_PP__mass_lumping} auto const mass_lumping = config.getConfigParameter<bool>("mass_lumping"); - auto& temperature = findParameter<double>( + auto& temperature = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_PP__temperature} "temperature", parameters, 1); diff --git a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.h b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.h index b54f71fc9fe4883f93dfe97a83fa640f6baa4398..f73dd488d1d89bafbe43e619c9df1c02854d1c3d 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.h +++ b/ProcessLib/TwoPhaseFlowWithPP/CreateTwoPhaseFlowWithPPProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h index 0b417f257f7e16eeda01547fe8c4432e37e6d0e1..c1f720dd8773b3790e1b6be57dd3e595dba14fb4 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h @@ -91,7 +91,7 @@ void TwoPhaseFlowWithPPLocalAssembler< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _process_data.material->getMaterialID(pos.getElementID().get()); diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler.h index 1a8803d8c2ec742ab6e28ead214b5e233ea9036d..f53a3aa7978734de42607446740917ac0ff90f1e 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler.h @@ -15,9 +15,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "TwoPhaseFlowWithPPMaterialProperties.h" diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp index d3bbc9dae0eed9a6de57b75edf62ee8bb8ae035a..eb5047f9c34a060e52748b047f2175f7f5db07e3 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.cpp @@ -20,8 +20,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" namespace ProcessLib { namespace TwoPhaseFlowWithPP @@ -122,7 +122,7 @@ double TwoPhaseFlowWithPPMaterialProperties::getGasViscosity( Eigen::MatrixXd const& TwoPhaseFlowWithPPMaterialProperties::getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const int /*dim*/) const + const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { return _intrinsic_permeability_models[material_id]->getValue(t, pos, 0.0, 0.0); @@ -130,21 +130,21 @@ Eigen::MatrixXd const& TwoPhaseFlowWithPPMaterialProperties::getPermeability( double TwoPhaseFlowWithPPMaterialProperties::getPorosity( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double /*p*/, + const ParameterLib::SpatialPosition& pos, const double /*p*/, const double T, const double porosity_variable) const { return _porosity_models[material_id]->getValue(t, pos, porosity_variable, T); } double TwoPhaseFlowWithPPMaterialProperties::getNonwetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[0]->getValue(saturation); } double TwoPhaseFlowWithPPMaterialProperties::getWetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[1]->getValue(saturation); @@ -152,14 +152,14 @@ double TwoPhaseFlowWithPPMaterialProperties::getWetRelativePermeability( double TwoPhaseFlowWithPPMaterialProperties::getSaturation( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double pc) const { return _capillary_pressure_models[material_id]->getSaturation(pc); } double TwoPhaseFlowWithPPMaterialProperties::getSaturationDerivative( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { const double dpcdsw = diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h index cbb231317b045df0165d5a398d1cb50b0d1f1122..21611b96e874b8aed804b0db71db16bd063f4c1d 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPMaterialProperties.h @@ -73,26 +73,25 @@ public: Eigen::MatrixXd const& getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const int dim) const; double getPorosity(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double porosity_variable) const; - double getNonwetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, - const double p, const double T, - const double saturation) const; + double getNonwetRelativePermeability( + const double t, const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double saturation) const; double getWetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getSaturation(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, - const double T, const double pc) const; + const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double pc) const; double getSaturationDerivative(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getLiquidDensity(const double p, const double T) const; diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp index fef16fc7939c0001ebeff98811108e285804cd1a..4c5152c1de04de15e2af5b40e105e7a687e80554 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp @@ -26,7 +26,7 @@ namespace TwoPhaseFlowWithPP TwoPhaseFlowWithPPProcess::TwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h index aa02ffce5b126ed2cbad2d4b2c8cf91af1f24b9a..849abea0464bef275f5b51563c50b83ad7bfdd40 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.h @@ -38,7 +38,8 @@ public: TwoPhaseFlowWithPPProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h index 4e903e9893c410b38275cfadf0c4c0ad12b30f91..3ef4873fba73f177708d8a7831613ff247f67d00 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h @@ -23,7 +23,7 @@ struct TwoPhaseFlowWithPPProcessData Eigen::VectorXd const specific_body_force_, bool const has_gravity_, bool const has_mass_lumping_, - Parameter<double> const& temperature_, + ParameterLib::Parameter<double> const& temperature_, std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties>&& material_) : specific_body_force(specific_body_force_), has_gravity(has_gravity_), @@ -62,7 +62,7 @@ struct TwoPhaseFlowWithPPProcessData //! Enables lumping of the mass matrix. bool const has_mass_lumping; - Parameter<double> const& temperature; + ParameterLib::Parameter<double> const& temperature; std::unique_ptr<TwoPhaseFlowWithPPMaterialProperties> material; }; diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt b/ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt index 0574fb24517a72c4a6f5883d311bd99062d08d62..ed415c5f7ddbaa20e1d0d60137db6ec0621570ea 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt +++ b/ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt @@ -4,6 +4,9 @@ add_library(TwoPhaseFlowWithPrho ${SOURCES}) if(BUILD_SHARED_LIBS) install(TARGETS TwoPhaseFlowWithPrho LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -target_link_libraries(TwoPhaseFlowWithPrho PUBLIC ProcessLib) +target_link_libraries(TwoPhaseFlowWithPrho + PUBLIC ProcessLib + PRIVATE ParameterLib +) include(Tests.cmake) diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.cpp index 92169a8af86ea2f70268514bd0555ebb8e38824b..6938db01c89e092461e076ffbd8a66dec287ddf6 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.cpp @@ -20,8 +20,8 @@ #include "MathLib/InterpolationAlgorithms/PiecewiseLinearInterpolation.h" #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" #include "TwoPhaseFlowWithPrhoMaterialProperties.h" namespace ProcessLib @@ -31,8 +31,9 @@ namespace TwoPhaseFlowWithPrho std::unique_ptr<TwoPhaseFlowWithPrhoMaterialProperties> createTwoPhaseFlowPrhoMaterialProperties( BaseLib::ConfigTree const& config, - boost::optional<MeshLib::PropertyVector<int> const&> material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters) + boost::optional<MeshLib::PropertyVector<int> const&> + material_ids, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters) { DBUG("Reading material properties of two-phase flow process."); diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.h index e1091706484cd4cfa447b16001489a4e5584a55a..976276ae2b5deccbf4a5b7dd71e37ad50ab724c7 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.h @@ -23,8 +23,10 @@ namespace TwoPhaseFlowWithPrho std::unique_ptr<TwoPhaseFlowWithPrhoMaterialProperties> createTwoPhaseFlowPrhoMaterialProperties( BaseLib::ConfigTree const& config, - boost::optional<MeshLib::PropertyVector<int> const&> material_ids, - std::vector<std::unique_ptr<ParameterBase>> const& parameters); + boost::optional<MeshLib::PropertyVector<int> const&> + material_ids, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters); } // end namespace } // namespace ProcessLib diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.cpp index d99cafe6698c46ab238a036b111e1b8cb6217b71..c738f92a20ebe5508a32957d0136c1d958b22d2b 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.cpp @@ -10,8 +10,9 @@ #include <cassert> #include "BaseLib/Functional.h" #include "MeshLib/MeshGenerators/MeshGenerator.h" +#include "ParameterLib/ConstantParameter.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" -#include "ProcessLib/Parameter/ConstantParameter.h" #include "ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowPrhoMaterialProperties.h" #include "ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -26,7 +27,7 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPrhoProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, @@ -72,15 +73,15 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPrhoProcess( //! \ogs_file_param{prj__processes__process__TWOPHASE_FLOW_PRHO__mass_lumping} auto const mass_lumping = config.getConfigParameter<bool>("mass_lumping"); // diffusion coeff - auto& diff_coeff_b = findParameter<double>( + auto& diff_coeff_b = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_PRHO__diffusion_coeff_component_b} "diffusion_coeff_component_b", parameters, 1); - auto& diff_coeff_a = findParameter<double>( + auto& diff_coeff_a = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_PRHO__diffusion_coeff_component_a} "diffusion_coeff_component_a", parameters, 1); - auto& temperature = findParameter<double>( + auto& temperature = ParameterLib::findParameter<double>( config, //! \ogs_file_param_special{prj__processes__process__TWOPHASE_FLOW_PRHO__temperature} "temperature", parameters, 1); diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.h b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.h index a3bae4de32f535342f402ab1372013c0de2dca13..38b796e9920db87d193c4fc4ce00a8b508e79084 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/CreateTwoPhaseFlowWithPrhoProcess.h @@ -20,7 +20,7 @@ std::unique_ptr<Process> createTwoPhaseFlowWithPrhoProcess( MeshLib::Mesh& mesh, std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler, std::vector<ProcessVariable> const& variables, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, BaseLib::ConfigTree const& config, std::map<std::string, diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler-impl.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler-impl.h index 126cda9130bc17bed5647f43d208f1b36d7d34a5..68c28da86ac8673596b2f83b25b82786af1a4369 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler-impl.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler-impl.h @@ -76,7 +76,7 @@ void TwoPhaseFlowWithPrhoLocalAssembler< unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - SpatialPosition pos; + ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); const int material_id = _process_data._material->getMaterialID(pos.getElementID().get()); diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler.h index bcadbaa67ea439c52e126528335e29d3b639dca2..a31f6134952d24ecb94ef89d3ed4adbf917c3085 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoLocalAssembler.h @@ -15,9 +15,9 @@ #include "NumLib/Extrapolation/ExtrapolatableElement.h" #include "NumLib/Fem/FiniteElement/TemplateIsoparametric.h" #include "NumLib/Fem/ShapeMatrixPolicy.h" +#include "ParameterLib/Parameter.h" #include "ProcessLib/LocalAssemblerInterface.h" #include "ProcessLib/LocalAssemblerTraits.h" -#include "ProcessLib/Parameter/Parameter.h" #include "ProcessLib/Utils/InitShapeMatrices.h" #include "TwoPhaseFlowWithPrhoProcessData.h" diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp index 42d4c975b41a78bc8be0888c22ac0d1b73752576..c361307d6407dd9a1216bddf2ebcf51037b78652 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.cpp @@ -21,8 +21,8 @@ #include "MeshLib/Mesh.h" #include "MeshLib/PropertyVector.h" #include "NumLib/NewtonRaphson.h" -#include "ProcessLib/Parameter/Parameter.h" -#include "ProcessLib/Parameter/SpatialPosition.h" +#include "ParameterLib/Parameter.h" +#include "ParameterLib/SpatialPosition.h" using MaterialLib::PhysicalConstant::MolarMass::H2; using MaterialLib::PhysicalConstant::IdealGasConstant; @@ -127,7 +127,7 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getGasViscosity( Eigen::MatrixXd const& TwoPhaseFlowWithPrhoMaterialProperties::getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const int /*dim*/) const + const ParameterLib::SpatialPosition& pos, const int /*dim*/) const { return _intrinsic_permeability_models[material_id]->getValue(t, pos, 0.0, 0.0); @@ -135,7 +135,7 @@ Eigen::MatrixXd const& TwoPhaseFlowWithPrhoMaterialProperties::getPermeability( double TwoPhaseFlowWithPrhoMaterialProperties::getPorosity( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double /*p*/, + const ParameterLib::SpatialPosition& pos, const double /*p*/, const double T, const double porosity_variable) const { return _porosity_models[material_id]->getValue(t, pos, porosity_variable, @@ -143,14 +143,14 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getPorosity( } double TwoPhaseFlowWithPrhoMaterialProperties::getNonwetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[0]->getValue(saturation); } double TwoPhaseFlowWithPrhoMaterialProperties::getWetRelativePermeability( - const double /*t*/, const ProcessLib::SpatialPosition& /*pos*/, + const double /*t*/, const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _relative_permeability_models[1]->getValue(saturation); @@ -158,7 +158,7 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getWetRelativePermeability( double TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressure( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _capillary_pressure_models[material_id]->getCapillaryPressure( @@ -167,7 +167,7 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressure( double TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressureDerivative( const int material_id, const double /*t*/, - const ProcessLib::SpatialPosition& /*pos*/, const double /*p*/, + const ParameterLib::SpatialPosition& /*pos*/, const double /*p*/, const double /*T*/, const double saturation) const { return _capillary_pressure_models[material_id]->getdPcdS(saturation); @@ -175,7 +175,7 @@ double TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressureDerivative( bool TwoPhaseFlowWithPrhoMaterialProperties::computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, int const material_id, double const pg, double const X, @@ -251,7 +251,7 @@ void TwoPhaseFlowWithPrhoMaterialProperties::calculateResidual( void TwoPhaseFlowWithPrhoMaterialProperties::calculateJacobian( const int material_id, double const /*t*/, - ProcessLib::SpatialPosition const& /*x*/, double const pl, + ParameterLib::SpatialPosition const& /*x*/, double const pl, double const /*X*/, double const T, JacobianMatrix& Jac, double Sw, double rho_h2_wet) { diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h index 855bf123db4061d2c3526ca395eb0a86094f1658..0fd323e75e99a5dab37fa9587820786d6a94ed42 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoMaterialProperties.h @@ -66,29 +66,28 @@ public: Eigen::MatrixXd const& getPermeability( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const int dim) const; double getPorosity(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double porosity_variable) const; - double getNonwetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, - const double p, const double T, - const double saturation) const; + double getNonwetRelativePermeability( + const double t, const ParameterLib::SpatialPosition& pos, + const double p, const double T, const double saturation) const; double getWetRelativePermeability(const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getCapillaryPressure(const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, + const ParameterLib::SpatialPosition& pos, const double p, const double T, const double saturation) const; double getCapillaryPressureDerivative( const int material_id, const double t, - const ProcessLib::SpatialPosition& pos, const double p, const double T, - const double saturation) const; + const ParameterLib::SpatialPosition& pos, const double p, + const double T, const double saturation) const; double getLiquidDensity(const double p, const double T) const; double getGasDensity(const double p, const double T) const; double getGasViscosity(const double p, const double T) const; @@ -96,7 +95,7 @@ public: double getDerivGasDensity(double const p, double const T) const; bool computeConstitutiveRelation( double const t, - ProcessLib::SpatialPosition const& x_position, + ParameterLib::SpatialPosition const& x_position, const int material_id, double const pg, double const X, @@ -151,7 +150,7 @@ private: * Calculates the Jacobian. */ void calculateJacobian(const int material_id, double const t, - ProcessLib::SpatialPosition const& x, + ParameterLib::SpatialPosition const& x, double const pl, double const X, double const T, JacobianMatrix& Jac, double Sw, double X_m); /** Complementary condition 1 diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp index c7edce1501694411527954fc6b5353978d50eb48..ad4e4c122bc4e3cf5f26253187ee648780d56346 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp @@ -26,7 +26,7 @@ namespace TwoPhaseFlowWithPrho TwoPhaseFlowWithPrhoProcess::TwoPhaseFlowWithPrhoProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h index a21372a31a1f85e692c2cf381fe7e8f3ee563470..9e622a4389bb4d20c902e54370097639c573420d 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.h @@ -36,7 +36,8 @@ public: TwoPhaseFlowWithPrhoProcess( MeshLib::Mesh& mesh, std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, + std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& + parameters, unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcessData.h b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcessData.h index 5e3c5bf312c4d78c63a66d65a35d19838d62f926..4d9e366a1a79e33a271a569e224669e28157e3b1 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcessData.h +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcessData.h @@ -24,9 +24,9 @@ struct TwoPhaseFlowWithPrhoProcessData Eigen::VectorXd const specific_body_force_, bool const has_gravity_, bool const has_mass_lumping_, - Parameter<double> const& diffusion_coeff_component_b_, - Parameter<double> const& diffusion_coeff_component_a_, - Parameter<double> const& temperature_, + ParameterLib::Parameter<double> const& diffusion_coeff_component_b_, + ParameterLib::Parameter<double> const& diffusion_coeff_component_a_, + ParameterLib::Parameter<double> const& temperature_, std::unique_ptr<TwoPhaseFlowWithPrhoMaterialProperties>&& material_) : _specific_body_force(specific_body_force_), _has_gravity(has_gravity_), @@ -63,9 +63,9 @@ struct TwoPhaseFlowWithPrhoProcessData bool const _has_gravity; bool const _has_mass_lumping; - Parameter<double> const& _diffusion_coeff_component_b; - Parameter<double> const& _diffusion_coeff_component_a; - Parameter<double> const& _temperature; + ParameterLib::Parameter<double> const& _diffusion_coeff_component_b; + ParameterLib::Parameter<double> const& _diffusion_coeff_component_a; + ParameterLib::Parameter<double> const& _temperature; std::unique_ptr<TwoPhaseFlowWithPrhoMaterialProperties> _material; }; diff --git a/ProcessLib/Utils/ProcessUtils.cpp b/ProcessLib/Utils/ProcessUtils.cpp index 67e35f1d64343ffbfd6fcbfa77f5a52edc2da7d8..8faaae6b87af161b51fc938a31b8ba21ccfce158 100644 --- a/ProcessLib/Utils/ProcessUtils.cpp +++ b/ProcessLib/Utils/ProcessUtils.cpp @@ -8,7 +8,8 @@ */ #include "ProcessUtils.h" -#include <iterator> + +#include "BaseLib/ConfigTree.h" #include "ProcessLib/ProcessVariable.h" namespace diff --git a/ProcessLib/Utils/ProcessUtils.h b/ProcessLib/Utils/ProcessUtils.h index db0c80256476acbc5eb5636c204f667c9b214672..d98b43aa7ef4d8bdad6539fda221335354f36cc8 100644 --- a/ProcessLib/Utils/ProcessUtils.h +++ b/ProcessLib/Utils/ProcessUtils.h @@ -9,15 +9,20 @@ #pragma once +#include <string> #include <vector> -#include "BaseLib/ConfigTree.h" -#include "BaseLib/Error.h" -#include "ProcessLib/Parameter/Parameter.h" +namespace BaseLib +{ +class ConfigTree; +} namespace ProcessLib { class ProcessVariable; +} +namespace ProcessLib +{ /// Find process variables in \c variables whose names match the settings under /// the given \c tag_names in the \c process_config. /// @@ -47,81 +52,4 @@ std::vector<std::reference_wrapper<ProcessVariable>> findProcessVariables( BaseLib::ConfigTree const& pv_config, std::string const& tag); -/// Find a parameter of specific type for a given name. -/// -/// \tparam ParameterDataType the data type of the parameter -/// \param parameter_name name of the requested parameter -/// \param parameters list of parameters in which it will be searched -/// \param num_components the number of components of the parameters or zero if -/// any number is acceptable -/// -/// \see The documentation of the other findParameter() function. -template <typename ParameterDataType> -Parameter<ParameterDataType>& findParameter( - std::string const& parameter_name, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, - int const num_components) -{ - // Find corresponding parameter by name. - auto const parameter_it = std::find_if( - parameters.cbegin(), parameters.cend(), - [¶meter_name](std::unique_ptr<ParameterBase> const& p) { - return p->name == parameter_name; - }); - - if (parameter_it == parameters.end()) { - OGS_FATAL( - "Could not find parameter `%s' in the provided parameters list.", - parameter_name.c_str()); - } - - DBUG("Found parameter `%s'.", (*parameter_it)->name.c_str()); - - // Check the type correctness of the found parameter. - auto* const parameter = - dynamic_cast<Parameter<ParameterDataType>*>(parameter_it->get()); - if (!parameter) { - OGS_FATAL("The read parameter `%s' is of incompatible type.", - parameter_name.c_str()); - } - - if (num_components != 0 && - parameter->getNumberOfComponents() != num_components) - { - OGS_FATAL( - "The read parameter `%s' has the wrong number of components (%lu " - "instead of %u).", - parameter_name.c_str(), parameter->getNumberOfComponents(), - num_components); - } - - return *parameter; -} - -/// Find a parameter of specific type for a name given in the process -/// configuration under the tag. -/// The parameter must have the specified number of components. -/// In the process config a parameter is referenced by a name. For example it -/// will be looking for a parameter named "K" in the list of parameters -/// when the tag is "hydraulic_conductivity": -/// \code -/// <process> -/// ... -/// <hydraulic_conductivity>K</hydraulic_conductivity> -/// </process> -/// \endcode -/// and return a reference to that parameter. Additionally it checks for the -/// type of the found parameter. -template <typename ParameterDataType> -Parameter<ParameterDataType>& findParameter( - BaseLib::ConfigTree const& process_config, std::string const& tag, - std::vector<std::unique_ptr<ParameterBase>> const& parameters, - int const num_components) -{ - // Find parameter name in process config. - //! \ogs_file_special - auto const name = process_config.getConfigParameter<std::string>(tag); - - return findParameter<ParameterDataType>(name, parameters, num_components); -} } // namespace ProcessLib diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 41f20990209c270754d06fd9774193af48aba5c8..5809f6e4c276f7ae1bc56cdc3518635f7c98dab6 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -16,6 +16,7 @@ APPEND_SOURCE_FILES(TEST_SOURCES MathLib) APPEND_SOURCE_FILES(TEST_SOURCES MeshLib) APPEND_SOURCE_FILES(TEST_SOURCES MeshGeoToolsLib) APPEND_SOURCE_FILES(TEST_SOURCES NumLib) +APPEND_SOURCE_FILES(TEST_SOURCES ParameterLib) APPEND_SOURCE_FILES(TEST_SOURCES ProcessLib) if(Qt5XmlPatterns_FOUND) @@ -44,6 +45,7 @@ target_link_libraries(testrunner MaterialLib MeshLib NumLib + ParameterLib ProcessLib Threads::Threads ${VTK_LIBRARIES} diff --git a/Tests/MaterialLib/TestFractureModels.cpp b/Tests/MaterialLib/TestFractureModels.cpp index 4c8c815642cc1384d0dd6ec2616d23b9451fd280..a33206d8f1d8c91781d75fb036f93b9255a70603 100644 --- a/Tests/MaterialLib/TestFractureModels.cpp +++ b/Tests/MaterialLib/TestFractureModels.cpp @@ -17,7 +17,7 @@ #include "MaterialLib/FractureModels/LinearElasticIsotropic.h" #include "MaterialLib/FractureModels/MohrCoulomb.h" -#include "ProcessLib/Parameter/ConstantParameter.h" +#include "ParameterLib/ConstantParameter.h" using namespace MaterialLib::Fracture; @@ -26,8 +26,8 @@ static const double eps_C = 1e10*1e-5; TEST(MaterialLib_Fracture, LinearElasticIsotropic) { - ProcessLib::ConstantParameter<double> const kn("", 1e11); - ProcessLib::ConstantParameter<double> const ks("", 1e9); + ParameterLib::ConstantParameter<double> const kn("", 1e11); + ParameterLib::ConstantParameter<double> const ks("", 1e9); LinearElasticIsotropic<2>::MaterialProperties const mp{kn, ks}; double const aperture0 = 1e-5; @@ -47,7 +47,7 @@ TEST(MaterialLib_Fracture, LinearElasticIsotropic) Eigen::Vector2d sigma; Eigen::Matrix2d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -73,11 +73,11 @@ TEST(MaterialLib_Fracture, LinearElasticIsotropic) TEST(MaterialLib_Fracture, MohrCoulomb2D_elastic) { - ProcessLib::ConstantParameter<double> const kn("", 1e11); - ProcessLib::ConstantParameter<double> const ks("", 1e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e16); + ParameterLib::ConstantParameter<double> const kn("", 1e11); + ParameterLib::ConstantParameter<double> const ks("", 1e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e16); MohrCoulomb<2>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1; @@ -96,7 +96,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_elastic) Eigen::Vector2d sigma; Eigen::Matrix2d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -121,11 +121,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_elastic) TEST(MaterialLib_Fracture, MohrCoulomb2D_negative_t) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<2>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -144,7 +144,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_negative_t) Eigen::Vector2d sigma; Eigen::Matrix2d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -160,11 +160,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_negative_t) TEST(MaterialLib_Fracture, MohrCoulomb2D_positive_t) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<2>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -183,7 +183,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_positive_t) Eigen::Vector2d sigma; Eigen::Matrix2d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -198,11 +198,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_positive_t) TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<3>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -221,7 +221,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1) Eigen::Vector3d sigma; Eigen::Matrix3d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -242,11 +242,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1) TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<3>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -265,7 +265,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1) Eigen::Vector3d sigma; Eigen::Matrix3d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -287,11 +287,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1) TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t2) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<3>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -310,7 +310,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t2) Eigen::Vector3d sigma; Eigen::Matrix3d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -332,11 +332,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t2) TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1t2) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<3>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -356,7 +356,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1t2) Eigen::Vector3d sigma; Eigen::Matrix3d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); @@ -378,11 +378,11 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1t2) TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1_positive_t2) { - ProcessLib::ConstantParameter<double> const kn("", 50e9); - ProcessLib::ConstantParameter<double> const ks("", 20e9); - ProcessLib::ConstantParameter<double> const phi("", 15); - ProcessLib::ConstantParameter<double> const psi("", 5); - ProcessLib::ConstantParameter<double> const c("", 3e6); + ParameterLib::ConstantParameter<double> const kn("", 50e9); + ParameterLib::ConstantParameter<double> const ks("", 20e9); + ParameterLib::ConstantParameter<double> const phi("", 15); + ParameterLib::ConstantParameter<double> const psi("", 5); + ParameterLib::ConstantParameter<double> const c("", 3e6); MohrCoulomb<3>::MaterialProperties const mp{kn, ks, phi, psi, c}; double const aperture0 = 1e-5; @@ -402,7 +402,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1_positive_t2) Eigen::Vector3d sigma; Eigen::Matrix3d C; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev, w, sigma_prev, sigma, C, *state); diff --git a/Tests/ProcessLib/TestParameter.cpp b/Tests/ParameterLib/Parameter.cpp similarity index 90% rename from Tests/ProcessLib/TestParameter.cpp rename to Tests/ParameterLib/Parameter.cpp index 05cd6e05659d13858f2fce221148adfdc9a08ddc..d9492fcc63f9ae438ed7a5e3df9378f3ab79f86a 100644 --- a/Tests/ProcessLib/TestParameter.cpp +++ b/Tests/ParameterLib/Parameter.cpp @@ -23,10 +23,10 @@ #include "MeshLib/Node.h" #include "MeshLib/PropertyVector.h" -#include "ProcessLib/Parameter/GroupBasedParameter.h" -#include "ProcessLib/Parameter/CurveScaledParameter.h" +#include "ParameterLib/CurveScaledParameter.h" +#include "ParameterLib/GroupBasedParameter.h" -using namespace ProcessLib; +using namespace ParameterLib; std::unique_ptr<Parameter<double>> constructParameterFromString( std::string const& xml, @@ -43,7 +43,7 @@ std::unique_ptr<Parameter<double>> constructParameterFromString( static_cast<Parameter<double>*>(parameter_base.release())); } -struct ProcessLibParameter : public ::testing::Test +struct ParameterLibParameter : public ::testing::Test { void SetUp() override { @@ -53,7 +53,7 @@ struct ProcessLibParameter : public ::testing::Test std::vector<std::unique_ptr<MeshLib::Mesh>> meshes; }; -TEST_F(ProcessLibParameter, GroupBasedParameterElement) +TEST_F(ParameterLibParameter, GroupBasedParameterElement) { std::vector<int> mat_ids({0, 1, 2, 3}); MeshLib::addPropertyToMesh(*meshes[0], "MaterialIDs", @@ -69,7 +69,7 @@ TEST_F(ProcessLibParameter, GroupBasedParameterElement) meshes); double t = 0; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; x.setElementID(0); ASSERT_EQ(0.0, (*parameter)(t, x)[0]); x.setElementID(1); @@ -78,10 +78,9 @@ TEST_F(ProcessLibParameter, GroupBasedParameterElement) ASSERT_ANY_THROW((*parameter)(t, x)); x.setElementID(3); ASSERT_EQ(300.0, (*parameter)(t, x)[0]); - } -TEST_F(ProcessLibParameter, GroupBasedParameterNode) +TEST_F(ParameterLibParameter, GroupBasedParameterNode) { std::vector<int> group_ids({0, 1, 2, 3, 4}); MeshLib::addPropertyToMesh(*meshes[0], "PointGroupIDs", @@ -97,7 +96,7 @@ TEST_F(ProcessLibParameter, GroupBasedParameterNode) meshes); double t = 0; - ProcessLib::SpatialPosition x; + ParameterLib::SpatialPosition x; x.setNodeID(0); ASSERT_EQ(0.0, (*parameter)(t, x)[0]); x.setNodeID(1); @@ -150,7 +149,7 @@ bool testNodalValuesOfElement( } // For all elements all nodes have a constant value. -TEST_F(ProcessLibParameter, GetNodalValuesOnElement_constant) +TEST_F(ParameterLibParameter, GetNodalValuesOnElement_constant) { auto const parameter = constructParameterFromString( "<name>parameter</name>" @@ -160,7 +159,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_constant) double const t = 0; auto expected_value = [](MeshLib::Element* const /*e*/, - std::size_t const /*local_node_id*/) { + std::size_t const /*local_node_id*/) { return 42.23; }; @@ -168,7 +167,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_constant) expected_value, *parameter, t)); } -TEST_F(ProcessLibParameter, GetNodalValuesOnElement_node) +TEST_F(ParameterLibParameter, GetNodalValuesOnElement_node) { std::vector<double> node_ids({0, 1, 2, 3, 4}); MeshLib::addPropertyToMesh(*meshes[0], "NodeIDs", @@ -184,7 +183,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_node) // For all elements all nodes have the value of the node id. auto expected_value = [](MeshLib::Element* const e, - std::size_t const local_node_id) { + std::size_t const local_node_id) { return static_cast<double>(e->getNode(local_node_id)->getID()); }; @@ -192,7 +191,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_node) expected_value, *parameter, t)); } -TEST_F(ProcessLibParameter, GetNodalValuesOnElement_element) +TEST_F(ParameterLibParameter, GetNodalValuesOnElement_element) { std::vector<double> element_ids({0, 1, 2, 3}); MeshLib::addPropertyToMesh(*meshes[0], "ElementIDs", @@ -216,7 +215,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_element) expected_value, *parameter, t)); } -TEST_F(ProcessLibParameter, GetNodalValuesOnElement_curveScaledNode) +TEST_F(ParameterLibParameter, GetNodalValuesOnElement_curveScaledNode) { std::vector<double> node_ids({0, 1, 2, 3, 4}); MeshLib::addPropertyToMesh(*meshes[0], "NodeIDs", @@ -249,7 +248,7 @@ TEST_F(ProcessLibParameter, GetNodalValuesOnElement_curveScaledNode) // For all elements all nodes have the value of the node id times the time. auto expected_value = [&t](MeshLib::Element* const e, - std::size_t const local_node_id) { + std::size_t const local_node_id) { return static_cast<double>(e->getNode(local_node_id)->getID()) * t; };