From 1ce1fd01f1eb6a2a772f00fadd1796bf5f7415f9 Mon Sep 17 00:00:00 2001 From: renchao_lu <renchao.lu@gmail.com> Date: Tue, 9 Jun 2020 22:55:03 +0200 Subject: [PATCH] [CL] initialize num_chemical systems. --- ChemistryLib/ChemicalSolverInterface.h | 2 ++ ChemistryLib/PhreeqcIO.cpp | 10 ++++++++++ ChemistryLib/PhreeqcIO.h | 3 +++ 3 files changed, 15 insertions(+) diff --git a/ChemistryLib/ChemicalSolverInterface.h b/ChemistryLib/ChemicalSolverInterface.h index ed55c782aad..1572924bc35 100644 --- a/ChemistryLib/ChemicalSolverInterface.h +++ b/ChemistryLib/ChemicalSolverInterface.h @@ -17,6 +17,8 @@ namespace ChemistryLib class ChemicalSolverInterface { public: + virtual void initialize() {} + virtual void executeInitialCalculation( std::vector<GlobalVector*>& process_solutions) = 0; diff --git a/ChemistryLib/PhreeqcIO.cpp b/ChemistryLib/PhreeqcIO.cpp index 54ec132c52c..33778212c4c 100644 --- a/ChemistryLib/PhreeqcIO.cpp +++ b/ChemistryLib/PhreeqcIO.cpp @@ -15,6 +15,7 @@ #include <boost/algorithm/string.hpp> #include <cmath> #include <fstream> +#include <numeric> #include "BaseLib/Algorithm.h" #include "BaseLib/ConfigTreeUtil.h" @@ -101,6 +102,15 @@ PhreeqcIO::PhreeqcIO(std::string const project_file_name, } } +void PhreeqcIO::initialize() +{ + _num_chemical_systems = std::accumulate( + begin(chemical_system_index_map), end(chemical_system_index_map), 0, + [](auto result, auto const& chemical_system_index) { + return result + chemical_system_index.size(); + }); +} + void PhreeqcIO::executeInitialCalculation( std::vector<GlobalVector*>& process_solutions) { diff --git a/ChemistryLib/PhreeqcIO.h b/ChemistryLib/PhreeqcIO.h index 4c59ca563b2..0f8dcf15650 100644 --- a/ChemistryLib/PhreeqcIO.h +++ b/ChemistryLib/PhreeqcIO.h @@ -51,6 +51,8 @@ public: std::unique_ptr<Dump>&& dump, Knobs&& knobs); + void initialize() override; + void executeInitialCalculation( std::vector<GlobalVector*>& process_solutions) override; @@ -97,6 +99,7 @@ private: Knobs const _knobs; double _dt = std::numeric_limits<double>::quiet_NaN(); const int phreeqc_instance_id = 0; + int _num_chemical_systems = -1; }; } // namespace PhreeqcIOData } // namespace ChemistryLib -- GitLab