diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index d62f564733d341a4225b3a8302a60a98f145583b..9f68e20397666fa72e310d66698f4a6f03de5155 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -18,7 +18,7 @@ #include "ProcessLib/Utils/ProcessUtils.h" #include "HTProcess.h" -#include "HTMaterialProperties.h" +#include "HTProcessData.h" #include "HTLocalAssemblerInterface.h" namespace ProcessLib @@ -139,7 +139,7 @@ std::unique_ptr<Process> createHTProcess( auto media_map = MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); - HTMaterialProperties material_properties{ + HTProcessData process_data{ std::move(media_map), has_fluid_thermal_expansion, *solid_thermal_expansion, *biot_constant, specific_body_force, has_gravity}; @@ -155,7 +155,7 @@ std::unique_ptr<Process> createHTProcess( return std::make_unique<HTProcess>( std::move(name), mesh, std::move(jacobian_assembler), parameters, integration_order, std::move(process_variables), - std::move(material_properties), std::move(secondary_variables), + std::move(process_data), std::move(secondary_variables), std::move(named_function_caller), use_monolithic_scheme, std::move(surfaceflux), _heat_transport_process_id, _hydraulic_process_id); diff --git a/ProcessLib/HT/HTFEM.h b/ProcessLib/HT/HTFEM.h index 27984d5db843b7c461e15a0bdae9ac61ed79614d..0e3c1084fd691141eaf45c8e240ddfbdd686cd56 100644 --- a/ProcessLib/HT/HTFEM.h +++ b/ProcessLib/HT/HTFEM.h @@ -12,7 +12,7 @@ #include <Eigen/Dense> #include <vector> -#include "HTMaterialProperties.h" +#include "HTProcessData.h" #include "MaterialLib/MPL/Medium.h" #include "MaterialLib/MPL/Utils/FormEigenTensor.h" @@ -50,11 +50,11 @@ public: std::size_t const local_matrix_size, bool const is_axially_symmetric, unsigned const integration_order, - HTMaterialProperties const& material_properties, + HTProcessData const& process_data, const unsigned dof_per_node) : HTLocalAssemblerInterface(), _element(element), - _material_properties(material_properties), + _process_data(process_data), _integration_method(integration_order) { // This assertion is valid only if all nodal d.o.f. use the same shape @@ -127,7 +127,7 @@ public: p_int_pt; auto const& medium = - *_material_properties.media_map->getMedium(_element.getID()); + *_process_data.media_map->getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); @@ -146,13 +146,13 @@ public: GlobalDimVectorType q = -K_over_mu * shape_matrices.dNdx * p_nodal_values; - if (this->_material_properties.has_gravity) + if (this->_process_data.has_gravity) { auto const rho_w = liquid_phase .property(MaterialPropertyLib::PropertyType::density) .template value<double>(vars); - auto const b = this->_material_properties.specific_body_force; + auto const b = this->_process_data.specific_body_force; q += K_over_mu * rho_w * b; } @@ -163,7 +163,7 @@ public: protected: MeshLib::Element const& _element; - HTMaterialProperties const& _material_properties; + HTProcessData const& _process_data; IntegrationMethod const _integration_method; std::vector< @@ -179,7 +179,7 @@ protected: const double specific_heat_capacity_fluid) { auto const& medium = - *_material_properties.media_map->getMedium(this->_element.getID()); + *_process_data.media_map->getMedium(this->_element.getID()); auto const& solid_phase = medium.phase("Solid"); auto const specific_heat_capacity_solid = @@ -202,7 +202,7 @@ protected: const GlobalDimVectorType& velocity, const GlobalDimMatrixType& I) { auto const& medium = - *_material_properties.media_map->getMedium(_element.getID()); + *_process_data.media_map->getMedium(_element.getID()); auto const& solid_phase = medium.phase("Solid"); auto const& liquid_phase = medium.phase("AqueousLiquid"); @@ -270,7 +270,7 @@ protected: &local_p[0], ShapeFunction::NPOINTS); auto const& medium = - *_material_properties.media_map->getMedium(_element.getID()); + *_process_data.media_map->getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); @@ -305,13 +305,13 @@ protected: cache_mat.col(ip).noalias() = -K_over_mu * dNdx * p_nodal_values; - if (_material_properties.has_gravity) + if (_process_data.has_gravity) { auto const rho_w = liquid_phase .property(MaterialPropertyLib::PropertyType::density) .template value<double>(vars); - auto const b = _material_properties.specific_body_force; + auto const b = _process_data.specific_body_force; // here it is assumed that the vector b is directed 'downwards' cache_mat.col(ip).noalias() += K_over_mu * rho_w * b; } diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp index a9074a8bae53be0499aaec91746619c050531997..2b06e55ba8a5c2e67c069ad01e03e8f37a526320 100644 --- a/ProcessLib/HT/HTProcess.cpp +++ b/ProcessLib/HT/HTProcess.cpp @@ -31,7 +31,7 @@ HTProcess::HTProcess( unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, - HTMaterialProperties&& material_properties, + HTProcessData&& process_data, SecondaryVariableCollection&& secondary_variables, NumLib::NamedFunctionCaller&& named_function_caller, bool const use_monolithic_scheme, @@ -42,7 +42,7 @@ HTProcess::HTProcess( integration_order, std::move(process_variables), std::move(secondary_variables), std::move(named_function_caller), use_monolithic_scheme), - _material_properties(std::move(material_properties)), + _process_data(std::move(process_data)), _surfaceflux(std::move(surfaceflux)), _heat_transport_process_id(heat_transport_process_id), _hydraulic_process_id(hydraulic_process_id) @@ -67,14 +67,14 @@ void HTProcess::initializeConcreteProcess( mesh.getDimension(), mesh.getElements(), dof_table, pv.getShapeFunctionOrder(), _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _material_properties); + _process_data); } else { ProcessLib::createLocalAssemblers<StaggeredHTFEM>( mesh.getDimension(), mesh.getElements(), dof_table, pv.getShapeFunctionOrder(), _local_assemblers, - mesh.isAxiallySymmetric(), integration_order, _material_properties, + mesh.isAxiallySymmetric(), integration_order, _process_data, _heat_transport_process_id, _hydraulic_process_id); } diff --git a/ProcessLib/HT/HTProcess.h b/ProcessLib/HT/HTProcess.h index b6dbe34253f9778c28b4b31de51ed98519758ec7..732b3f62b076181dbab80c4564c3e723b25fc228 100644 --- a/ProcessLib/HT/HTProcess.h +++ b/ProcessLib/HT/HTProcess.h @@ -11,7 +11,7 @@ #include <array> -#include "HTMaterialProperties.h" +#include "HTProcessData.h" #include "ProcessLib/Process.h" namespace NumLib @@ -59,7 +59,7 @@ public: unsigned const integration_order, std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&& process_variables, - HTMaterialProperties&& material_properties, + HTProcessData&& process_data, SecondaryVariableCollection&& secondary_variables, NumLib::NamedFunctionCaller&& named_function_caller, bool const use_monolithic_scheme, @@ -116,7 +116,7 @@ private: std::tuple<NumLib::LocalToGlobalIndexMap*, bool> getDOFTableForExtrapolatorData() const override; - HTMaterialProperties _material_properties; + HTProcessData _process_data; std::vector<std::unique_ptr<HTLocalAssemblerInterface>> _local_assemblers; diff --git a/ProcessLib/HT/HTMaterialProperties.h b/ProcessLib/HT/HTProcessData.h similarity index 91% rename from ProcessLib/HT/HTMaterialProperties.h rename to ProcessLib/HT/HTProcessData.h index 4503b3c3e1fa18dfc601b5badb6af53732b109b4..3ea19bbc09224549fbb2fbb53a04f9131ed3c1e0 100644 --- a/ProcessLib/HT/HTMaterialProperties.h +++ b/ProcessLib/HT/HTProcessData.h @@ -19,12 +19,9 @@ namespace ProcessLib { -template <typename ReturnType> -struct Parameter; - namespace HT { -struct HTMaterialProperties final +struct HTProcessData final { std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> media_map; diff --git a/ProcessLib/HT/MonolithicHTFEM.h b/ProcessLib/HT/MonolithicHTFEM.h index 9471fcdc260080ae61cdf7417d31fa02ca332f8a..6b992aad18af22f66d6dee2a0486029f34da233e 100644 --- a/ProcessLib/HT/MonolithicHTFEM.h +++ b/ProcessLib/HT/MonolithicHTFEM.h @@ -14,7 +14,7 @@ #include <Eigen/Dense> #include <vector> -#include "HTMaterialProperties.h" +#include "HTProcessData.h" #include "MaterialLib/MPL/Medium.h" #include "MaterialLib/MPL/Utils/FormEigenTensor.h" @@ -59,10 +59,10 @@ public: std::size_t const local_matrix_size, bool is_axially_symmetric, unsigned const integration_order, - HTMaterialProperties const& material_properties) + HTProcessData const& process_data) : HTFEM<ShapeFunction, IntegrationMethod, GlobalDim>( element, local_matrix_size, is_axially_symmetric, - integration_order, material_properties, NUM_NODAL_DOF) + integration_order, process_data, NUM_NODAL_DOF) { } @@ -99,7 +99,7 @@ public: auto p_nodal_values = Eigen::Map<const NodalVectorType>( &local_x[pressure_index], pressure_size); - auto const& process_data = this->_material_properties; + auto const& process_data = this->_process_data; auto const& medium = *process_data.media_map->getMedium(this->_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); diff --git a/ProcessLib/HT/StaggeredHTFEM-impl.h b/ProcessLib/HT/StaggeredHTFEM-impl.h index 90b380727ed715a13d62b1938c17d1d99cc86edc..bb937037c7a5b390cf9e607471b06b0e190fab1f 100644 --- a/ProcessLib/HT/StaggeredHTFEM-impl.h +++ b/ProcessLib/HT/StaggeredHTFEM-impl.h @@ -71,13 +71,13 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); - auto const& material_properties = this->_material_properties; - auto const& medium = *this->_material_properties.media_map->getMedium( + auto const& process_data = this->_process_data; + auto const& medium = *this->_process_data.media_map->getMedium( this->_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); - auto const& b = material_properties.specific_body_force; + auto const& b = process_data.specific_body_force; MaterialPropertyLib::VariableArray vars; @@ -142,13 +142,13 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: local_K.noalias() += w * dNdx.transpose() * K_over_mu * dNdx; - if (material_properties.has_gravity) + if (process_data.has_gravity) { local_b.noalias() += w * fluid_density * dNdx.transpose() * K_over_mu * b; } - if (!material_properties.has_fluid_thermal_expansion) + if (!process_data.has_fluid_thermal_expansion) { return; } @@ -156,7 +156,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: // Add the thermal expansion term { auto const solid_thermal_expansion = - material_properties.solid_thermal_expansion(t, pos)[0]; + process_data.solid_thermal_expansion(t, pos)[0]; const double dfluid_density_dT = liquid_phase .property(MaterialPropertyLib::PropertyType::density) @@ -165,7 +165,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: double T0_int_pt = 0.; NumLib::shapeFunctionInterpolate(local_T0, N, T0_int_pt); auto const biot_constant = - material_properties.biot_constant(t, pos)[0]; + process_data.biot_constant(t, pos)[0]; const double eff_thermal_expansion = 3.0 * (biot_constant - porosity) * solid_thermal_expansion - porosity * dfluid_density_dT / fluid_density; @@ -204,13 +204,13 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: ParameterLib::SpatialPosition pos; pos.setElementID(this->_element.getID()); - auto const& material_properties = this->_material_properties; + auto const& process_data = this->_process_data; auto const& medium = - *material_properties.media_map->getMedium(this->_element.getID()); + *process_data.media_map->getMedium(this->_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); - auto const& b = material_properties.specific_body_force; + auto const& b = process_data.specific_body_force; GlobalDimMatrixType const& I( GlobalDimMatrixType::Identity(GlobalDim, GlobalDim)); @@ -272,7 +272,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>:: GlobalDimMatrixType const K_over_mu = intrinsic_permeability / viscosity; GlobalDimVectorType const velocity = - material_properties.has_gravity + process_data.has_gravity ? GlobalDimVectorType(-K_over_mu * (dNdx * local_p_Eigen_type - fluid_density * b)) : GlobalDimVectorType(-K_over_mu * dNdx * local_p_Eigen_type); diff --git a/ProcessLib/HT/StaggeredHTFEM.h b/ProcessLib/HT/StaggeredHTFEM.h index 8a8c5e47baec5111d7c5922e524d1e304e4cea85..6c9d02e4605cf2ef03450373a29699e25bc5cc66 100644 --- a/ProcessLib/HT/StaggeredHTFEM.h +++ b/ProcessLib/HT/StaggeredHTFEM.h @@ -55,12 +55,12 @@ public: std::size_t const local_matrix_size, bool is_axially_symmetric, unsigned const integration_order, - HTMaterialProperties const& material_properties, + HTProcessData const& process_data, const int heat_transport_process_id, const int hydraulic_process_id) : HTFEM<ShapeFunction, IntegrationMethod, GlobalDim>( element, local_matrix_size, is_axially_symmetric, - integration_order, material_properties, 1), + integration_order, process_data, 1), _heat_transport_process_id(heat_transport_process_id), _hydraulic_process_id(hydraulic_process_id) {