diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp index 35822e7f650f24c8a9dca23289918693ee3a4531..58eaa2fdee125031aa0a4e521ba180bb11020583 100644 --- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp @@ -28,7 +28,8 @@ void checkMPLProperties( MaterialPropertyLib::MaterialSpatialDistributionMap const& media_map) { std::array const required_medium_properties = { - MaterialPropertyLib::PropertyType::thermal_conductivity}; + MaterialPropertyLib::PropertyType::thermal_conductivity, + MaterialPropertyLib::PropertyType::heat_capacity}; std::array<MaterialPropertyLib::PropertyType, 0> const empty{}; MaterialPropertyLib::checkMaterialSpatialDistributionMap( @@ -70,14 +71,6 @@ std::unique_ptr<Process> createHeatConductionProcess( checkMPLProperties(mesh, *media_map); DBUG("Media properties verified."); - // heat capacity parameter. - auto& heat_capacity = ParameterLib::findParameter<double>( - config, - //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__heat_capacity} - "heat_capacity", parameters, 1, &mesh); - - DBUG("Use '{:s}' as heat capacity parameter.", heat_capacity.name); - // density parameter. auto& density = ParameterLib::findParameter<double>( config, @@ -90,8 +83,8 @@ std::unique_ptr<Process> createHeatConductionProcess( //! \ogs_file_param{prj__processes__process__HEAT_CONDUCTION__mass_lumping} config.getConfigParameter<bool>("mass_lumping", false); - HeatConductionProcessData process_data{std::move(media_map), heat_capacity, - density, mass_lumping}; + HeatConductionProcessData process_data{std::move(media_map), density, + mass_lumping}; SecondaryVariableCollection secondary_variables; diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h index 84b4147bd3bc47a45992fb7dcd5d5fdc1fd7d6b9..3b329edd883b72ff6de9e1c1127a5e8444864ea9 100644 --- a/ProcessLib/HeatConduction/HeatConductionFEM.h +++ b/ProcessLib/HeatConduction/HeatConductionFEM.h @@ -135,7 +135,11 @@ public: .property( MaterialPropertyLib::PropertyType::thermal_conductivity) .value(vars, pos, t, dt)); - auto const heat_capacity = _process_data.heat_capacity(t, pos)[0]; + auto const heat_capacity = + medium + .property( + MaterialPropertyLib::PropertyType::heat_capacity) + .template value<double>(vars, pos, t, dt); auto const density = _process_data.density(t, pos)[0]; local_K.noalias() += sm.dNdx.transpose() * k * sm.dNdx * sm.detJ * @@ -208,7 +212,11 @@ public: .property( MaterialPropertyLib::PropertyType::thermal_conductivity) .value(vars, pos, t, dt)); - auto const heat_capacity = _process_data.heat_capacity(t, pos)[0]; + auto const heat_capacity = + medium + .property( + MaterialPropertyLib::PropertyType::heat_capacity) + .template value<double>(vars, pos, t, dt); auto const density = _process_data.density(t, pos)[0]; laplace.noalias() += sm.dNdx.transpose() * k * sm.dNdx * w; diff --git a/ProcessLib/HeatConduction/HeatConductionProcessData.h b/ProcessLib/HeatConduction/HeatConductionProcessData.h index e201c923d7b477a000fec66bb54dee5d1a1cb450..ca6594753313a7259ad6fce7f816b22331062809 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcessData.h +++ b/ProcessLib/HeatConduction/HeatConductionProcessData.h @@ -26,7 +26,6 @@ struct HeatConductionProcessData std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> media_map; - ParameterLib::Parameter<double> const& heat_capacity; ParameterLib::Parameter<double> const& density; /// If set mass lumping will be applied to the equation.