diff --git a/ChemistryLib/ChemicalSolverInterface.h b/ChemistryLib/ChemicalSolverInterface.h index 492e88e79c033055c18e3ea91455ec3fac2b7d3a..b7339bfe695ac843cc44fee55cc3e55978ee1ad9 100644 --- a/ChemistryLib/ChemicalSolverInterface.h +++ b/ChemistryLib/ChemicalSolverInterface.h @@ -48,6 +48,8 @@ public: { } + virtual void setAqueousSolutionsPrevFromDumpFile() {} + virtual void executeInitialCalculation() = 0; virtual void doWaterChemistryCalculation(double const dt) = 0; diff --git a/ChemistryLib/PhreeqcIO.cpp b/ChemistryLib/PhreeqcIO.cpp index 9ecc4807c5de52e7d9ab5a14a1270f178c088e39..07b12640a3d86b064b99d16ca210ef5f6231c29e 100644 --- a/ChemistryLib/PhreeqcIO.cpp +++ b/ChemistryLib/PhreeqcIO.cpp @@ -302,8 +302,6 @@ std::vector<GlobalVector*> PhreeqcIO::getIntPtProcessSolutions() const void PhreeqcIO::doWaterChemistryCalculation(double const dt) { - setAqueousSolutionsPrevFromDumpFile(); - writeInputsToFile(dt); execute(); diff --git a/ChemistryLib/PhreeqcIO.h b/ChemistryLib/PhreeqcIO.h index 376f8aaa712bb07d0b2b75c58b85578a5719033a..3871493addc99e919c0d54d0e38c4ce4650b648e 100644 --- a/ChemistryLib/PhreeqcIO.h +++ b/ChemistryLib/PhreeqcIO.h @@ -61,6 +61,8 @@ public: ParameterLib::SpatialPosition const& pos, double const t, double const dt) override; + void setAqueousSolutionsPrevFromDumpFile() override; + void executeInitialCalculation() override; void doWaterChemistryCalculation(double const dt) override; @@ -93,8 +95,6 @@ private: return *this; } - void setAqueousSolutionsPrevFromDumpFile(); - std::string const _database; std::unique_ptr<ChemicalSystem> _chemical_system; std::vector<ReactionRate> const _reaction_rates; diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp index 8b59ddfecddb3de5a8ed42e23caecf9c68dcfa77..ea76dff778bf8b11f47969bffe0fea958ab01548 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp @@ -239,6 +239,8 @@ void ComponentTransportProcess::solveReactionEquation( BaseLib::RunTime time_phreeqc; time_phreeqc.start(); + _chemical_solver_interface->setAqueousSolutionsPrevFromDumpFile(); + _chemical_solver_interface->doWaterChemistryCalculation(dt); extrapolateIntegrationPointValuesToNodes(