![]() |
OGS
|
|
Interface for coupling OpenGeoSys with an external geochemical solver.
Reactive transport in OGS is operator-split:
Each reactive control volume is identified by chemical_system_id. A chemical_system_id typically corresponds to one integration point of an element (i.e. one local reaction volume). During the chemistry step each chemical_system_id is treated as a well-mixed batch reactor. There is no mass exchange between different chemical_system_id in this step; spatial coupling happens only in the transport solve.
Per-timestep sequence (time increment dt):
chemical_system_id, OGS provides the chemistry backend with the current local state at that point:chemical_system_id over dt. Each local system is advanced as a closed batch reactor. The backend computes:Responsibilities of a concrete ChemicalSolverInterface implementation (e.g. the PHREEQC-based implementation):
chemical_system_id chemical state (component inventories, pH / pe, kinetic and equilibrium reactants, ion-exchange / surface sites, etc.);chemical_system_id inputs from OGS before each reaction step (component totals, pressure, temperature, porosity, etc.);Thermodynamic state: Pressure and temperature are expected to be provided per chemical_system_id.
Definition in file ChemicalSolverInterface.h.
#include <Eigen/Sparse>#include "MaterialLib/MPL/VariableType.h"#include "MathLib/LinAlg/GlobalLinearSolverType.h"#include "MathLib/LinAlg/GlobalMatrixVectorTypes.h"#include "MeshLib/Mesh.h"Go to the source code of this file.
Classes | |
| class | ChemistryLib::ChemicalSolverInterface |
Namespaces | |
| namespace | MaterialPropertyLib |
| namespace | ParameterLib |
| namespace | ChemistryLib |