From 1e38155c8b295a60aeb9a160794523a9f2dec891 Mon Sep 17 00:00:00 2001 From: renchao_lu <renchao.lu@gmail.com> Date: Fri, 23 Jul 2021 16:02:38 +0200 Subject: [PATCH] [PL/CT] store temperature field in process data. --- .../ComponentTransport/ComponentTransportProcessData.h | 4 ++++ .../ComponentTransport/CreateComponentTransportProcess.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h index c68d7b8c0d1..ad668b70d7e 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h +++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h @@ -15,6 +15,7 @@ #include "ChemistryLib/ChemicalSolverInterface.h" #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MathLib/LinAlg/Eigen/EigenMapTools.h" +#include "ParameterLib/Parameter.h" namespace MaterialPropertyLib { @@ -38,6 +39,9 @@ struct ComponentTransportProcessData Eigen::VectorXd const specific_body_force; bool const has_gravity; bool const non_advective_form; + /// This optional tag provides a simple means of considering the temperature + /// effect on the solute transport process. + ParameterLib::Parameter<double> const* const temperature; /** * When this optional tag is on, the feedback of chemical reactions on the * porosity will be counted. The change of porosity equals to the summation diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp index 427d5f892d8..a919428542d 100644 --- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp @@ -15,6 +15,7 @@ #include "ComponentTransportProcessData.h" #include "MaterialLib/MPL/CreateMaterialSpatialDistributionMap.h" #include "MeshLib/IO/readMeshFromFile.h" +#include "ParameterLib/Utils.h" #include "ProcessLib/Output/CreateSecondaryVariables.h" #include "ProcessLib/SurfaceFlux/SurfaceFluxData.h" #include "ProcessLib/Utils/ProcessUtils.h" @@ -221,6 +222,10 @@ std::unique_ptr<Process> createComponentTransportProcess( config.getConfigParameter<bool>("chemically_induced_porosity_change", false); + auto const temperature = ParameterLib::findOptionalTagParameter<double>( + //! \ogs_file_param_special{prj__processes__process__ComponentTransport__temperature_field} + config, "temperature_field", parameters, 1, &mesh); + auto media_map = MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh); @@ -233,6 +238,7 @@ std::unique_ptr<Process> createComponentTransportProcess( specific_body_force, has_gravity, non_advective_form, + temperature, chemically_induced_porosity_change, chemical_solver_interface.get(), hydraulic_process_id, -- GitLab