13#include <phreeqcpp/Phreeqc.h>
36 std::size_t
const num_chemical_systems,
37 std::vector<std::pair<int, std::string>>
const&
38 process_id_to_component_name_map,
40 std::unique_ptr<EquilibriumReactants>&& equilibrium_reactants,
41 std::unique_ptr<Kinetics>&& kinetic_reactants,
42 std::vector<ReactionRate>&& reaction_rates);
47 std::vector<GlobalVector*>
const& process_solutions);
49 void callPhreeqc(std::vector<GlobalVector*>& process_solutions);
52 std::vector<GlobalVector*>
const& process_solutions,
53 std::size_t
const node_id);
70 cxxSolution& aqueous_solution);
74 void reset(std::size_t
const chemical_system_id);
MathLib::EigenLisLinearSolver GlobalLinearSolver
GlobalLinearSolver & linear_solver
ChemicalSolverInterface(MeshLib::Mesh const &mesh, GlobalLinearSolver &linear_solver_)
void setConvergenceTolerance()
void setTimeStepSize(double const dt)
std::vector< ReactionRate > const _reaction_rates
void initializePhreeqcGeneralSettings()
std::map< int, struct master * > _process_id_to_master_map
void setAqueousSolutions(std::vector< GlobalVector * > const &process_solutions)
void tidyEquilibriumReactants(EquilibriumReactants const &equilibrium_reactants)
void loadDatabase(std::string const &database)
void configureOutputSettings()
void updateNodalProcessSolutions(std::vector< GlobalVector * > const &process_solutions, std::size_t const node_id)
PhreeqcKernel(MeshLib::Mesh const &mesh, GlobalLinearSolver &linear_solver, std::size_t const num_chemical_systems, std::vector< std::pair< int, std::string > > const &process_id_to_component_name_map, std::string const &database, AqueousSolution aqueous_solution, std::unique_ptr< EquilibriumReactants > &&equilibrium_reactants, std::unique_ptr< Kinetics > &&kinetic_reactants, std::vector< ReactionRate > &&reaction_rates)
std::unique_ptr< cxxSolution const > _aqueous_solution
cxxISolution * getOrCreateInitialAqueousSolution(cxxSolution &aqueous_solution)
std::unique_ptr< cxxISolution const > _initial_aqueous_solution
void callPhreeqc(std::vector< GlobalVector * > &process_solutions)
void executeSpeciationCalculation(double const dt) override
void reset(std::size_t const chemical_system_id)