From 0607dc6ab37e83116a1078ba1c9ee815ec709089 Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Fri, 24 Jul 2020 08:36:23 +0200 Subject: [PATCH] [PL/HeatConduction] Use MPL for density. --- .../CreateHeatConductionProcess.cpp | 15 +++------------ ProcessLib/HeatConduction/HeatConductionFEM.h | 13 ++++++++++--- .../HeatConduction/HeatConductionProcessData.h | 8 -------- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp index 58eaa2fdee1..7a56153a0cb 100644 --- a/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/CreateHeatConductionProcess.cpp @@ -15,7 +15,6 @@ #include "MaterialLib/MPL/CheckMaterialSpatialDistributionMap.h" #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" -#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -29,7 +28,8 @@ void checkMPLProperties( { std::array const required_medium_properties = { MaterialPropertyLib::PropertyType::thermal_conductivity, - MaterialPropertyLib::PropertyType::heat_capacity}; + MaterialPropertyLib::PropertyType::heat_capacity, + MaterialPropertyLib::PropertyType::density}; std::array<MaterialPropertyLib::PropertyType, 0> const empty{}; MaterialPropertyLib::checkMaterialSpatialDistributionMap( @@ -71,20 +71,11 @@ std::unique_ptr<Process> createHeatConductionProcess( checkMPLProperties(mesh, *media_map); DBUG("Media properties verified."); - // density parameter. - auto& density = ParameterLib::findParameter<double>( - config, - //! \ogs_file_param_special{prj__processes__process__HEAT_CONDUCTION__density} - "density", parameters, 1, &mesh); - - DBUG("Use '{:s}' as density parameter.", density.name); - auto const mass_lumping = //! \ogs_file_param{prj__processes__process__HEAT_CONDUCTION__mass_lumping} config.getConfigParameter<bool>("mass_lumping", false); - HeatConductionProcessData process_data{std::move(media_map), density, - mass_lumping}; + HeatConductionProcessData process_data{std::move(media_map), mass_lumping}; SecondaryVariableCollection secondary_variables; diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h index 3b329edd883..dc676f52149 100644 --- a/ProcessLib/HeatConduction/HeatConductionFEM.h +++ b/ProcessLib/HeatConduction/HeatConductionFEM.h @@ -20,7 +20,6 @@ #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/Utils/InitShapeMatrices.h" @@ -140,7 +139,11 @@ public: .property( MaterialPropertyLib::PropertyType::heat_capacity) .template value<double>(vars, pos, t, dt); - auto const density = _process_data.density(t, pos)[0]; + auto const density = + medium + .property( + MaterialPropertyLib::PropertyType::density) + .template value<double>(vars, pos, t, dt); local_K.noalias() += sm.dNdx.transpose() * k * sm.dNdx * sm.detJ * wp.getWeight() * sm.integralMeasure; @@ -217,7 +220,11 @@ public: .property( MaterialPropertyLib::PropertyType::heat_capacity) .template value<double>(vars, pos, t, dt); - auto const density = _process_data.density(t, pos)[0]; + auto const density = + medium + .property( + MaterialPropertyLib::PropertyType::density) + .template value<double>(vars, pos, t, dt); laplace.noalias() += sm.dNdx.transpose() * k * sm.dNdx * w; storage.noalias() += diff --git a/ProcessLib/HeatConduction/HeatConductionProcessData.h b/ProcessLib/HeatConduction/HeatConductionProcessData.h index ca659475331..2caa26b65db 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcessData.h +++ b/ProcessLib/HeatConduction/HeatConductionProcessData.h @@ -13,12 +13,6 @@ #include <memory> #include "MaterialLib/MPL/MaterialSpatialDistributionMap.h" -namespace ParameterLib -{ -template <typename T> -struct Parameter; -} - namespace ProcessLib::HeatConduction { struct HeatConductionProcessData @@ -26,8 +20,6 @@ struct HeatConductionProcessData std::unique_ptr<MaterialPropertyLib::MaterialSpatialDistributionMap> media_map; - ParameterLib::Parameter<double> const& density; - /// If set mass lumping will be applied to the equation. bool const mass_lumping; }; -- GitLab