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