https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
GeochemistryReactorBase Class Referenceabstract

Base class that controls the spatio-temporal solution of geochemistry reactions. More...

#include <GeochemistryReactorBase.h>

Inheritance diagram for GeochemistryReactorBase:
[legend]

Public Types

enum  TEST_TYPE
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 GeochemistryReactorBase (const InputParameters &parameters)
 
virtual void initialize () override
 
virtual void threadJoin (const UserObject &) override
 
virtual void finalize () override
 
virtual void execute () override
 
virtual const GeochemicalSystemgetGeochemicalSystem (dof_id_type node_id) const =0
 
virtual const std::stringstream & getSolverOutput (dof_id_type node_id) const =0
 
virtual unsigned getSolverIterations (dof_id_type node_id) const =0
 
virtual Real getSolverResidual (dof_id_type node_id) const =0
 
virtual const DenseVector< Real > & getMoleAdditions (dof_id_type node_id) const =0
 
virtual Real getMolesDumped (dof_id_type node_id, const std::string &species) const =0
 
const PertinentGeochemicalSystemgetPertinentGeochemicalSystem () const
 returns a reference to the PertinentGeochemicalSystem used to creat the ModelGeochemicalDatabase More...
 
virtual void subdomainSetup () override
 
bool isUniqueNodeExecute ()
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &proxy, T2 &value)
 
void gatherProxyValueMin (T1 &proxy, T2 &value)
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
std::set< UserObjectName > getDependObjects () const
 
virtual bool needThreadedCopy () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const std::vector< SubdomainName > & blocks () const
 
unsigned int numBlocks () const
 
virtual const std::set< SubdomainID > & blockIDs () const
 
unsigned int blocksMaxDimension () const
 
bool hasBlocks (const SubdomainName &name) const
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 
bool hasBlocks (const std::set< SubdomainName > &names) const
 
bool hasBlocks (SubdomainID id) const
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 
bool hasBlockMaterialProperty (const std::string &prop_name)
 
const std::set< SubdomainID > & meshBlockIDs () const
 
virtual bool blockRestricted () const
 
virtual void checkVariable (const MooseVariableFieldBase &variable) const
 
virtual const std::set< BoundaryID > & boundaryIDs () const
 
const std::vector< BoundaryName > & boundaryNames () const
 
unsigned int numBoundaryIDs () const
 
bool hasBoundary (const BoundaryName &name) const
 
bool hasBoundary (const std::vector< BoundaryName > &names) const
 
bool hasBoundary (const BoundaryID &id) const
 
bool hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const
 
bool hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const
 
bool isBoundarySubset (const std::set< BoundaryID > &ids) const
 
bool isBoundarySubset (const std::vector< BoundaryID > &ids) const
 
bool hasBoundaryMaterialProperty (const std::string &prop_name) const
 
virtual bool boundaryRestricted () const
 
const std::set< BoundaryID > & meshBoundaryIDs () const
 
virtual bool checkVariableBoundaryIntegrity () const
 
virtual const VariableValuecoupledValueByName (const std::string &var_name)
 
virtual const ArrayVariableValuecoupledArrayValueByName (const std::string &var_name)
 
const std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > & getCoupledVars () const
 
const std::vector< MooseVariableFieldBase *> & getCoupledMooseVars () const
 
const std::vector< MooseVariable *> & getCoupledStandardMooseVars () const
 
const std::vector< VectorMooseVariable *> & getCoupledVectorMooseVars () const
 
const std::vector< ArrayMooseVariable *> & getCoupledArrayMooseVars () const
 
void addFEVariableCoupleableVectorTag (TagID tag)
 
void addFEVariableCoupleableMatrixTag (TagID tag)
 
std::set< TagID > & getFEVariableCoupleableVectorTags ()
 
const std::set< TagID > & getFEVariableCoupleableVectorTags () const
 
std::set< TagID > & getFEVariableCoupleableMatrixTags ()
 
const std::set< TagID > & getFEVariableCoupleableMatrixTags () const
 
auto & getWritableCoupledVariables () const
 
bool hasWritableCoupledVariables () const
 
const ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const ADVectorVariableCurlgetADDefaultCurl () const
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const std::set< MooseVariableFieldBase *> & getMooseVariableDependencies () const
 
std::set< MooseVariableFieldBase *> checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={})
 
std::set< MooseVariableFieldBase *> checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
void setRandomResetFrequency (ExecFlagType exec_flag)
 
unsigned long getRandomLong () const
 
Real getRandomReal () const
 
unsigned int getSeed (std::size_t id)
 
unsigned int getMasterSeed () const
 
bool isNodal () const
 
ExecFlagType getResetOnTime () const
 
void setRandomDataPointer (RandomData *random_data)
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
T & getSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
T & getSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
virtual void meshDisplaced ()
 
PerfGraphperfGraph ()
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters sharedParams ()
 contains params that are shared with AddGeochemistrySolverAction and its children More...
 
static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node)
 
static void sort (typename std::vector< T > &vector)
 
static void sortDFS (typename std::vector< T > &vector)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 
static bool restricted (const std::set< BoundaryID > &ids)
 

Public Attributes

 ALL
 
 ANY
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObject &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
const ReporterContextBasegetReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterNamegetReporterName (const std::string &param_name) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 
bool hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const
 
virtual void coupledCallback (const std::string &, bool) const
 
virtual bool isCoupled (const std::string &var_name, unsigned int i=0) const
 
virtual bool isCoupledConstant (const std::string &var_name) const
 
unsigned int coupledComponents (const std::string &var_name) const
 
VariableName coupledName (const std::string &var_name, unsigned int comp=0) const
 
std::vector< VariableName > coupledNames (const std::string &var_name) const
 
virtual unsigned int coupled (const std::string &var_name, unsigned int comp=0) const
 
std::vector< unsigned intcoupledIndices (const std::string &var_name) const
 
virtual const VariableValuecoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValues (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< is_ad > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVectorVariableValue< false > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< true > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableValue< is_ad > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< false > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< true > *> coupledGenericValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDotDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
virtual const VariableValuecoupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledValues (const std::string &var_name) const
 
const ADVariableValueadCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue *> adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, TagID tag) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValuecoupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VectorVariableValuecoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue *> coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariablewritableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValuewritableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValuecoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOld (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValuecoupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradients (const std::string &var_name) const
 
const ADVariableGradientadCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradientadCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableGradient *> adCoupledGradients (const std::string &var_name) const
 
const GenericVariableGradient< is_ad > & coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableGradient< false > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
const GenericVariableGradient< true > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableGradient< is_ad > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< false > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< true > *> coupledGenericGradients (const std::string &var_name) const
 
const ADVectorVariableGradientadCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecondadCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecondadCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradientcoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableCurladCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledDots (const std::string &var_name) const
 
virtual const VariableValuecoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledDots (const std::string &var_name) const
 
const ADVariableValueadCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const Moose::ADType< T >::typeadCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValuecoupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValueadCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadZeroValue () const
 
const ADVariableGradientadZeroGradient () const
 
const ADVariableSecondadZeroSecond () const
 
const GenericVariableValue< is_ad > & genericZeroValue ()
 
const GenericVariableValue< false > & genericZeroValue ()
 
const GenericVariableValue< true > & genericZeroValue ()
 
const GenericVariableGradient< is_ad > & genericZeroGradient ()
 
const GenericVariableGradient< false > & genericZeroGradient ()
 
const GenericVariableGradient< true > & genericZeroGradient ()
 
const GenericVariableSecond< is_ad > & genericZeroSecond ()
 
const GenericVariableSecond< false > & genericZeroSecond ()
 
const GenericVariableSecond< true > & genericZeroSecond ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
const MooseVariableFieldBasegetFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp)
 
const T * getVarHelper (const std::string &var_name, unsigned int comp) const
 
T * getVarHelper (const std::string &var_name, unsigned int comp)
 
MooseVariablegetVar (const std::string &var_name, unsigned int comp)
 
const MooseVariablegetVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

const unsigned _num_my_nodes
 Number of nodes handled by this processor (will need to be made un-const when mesh adaptivity is handled) More...
 
ModelGeochemicalDatabase _mgd
 my copy of the underlying ModelGeochemicalDatabase More...
 
const PertinentGeochemicalSystem_pgs
 Reference to the original PertinentGeochemicalSystem used to create the ModelGeochemicalDatabase. More...
 
const unsigned _num_basis
 number of basis species More...
 
const unsigned _num_eqm
 number of equilibrium species More...
 
const Real _initial_max_ionic_str
 Initial value of maximum ionic strength. More...
 
GeochemistryIonicStrength _is
 The ionic strength calculator. More...
 
GeochemistryActivityCoefficientsDebyeHuckel _gac
 The activity calculator. More...
 
const unsigned _max_swaps_allowed
 Maximum number of swaps allowed during a single solve. More...
 
GeochemistrySpeciesSwapper _swapper
 The species swapper. More...
 
const Real _small_molality
 A small value of molality. More...
 
std::vector< std::stringstream > _solver_output
 The solver output at each node. More...
 
std::vector< unsigned > _tot_iter
 Number of iterations used by the solver at each node. More...
 
std::vector< Real_abs_residual
 L1norm of the solver residual at each node. More...
 
MooseMesh_mesh
 
const unsigned int _qp
 
const Node *const & _current_node
 
const bool & _unique_node_execute
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
const THREAD_ID _tid
 
Assembly_assembly
 
const Moose::CoordinateSystemType_coord_sys
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_mdi_feproblem
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const MaterialData_blk_material_data
 
const InputParameters_c_parameters
 
const std::string & _c_name
 
const std::string & _c_type
 
FEProblemBase_c_fe_problem
 
const SystemBase *const _c_sys
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > _coupled_vars
 
std::vector< MooseVariableFieldBase *> _coupled_moose_vars
 
std::vector< MooseVariable *> _coupled_standard_moose_vars
 
std::vector< VectorMooseVariable *> _coupled_vector_moose_vars
 
std::vector< ArrayMooseVariable *> _coupled_array_moose_vars
 
std::vector< MooseVariableField< Real > *> _coupled_fv_moose_vars
 
const std::unordered_map< std::string, std::string > & _new_to_deprecated_coupled_vars
 
bool _c_nodal
 
bool _c_is_implicit
 
const bool _c_allow_element_to_nodal_coupling
 
THREAD_ID _c_tid
 
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > _default_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADReal > > > _ad_default_value
 
std::unordered_map< std::string, std::unique_ptr< VectorVariableValue > > _default_vector_value
 
std::unordered_map< std::string, std::unique_ptr< ArrayVariableValue > > _default_array_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADRealVectorValue > > > _ad_default_vector_value
 
VariableValue _default_value_zero
 
VariableGradient _default_gradient
 
MooseArray< ADRealVectorValue_ad_default_gradient
 
MooseArray< ADRealTensorValue_ad_default_vector_gradient
 
VariableSecond _default_second
 
MooseArray< ADRealTensorValue_ad_default_second
 
MooseArray< ADRealVectorValue_ad_default_curl
 
const VariableValue_zero
 
const VariablePhiValue_phi_zero
 
const MooseArray< ADReal > & _ad_zero
 
const VariableGradient_grad_zero
 
const MooseArray< ADRealVectorValue > & _ad_grad_zero
 
const VariablePhiGradient_grad_phi_zero
 
const VariableSecond_second_zero
 
const MooseArray< ADRealTensorValue > & _ad_second_zero
 
const VariablePhiSecond_second_phi_zero
 
const VectorVariableValue_vector_zero
 
const VectorVariableCurl_vector_curl_zero
 
VectorVariableValue _default_vector_value_zero
 
VectorVariableGradient _default_vector_gradient
 
VectorVariableCurl _default_vector_curl
 
VectorVariableDivergence _default_div
 
ArrayVariableValue _default_array_value_zero
 
ArrayVariableGradient _default_array_gradient
 
bool _coupleable_neighbor
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
const Real_t_old
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
const Parallel::Communicator & _communicator
 

Detailed Description

Base class that controls the spatio-temporal solution of geochemistry reactions.

Definition at line 19 of file GeochemistryReactorBase.h.

Constructor & Destructor Documentation

◆ GeochemistryReactorBase()

GeochemistryReactorBase::GeochemistryReactorBase ( const InputParameters parameters)

Definition at line 173 of file GeochemistryReactorBase.C.

175  _num_my_nodes(_subproblem.mesh().getMesh().n_local_nodes()),
176  _mgd(getUserObject<GeochemicalModelDefinition>("model_definition").getDatabase()),
177  _pgs(getUserObject<GeochemicalModelDefinition>("model_definition")
178  .getPertinentGeochemicalSystem()),
181  _initial_max_ionic_str(getParam<Real>("max_ionic_strength") /
182  (1.0 + getParam<unsigned>("ramp_max_ionic_strength_initial"))),
185  getParam<bool>("ionic_str_using_basis_only"),
186  getParam<bool>("stoichiometric_ionic_str_using_Cl_only")),
187  _gac(_is,
188  getUserObject<GeochemicalModelDefinition>("model_definition").getOriginalFullDatabase()),
189  _max_swaps_allowed(getParam<unsigned>("max_swaps_allowed")),
190  _swapper(_num_basis, getParam<Real>("stoichiometry_tolerance")),
191  _small_molality(getParam<Real>("swap_threshold") * getParam<Real>("abs_tol")),
195 {
196 }
const unsigned _num_basis
number of basis species
virtual MooseMesh & mesh()=0
const unsigned _max_swaps_allowed
Maximum number of swaps allowed during a single solve.
std::vector< unsigned > _tot_iter
Number of iterations used by the solver at each node.
const unsigned _num_eqm
number of equilibrium species
ModelGeochemicalDatabase _mgd
my copy of the underlying ModelGeochemicalDatabase
NodalUserObject(const InputParameters &parameters)
const InputParameters & parameters() const
const PertinentGeochemicalSystem & _pgs
Reference to the original PertinentGeochemicalSystem used to create the ModelGeochemicalDatabase.
const Real _initial_max_ionic_str
Initial value of maximum ionic strength.
SubProblem & _subproblem
const unsigned _num_my_nodes
Number of nodes handled by this processor (will need to be made un-const when mesh adaptivity is hand...
MeshBase & getMesh()
std::vector< std::stringstream > _solver_output
The solver output at each node.
GeochemistryIonicStrength _is
The ionic strength calculator.
std::vector< Real > _abs_residual
L1norm of the solver residual at each node.
GeochemistrySpeciesSwapper _swapper
The species swapper.
const Real _small_molality
A small value of molality.
std::vector< std::string > eqm_species_name
eqm_species_name[i] = name of the i^th eqm species
GeochemistryActivityCoefficientsDebyeHuckel _gac
The activity calculator.
std::vector< std::string > basis_species_name
basis_species_name[j] = name of the j^th basis species

Member Function Documentation

◆ execute()

virtual void GeochemistryReactorBase::execute ( )
inlineoverridevirtual

◆ finalize()

virtual void GeochemistryReactorBase::finalize ( )
inlineoverridevirtual

◆ getGeochemicalSystem()

virtual const GeochemicalSystem& GeochemistryReactorBase::getGeochemicalSystem ( dof_id_type  node_id) const
pure virtual
Returns
a reference to the equilibrium geochemical system at the given node
Parameters
node_idthe ID of the node

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryQuantityAux::computeValue(), and GeochemistryConsoleOutput::output().

◆ getMoleAdditions()

virtual const DenseVector<Real>& GeochemistryReactorBase::getMoleAdditions ( dof_id_type  node_id) const
pure virtual
Returns
the mole additions (the first num_basis of these are additions to the bulk composition of the equilibrium system, the last num_kin of these are -dt*kinetic_reaction_rate, ie dt*dissolution_rate) at the specified node_id
Parameters
node_idthe node ID

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryQuantityAux::computeValue(), and GeochemistryConsoleOutput::output().

◆ getMolesDumped()

virtual Real GeochemistryReactorBase::getMolesDumped ( dof_id_type  node_id,
const std::string &  species 
) const
pure virtual
Returns
the moles dumped of the given species at the specified node_id
Parameters
speciesthe name of the species
node_idthe node ID

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryQuantityAux::computeValue().

◆ getPertinentGeochemicalSystem()

const PertinentGeochemicalSystem& GeochemistryReactorBase::getPertinentGeochemicalSystem ( ) const
inline

returns a reference to the PertinentGeochemicalSystem used to creat the ModelGeochemicalDatabase

Definition at line 73 of file GeochemistryReactorBase.h.

Referenced by GeochemistryQuantityAux::computeValue(), GeochemistryQuantityAux::GeochemistryQuantityAux(), and GeochemistryConsoleOutput::output().

73 { return _pgs; };
const PertinentGeochemicalSystem & _pgs
Reference to the original PertinentGeochemicalSystem used to create the ModelGeochemicalDatabase.

◆ getSolverIterations()

virtual unsigned GeochemistryReactorBase::getSolverIterations ( dof_id_type  node_id) const
pure virtual
Returns
the total number of iterations used by the most recent solve at the specified node_id
Parameters
node_idthe node ID

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryConsoleOutput::output().

◆ getSolverOutput()

virtual const std::stringstream& GeochemistryReactorBase::getSolverOutput ( dof_id_type  node_id) const
pure virtual
Returns
a reference to the most recent solver output (containing iteration info, swap info, residuals, etc) at the specified node_id
Parameters
node_idthe node ID

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryConsoleOutput::output().

◆ getSolverResidual()

virtual Real GeochemistryReactorBase::getSolverResidual ( dof_id_type  node_id) const
pure virtual
Returns
the L1norm of the residual at the end of the most recent solve at the specified node_id
Parameters
node_idthe node ID

Implemented in GeochemistrySpatialReactor, GeochemistryTimeDependentReactor, and GeochemistryTimeIndependentReactor.

Referenced by GeochemistryConsoleOutput::output().

◆ initialize()

virtual void GeochemistryReactorBase::initialize ( )
inlineoverridevirtual

◆ sharedParams()

InputParameters GeochemistryReactorBase::sharedParams ( )
static

contains params that are shared with AddGeochemistrySolverAction and its children

Definition at line 13 of file GeochemistryReactorBase.C.

Referenced by AddGeochemistrySolverAction::validParams(), and validParams().

14 {
16  params.addParam<std::vector<std::string>>(
17  "swap_out_of_basis",
18  {},
19  "Species that should be removed from the model_definition's basis and be replaced with the "
20  "swap_into_basis species");
21  params.addParam<std::vector<std::string>>(
22  "swap_into_basis",
23  {},
24  "Species that should be removed from the model_definition's equilibrium species list and "
25  "added to the basis. There must be the same number of species in swap_out_of_basis and "
26  "swap_into_basis. These swaps are performed before any other computations during the "
27  "initial problem setup. If this list contains more than one species, the swapping is "
28  "performed one-by-one, starting with the first pair (swap_out_of_basis[0] and "
29  "swap_into_basis[0]), then the next pair, etc");
30  MultiMooseEnum constraint_user_meaning(
31  "kg_solvent_water bulk_composition bulk_composition_with_kinetic free_concentration "
32  "free_mineral activity log10activity fugacity log10fugacity");
34  "constraint_meaning",
35  constraint_user_meaning,
36  "Meanings of the numerical values given in constraint_value. kg_solvent_water: can only be "
37  "applied to H2O and units must be kg. bulk_composition: can be applied to all non-gas "
38  "species, and represents the total amount of the basis species contained as free species as "
39  "well as the amount found in secondary species but not in kinetic species, and units must be "
40  "moles or mass (kg, g, etc). bulk_composition_with_kinetic: can be applied to all non-gas "
41  "species, and represents the total amount of the basis species contained as free species as "
42  "well as the amount found in secondary species and in kinetic species, and units must be "
43  "moles or mass (kg, g, etc). free_concentration: can be applied to all basis species that "
44  "are not gas and not H2O and not mineral, and represents the total amount of the basis "
45  "species existing freely (not as secondary species) within the solution, and units must be "
46  "molal or mass_per_kg_solvent. free_mineral: can be applied to all mineral basis species, "
47  "and represents the total amount of the mineral existing freely (precipitated) within the "
48  "solution, and units must be moles, mass or cm3. activity and log10activity: can be applied "
49  "to basis species that are not gas and not mineral and not sorbing sites, and represents the "
50  "activity of the basis species (recall pH = -log10activity), and units must be "
51  "dimensionless. fugacity and log10fugacity: can be applied to gases, and units must be "
52  "dimensionless");
53  MultiMooseEnum constraint_unit("dimensionless moles molal kg g mg ug kg_per_kg_solvent "
54  "g_per_kg_solvent mg_per_kg_solvent ug_per_kg_solvent cm3");
56  "constraint_unit",
57  constraint_unit,
58  "Units of the numerical values given in constraint_value. Dimensionless: should only be "
59  "used for activity or fugacity constraints. Moles: mole number. Molal: moles per kg "
60  "solvent water. kg: kilograms. g: grams. mg: milligrams. ug: micrograms. "
61  "kg_per_kg_solvent: kilograms per kg solvent water. g_per_kg_solvent: grams per kg solvent "
62  "water. mg_per_kg_solvent: milligrams per kg solvent water. ug_per_kg_solvent: micrograms "
63  "per kg solvent water. cm3: cubic centimeters");
64  params.addRequiredParam<std::vector<std::string>>(
65  "constraint_species",
66  "Names of the species that have their values fixed to constraint_value with meaning "
67  "constraint_meaning. All basis species (after swap_into_basis and swap_out_of_basis) must "
68  "be provided with exactly one constraint. These constraints are used to compute the "
69  "configuration during the initial problem setup, and in time-dependent simulations they may "
70  "be modified as time progresses.");
71  params.addRequiredParam<std::vector<Real>>(
72  "constraint_value", "Numerical value of the containts on constraint_species");
73  params.addRangeCheckedParam<Real>(
74  "max_ionic_strength", 3.0, "max_ionic_strength >= 0.0", "Maximum value of ionic strength");
75  params.addParam<unsigned>(
76  "extra_iterations_to_make_consistent",
77  0,
78  "Extra iterations to make the molalities, activities, etc, consistent "
79  "before commencing the Newton process to find the aqueous configuration");
80  params.addRequiredParam<std::string>(
81  "charge_balance_species",
82  "Charge balance will be enforced on this basis species. This means that its bulk mole "
83  "number may be changed from the initial value you provide in order to ensure charge "
84  "neutrality. After the initial swaps have been performed, this must be in the basis, and it "
85  "must be provided with a bulk_composition constraint_meaning.");
86  params.addParam<std::vector<std::string>>(
87  "prevent_precipitation",
88  {},
89  "Mineral species in this list will be prevented from precipitating, irrespective of their "
90  "saturation index (unless they are initially in the basis)");
91  params.addParam<Real>(
92  "abs_tol",
93  1E-10,
94  "If the residual of the algebraic system (measured in mol) is lower than this value, the "
95  "Newton process (that finds the aqueous configuration) is deemed to have converged");
96  params.addParam<Real>("rel_tol",
97  1E-200,
98  "If the residual of the algebraic system (measured in mol) is lower than "
99  "this value times the initial residual, the Newton process (that finds the "
100  "aqueous configuration) is deemed to have converged");
101  params.addRangeCheckedParam<Real>("min_initial_molality",
102  1E-20,
103  "min_initial_molality > 0.0",
104  "Minimum value of the initial-guess molality used in the "
105  "Newton process to find the aqueous configuration");
106  params.addParam<unsigned>(
107  "max_iter",
108  100,
109  "Maximum number of Newton iterations allowed when finding the aqueous configuration");
110  params.addParam<Real>(
111  "max_initial_residual",
112  1E3,
113  "Attempt to alter the initial-guess molalities so that the initial residual for the Newton "
114  "process (that finds the aqueous configuration) is less than this number of moles");
115  params.addRangeCheckedParam<Real>(
116  "swap_threshold",
117  0.1,
118  "swap_threshold >= 0.0",
119  "If the molality of a basis species in the algebraic system falls below swap_threshold * "
120  "abs_tol then it is swapped out of the basis. The dimensions of swap_threshold are "
121  "1/kg(solvent water)");
122  params.addParam<unsigned>(
123  "max_swaps_allowed",
124  20,
125  "Maximum number of swaps allowed during a single attempt at finding the aqueous "
126  "configuration. Usually only a handful of swaps are used: this parameter prevents endless "
127  "cyclic swapping that prevents the algorithm from progressing");
128  params.addParam<unsigned>(
129  "ramp_max_ionic_strength_initial",
130  20,
131  "The number of iterations over which to progressively increase the maximum ionic strength "
132  "(from zero to max_ionic_strength) during the initial equilibration. Increasing this can "
133  "help in convergence of the Newton process, at the cost of spending more time finding the "
134  "aqueous configuration.");
135  params.addParam<bool>(
136  "ionic_str_using_basis_only",
137  false,
138  "If set to true, ionic strength and stoichiometric ionic strength will be computed using "
139  "only the basis molalities, ignoring molalities of equilibrium species. Since basis "
140  "molality is usually greater than equilibrium molality, and the whole Debye-Huckel concept "
141  "of activity coefficients depending on ionic strength is only approximate in practice, "
142  "setting this parameter true often results in a reasonable approximation. It can aid in "
143  "convergence since it eliminates problems associated with unphysical huge equilibrium "
144  "molalities that can occur during Newton iteration to the solution");
145  params.addParam<bool>("stoichiometric_ionic_str_using_Cl_only",
146  false,
147  "If set to true, the stoichiometric ionic strength will be set equal to "
148  "Cl- molality (or max_ionic_strength if the Cl- molality is too "
149  "big). This flag overrides ionic_str_using_basis_molality_only");
150  return params;
151 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
InputParameters emptyInputParameters()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

◆ threadJoin()

virtual void GeochemistryReactorBase::threadJoin ( const UserObject )
inlineoverridevirtual

Implements NodalUserObject.

Reimplemented in GeochemistrySpatialReactor.

Definition at line 28 of file GeochemistryReactorBase.h.

28 {}

◆ validParams()

InputParameters GeochemistryReactorBase::validParams ( )
static

Definition at line 154 of file GeochemistryReactorBase.C.

Referenced by GeochemistryTimeIndependentReactor::validParams(), GeochemistrySpatialReactor::validParams(), and GeochemistryTimeDependentReactor::validParams().

155 {
158 
159  params.addRequiredParam<UserObjectName>(
160  "model_definition", "The name of the GeochemicalModelDefinition user object.");
161  params.addRangeCheckedParam<Real>(
162  "stoichiometry_tolerance",
163  1E-6,
164  "stoichiometry_tolerance >= 0.0",
165  "Swapping involves inverting matrices via a singular value decomposition. During this "
166  "process: (1) if abs(singular value) < stoi_tol * L1norm(singular values), then the "
167  "matrix is deemed singular (so the basis swap is deemed invalid); (2) if abs(any "
168  "stoichiometric coefficient) < stoi_tol then it is set to zero.");
169  params.addClassDescription("Base class for UserObject to solve geochemistry reactions");
170  return params;
171 }
static InputParameters validParams()
static InputParameters sharedParams()
contains params that are shared with AddGeochemistrySolverAction and its children ...
void addRequiredParam(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _abs_residual

std::vector<Real> GeochemistryReactorBase::_abs_residual
protected

◆ _gac

GeochemistryActivityCoefficientsDebyeHuckel GeochemistryReactorBase::_gac
protected

The activity calculator.

Definition at line 91 of file GeochemistryReactorBase.h.

Referenced by GeochemistrySpatialReactor::GeochemistrySpatialReactor().

◆ _initial_max_ionic_str

const Real GeochemistryReactorBase::_initial_max_ionic_str
protected

Initial value of maximum ionic strength.

Definition at line 87 of file GeochemistryReactorBase.h.

◆ _is

GeochemistryIonicStrength GeochemistryReactorBase::_is
protected

The ionic strength calculator.

Definition at line 89 of file GeochemistryReactorBase.h.

Referenced by GeochemistrySpatialReactor::GeochemistrySpatialReactor().

◆ _max_swaps_allowed

const unsigned GeochemistryReactorBase::_max_swaps_allowed
protected

Maximum number of swaps allowed during a single solve.

Definition at line 93 of file GeochemistryReactorBase.h.

◆ _mgd

ModelGeochemicalDatabase GeochemistryReactorBase::_mgd
protected

◆ _num_basis

const unsigned GeochemistryReactorBase::_num_basis
protected

◆ _num_eqm

const unsigned GeochemistryReactorBase::_num_eqm
protected

number of equilibrium species

Definition at line 85 of file GeochemistryReactorBase.h.

◆ _num_my_nodes

const unsigned GeochemistryReactorBase::_num_my_nodes
protected

◆ _pgs

const PertinentGeochemicalSystem& GeochemistryReactorBase::_pgs
protected

Reference to the original PertinentGeochemicalSystem used to create the ModelGeochemicalDatabase.

Definition at line 81 of file GeochemistryReactorBase.h.

Referenced by getPertinentGeochemicalSystem().

◆ _small_molality

const Real GeochemistryReactorBase::_small_molality
protected

A small value of molality.

Definition at line 97 of file GeochemistryReactorBase.h.

Referenced by GeochemistryTimeDependentReactor::postSolveFlowThrough().

◆ _solver_output

std::vector<std::stringstream> GeochemistryReactorBase::_solver_output
protected

◆ _swapper

GeochemistrySpeciesSwapper GeochemistryReactorBase::_swapper
protected

The species swapper.

Definition at line 95 of file GeochemistryReactorBase.h.

Referenced by GeochemistrySpatialReactor::GeochemistrySpatialReactor().

◆ _tot_iter

std::vector<unsigned> GeochemistryReactorBase::_tot_iter
protected

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