AqueousReactionsEquilibriumPhysics

Building the equation using Kernels

This Physics creates the equations for the mass conservation equation for each primary species following Lichtner (1996). See Chemical Reactions Module for more information on the equations.

The following kernels are used:

Variable definition

The AqueousReactionsEquilibriumPhysics takes care of defining solver and auxiliary variables for the species declared in the "primary_species" and "secondary_species" parameters respectively.

The order of the variables is shared across all variables.

Reaction Network parsing

See ReactionNetworkUtils for the acceptable syntax for the "reactions" parameter describing the reaction network.

commentnote

Only one product can be set per reaction and it should be an equilibrium species. Other products may be moved to the left hand side (LHS). If they are equilibrium species as well, they should set as the RHS in another equation.

The logarithm of the equilbrium constant previously specified at the end of the reaction:


A + B = C   2

is now specified as metadata between square brackets:


A + B -> C   [K=100]
warningwarning

The equilibrium constants in the legacy syntax was the log10 of the constant. To reproduce this input, you should specify [log10_K=...] instead of [K=..] which is now the actual constant rather than its logarithm.

Other differences:

  • the equal sign = has been replaced by an arrow ->.

  • the comma between reactions has been replaced by a linebreak

Input Parameters

  • primary_speciesThe list of primary species to add

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of primary species to add

  • secondary_speciesThe list of secondary species to add

    C++ Type:std::vector<AuxVariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of secondary species to add

Required Parameters

  • add_darcy_advection_termFalseWhether to add an advection term using the Darcy equation to compute the advecting velocity

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to add an advection term using the Darcy equation to compute the advecting velocity

  • blockBlocks (subdomains) that this Physics is active on.

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:Blocks (subdomains) that this Physics is active on.

  • gravity0 0 -9.81Gravity vector (for Darcy advection)

    Default:0 0 -9.81

    C++ Type:libMesh::VectorValue<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Gravity vector (for Darcy advection)

  • initial_conditionsInitial conditions for the species to solve for. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:std::vector<MooseFunctorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial conditions for the species to solve for. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • orderFIRSTOrder of both the primary and secondary species variables

    Default:FIRST

    C++ Type:MooseEnum

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, SIXTH, SEVENTH, EIGHTH, NINTH, TENTH, ELEVENTH, TWELFTH, THIRTEENTH, FOURTEENTH, FIFTEENTH, SIXTEENTH, SEVENTEENTH, EIGHTTEENTH, NINETEENTH, TWENTIETH, TWENTYFIRST, TWENTYSECOND, TWENTYTHIRD, TWENTYFOURTH, TWENTYFIFTH, TWENTYSIXTH, TWENTYSEVENTH, TWENTYEIGHTH, TWENTYNINTH, THIRTIETH, THIRTYFIRST, THIRTYSECOND, THIRTYTHIRD, THIRTYFOURTH, THIRTYFIFTH, THIRTYSIXTH, THIRTYSEVENTH, THIRTYEIGHTH, THIRTYNINTH, FORTIETH, FORTYFIRST, FORTYSECOND, FORTYTHIRD

    Controllable:No

    Description:Order of both the primary and secondary species variables

  • pressurePressure variable (for Darcy advection)

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Pressure variable (for Darcy advection)

  • reactionsThe list of equilibrium reactions occuring in the fluid

    C++ Type:std::string

    Controllable:No

    Description:The list of equilibrium reactions occuring in the fluid

  • scalingScaling factor to apply to each equation

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Scaling factor to apply to each equation

  • transientsame_as_problemWhether the physics is to be solved as a transient

    Default:same_as_problem

    C++ Type:MooseEnum

    Options:true, false, same_as_problem

    Controllable:No

    Description:Whether the physics is to be solved as a transient

  • verboseFalseFlag to facilitate debugging a Physics

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to facilitate debugging a Physics

Optional Parameters

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified only the blocks named will be visited and made active

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified blocks matching these identifiers will be skipped.

Advanced Parameters

  • dont_create_aux_kernelsFalseWhether to skip the 'add_aux_kernel' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_aux_kernel' task

  • dont_create_aux_variablesFalseWhether to skip the 'add_aux_variable' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_aux_variable' task

  • dont_create_bcsFalseWhether to skip the 'add_bc' task for each boundary condition type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_bc' task for each boundary condition type

  • dont_create_correctorsFalseWhether to skip the 'add_correctors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_correctors' task

  • dont_create_functionsFalseWhether to skip the 'add_function' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_function' task

  • dont_create_icsFalseWhether to skip the 'add_ic'/'add_fv_ic/add_ics_physics' task(s)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_ic'/'add_fv_ic/add_ics_physics' task(s)

  • dont_create_kernelsFalseWhether to skip the 'add_kernel' task for each kernel type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_kernel' task for each kernel type

  • dont_create_materialsFalseWhether to skip the 'add_material'/'add_materials_physics' task(s) for each material type

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_material'/'add_materials_physics' task(s) for each material type

  • dont_create_postprocessorsFalseWhether to skip the 'add_postprocessors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_postprocessors' task

  • dont_create_solver_variablesFalseWhether to skip the 'add_variable'/'add_variables_physics' task(s)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_variable'/'add_variables_physics' task(s)

  • dont_create_user_objectsFalseWhether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)

  • dont_create_vectorpostprocessorsFalseWhether to skip the 'add_vectorpostprocessors' task

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to skip the 'add_vectorpostprocessors' task

Reduce Physics Object Creation Parameters

  • initial_from_file_timestepLATESTGives the time step number (or "LATEST") for which to read the Exodus solution

    Default:LATEST

    C++ Type:std::string

    Controllable:No

    Description:Gives the time step number (or "LATEST") for which to read the Exodus solution

  • initialize_variables_from_mesh_fileFalseDetermines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Determines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)

Restart From Exodus Parameters

  • preconditioningdeferWhich preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics

    Default:defer

    C++ Type:MooseEnum

    Options:default, defer

    Controllable:No

    Description:Which preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics

  • system_namesnl0 Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.

    Default:nl0

    C++ Type:std::vector<SolverSystemName>

    Controllable:No

    Description:Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.

Numerical Scheme Parameters

References

  1. Peter C Lichtner. Continuum formulation of multicomponent-multiphase reactive transport. Reviews in Mineralogy and Geochemistry, 34:1–81, 1996.[BibTeX]