From 25cac0520deb40da122ad9d3022bcca8103c0e3c Mon Sep 17 00:00:00 2001
From: renchao_lu <renchao.lu@gmail.com>
Date: Sat, 13 Jul 2019 16:31:44 +0200
Subject: [PATCH] [CL] Update EquilibriumPhase output.

---
 ChemistryLib/PhreeqcIO.cpp                      |  8 +++++---
 ChemistryLib/PhreeqcIOData/EquilibriumPhase.cpp | 13 ++++---------
 ChemistryLib/PhreeqcIOData/EquilibriumPhase.h   |  3 +--
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/ChemistryLib/PhreeqcIO.cpp b/ChemistryLib/PhreeqcIO.cpp
index 14d99194946..cde24306b38 100644
--- a/ChemistryLib/PhreeqcIO.cpp
+++ b/ChemistryLib/PhreeqcIO.cpp
@@ -212,12 +212,14 @@ std::ostream& operator<<(std::ostream& os, PhreeqcIO const& phreeqc_io)
         os << "SOLUTION " << chemical_system_id + 1 << "\n";
         os << aqueous_solution << "\n";
 
-        auto const& equilibrium_phases =
-            phreeqc_io._equilibrium_phases[chemical_system_id];
+        auto const& equilibrium_phases = phreeqc_io._equilibrium_phases;
         if (!equilibrium_phases.empty())
         {
             os << "EQUILIBRIUM_PHASES " << chemical_system_id + 1 << "\n";
-            os << equilibrium_phases << "\n";
+            for (auto const& equilibrium_phase : equilibrium_phases)
+            {
+                equilibrium_phase.print(os, chemical_system_id);
+            }
         }
 
         auto const& kinetic_reactants = phreeqc_io._kinetic_reactants;
diff --git a/ChemistryLib/PhreeqcIOData/EquilibriumPhase.cpp b/ChemistryLib/PhreeqcIOData/EquilibriumPhase.cpp
index 378eb2a4cdb..52253ab3c5c 100644
--- a/ChemistryLib/PhreeqcIOData/EquilibriumPhase.cpp
+++ b/ChemistryLib/PhreeqcIOData/EquilibriumPhase.cpp
@@ -13,15 +13,10 @@
 
 namespace ChemistryLib
 {
-std::ostream& operator<<(std::ostream& os,
-                         EquilibriumPhase const& equilibrium_phase)
+void EquilibriumPhase::print(std::ostream& os,
+                             std::size_t const chemical_system_id) const
 {
-    os << equilibrium_phase.name;
-
-    os << " " << equilibrium_phase.saturation_index;
-
-    os << " " << equilibrium_phase.amount << "\n";
-
-    return os;
+    os << name << " " << saturation_index << " "
+       << (*amount)[chemical_system_id] << "\n";
 }
 }  // namespace ChemistryLib
diff --git a/ChemistryLib/PhreeqcIOData/EquilibriumPhase.h b/ChemistryLib/PhreeqcIOData/EquilibriumPhase.h
index 51e2eec934e..19fe180834b 100644
--- a/ChemistryLib/PhreeqcIOData/EquilibriumPhase.h
+++ b/ChemistryLib/PhreeqcIOData/EquilibriumPhase.h
@@ -34,8 +34,7 @@ struct EquilibriumPhase
     {
     }
 
-    friend std::ostream& operator<<(std::ostream& os,
-                                    EquilibriumPhase const& equilibrium_phase);
+    void print(std::ostream& os, std::size_t const chemical_system_id) const;
 
     std::string const name;
     MeshLib::PropertyVector<double>* amount;
-- 
GitLab