From 070a32c42aaacd878a6c8d775fd5ef6d671572e1 Mon Sep 17 00:00:00 2001
From: renchao_lu <renchao.lu@gmail.com>
Date: Tue, 9 Jun 2020 21:03:51 +0200
Subject: [PATCH] [CL] Store initial amount of reactants.

---
 ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp | 2 +-
 ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp      | 1 +
 ChemistryLib/PhreeqcIOData/EquilibriumReactant.h          | 3 +++
 ChemistryLib/PhreeqcIOData/KineticReactant.h              | 3 +++
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
index 01084a919f1..ab6bc617fbf 100644
--- a/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateEquilibriumReactants.cpp
@@ -55,7 +55,7 @@ std::vector<EquilibriumReactant> createEquilibriumReactants(
             1);
 
         equilibrium_reactants.emplace_back(
-            std::move(name), amount, saturation_index);
+            std::move(name), amount, initial_amount, saturation_index);
     }
 
     return equilibrium_reactants;
diff --git a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
index 1d3af1d9068..7a7ad888628 100644
--- a/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateKineticReactant.cpp
@@ -71,6 +71,7 @@ std::vector<KineticReactant> createKineticReactants(
         kinetic_reactants.emplace_back(std::move(name),
                                        std::move(chemical_formula),
                                        amount,
+                                       initial_amount,
                                        std::move(parameters),
                                        fix_amount);
     }
diff --git a/ChemistryLib/PhreeqcIOData/EquilibriumReactant.h b/ChemistryLib/PhreeqcIOData/EquilibriumReactant.h
index 2926f0319fb..d15aa0605fe 100644
--- a/ChemistryLib/PhreeqcIOData/EquilibriumReactant.h
+++ b/ChemistryLib/PhreeqcIOData/EquilibriumReactant.h
@@ -30,9 +30,11 @@ struct EquilibriumReactant
 {
     EquilibriumReactant(std::string name_,
                         MeshLib::PropertyVector<double>* amount_,
+                        double const initial_amount_,
                         double saturation_index_)
         : name(std::move(name_)),
           amount(amount_),
+          initial_amount(initial_amount_),
           saturation_index(saturation_index_)
     {
     }
@@ -41,6 +43,7 @@ struct EquilibriumReactant
 
     std::string const name;
     MeshLib::PropertyVector<double>* amount;
+    double const initial_amount;
     double const saturation_index;
     static const ItemType item_type = ItemType::EquilibriumReactant;
 };
diff --git a/ChemistryLib/PhreeqcIOData/KineticReactant.h b/ChemistryLib/PhreeqcIOData/KineticReactant.h
index 4b659dc8bd5..1141683e84d 100644
--- a/ChemistryLib/PhreeqcIOData/KineticReactant.h
+++ b/ChemistryLib/PhreeqcIOData/KineticReactant.h
@@ -27,11 +27,13 @@ struct KineticReactant
     KineticReactant(std::string name_,
                     std::string chemical_formula_,
                     MeshLib::PropertyVector<double>* amount_,
+                    double const initial_amount_,
                     std::vector<double>&& parameters_,
                     bool const fix_amount_)
         : name(std::move(name_)),
           chemical_formula(std::move(chemical_formula_)),
           amount(amount_),
+          initial_amount(initial_amount_),
           parameters(std::move(parameters_)),
           fix_amount(fix_amount_)
     {
@@ -42,6 +44,7 @@ struct KineticReactant
     std::string const name;
     std::string const chemical_formula;
     MeshLib::PropertyVector<double>* amount;
+    double const initial_amount;
     std::vector<double> const parameters;
     bool const fix_amount;
     static const ItemType item_type = ItemType::KineticReactant;
-- 
GitLab