18 params.
addParam<
Real>(
"temperature", 25.0,
"The temperature (degC) of the aqueous solution");
19 params.
addClassDescription(
"UserObject that controls the time-independent geochemistry reaction " 20 "processes. Spatial dependence is not possible using this class");
28 _temperature(getParam<
Real>(
"temperature")),
33 getParam<
std::vector<
std::string>>(
"swap_out_of_basis"),
34 getParam<
std::vector<
std::string>>(
"swap_into_basis"),
35 getParam<
std::string>(
"charge_balance_species"),
36 getParam<
std::vector<
std::string>>(
"constraint_species"),
37 getParam<
std::vector<
Real>>(
"constraint_value"),
41 getParam<unsigned>(
"extra_iterations_to_make_consistent"),
42 getParam<
Real>(
"min_initial_molality"),
46 _solver(_mgd.basis_species_name.size(),
47 _mgd.kin_species_name.size(),
49 getParam<Real>(
"abs_tol"),
50 getParam<Real>(
"rel_tol"),
51 getParam<unsigned>(
"max_iter"),
52 getParam<Real>(
"max_initial_residual"),
55 getParam<std::vector<std::string>>(
"prevent_precipitation"),
56 getParam<Real>(
"max_ionic_strength"),
57 getParam<unsigned>(
"ramp_max_ionic_strength_initial"),
59 _mole_additions(DenseVector<Real>(_num_basis, 0.0))
101 const std::stringstream &
117 const DenseVector<Real> &
125 const std::string & )
const const unsigned _num_basis
number of basis species
virtual void finalize() override
virtual void execute() override
static InputParameters validParams()
std::vector< unsigned > _tot_iter
Number of iterations used by the solver at each node.
static InputParameters validParams()
virtual unsigned getSolverIterations(dof_id_type node_id) const override
virtual Real getSolverResidual(dof_id_type node_id) const override
virtual void initialize() override
registerMooseObject("GeochemistryApp", GeochemistryTimeIndependentReactor)
virtual void execute() override
GeochemicalSolver _solver
The solver.
const unsigned _num_my_nodes
Number of nodes handled by this processor (will need to be made un-const when mesh adaptivity is hand...
DenseVector< Real > _mole_additions
mole additions: these are always zero but are used in getMoleAdditions and the solve ...
Class that controls the time independent (and spatially independent) geochemistry reactions...
std::vector< std::stringstream > _solver_output
The solver output at each node.
virtual void initialSetup() override
GeochemistryTimeIndependentReactor(const InputParameters ¶meters)
void solveSystem(GeochemicalSystem &egs, std::stringstream &ss, unsigned &tot_iter, Real &abs_residual, Real dt, DenseVector< Real > &mole_additions, DenseMatrix< Real > &dmole_additions)
Solve the system.
virtual void initialize() override
GeochemicalSystem _egs
The equilibrium geochemical system that holds all the molalities, activities, etc.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< Real > _abs_residual
L1norm of the solver residual at each node.
virtual const GeochemicalSystem & getGeochemicalSystem(dof_id_type node_id) const override
virtual Real getMolesDumped(dof_id_type node_id, const std::string &species) const override
This class holds information about bulk composition, molalities, activities, activity coefficients...
virtual void finalize() override
Base class that controls the spatio-temporal solution of geochemistry reactions.
const ExecFlagType EXEC_FINAL
virtual const DenseVector< Real > & getMoleAdditions(dof_id_type node_id) const override
virtual const std::stringstream & getSolverOutput(dof_id_type node_id) const override