From 892f5ccabe9b91b71d4268231331c759401b4647 Mon Sep 17 00:00:00 2001
From: renchao_lu <renchao.lu@gmail.com>
Date: Wed, 21 Apr 2021 17:21:04 +0200
Subject: [PATCH] [PL/CT] add tag "chemically induced porosity change".

---
 .../ComponentTransportProcessData.h           |  1 +
 .../CreateComponentTransportProcess.cpp       | 21 ++++++++++++-------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
index 6cd51d77049..e0527fbf63f 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcessData.h
@@ -38,6 +38,7 @@ struct ComponentTransportProcessData
     Eigen::VectorXd const specific_body_force;
     bool const has_gravity;
     bool const non_advective_form;
+    bool const chemically_induced_porosity_change;
     ChemistryLib::ChemicalSolverInterface* const chemical_solver_interface;
 
     const int hydraulic_process_id;
diff --git a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
index 4fc9bf55b24..427d5f892d8 100644
--- a/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
+++ b/ProcessLib/ComponentTransport/CreateComponentTransportProcess.cpp
@@ -216,6 +216,11 @@ std::unique_ptr<Process> createComponentTransportProcess(
         //! \ogs_file_param{prj__processes__process__ComponentTransport__non_advective_form}
         config.getConfigParameter<bool>("non_advective_form", false);
 
+    bool chemically_induced_porosity_change =
+        //! \ogs_file_param{prj__processes__process__ComponentTransport__chemically_induced_porosity_change}
+        config.getConfigParameter<bool>("chemically_induced_porosity_change",
+                                        false);
+
     auto media_map =
         MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh);
 
@@ -223,13 +228,15 @@ std::unique_ptr<Process> createComponentTransportProcess(
     checkMPLProperties(mesh, *media_map);
     DBUG("Media properties verified.");
 
-    ComponentTransportProcessData process_data{std::move(media_map),
-                                               specific_body_force,
-                                               has_gravity,
-                                               non_advective_form,
-                                               chemical_solver_interface.get(),
-                                               hydraulic_process_id,
-                                               first_transport_process_id};
+    ComponentTransportProcessData process_data{
+        std::move(media_map),
+        specific_body_force,
+        has_gravity,
+        non_advective_form,
+        chemically_induced_porosity_change,
+        chemical_solver_interface.get(),
+        hydraulic_process_id,
+        first_transport_process_id};
 
     SecondaryVariableCollection secondary_variables;
 
-- 
GitLab