OGS
|
Definition at line 32 of file PhreeqcKernel.h.
#include <PhreeqcKernel.h>
Public Member Functions | |
PhreeqcKernel (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) | |
void | executeSpeciationCalculation (double const dt) override |
void | setAqueousSolutions (std::vector< GlobalVector * > const &process_solutions) |
void | callPhreeqc (std::vector< GlobalVector * > &process_solutions) |
std::vector< GlobalVector * > | getIntPtProcessSolutions () const override |
void | updateNodalProcessSolutions (std::vector< GlobalVector * > const &process_solutions, std::size_t const node_id) |
Public Member Functions inherited from ChemistryLib::ChemicalSolverInterface | |
ChemicalSolverInterface (GlobalLinearSolver &linear_solver_) | |
virtual void | initialize () |
virtual void | initializeChemicalSystemConcrete (std::vector< double > const &, GlobalIndexType const &, MaterialPropertyLib::Medium const &, ParameterLib::SpatialPosition const &, double const) |
virtual void | setChemicalSystemConcrete (std::vector< double > const &, GlobalIndexType const &, MaterialPropertyLib::Medium const *, MaterialPropertyLib::VariableArray const &, ParameterLib::SpatialPosition const &, double const, double const) |
virtual void | setAqueousSolutionsPrevFromDumpFile () |
virtual double | getConcentration (int const, GlobalIndexType const) const |
virtual std::vector< std::string > const | getComponentList () const |
virtual void | updateVolumeFractionPostReaction (GlobalIndexType const &, MaterialPropertyLib::Medium const &, ParameterLib::SpatialPosition const &, double const, double const, double const) |
virtual void | updatePorosityPostReaction (GlobalIndexType const &, MaterialPropertyLib::Medium const &, double &) |
virtual void | computeSecondaryVariable (std::size_t const, std::vector< GlobalIndexType > const &) |
virtual | ~ChemicalSolverInterface ()=default |
Private Member Functions | |
void | initializePhreeqcGeneralSettings () |
void | tidyEquilibriumReactants (EquilibriumReactants const equilibrium_reactants) |
void | loadDatabase (std::string const &database) |
void | reinitializeRates () |
void | setConvergenceTolerance () |
void | configureOutputSettings () |
cxxISolution * | getOrCreateInitialAqueousSolution (cxxSolution &aqueous_solution) |
bool | isHydrogen (char const *element) const |
void | setTimeStepSize (double const dt) |
void | reset (std::size_t const chemical_system_id) |
Private Attributes | |
std::map< int, struct master * > | _process_id_to_master_map |
std::unique_ptr< cxxISolution const > | _initial_aqueous_solution |
std::unique_ptr< cxxSolution const > | _aqueous_solution |
std::vector< ReactionRate > const | _reaction_rates |
Additional Inherited Members | |
Public Attributes inherited from ChemistryLib::ChemicalSolverInterface | |
std::vector< GlobalIndexType > | chemical_system_index_map |
GlobalLinearSolver & | linear_solver |
ChemistryLib::PhreeqcKernelData::PhreeqcKernel::PhreeqcKernel | ( | 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 | ||
) |
Definition at line 26 of file PhreeqcKernel.cpp.
References _process_id_to_master_map, ChemistryLib::PhreeqcKernelData::AqueousSolution::castToBaseClass(), configureOutputSettings(), initializePhreeqcGeneralSettings(), loadDatabase(), reinitializeRates(), ChemistryLib::PhreeqcKernelData::AqueousSolution::setChemicalSystemID(), setConvergenceTolerance(), and tidyEquilibriumReactants().
void ChemistryLib::PhreeqcKernelData::PhreeqcKernel::callPhreeqc | ( | std::vector< GlobalVector * > & | process_solutions | ) |
Definition at line 259 of file PhreeqcKernel.cpp.
References reset(), and updateNodalProcessSolutions().
Referenced by executeSpeciationCalculation().
|
inlineprivate |
Definition at line 72 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel().
|
overridevirtual |
Implements ChemistryLib::ChemicalSolverInterface.
Definition at line 175 of file PhreeqcKernel.cpp.
References callPhreeqc(), setAqueousSolutions(), and setTimeStepSize().
|
inlineoverridevirtual |
Implements ChemistryLib::ChemicalSolverInterface.
Definition at line 51 of file PhreeqcKernel.h.
|
private |
Definition at line 237 of file PhreeqcKernel.cpp.
References _initial_aqueous_solution.
Referenced by setAqueousSolutions().
|
inlineprivate |
Definition at line 61 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel().
|
inlineprivate |
Definition at line 77 of file PhreeqcKernel.h.
Referenced by setAqueousSolutions(), and updateNodalProcessSolutions().
|
private |
Definition at line 132 of file PhreeqcKernel.cpp.
References OGS_FATAL.
Referenced by PhreeqcKernel().
|
private |
Definition at line 144 of file PhreeqcKernel.cpp.
References _reaction_rates, and OGS_FATAL.
Referenced by PhreeqcKernel().
|
private |
Definition at line 293 of file PhreeqcKernel.cpp.
References _aqueous_solution.
Referenced by callPhreeqc().
void ChemistryLib::PhreeqcKernelData::PhreeqcKernel::setAqueousSolutions | ( | std::vector< GlobalVector * > const & | process_solutions | ) |
Definition at line 186 of file PhreeqcKernel.cpp.
References _process_id_to_master_map, MaterialPropertyLib::concentration, getOrCreateInitialAqueousSolution(), isHydrogen(), and ChemistryLib::pH.
Referenced by executeSpeciationCalculation().
|
inlineprivate |
Definition at line 70 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel().
|
private |
|
private |
Definition at line 111 of file PhreeqcKernel.cpp.
References ChemistryLib::PhreeqcKernelData::EquilibriumReactants::castToBaseClass(), and ChemistryLib::PhreeqcKernelData::EquilibriumReactants::getPhaseComponents().
Referenced by PhreeqcKernel().
void ChemistryLib::PhreeqcKernelData::PhreeqcKernel::updateNodalProcessSolutions | ( | std::vector< GlobalVector * > const & | process_solutions, |
std::size_t const | node_id | ||
) |
Definition at line 329 of file PhreeqcKernel.cpp.
References _process_id_to_master_map, MaterialPropertyLib::concentration, and isHydrogen().
Referenced by callPhreeqc().
|
private |
Definition at line 88 of file PhreeqcKernel.h.
Referenced by reset().
|
private |
Definition at line 87 of file PhreeqcKernel.h.
Referenced by getOrCreateInitialAqueousSolution().
|
private |
Definition at line 86 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel(), setAqueousSolutions(), and updateNodalProcessSolutions().
|
private |
Definition at line 89 of file PhreeqcKernel.h.
Referenced by reinitializeRates().