OGS
|
Definition at line 32 of file PhreeqcKernel.h.
#include <PhreeqcKernel.h>
Public Member Functions | |
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) | |
void | executeSpeciationCalculation (double const dt) override |
void | setAqueousSolutions (std::vector< GlobalVector * > const &process_solutions) |
void | callPhreeqc (std::vector< GlobalVector * > &process_solutions) |
void | updateNodalProcessSolutions (std::vector< GlobalVector * > const &process_solutions, std::size_t const node_id) |
Public Member Functions inherited from ChemistryLib::ChemicalSolverInterface | |
ChemicalSolverInterface (MeshLib::Mesh const &mesh, GlobalLinearSolver &linear_solver_) | |
std::vector< std::size_t > const & | getElementIDs () |
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 Eigen::SparseMatrix< double > const * | getStoichiometricMatrix () const |
virtual double | getKineticPrefactor (std::size_t reaction_id) 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) |
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 |
MeshLib::Mesh const & | _mesh |
GlobalLinearSolver & | linear_solver |
ChemistryLib::PhreeqcKernelData::PhreeqcKernel::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 ) |
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 264 of file PhreeqcKernel.cpp.
References OGS_FATAL, reset(), and updateNodalProcessSolutions().
Referenced by executeSpeciationCalculation().
|
inlineprivate |
|
overridevirtual |
Reimplemented from ChemistryLib::ChemicalSolverInterface.
Definition at line 174 of file PhreeqcKernel.cpp.
References callPhreeqc(), setAqueousSolutions(), and setTimeStepSize().
|
private |
Definition at line 242 of file PhreeqcKernel.cpp.
References _initial_aqueous_solution.
Referenced by setAqueousSolutions().
|
inlineprivate |
Definition at line 56 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel().
|
private |
Definition at line 133 of file PhreeqcKernel.cpp.
References OGS_FATAL.
Referenced by PhreeqcKernel().
|
private |
Definition at line 145 of file PhreeqcKernel.cpp.
References _reaction_rates, and OGS_FATAL.
Referenced by PhreeqcKernel().
|
private |
Definition at line 302 of file PhreeqcKernel.cpp.
References _aqueous_solution.
Referenced by callPhreeqc().
void ChemistryLib::PhreeqcKernelData::PhreeqcKernel::setAqueousSolutions | ( | std::vector< GlobalVector * > const & | process_solutions | ) |
Definition at line 190 of file PhreeqcKernel.cpp.
References _process_id_to_master_map, getOrCreateInitialAqueousSolution(), ChemistryLib::PhreeqcKernelData::isHydrogen(), and ChemistryLib::pH.
Referenced by executeSpeciationCalculation().
|
inlineprivate |
Definition at line 65 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel().
|
private |
Definition at line 254 of file PhreeqcKernel.cpp.
Referenced by executeSpeciationCalculation().
|
private |
Definition at line 112 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 338 of file PhreeqcKernel.cpp.
References _process_id_to_master_map, and ChemistryLib::PhreeqcKernelData::isHydrogen().
Referenced by callPhreeqc().
|
private |
Definition at line 78 of file PhreeqcKernel.h.
Referenced by reset().
|
private |
Definition at line 77 of file PhreeqcKernel.h.
Referenced by getOrCreateInitialAqueousSolution().
|
private |
Definition at line 76 of file PhreeqcKernel.h.
Referenced by PhreeqcKernel(), setAqueousSolutions(), and updateNodalProcessSolutions().
|
private |
Definition at line 79 of file PhreeqcKernel.h.
Referenced by reinitializeRates().