Loading [MathJax]/extensions/tex2jax.js
OGS
ChemistryLib::ChemicalSolverInterface Class Reference

Detailed Description

Definition at line 32 of file ChemicalSolverInterface.h.

#include <ChemicalSolverInterface.h>

Inheritance diagram for ChemistryLib::ChemicalSolverInterface:
[legend]
Collaboration diagram for ChemistryLib::ChemicalSolverInterface:
[legend]

Public Member Functions

 ChemicalSolverInterface (MeshLib::Mesh const &mesh, GlobalLinearSolver &linear_solver_)
 
std::vector< std::size_t > const & activeElementIDs () const
 
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 void executeSpeciationCalculation (double const dt)
 
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
 

Public Attributes

std::vector< GlobalIndexTypechemical_system_index_map
 
MeshLib::Mesh const & _mesh
 
GlobalLinearSolverlinear_solver
 

Private Attributes

std::vector< std::size_t > active_element_ids_
 

Constructor & Destructor Documentation

◆ ChemicalSolverInterface()

ChemistryLib::ChemicalSolverInterface::ChemicalSolverInterface ( MeshLib::Mesh const & mesh,
GlobalLinearSolver & linear_solver_ )
inline

Definition at line 35 of file ChemicalSolverInterface.h.

37 : _mesh(mesh), linear_solver(linear_solver_)
38 {
39 auto const* const bulk_element_ids = bulkElementIDs(_mesh);
40 if (bulk_element_ids == nullptr)
41 {
43 "The 'bulk_element_ids' property does not exist on the mesh "
44 "{:s}.",
45 _mesh.getName());
46 }
47 active_element_ids_.assign(bulk_element_ids->begin(),
48 bulk_element_ids->end());
49 }
#define OGS_FATAL(...)
Definition Error.h:26
const std::string getName() const
Get name of the mesh.
Definition Mesh.h:105
PropertyVector< std::size_t > const * bulkElementIDs(Mesh const &mesh)
Definition Mesh.cpp:300

References _mesh, active_element_ids_, MeshLib::Mesh::getName(), and OGS_FATAL.

◆ ~ChemicalSolverInterface()

virtual ChemistryLib::ChemicalSolverInterface::~ChemicalSolverInterface ( )
virtualdefault

Member Function Documentation

◆ activeElementIDs()

std::vector< std::size_t > const & ChemistryLib::ChemicalSolverInterface::activeElementIDs ( ) const
inline

Definition at line 51 of file ChemicalSolverInterface.h.

52 {
54 }

References active_element_ids_.

◆ computeSecondaryVariable()

virtual void ChemistryLib::ChemicalSolverInterface::computeSecondaryVariable ( std::size_t const ,
std::vector< GlobalIndexType > const &  )
inlinevirtual

◆ executeSpeciationCalculation()

virtual void ChemistryLib::ChemicalSolverInterface::executeSpeciationCalculation ( double const dt)
inlinevirtual

◆ getComponentList()

virtual std::vector< std::string > const ChemistryLib::ChemicalSolverInterface::getComponentList ( ) const
inlinevirtual

Reimplemented in ChemistryLib::PhreeqcIOData::PhreeqcIO.

Definition at line 89 of file ChemicalSolverInterface.h.

90 {
91 return {};
92 }

◆ getConcentration()

virtual double ChemistryLib::ChemicalSolverInterface::getConcentration ( int const ,
GlobalIndexType const  ) const
inlinevirtual

Reimplemented in ChemistryLib::PhreeqcIOData::PhreeqcIO.

Definition at line 82 of file ChemicalSolverInterface.h.

85 {
86 return std::numeric_limits<double>::quiet_NaN();
87 }

Referenced by ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete().

◆ getKineticPrefactor()

virtual double ChemistryLib::ChemicalSolverInterface::getKineticPrefactor ( std::size_t reaction_id) const
inlinevirtual

Reimplemented in ChemistryLib::SelfContainedSolverData::SelfContainedSolver.

Definition at line 99 of file ChemicalSolverInterface.h.

101 {
102 return std::numeric_limits<double>::quiet_NaN();
103 }

Referenced by ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assemble().

◆ getStoichiometricMatrix()

virtual Eigen::SparseMatrix< double > const * ChemistryLib::ChemicalSolverInterface::getStoichiometricMatrix ( ) const
inlinevirtual

◆ initialize()

virtual void ChemistryLib::ChemicalSolverInterface::initialize ( )
inlinevirtual

Reimplemented in ChemistryLib::PhreeqcIOData::PhreeqcIO.

Definition at line 56 of file ChemicalSolverInterface.h.

56{}

◆ initializeChemicalSystemConcrete()

virtual void ChemistryLib::ChemicalSolverInterface::initializeChemicalSystemConcrete ( std::vector< double > const & ,
GlobalIndexType const & ,
MaterialPropertyLib::Medium const & ,
ParameterLib::SpatialPosition const & ,
double const  )
inlinevirtual

◆ setAqueousSolutionsPrevFromDumpFile()

virtual void ChemistryLib::ChemicalSolverInterface::setAqueousSolutionsPrevFromDumpFile ( )
inlinevirtual

Reimplemented in ChemistryLib::PhreeqcIOData::PhreeqcIO.

Definition at line 76 of file ChemicalSolverInterface.h.

76{}

◆ setChemicalSystemConcrete()

virtual void ChemistryLib::ChemicalSolverInterface::setChemicalSystemConcrete ( std::vector< double > const & ,
GlobalIndexType const & ,
MaterialPropertyLib::Medium const * ,
MaterialPropertyLib::VariableArray const & ,
ParameterLib::SpatialPosition const & ,
double const ,
double const  )
inlinevirtual

◆ updatePorosityPostReaction()

◆ updateVolumeFractionPostReaction()

virtual void ChemistryLib::ChemicalSolverInterface::updateVolumeFractionPostReaction ( GlobalIndexType const & ,
MaterialPropertyLib::Medium const & ,
ParameterLib::SpatialPosition const & ,
double const ,
double const ,
double const  )
inlinevirtual

Member Data Documentation

◆ _mesh

MeshLib::Mesh const& ChemistryLib::ChemicalSolverInterface::_mesh

Definition at line 130 of file ChemicalSolverInterface.h.

Referenced by ChemicalSolverInterface().

◆ active_element_ids_

std::vector<std::size_t> ChemistryLib::ChemicalSolverInterface::active_element_ids_
private

Definition at line 136 of file ChemicalSolverInterface.h.

Referenced by ChemicalSolverInterface(), and activeElementIDs().

◆ chemical_system_index_map

std::vector<GlobalIndexType> ChemistryLib::ChemicalSolverInterface::chemical_system_index_map

◆ linear_solver

GlobalLinearSolver& ChemistryLib::ChemicalSolverInterface::linear_solver

specify the linear solver used to solve the linearized reaction equation.

Definition at line 133 of file ChemicalSolverInterface.h.

Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::solveReactionEquation().


The documentation for this class was generated from the following file: