diff --git a/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.cpp b/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.cpp index e5b1651bfa1860ab2f4e976a8714e8684911db70..afa6cd7f8b0c05e4ce4cbbfb9ca8d4edcdae73e0 100644 --- a/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.cpp +++ b/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.cpp @@ -15,8 +15,7 @@ namespace MaterialPropertyLib { -std::unique_ptr<MaterialSpatialDistributionMap> -createMaterialSpatialDistributionMap( +MaterialSpatialDistributionMap createMaterialSpatialDistributionMap( std::map<int, std::shared_ptr<Medium>> const& media, MeshLib::Mesh const& mesh) { @@ -45,7 +44,6 @@ createMaterialSpatialDistributionMap( "in the mesh.", media.size(), max_material_id - 1); } - return std::make_unique<MaterialSpatialDistributionMap>(media, - material_ids); + return {media, material_ids}; } } // namespace MaterialPropertyLib diff --git a/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h b/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h index 05ed6b64b64c0d9cada0d59237393d3e5a1daa47..9f946d4b2a41d9af2b4045be2cb596afd70efdaa 100644 --- a/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h +++ b/MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h @@ -24,8 +24,7 @@ class MaterialSpatialDistributionMap; class Medium; -std::unique_ptr<MaterialSpatialDistributionMap> -createMaterialSpatialDistributionMap( +MaterialSpatialDistributionMap createMaterialSpatialDistributionMap( std::map<int, std::shared_ptr<Medium>> const& media, MeshLib::Mesh const& mesh); } // namespace MaterialPropertyLib diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h index ce87c55479b67c8868a12b721c8416632c6e0a23..6bfb29afcbcd14b7c600ffb973a10b29b25c7c6a 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h +++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h @@ -268,7 +268,7 @@ public: GlobalDim>(element, is_axially_symmetric, _integration_method); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { _ip_data.emplace_back( @@ -314,7 +314,7 @@ public: assert(_process_data.chemical_solver_interface); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); @@ -355,7 +355,7 @@ public: assert(_process_data.chemical_solver_interface); auto const& medium = - _process_data.media_map->getMedium(_element.getID()); + _process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; MaterialPropertyLib::VariableArray vars_prev; @@ -417,7 +417,7 @@ public: return; } - auto const& medium = *_process_data.media_map->getMedium(ele_id); + auto const& medium = *_process_data.media_map.getMedium(ele_id); ParameterLib::SpatialPosition pos; pos.setElementID(ele_id); @@ -566,7 +566,7 @@ public: // Get material properties auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); // Select the only valid for component transport liquid phase. auto const& phase = medium.phase("AqueousLiquid"); @@ -738,7 +738,7 @@ public: MaterialPropertyLib::VariableArray vars; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); auto const& component = phase.component( _transport_process_variables[component_id].get().getName()); @@ -822,7 +822,7 @@ public: .projected_specific_body_force_vectors[_element.getID()]; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; @@ -961,7 +961,7 @@ public: MaterialPropertyLib::VariableArray vars_prev; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); // Hydraulic process id is 0 and thus transport process id starts // from 1. @@ -1161,7 +1161,7 @@ public: .projected_specific_body_force_vectors[_element.getID()]; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; @@ -1283,7 +1283,7 @@ public: MaterialPropertyLib::VariableArray vars_prev; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); auto const& component = phase.component( _transport_process_variables[component_id].get().getName()); @@ -1409,7 +1409,7 @@ public: MaterialPropertyLib::VariableArray vars_prev; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const component_id = transport_process_id - 1; for (unsigned ip(0); ip < n_integration_points; ++ip) { @@ -1525,7 +1525,7 @@ public: MaterialPropertyLib::VariableArray vars; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); for (unsigned ip = 0; ip < n_integration_points; ++ip) @@ -1607,7 +1607,7 @@ public: MaterialPropertyLib::VariableArray vars; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); // local_x contains the local concentration and pressure values @@ -1676,7 +1676,7 @@ public: if (_process_data.chemically_induced_porosity_change) { - auto const& medium = *_process_data.media_map->getMedium(ele_id); + auto const& medium = *_process_data.media_map.getMedium(ele_id); for (auto& ip_data : _ip_data) { @@ -1748,7 +1748,7 @@ public: MaterialPropertyLib::VariableArray vars; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); int const component_id = 0; diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h index 173dbe584e7f1fff233c3c32104f9dbd5ff5d88d..7dadd0c9640a6069dc32ddec9fbcb964f3b4be3e 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h +++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h @@ -15,7 +15,7 @@ #include "ChemistryLib/ChemicalSolverInterface.h" #include "LookupTable.h" -#include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" #include "MathLib/LinAlg/Eigen/EigenMapTools.h" #include "NumLib/NumericalStability/NumericalStabilization.h" #include "ParameterLib/ConstantParameter.h" @@ -38,8 +38,7 @@ namespace ComponentTransport { struct ComponentTransportProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; bool const has_gravity; bool const non_advective_form; /// This optional tag provides a simple means of considering the temperature diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp index c203dab505108c0bc901c86f22b0c5864c099636..b0069d927c097a9c3460ff46b6d467003fb2056d 100644 --- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp @@ -235,7 +235,7 @@ std::unique_ptr<Process> createComponentTransportProcess( process_variables); DBUG("Check the media properties of ComponentTransport process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); auto stabilizer = NumLib::createNumericalStabilization(mesh, config); diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp index b5f0862f80f5c18747c112123bd58bd25f4efa58..59daec2658f077c51a9d70253aee0f518e0b754b 100644 --- a/ProcessLib/HT/CreateHTProcess.cpp +++ b/ProcessLib/HT/CreateHTProcess.cpp @@ -181,7 +181,7 @@ std::unique_ptr<Process> createHTProcess( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); DBUG("Check the media properties of HT process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); auto stabilizer = NumLib::createNumericalStabilization(mesh, config); diff --git a/ProcessLib/HT/HTFEM.h b/ProcessLib/HT/HTFEM.h index a34db67b82babf95dbb0209b17075999aa1a7e1b..36fb68354c4a21d8cbaffb29f55a7e742b7a6872 100644 --- a/ProcessLib/HT/HTFEM.h +++ b/ProcessLib/HT/HTFEM.h @@ -125,7 +125,7 @@ public: vars.phase_pressure = p_int_pt; auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); // TODO (naumov) Temporary value not used by current material models. @@ -181,7 +181,7 @@ protected: double const dt) { auto const& medium = - *_process_data.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 = @@ -206,7 +206,7 @@ protected: double const dt) { auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto thermal_conductivity = MaterialPropertyLib::formEigenTensor<GlobalDim>( @@ -267,7 +267,7 @@ protected: &local_p[0], ShapeFunction::NPOINTS); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); for (unsigned ip = 0; ip < n_integration_points; ++ip) diff --git a/ProcessLib/HT/HTProcessData.h b/ProcessLib/HT/HTProcessData.h index c76d32b7d126ba987dbc406c81f3dc0a469d4a60..cfa3662ec2d16ffb6a90d39b12518404eae2e983 100644 --- a/ProcessLib/HT/HTProcessData.h +++ b/ProcessLib/HT/HTProcessData.h @@ -11,7 +11,6 @@ #pragma once #include <Eigen/Core> -#include <memory> #include <utility> #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" @@ -25,8 +24,7 @@ namespace HT { struct HTProcessData final { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; bool const has_fluid_thermal_expansion; ParameterLib::Parameter<double> const& solid_thermal_expansion; ParameterLib::Parameter<double> const& biot_constant; diff --git a/ProcessLib/HT/MonolithicHTFEM.h b/ProcessLib/HT/MonolithicHTFEM.h index 40e6cb9e473e8e507f8e847cb31f85f7d9682b6d..42e632bd120a72a8b45ecb7867ac0ea0f201f6f3 100644 --- a/ProcessLib/HT/MonolithicHTFEM.h +++ b/ProcessLib/HT/MonolithicHTFEM.h @@ -104,7 +104,7 @@ public: &local_x[pressure_index], pressure_size); auto const& medium = - *process_data.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"); diff --git a/ProcessLib/HT/StaggeredHTFEM-impl.h b/ProcessLib/HT/StaggeredHTFEM-impl.h index 053e96b8359b6f48848beebd9add002118594a68..f123ad7411f32063efb9eb7e46464c987a16db8c 100644 --- a/ProcessLib/HT/StaggeredHTFEM-impl.h +++ b/ProcessLib/HT/StaggeredHTFEM-impl.h @@ -66,7 +66,7 @@ void StaggeredHTFEM<ShapeFunction, GlobalDim>::assembleHydraulicEquation( auto const& process_data = this->_process_data; auto const& medium = - *this->_process_data.media_map->getMedium(this->_element.getID()); + *this->_process_data.media_map.getMedium(this->_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); @@ -192,7 +192,7 @@ void StaggeredHTFEM<ShapeFunction, GlobalDim>::assembleHeatTransportEquation( auto const& process_data = this->_process_data; auto const& medium = - *process_data.media_map->getMedium(this->_element.getID()); + *process_data.media_map.getMedium(this->_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& b = diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp index d14037c3a52e663f986ba5b47dc5abdcdd99235f..03853c0a2e01989534f7ae782d6bbc29c3d5b561 100644 --- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp @@ -71,7 +71,7 @@ std::unique_ptr<Process> createHeatConductionProcess( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); DBUG("Check the media properties of heat conduction process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); /// \section parametersheatconduction Process Parameters diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h index 74cb85a0fce80308210aeaa1dcf56431c4c73e86..f364a3f5edcd3d49b51313ea6018726f29b041a0 100644 --- a/ProcessLib/HeatConduction/HeatConductionFEM.h +++ b/ProcessLib/HeatConduction/HeatConductionFEM.h @@ -102,7 +102,7 @@ public: _integration_method.getNumberOfPoints(); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -185,7 +185,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -260,7 +260,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; double const dt = std::numeric_limits<double>::quiet_NaN(); diff --git a/ProcessLib/HeatConduction/HeatConductionProcessData.h b/ProcessLib/HeatConduction/HeatConductionProcessData.h index 714ddf6c349a658a1d5d1c3158fd83daf8ff48a4..d14418b3f66d4a312d63cee72f639d4385d6318a 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcessData.h +++ b/ProcessLib/HeatConduction/HeatConductionProcessData.h @@ -10,15 +10,13 @@ #pragma once -#include <memory> #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" namespace ProcessLib::HeatConduction { struct HeatConductionProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// If set mass lumping will be applied to the equation. bool const mass_lumping; diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h index d8af776ae2ea97ba17420f77117d0602c096e402..1490d565760ec9a58eebdf8ec4b0f6d3735ea4b2 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcessData.h @@ -26,22 +26,20 @@ namespace ProcessLib::HeatTransportBHE struct HeatTransportBHEProcessData final { HeatTransportBHEProcessData( - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap>&& - media_map_, + MaterialPropertyLib::MaterialSpatialDistributionMap media_map_, std::vector<BHE::BHETypes>&& vec_BHEs_, BHEInflowPythonBoundaryConditionPythonSideInterface* py_bc_object_ = nullptr, const bool use_tespy = false, const bool use_server_communication = false) - : media_map(std::move(media_map_)), + : media_map(media_map_), _vec_BHE_property(std::move(vec_BHEs_)), py_bc_object(py_bc_object_), _use_tespy(use_tespy), _use_server_communication(use_server_communication) { } - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; std::vector<BHE::BHETypes> _vec_BHE_property; diff --git a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h index ab7aa2aaa59b5f87d49ed793ae65c02a6caa3718..9e2d23f7e294daf4dc3247d65cb76d9a92313cc2 100644 --- a/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h +++ b/ProcessLib/HeatTransportBHE/LocalAssemblers/HeatTransportBHELocalAssemblerSoil-impl.h @@ -85,7 +85,7 @@ void HeatTransportBHELocalAssemblerSoil<ShapeFunction>::assemble( ParameterLib::SpatialPosition pos; pos.setElementID(_element_id); - auto const& medium = *_process_data.media_map->getMedium(_element_id); + auto const& medium = *_process_data.media_map.getMedium(_element_id); auto const& solid_phase = medium.phase("Solid"); auto const& liquid_phase = medium.phase("AqueousLiquid"); diff --git a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp index 35dc9873386ec4764520693e8907529fb14d6108..a2fba3a9c577e8ea42198016d9151c585d019620 100644 --- a/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/CreateHydroMechanicsProcess.cpp @@ -216,8 +216,8 @@ std::unique_ptr<Process> createHydroMechanicsProcess( for (auto const& element_id : mesh.getElements() | MeshLib::views::ids) { - media_map->checkElementHasMedium(element_id); - auto const& medium = *media_map->getMedium(element_id); + media_map.checkElementHasMedium(element_id); + auto const& medium = *media_map.getMedium(element_id); checkRequiredProperties(medium, requiredMediumProperties); checkRequiredProperties(fluidPhase(medium), requiredFluidProperties); checkRequiredProperties(medium.phase("Solid"), requiredSolidProperties); diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h index 1fd0979fc1141c18986bf35fa924984e0d640322..ddde9d3d8abea83ebe4def8af86061d0e114a17d 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h @@ -182,7 +182,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, _integration_method.getNumberOfPoints(); auto const& b = _process_data.specific_body_force; - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& solid = medium->phase("Solid"); auto const& fluid = fluidPhase(*medium); MPL::VariableArray vars; @@ -408,7 +408,7 @@ std::vector<double> const& HydroMechanicsLocalAssembler< ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& fluid = fluidPhase(*medium); MPL::VariableArray vars; @@ -530,7 +530,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& fluid = fluidPhase(*medium); MPL::VariableArray vars; @@ -691,7 +691,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& solid = medium->phase("Solid"); auto const& fluid = fluidPhase(*medium); MPL::VariableArray vars; @@ -908,7 +908,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, x_position.setElementID(_element.getID()); auto const& medium = - _process_data.media_map->getMedium(_element.getID()); + _process_data.media_map.getMedium(_element.getID()); auto const T_ref = medium->property(MPL::PropertyType::reference_temperature) @@ -986,7 +986,7 @@ void HydroMechanicsLocalAssembler< _element.getID()); auto const& medium = - _process_data.media_map->getMedium(_element.getID()); + _process_data.media_map.getMedium(_element.getID()); MPL::VariableArray vars; auto const T_ref = @@ -1156,7 +1156,7 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - auto const& medium = _process_data.media_map->getMedium(elem_id); + auto const& medium = _process_data.media_map.getMedium(elem_id); MPL::VariableArray vars; SymmetricTensor k_sum = SymmetricTensor::Zero(KelvinVectorSize); diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h index 25a334af0c883eea8d596319a57d506498649c6f..6875355da40472e6310a54412b884ea2fcc0f19b 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcessData.h @@ -61,8 +61,7 @@ struct HydroMechanicsProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp index 3e6cd606ee719fd72ec81e31895539df37110a6c..7a2cd406b25b6a77771d44c34797be5a326ea4ea 100644 --- a/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp +++ b/ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp @@ -129,7 +129,7 @@ std::unique_ptr<Process> createLiquidFlowProcess( } DBUG("Check the media properties of LiquidFlow process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); auto const* aperture_size_parameter = &ParameterLib::findParameter<double>( diff --git a/ProcessLib/LiquidFlow/LiquidFlowData.h b/ProcessLib/LiquidFlow/LiquidFlowData.h index bf8a1bd327893875c4bcdf17f1f62ac1b8d2f4a9..b97982db23e4ebae1e26a50a6b7bb34ddc09c6eb 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowData.h +++ b/ProcessLib/LiquidFlow/LiquidFlowData.h @@ -11,23 +11,17 @@ #pragma once #include <Eigen/Core> -#include <memory> +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" #include "ParameterLib/Parameter.h" -namespace MaterialPropertyLib -{ -class MaterialSpatialDistributionMap; -} - namespace ProcessLib { namespace LiquidFlow { struct LiquidFlowData final { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// A vector of the rotation matrices for all elements. std::vector<Eigen::MatrixXd> const element_rotation_matrices; diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h index 3f74cb05240747707ec977bd9a1f497c4f6c2976..5f3bffe46f4b9cc90253f430ba3015c699878179 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h +++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h @@ -32,7 +32,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, GlobalDim>::assemble( ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; vars.temperature = medium[MaterialPropertyLib::PropertyType::reference_temperature] @@ -80,7 +80,7 @@ Eigen::Vector3d LiquidFlowLocalAssembler<ShapeFunction, GlobalDim>::getFlux( ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; @@ -130,7 +130,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, GlobalDim>:: ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; @@ -235,7 +235,7 @@ LiquidFlowLocalAssembler<ShapeFunction, GlobalDim>::getIntPtDarcyVelocity( ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; vars.temperature = medium[MaterialPropertyLib::PropertyType::reference_temperature] @@ -279,7 +279,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, GlobalDim>:: unsigned const n_integration_points = _integration_method.getNumberOfPoints(); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; diff --git a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp index 4af0e66b0a941fb8b63619e78d1b573bf5ab4f9e..aa3b3f844ab57d5c807cd677e836f1728eb1d7a0 100644 --- a/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp +++ b/ProcessLib/RichardsComponentTransport/CreateRichardsComponentTransportProcess.cpp @@ -152,7 +152,7 @@ std::unique_ptr<Process> createRichardsComponentTransportProcess( DBUG( "Check the media properties of RichardsComponentTransport process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); RichardsComponentTransportProcessData process_data{ diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h index 5ce660c1f865b773dbeece2a7209312a95491d32..84c7c86843b667143a60245b762cd973e487470b 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportFEM-impl.h @@ -94,7 +94,7 @@ void LocalAssemblerData<ShapeFunction, GlobalDim>::assemble( GlobalDimMatrixType::Identity(GlobalDim, GlobalDim)); // Get material properties - auto const& medium = *_process_data.media_map->getMedium(_element_id); + auto const& medium = *_process_data.media_map.getMedium(_element_id); auto const& phase = medium.phase("AqueousLiquid"); auto const& component = phase.component(_transport_process_variable.getName()); @@ -254,7 +254,7 @@ LocalAssemblerData<ShapeFunction, GlobalDim>::getIntPtDarcyVelocity( MaterialPropertyLib::VariableArray vars; // Get material properties - auto const& medium = *_process_data.media_map->getMedium(_element_id); + auto const& medium = *_process_data.media_map.getMedium(_element_id); auto const& phase = medium.phase("AqueousLiquid"); auto const p_nodal_values = Eigen::Map<const NodalVectorType>( @@ -329,7 +329,7 @@ LocalAssemblerData<ShapeFunction, GlobalDim>::getIntPtSaturation( MaterialPropertyLib::VariableArray vars; - auto const& medium = *_process_data.media_map->getMedium(_element_id); + auto const& medium = *_process_data.media_map.getMedium(_element_id); unsigned const n_integration_points = _integration_method.getNumberOfPoints(); diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h index 85448a28922c50b2e770d614a11d406942bd2fc9..420798de9d6c4f175d79fc2afd941c43d12213d3 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcessData.h @@ -11,12 +11,8 @@ #pragma once #include <Eigen/Core> -#include <memory> -namespace MaterialPropertyLib -{ -class MaterialSpatialDistributionMap; -} +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" namespace ProcessLib { @@ -24,8 +20,7 @@ namespace RichardsComponentTransport { struct RichardsComponentTransportProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; Eigen::VectorXd const specific_body_force; bool const has_gravity; }; diff --git a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp index 7b977846acd2cdce20e25d74ebc9b512ad92ccae..9a8b7d070583e62998ceb49a75a865f9a8f4f328 100644 --- a/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/CreateRichardsFlowProcess.cpp @@ -106,7 +106,7 @@ std::unique_ptr<Process> createRichardsFlowProcess( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); DBUG("Check the media properties of RichardsFlow process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); RichardsFlowProcessData process_data{ diff --git a/ProcessLib/RichardsFlow/RichardsFlowFEM.h b/ProcessLib/RichardsFlow/RichardsFlowFEM.h index 846d6f9c3ea50f1c196e47d99bbd8ea7a7452557..270863bcef7f6fa4bc47ab308297f3a2a5018e6d 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowFEM.h +++ b/ProcessLib/RichardsFlow/RichardsFlowFEM.h @@ -158,7 +158,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; vars.temperature = @@ -290,7 +290,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); MaterialPropertyLib::VariableArray vars; diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h index 95d2fb5aab2091976cc7114f798584eaca3dd33b..6075b7a50fe8160a05a1706d965450aba24561a4 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcessData.h +++ b/ProcessLib/RichardsFlow/RichardsFlowProcessData.h @@ -10,12 +10,9 @@ #pragma once -#include <memory> +#include <Eigen/Core> -namespace MaterialPropertyLib -{ -class MaterialSpatialDistributionMap; -} +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" namespace ProcessLib { @@ -23,8 +20,7 @@ namespace RichardsFlow { struct RichardsFlowProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; Eigen::VectorXd const specific_body_force; bool const has_gravity; bool const has_mass_lumping; diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h index c6f55bb5bfa8e4e5f7dd07d144d32da8a97fe724..73ffda62eb70a2aef19d976cf9f7e6d6014549dc 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h @@ -149,7 +149,7 @@ RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, _process_data.solid_materials, _process_data.material_ids, e.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); @@ -293,7 +293,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, pressure_size); constexpr double dt = std::numeric_limits<double>::quiet_NaN(); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); MPL::VariableArray variables; ParameterLib::SpatialPosition x_position; @@ -406,7 +406,7 @@ void RichardsMechanicsLocalAssembler< MathLib::KelvinVector::kelvin_vector_dimensions( DisplacementDim)>::identity2; - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium->phase("AqueousLiquid"); auto const& solid_phase = medium->phase("Solid"); MPL::VariableArray variables; @@ -760,7 +760,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, pressure_size, displacement_size>::Zero(pressure_size, displacement_size); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium->phase("AqueousLiquid"); auto const& solid_phase = medium->phase("Solid"); MPL::VariableArray variables; @@ -1530,7 +1530,7 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, MathLib::KelvinVector::kelvin_vector_dimensions( DisplacementDim)>::identity2; - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium->phase("AqueousLiquid"); auto const& solid_phase = medium->phase("Solid"); MPL::VariableArray variables; diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h index bf7c803f2692ea83ff94fbc13ebcc073c86ddb33..91def3102e4f20987f13d4d1a039d148585a910f 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcessData.h @@ -35,8 +35,7 @@ struct RichardsMechanicsProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index 759173f8400a2c4cba384f5abff1037ed9fbadfd..d69d1ac738d70dd1ff18abe5ed08935912ae5029 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -274,7 +274,7 @@ public: ip_data) const { auto const& solid_phase = - this->_process_data.media_map->getMedium(this->_element.getID()) + this->_process_data.media_map.getMedium(this->_element.getID()) ->phase("Solid"); MPL::VariableArray variables_prev; diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h index 806df330aaa728f9b314a694d4387edd564ba7d5..fce0cdc1bd4e09f7bf431794c77ea3bd5c68eb9f 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcessData.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcessData.h @@ -34,8 +34,7 @@ struct SmallDeformationProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; std::map< int, diff --git a/ProcessLib/SteadyStateDiffusion/CreateSteadyStateDiffusion.cpp b/ProcessLib/SteadyStateDiffusion/CreateSteadyStateDiffusion.cpp index 51a1facba0b7a1646e835791fa5a8880e920f869..dcd84ce209d7115978bd447edb2893fafcff2483 100644 --- a/ProcessLib/SteadyStateDiffusion/CreateSteadyStateDiffusion.cpp +++ b/ProcessLib/SteadyStateDiffusion/CreateSteadyStateDiffusion.cpp @@ -72,7 +72,7 @@ std::unique_ptr<Process> createSteadyStateDiffusion( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); DBUG("Check the media properties of steady state diffusion process ..."); - checkMPLProperties(mesh, *media_map); + checkMPLProperties(mesh, media_map); DBUG("Media properties verified."); SteadyStateDiffusionData process_data{std::move(media_map)}; diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionData.h b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionData.h index a7b2f2e55c8fa0c1fc9664ed1eda012b0249af35..74cc2fc1c622264765bffdd88219acd9419cdc89 100644 --- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionData.h +++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionData.h @@ -23,8 +23,7 @@ namespace SteadyStateDiffusion { struct SteadyStateDiffusionData final { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; }; } // namespace SteadyStateDiffusion diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionFEM.h b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionFEM.h index e48ebc875c8322db98a12e16d65e26f20af58b05..7de0fc8991dafecacf22875aa47bcbd093325ef5 100644 --- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionFEM.h +++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusionFEM.h @@ -100,7 +100,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; vars.temperature = medium @@ -149,7 +149,7 @@ public: ParameterLib::SpatialPosition pos; pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; vars.temperature = @@ -213,7 +213,7 @@ public: pos.setElementID(_element.getID()); auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); MaterialPropertyLib::VariableArray vars; vars.temperature = diff --git a/ProcessLib/StokesFlow/CreateStokesFlowProcess.cpp b/ProcessLib/StokesFlow/CreateStokesFlowProcess.cpp index 90264123151898959c5c609fdebb3a180e54cf3e..3c0d7f4eb79f493252696fa2827be934c2e794eb 100644 --- a/ProcessLib/StokesFlow/CreateStokesFlowProcess.cpp +++ b/ProcessLib/StokesFlow/CreateStokesFlowProcess.cpp @@ -147,7 +147,7 @@ std::unique_ptr<Process> createStokesFlowProcess( MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); DBUG("Check the media properties of StokesFlow process ..."); - checkMPLProperties(mesh, *media_map, use_stokes_brinkman_form); + checkMPLProperties(mesh, media_map, use_stokes_brinkman_form); DBUG("Media properties verified."); StokesFlowProcessData process_data{std::move(media_map), diff --git a/ProcessLib/StokesFlow/StokesFlowFEM.h b/ProcessLib/StokesFlow/StokesFlowFEM.h index 1d02dfbf934e2f533c293c88cf02ce2450797177..22100998ab10cf3ec0ca5e3cba89dc9dd2e36610 100644 --- a/ProcessLib/StokesFlow/StokesFlowFEM.h +++ b/ProcessLib/StokesFlow/StokesFlowFEM.h @@ -166,7 +166,7 @@ public: // Get material properties auto const& medium = - *_process_data.media_map->getMedium(_element.getID()); + *_process_data.media_map.getMedium(_element.getID()); auto const& phase = medium.phase("AqueousLiquid"); for (unsigned ip(0); ip < n_integration_points; ++ip) diff --git a/ProcessLib/StokesFlow/StokesFlowProcessData.h b/ProcessLib/StokesFlow/StokesFlowProcessData.h index 2e3f392bfaf23ca5ad1e1c661eb1c81fd9daffe3..83aa52c49a736bbdb63b3e0b2301568eda88ace2 100644 --- a/ProcessLib/StokesFlow/StokesFlowProcessData.h +++ b/ProcessLib/StokesFlow/StokesFlowProcessData.h @@ -11,23 +11,16 @@ #pragma once #include <Eigen/Core> -#include <memory> #include "MeshLib/PropertyVector.h" -namespace MaterialPropertyLib -{ -class MaterialSpatialDistributionMap; -} - namespace ProcessLib { namespace StokesFlow { struct StokesFlowProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// an external force that applies in the bulk of the fluid, like gravity. Eigen::VectorXd const specific_body_force; diff --git a/ProcessLib/TH2M/TH2MFEM-impl.h b/ProcessLib/TH2M/TH2MFEM-impl.h index 03b9175f78794b845c9a530ecd2129c0da9d2e30..930b4a23b6ff04553d75eb90af3c9993658bbd5a 100644 --- a/ProcessLib/TH2M/TH2MFEM-impl.h +++ b/ProcessLib/TH2M/TH2MFEM-impl.h @@ -113,7 +113,7 @@ std::vector<ConstitutiveVariables<DisplacementDim>> TH2MLocalAssembler< auto const displacement = local_x.template segment<displacement_size>(displacement_index); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& gas_phase = medium.phase("Gas"); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); @@ -942,7 +942,7 @@ void TH2MLocalAssembler<ShapeFunctionDisplacement, ShapeFunctionPressure, local_x.template segment<temperature_size>(temperature_index); constexpr double dt = std::numeric_limits<double>::quiet_NaN(); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& solid_phase = medium.phase("Solid"); unsigned const n_integration_points = diff --git a/ProcessLib/TH2M/TH2MProcessData.h b/ProcessLib/TH2M/TH2MProcessData.h index e3c8da8d1fd9c991ceeb0abb985baaab7c951a4e..d1faea0402b62ab6f9814d67adb00f471e137770 100644 --- a/ProcessLib/TH2M/TH2MProcessData.h +++ b/ProcessLib/TH2M/TH2MProcessData.h @@ -28,8 +28,7 @@ struct TH2MProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h index fd2371eaa967fb5a3c7b247443a193340144d0d7..5febeba6387fc33ff6b53c58134d111317c6416f 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPLocalAssembler-impl.h @@ -170,7 +170,7 @@ void ThermalTwoPhaseFlowWithPPLocalAssembler<ShapeFunction, GlobalDim>:: vars.phase_pressure = pg_int_pt; auto const& medium = - *_process_data.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& gas_phase = medium.phase("Gas"); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h index 14e478a676f6125807e8161365c20c74e3784562..ee6867a4de5d16946061e2a8d65f84db7498a228 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcessData.h @@ -21,8 +21,7 @@ namespace ThermalTwoPhaseFlowWithPP { struct ThermalTwoPhaseFlowWithPPProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; Eigen::VectorXd const specific_body_force; bool const has_gravity; diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h index 995a2e9452c2d1591de87e34b613977c0be149aa..5993811df26ea7b3e975a4068456b87c2b81bab6 100644 --- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h +++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM-impl.h @@ -71,7 +71,7 @@ ThermoHydroMechanicsLocalAssembler<ShapeFunctionDisplacement, // Consistency check: if frozen liquid phase is given, then the constitutive // relation for ice must also be given, and vice versa. - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); if (medium->hasPhase("FrozenLiquid") != (_process_data.ice_constitutive_relation != nullptr)) { @@ -166,7 +166,7 @@ ConstitutiveRelationsValues<DisplacementDim> ThermoHydroMechanicsLocalAssembler< _process_data.solid_materials, _process_data.material_ids, _element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium->phase("AqueousLiquid"); auto const& solid_phase = medium->phase("Solid"); auto* const frozen_liquid_phase = medium->hasPhase("FrozenLiquid") @@ -528,7 +528,7 @@ void ThermoHydroMechanicsLocalAssembler< Kup; Kup.setZero(displacement_size, pressure_size); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); bool const has_frozen_liquid_phase = medium->hasPhase("FrozenLiquid"); unsigned const n_integration_points = diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h index 1cd5de077f16cc69bd35d8618e5ec12958c27bfa..9dcecc5dfcf7016ab2eeba39e14ac8afc5b1b50b 100644 --- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h +++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcessData.h @@ -35,8 +35,7 @@ struct ThermoHydroMechanicsProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h index d188ac47300fd51610d2a0808cd1416d6c428322..921e27dd20b6ae87c670aaa981f898659c381229 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM-impl.h @@ -162,7 +162,7 @@ void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>:: ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& solid_phase = medium->phase("Solid"); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -382,7 +382,7 @@ void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>:: MPL::VariableArray variables_prev; ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& solid_phase = medium->phase("Solid"); for (unsigned ip = 0; ip < n_integration_points; ip++) @@ -520,7 +520,7 @@ void ThermoMechanicsLocalAssembler<ShapeFunction, DisplacementDim>:: ParameterLib::SpatialPosition x_position; x_position.setElementID(_element.getID()); - auto const& medium = _process_data.media_map->getMedium(_element.getID()); + auto const& medium = _process_data.media_map.getMedium(_element.getID()); auto const& solid_phase = medium->phase("Solid"); MPL::VariableArray variables; diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h b/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h index 2a284319889234410bb5ea18f2de9691d87e4bbf..8b12f7d0f255e35355693e5bab36f8dbb542d349 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcessData.h @@ -34,8 +34,7 @@ struct ThermoMechanicsProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h index e353ec4515b38e2477e375c4f1830e8e982f6db4..7f301cab832c0349515bf7a7df52045c0d48303c 100644 --- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h +++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowFEM-impl.h @@ -52,7 +52,7 @@ ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>:: NumLib::initShapeMatrices<ShapeFunction, ShapeMatricesType, GlobalDim>( e, is_axially_symmetric, _integration_method); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { @@ -120,7 +120,7 @@ void ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>:: typename ShapeMatricesType::template VectorType<pressure_size> const>( local_x.data() + pressure_index, pressure_size); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); MPL::VariableArray variables; unsigned const n_integration_points = @@ -219,7 +219,7 @@ void ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>:: typename ShapeMatricesType::NodalMatrixType storage_p_a_S = ShapeMatricesType::NodalMatrixType::Zero(pressure_size, pressure_size); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); MPL::Phase const* gas_phase = @@ -717,7 +717,7 @@ void ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>::assemble( typename ShapeMatricesType::template VectorType<local_matrix_dim>>( local_rhs_data, local_matrix_dim); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); MPL::Phase const* gas_phase = @@ -1207,7 +1207,7 @@ void ThermoRichardsFlowLocalAssembler<ShapeFunction, GlobalDim>:: auto p_L_prev = local_x_prev.template segment<pressure_size>(pressure_index); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& solid_phase = medium.phase("Solid"); MPL::VariableArray variables; diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h index 3d5d9cd7c956b3ee38d874240072052844b9763c..9605af559500a3dc54c38f0d9c3555530f631aeb 100644 --- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h +++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcessData.h @@ -13,6 +13,8 @@ #include <Eigen/Core> #include <memory> +#include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" + namespace ProcessLib { namespace ThermoRichardsFlow @@ -21,19 +23,13 @@ struct SimplifiedElasticityModel; } } -namespace MaterialPropertyLib -{ -class MaterialSpatialDistributionMap; -} - namespace ProcessLib { namespace ThermoRichardsFlow { struct ThermoRichardsFlowProcessData { - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// Specific body forces applied to solid and fluid. /// It is usually used to apply gravitational forces. diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h index fca55c74931c5cb34208ef2c8ba6bb5277c2db90..2a44d66ca82e727e8eb01520ade41d6f3ec0c9fd 100644 --- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h +++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h @@ -101,7 +101,7 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, constexpr double dt = std::numeric_limits<double>::quiet_NaN(); auto const& medium = - this->process_data_.media_map->getMedium(this->element_.getID()); + this->process_data_.media_map.getMedium(this->element_.getID()); MPL::VariableArray variables; auto const& solid_phase = medium->phase("Solid"); @@ -167,7 +167,7 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, std::vector<double>& local_Jac_data) { auto& medium = - *this->process_data_.media_map->getMedium(this->element_.getID()); + *this->process_data_.media_map.getMedium(this->element_.getID()); LocalMatrices loc_mat; loc_mat.setZero(); @@ -459,7 +459,7 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, auto const e_id = this->element_.getID(); auto const& process_data = this->process_data_; - auto& medium = *process_data.media_map->getMedium(e_id); + auto& medium = *process_data.media_map.getMedium(e_id); unsigned const n_integration_points = this->integration_method_.getNumberOfPoints(); diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h index 48af81481098ede6be26d02c6f6d653b6f5bc883..5da3af91f0a17f72e48715834717f813324ad352 100644 --- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h +++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h @@ -277,7 +277,7 @@ public: this->integration_method_.getNumberOfPoints(); auto const time_independent = std::numeric_limits<double>::quiet_NaN(); auto const& medium = - *this->process_data_.media_map->getMedium(this->element_.getID()); + *this->process_data_.media_map.getMedium(this->element_.getID()); for (unsigned ip = 0; ip < n_integration_points; ip++) { diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h index 60648ebf4c8925537e0f95af11042060415c52dd..cbf21df32cc25ac2473f39f57115bd948cea15a6 100644 --- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h +++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h @@ -26,8 +26,7 @@ struct ThermoRichardsMechanicsProcessData { MeshLib::PropertyVector<int> const* const material_ids = nullptr; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map = nullptr; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; /// The constitutive relation for the mechanical part. std::map<int, std::unique_ptr< diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h index e3239bf3fc24bf4f7ffe869ae4ad9aa8b35b502c..370176a434843222df5b061c7c59a39f0bc7fa94 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPLocalAssembler-impl.h @@ -88,7 +88,7 @@ void TwoPhaseFlowWithPPLocalAssembler<ShapeFunction, GlobalDim>::assemble( auto Bl = local_b.template segment<cap_pressure_size>(cap_pressure_matrix_index); - auto const& medium = *_process_data.media_map->getMedium(_element.getID()); + auto const& medium = *_process_data.media_map.getMedium(_element.getID()); auto const& liquid_phase = medium.phase("AqueousLiquid"); auto const& gas_phase = medium.phase("Gas"); diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h index 074b0d730ff886ac0326c39fb3d628ca238256f4..2e3cfce55534b39d1cc3e0eea16c17bfa901ea8f 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcessData.h @@ -30,8 +30,7 @@ struct TwoPhaseFlowWithPPProcessData //! Enables lumping of the mass matrix. bool const has_mass_lumping; ParameterLib::Parameter<double> const& temperature; - std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> - media_map; + MaterialPropertyLib::MaterialSpatialDistributionMap media_map; }; } // namespace TwoPhaseFlowWithPP