- 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
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:
CoupledBEEquilibriumSub for the time derivative
CoupledDiffusionReactionSub for the diffusion term
CoupledConvectionReactionSub for the advection term
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.
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]
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
- 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
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
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
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
- Peter C Lichtner.
Continuum formulation of multicomponent-multiphase reactive transport.
Reviews in Mineralogy and Geochemistry, 34:1–81, 1996.[BibTeX]