From 4500826b5f1fba8c3c9e8f76c21b2e9b0640d376 Mon Sep 17 00:00:00 2001
From: renchao_lu <renchao.lu@gmail.com>
Date: Wed, 5 May 2021 11:28:33 +0200
Subject: [PATCH] [CL] pass medium by reference.

---
 ChemistryLib/ChemicalSolverInterface.h        |  4 +--
 ChemistryLib/PhreeqcIO.cpp                    | 25 ++++++++++---------
 ChemistryLib/PhreeqcIO.h                      |  4 +--
 .../ComponentTransportFEM.h                   |  3 ++-
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/ChemistryLib/ChemicalSolverInterface.h b/ChemistryLib/ChemicalSolverInterface.h
index 50a123cf0a3..8596a872138 100644
--- a/ChemistryLib/ChemicalSolverInterface.h
+++ b/ChemistryLib/ChemicalSolverInterface.h
@@ -61,7 +61,7 @@ public:
 
     virtual void updateVolumeFractionPostReaction(
         GlobalIndexType const& /*chemical_system_id*/,
-        MaterialPropertyLib::Medium const* /*medium*/,
+        MaterialPropertyLib::Medium const& /*medium*/,
         ParameterLib::SpatialPosition const& /*pos*/, double const /*porosity*/,
         double const /*t*/, double const /*dt*/)
     {
@@ -69,7 +69,7 @@ public:
 
     virtual void updatePorosityPostReaction(
         GlobalIndexType const& /*chemical_system_id*/,
-        MaterialPropertyLib::Medium const* /*medium*/,
+        MaterialPropertyLib::Medium const& /*medium*/,
         double& /*porosity*/)
     {
     }
diff --git a/ChemistryLib/PhreeqcIO.cpp b/ChemistryLib/PhreeqcIO.cpp
index 82eee906451..bbfe76aaf01 100644
--- a/ChemistryLib/PhreeqcIO.cpp
+++ b/ChemistryLib/PhreeqcIO.cpp
@@ -167,13 +167,14 @@ void setReactantMolality(Reactant& reactant,
 
 template <typename Reactant>
 void setReactantVolumeFraction(Reactant& reactant,
-                         GlobalIndexType const& chemical_system_id,
-                         MaterialPropertyLib::Medium const* medium,
-                         ParameterLib::SpatialPosition const& pos, double const porosity,
-                         double const t, double const dt)
+                               GlobalIndexType const& chemical_system_id,
+                               MaterialPropertyLib::Medium const& medium,
+                               ParameterLib::SpatialPosition const& pos,
+                               double const porosity, double const t,
+                               double const dt)
 {
-    auto const& solid_phase = medium->phase("Solid");
-    auto const& liquid_phase = medium->phase("AqueousLiquid");
+    auto const& solid_phase = medium.phase("Solid");
+    auto const& liquid_phase = medium.phase("AqueousLiquid");
 
     MaterialPropertyLib::VariableArray vars;
 
@@ -203,11 +204,11 @@ void setReactantVolumeFraction(Reactant& reactant,
 
 template <typename Reactant>
 void setPorosityPostReaction(Reactant& reactant,
-    GlobalIndexType const& chemical_system_id,
-    MaterialPropertyLib::Medium const* medium,
-    double& porosity)
+                             GlobalIndexType const& chemical_system_id,
+                             MaterialPropertyLib::Medium const& medium,
+                             double& porosity)
 {
-    auto const& solid_phase = medium->phase("Solid");
+    auto const& solid_phase = medium.phase("Solid");
 
     auto const& solid_constituent =
         solid_phase.component(reactant.name);
@@ -728,7 +729,7 @@ std::vector<std::string> const PhreeqcIO::getComponentList() const
 
 void PhreeqcIO::updateVolumeFractionPostReaction(
     GlobalIndexType const& chemical_system_id,
-    MaterialPropertyLib::Medium const* medium,
+    MaterialPropertyLib::Medium const& medium,
     ParameterLib::SpatialPosition const& pos, double const porosity,
     double const t, double const dt)
 {
@@ -747,7 +748,7 @@ void PhreeqcIO::updateVolumeFractionPostReaction(
 
 void PhreeqcIO::updatePorosityPostReaction(
     GlobalIndexType const& chemical_system_id,
-    MaterialPropertyLib::Medium const* medium,
+    MaterialPropertyLib::Medium const& medium,
     double& porosity)
 {
     for (auto& kinetic_reactant : _chemical_system->kinetic_reactants)
diff --git a/ChemistryLib/PhreeqcIO.h b/ChemistryLib/PhreeqcIO.h
index 2981106c371..22d31ff3f7f 100644
--- a/ChemistryLib/PhreeqcIO.h
+++ b/ChemistryLib/PhreeqcIO.h
@@ -74,12 +74,12 @@ public:
 
     void updateVolumeFractionPostReaction(
         GlobalIndexType const& chemical_system_id,
-        MaterialPropertyLib::Medium const* medium,
+        MaterialPropertyLib::Medium const& medium,
         ParameterLib::SpatialPosition const& pos, double const porosity,
         double const t, double const dt) override;
 
     void updatePorosityPostReaction(GlobalIndexType const& chemical_system_id,
-                                    MaterialPropertyLib::Medium const* medium,
+                                    MaterialPropertyLib::Medium const& medium,
                                     double& porosity) override;
 
     void computeSecondaryVariable(
diff --git a/ProcessLib/ComponentTransport/ComponentTransportFEM.h b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
index f5740eb98a4..e077617de0d 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportFEM.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportFEM.h
@@ -1164,7 +1164,8 @@ public:
         {
             if (_process_data.chemically_induced_porosity_change)
             {
-                auto const& medium = _process_data.media_map->getMedium(ele_id);
+                auto const& medium =
+                    *_process_data.media_map->getMedium(ele_id);
 
                 ParameterLib::SpatialPosition pos;
                 pos.setElementID(ele_id);
-- 
GitLab