Chemical Reactions Module

The chemical reactions module provides a set of tools for the calculation of multicomponent aqueous reactive transport in porous media, originally developed as the MOOSE application RAT (Guo et al., 2013).

Theory

The first part of defining the chemistry of a problem is to choose a set of independent primary species from which every other species (including minerals) can be expressed in terms of. Other chemical species that can be expressed as combinations of primary species are termed secondary species.

Following Lichtner (1996), the mass conservation equation is formulated in terms of the total concentration of a primary species , , and has the form

(1) where is porosity, is the hydrodynamic dispersion tensor, is the number of minerals formed by kinetic reactions, is the stoichiometric coefficient for the species in the kinetic reaction, is the reaction rate for the mineral, and is a source (sink) of the species, and is the Darcy flux

(2) where is permeability, is fluid viscosity, is pressure, is fluid density, and is gravity.

The total concentration of the primary species, , is defined as

(3) where is the concentration of the primary species, is the concentration of the secondary species, is the total number of secondary species, and are the stoichiometric coefficients.

Aqueous equilibrium reactions

The concentration of the secondary species, , is calculated from mass action equations corresponding to equilibrium reactions

(4) where refers to the species. This yields

(5) where is equilibrium constant, is the activity coefficient, and is the number of primary species.

Solid kinetic reactions

Mineral precipitation/dissolution is possible via kinetic reactions of the form

(6) where refers to the mineral species.

The reaction rate is based on transition state theory, a simple form of which gives

(7) where is positive for dissolution and negative for precipitation, is the rate constant, is the specific reactive surface area, is termed the mineral saturation ratio, expressed as

(8) where is the equilibrium constant for mineral .

The rate constant is typically reported at a reference temperature (commonly 25C). Using an Arrhenius relation, the temperature dependence of is given as

(9) where is the rate constant at reference temperature , is the activation energy, is the gas constant.

The exponents and in the reaction rate equation are specific to each mineral reaction, and should be measured experimentally. For simplicity, they are set to unity in this module.

The rate of change in molar concentration, , of the mineral species is

(10)

This can be expressed in terms of the mineral volume fraction

(11) where is the molar volume of the mineral species, (12)

The total porosity, , can be defined in terms of the volume fraction of all mineral species

(13)

In this way, the change in porosity due to mineral precipitation or dissolution can be calculated, which can then be used to calculate changes in other material properties such as permeability.

Implementation details

The physics described above is implemented in a number of Kernels and AuxKernels

Kernels

The transport of each primary species is calculated using the following Kernels:

The transport of primary species present in a secondary species is included using:

The amount of primary species converted to an immobile mineral phase is given by

  • CoupledBEKinetic Rate of change of primary species concentration in mineral species due to dissolution or precipitation

The Darcy flux is calculated using

AuxKernels

The following AuxKernels are used to calculate secondary species and mineral concentrations, as well as total primary species concentration and solution pH.

  • AqueousEquilibriumRxnAux The concentration of secondary species for the equilibrium reaction

  • KineticDisPreRateAux The kinetic rate of the kinetic reaction

  • KineticDisPreConcAux The concentration of mineral species

  • TotalConcentrationAux The total concentration of a given primary species

  • PHAux The pH of the solution

  • EquilibriumConstantAux Temperature-dependent equilibrium constant

Material properties

The Kernels above require several material properties to be defined using the following names: porosity, diffusivity and conductivity. These can be defined using one of the Materials available in the framework. For example, constant properties can be implemented using a GenericConstantMaterial with the following:

Required material properties

[Materials]
  [./porous]
    type = GenericConstantMaterial
    prop_names = 'diffusivity conductivity porosity'
    prop_values = '1e-4 1e-4 0.2'
  [../]
[]
(modules/chemical_reactions/test/tests/aqueous_equilibrium/1species.i)

More complicated formulations can be added by creating new Materials as required.

Boundary condition

A flux boundary condition, ChemicalOutFlowBC is provided to define on a boundary.

Postprocessors

The total volume fraction of a given mineral species can be calculated using a TotalMineralVolumeFraction postprocessor.

Reaction network parser

The chemical reactions module includes a reaction network parser in the Actions system that enables chemical reactions to be specified in a natural form in the input file. The parser then adds all required Variables, AuxVariables, Kernels and AuxKernels to represent the total geochemical model. To use the reaction network parser, a ReactionNetwork block can be added to the input file.

Equilibrium reactions can be entered in the ReactionNetwork block using an AqueousEquilibriumReactions sub-block, while kinetic reactions are entered in a SolidKineticReactions sub-block.

The input file syntax for equilibrium reactions has to following form:

(14)

Individual equilibrium reactions are provided with the primary species on the left hand side, while the equilibrium species follows the = sign, followed by the log of the equilibrium constant. A comma is used to delimit reactions, so that multiple equilibrium reactions can be entered.

The syntax for solid kinetic reactions is similar, except that no equilibrium constant is entered in the reactions block.

To demonstrate the use of the reaction network parser, consider the geochemical model used in Guo et al. (2013), which features aqueous equilibrium reactions as well as kinetic mineral dissolution and precipitation.

Equilibrium reactions:

(15)

Kinetic reaction:

with equilibrium constant , specific reactive surface area m/L, kinetic rate constant mol/m and activation energy J/mol.

Example of AqueousEquilibriumReactions action.

[ReactionNetwork]
  [./AqueousEquilibriumReactions]
    primary_species = 'ca2+ hco3- h+'
    secondary_species = 'co2_aq co32- caco3_aq cahco3+ caoh+ oh-'
    pressure = pressure
    reactions = 'h+ + hco3- = co2_aq 6.341,
                 hco3- - h+ = co32- -10.325,
                 ca2+ + hco3- - h+ = caco3_aq -7.009,
                 ca2+ + hco3- = cahco3+ -0.653,
                 ca2+ - h+ = caoh+ -12.85,
                 - h+ = oh- -13.991'
  [../]
  [./SolidKineticReactions]
    primary_species = 'ca2+ hco3- h+'
    kin_reactions = 'ca2+ + hco3- - h+ = caco3_s'
    secondary_species = caco3_s
    log10_keq = 1.8487
    reference_temperature = 298.15
    system_temperature = 298.15
    gas_constant = 8.314
    specific_reactive_surface_area = 4.61e-4
    kinetic_rate_constant = 6.456542e-7
    activation_energy = 1.5e4
  [../]
[]
(modules/chemical_reactions/examples/calcium_bicarbonate/calcium_bicarbonate.i)

The reactive transport system above can be provided in the input file without using the reaction network parser. However, this adds more than 400 lines of input in this case, due to the large number of kernels that have to be provided!

Objects, Actions, and, Syntax

AuxKernels

BCs

  • Moose App
  • AddBCAction
  • ConvectiveFluxBCDetermines boundary values via the initial and final values, flux, and exposure duration
  • DGFunctionDiffusionDirichletBC
  • DiffusionFluxBCComputes a boundary residual contribution consistent with the Diffusion Kernel. Does not impose a boundary condition; instead computes the boundary contribution corresponding to the current value of grad(u) and accumulates it in the residual vector.
  • DirichletBCImposes the essential boundary condition , where is a constant, controllable value.
  • EigenDirichletBCDirichlet BC for eigenvalue solvers
  • FunctionDirichletBCImposes the essential boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
  • FunctionNeumannBCImposes the integrated boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
  • FunctionPenaltyDirichletBC
  • FunctionPresetBCThe same as FunctionDirichletBC except the value is applied before the solve begins
  • LagrangeVecDirichletBCImposes the essential boundary condition , where are constant, controllable values.
  • LagrangeVecFunctionDirichletBCImposes the essential boundary condition , where components are calculated with functions.
  • MatchedValueBCImplements a NodalBC which equates two different Variables' values on a specified boundary.
  • NeumannBCImposes the integrated boundary condition , where is a constant, controllable value.
  • OneDEqualValueConstraintBC
  • PenaltyDirichletBCEnforces a Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.
  • PostprocessorDirichletBC
  • PostprocessorNeumannBC
  • PresetBCSimilar to DirichletBC except the value is applied before the solve begins
  • SinDirichletBCImposes a time-varying essential boundary condition , where varies from an given initial value at time to a given final value over a specified duration.
  • SinNeumannBCImposes a time-varying flux boundary condition , where varies from an given initial value at time to a given final value over a specified duration.
  • VacuumBC
  • VectorNeumannBCImposes the integrated boundary condition , where is a user-defined, constant vector.
  • WeakGradientBCComputes a boundary residual contribution consistent with the Diffusion Kernel. Does not impose a boundary condition; instead computes the boundary contribution corresponding to the current value of grad(u) and accumulates it in the residual vector.
  • Periodic
  • Rdg App
  • AEFVBCA boundary condition kernel for the advection equation using a cell-centered finite volume method.
  • Functional Expansion Tools App
  • FXFluxBCSets a flux boundary condition, evaluated using a FunctionSeries instance. This does not fix the flux, but rather 'strongly encourages' flux agreement by penalizing the differences through contributions to the residual.
  • FXValueBCImposes a fixed value boundary condition, evaluated using a FunctionSeries instance.
  • FXValuePenaltyBCSets a value boundary condition, evaluated using a FunctionSeries instance. This does not fix the value, but rather 'strongly encourages' value agreement by penalizing the differences through contributions to the residual.
  • XFEMApp
  • CrackTipEnrichmentCutOffBCSimilar to DirichletBC except the value is applied before the solve begins
  • Heat Conduction App
  • ConvectiveFluxFunctionDetermines boundary value by fluid heat transfer coefficient and far-field temperature
  • CoupledConvectiveFlux
  • CoupledConvectiveHeatFluxBCConvective heat transfer boundary condition with temperature and heat transfer coefficent given by auxiliary variables.
  • GapHeatTransferTransfers heat across a gap between two surfaces dependant on the gap geometry specified.
  • HeatConductionBC
  • Richards App
  • Q2PPiecewiseLinearSinkSink of fluid, controlled by (pressure, bare_fluxes) interpolation. This is for use in Q2P models
  • RichardsExcavAllows the user to set variable values at the face of an excavation. You must have defined the excavation start time, start position, etc, through the excav_geom_function
  • RichardsHalfGaussianSink
  • RichardsPiecewiseLinearSink
  • Tensor Mechanics App
  • CoupledPressureBCApplies a pressure from a variable on a given boundary in a given direction
  • DashpotBC
  • DisplacementAboutAxisImplements a boundary condition that enforces rotationaldisplacement around an axis on a boundary
  • InteractionIntegralBenchmarkBC
  • PresetAccelerationPrescribe acceleration on a given boundary in a given direction
  • PresetDisplacementPrescribe the displacement on a given boundary in a given direction.
  • PresetVelocity
  • PressureApplies a pressure on a given boundary in a given direction
  • StickyBCImposes the boundary condition if exceeds the bounds provided
  • CavityPressure
  • CoupledPressure
  • Pressure
  • Navier Stokes App
  • EnergyFreeBC
  • INSMomentumNoBCBCLaplaceFormThis class implements the 'No BC' boundary condition based on the 'Laplace' form of the viscous stress tensor.
  • INSMomentumNoBCBCTractionFormThis class implements the 'No BC' boundary condition based on the 'traction' form of the viscous stress tensor.
  • INSTemperatureNoBCBCThis class implements the 'No BC' boundary condition discussed by Griffiths, Papanastiou, and others.
  • ImplicitNeumannBCThis class implements a form of the Neumann boundary condition in which the boundary term is treated 'implicitly'.
  • MassFreeBC
  • MomentumFreeBC
  • MomentumFreeSlipBC
  • NSEnergyInviscidSpecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
  • NSEnergyInviscidSpecifiedDensityAndVelocityBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
  • NSEnergyInviscidSpecifiedNormalFlowBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
  • NSEnergyInviscidSpecifiedPressureBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
  • NSEnergyInviscidUnspecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
  • NSEnergyViscousBCThis class couples together all the variables for the compressible Navier-Stokes equations to allow them to be used in derived IntegratedBC classes.
  • NSEnergyWeakStagnationBCThe inviscid energy BC term with specified normal flow.
  • NSImposedVelocityBCImpose Velocity BC.
  • NSImposedVelocityDirectionBCThis class imposes a velocity direction component as a Dirichlet condition on the appropriate momentum equation.
  • NSInflowThermalBCThis class is used on a boundary where the incoming flow values (rho, u, v, T) are all completely specified.
  • NSMassSpecifiedNormalFlowBCThis class implements the mass equation boundary term with a specified value of rho*(u.n) imposed weakly.
  • NSMassUnspecifiedNormalFlowBCThis class implements the mass equation boundary term with the rho*(u.n) boundary integral computed implicitly.
  • NSMassWeakStagnationBCThe inviscid energy BC term with specified normal flow.
  • NSMomentumConvectiveWeakStagnationBCThe convective part (sans pressure term) of the momentum equation boundary integral evaluated at specified stagnation temperature, stagnation pressure, and flow direction values.
  • NSMomentumInviscidNoPressureImplicitFlowBCMomentum equation boundary condition used when pressure is not integrated by parts.
  • NSMomentumInviscidSpecifiedNormalFlowBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
  • NSMomentumInviscidSpecifiedPressureBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
  • NSMomentumPressureWeakStagnationBCThis class implements the pressure term of the momentum equation boundary integral for use in weak stagnation boundary conditions.
  • NSMomentumViscousBCThis class corresponds to the viscous part of the 'natural' boundary condition for the momentum equations.
  • NSPenalizedNormalFlowBCThis class penalizes the the value of u.n on the boundary so that it matches some desired value.
  • NSPressureNeumannBCThis kernel is appropriate for use with a 'zero normal flow' boundary condition in the context of the Euler equations.
  • NSStagnationPressureBCThis Dirichlet condition imposes the condition p_0 = p_0_desired.
  • NSStagnationTemperatureBCThis Dirichlet condition imposes the condition T_0 = T_0_desired.
  • NSThermalBCNS thermal BC.
  • Chemical Reactions App
  • ChemicalOutFlowBCChemical flux boundary condition
  • Porous Flow App
  • PorousFlowHalfCubicSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a cubic.
  • PorousFlowHalfGaussianSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a Gaussian.
  • PorousFlowPiecewiseLinearSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a piecewise linear function.
  • PorousFlowSinkApplies a flux sink to a boundary.

Kernels

  • Moose App
  • AddKernelAction
  • AnisotropicDiffusionAnisotropic diffusion kernel with weak form given by .
  • BodyForceDemonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form .
  • CoefTimeDerivativeThe time derivative operator with the weak form of .
  • ConservativeAdvectionConservative form of which in its weak form is given by: .
  • CoupledForceImplements a source term proportional to the value of a coupled variable. Weak form: .
  • CoupledTimeDerivativeTime derivative Kernel that acts on a coupled variable. Weak form: .
  • DiffusionThe Laplacian operator (), with the weak form of .
  • MassEigenKernelAn eigenkernel with weak form where is the eigenvalue.
  • MassLumpedTimeDerivativeLumped formulation of the time derivative . Its corresponding weak form is where denotes the time derivative of the solution coefficient associated with node .
  • MatDiffusionDiffusion equation Kernel that takes an isotropic Diffusivity from a material property
  • MaterialDerivativeRankFourTestKernelClass used for testing derivatives of a rank four tensor material property.
  • MaterialDerivativeRankTwoTestKernelClass used for testing derivatives of a rank two tensor material property.
  • MaterialDerivativeTestKernelClass used for testing derivatives of a scalar material property.
  • NullKernelKernel that sets a zero residual.
  • ReactionImplements a simple consuming reaction term with weak form .
  • TimeDerivativeThe time derivative operator with the weak form of .
  • UserForcingFunctionDemonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form .
  • VectorBodyForceDemonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form .
  • VectorDiffusionThe Laplacian operator (), with the weak form of .
  • Phase Field Test App
  • GaussContForcing
  • Phase Field App
  • ACBarrierFunctionAllen Cahn kernel used when 'mu' is a function of variables
  • ACGBPolyGrain-Boundary model concentration dependent residual
  • ACGrGrElasticDrivingForceAdds elastic energy contribution to the Allen-Cahn equation
  • ACGrGrMultiMulti-phase poly-crystaline Allen-Cahn Kernel
  • ACGrGrPolyGrain-Boundary model poly-crystaline interface Allen-Cahn Kernel
  • ACInterfaceGradient energy Allen-Cahn Kernel
  • ACInterface2DMultiPhase1Gradient energy Allen-Cahn Kernel where the derivative of interface parameter kappa wrt the gradient of order parameter is considered.
  • ACInterface2DMultiPhase2Gradient energy Allen-Cahn Kernel where the interface parameter kappa is considered.
  • ACInterfaceKobayashi1Anisotropic gradient energy Allen-Cahn Kernel Part 1
  • ACInterfaceKobayashi2Anisotropic Gradient energy Allen-Cahn Kernel Part 2
  • ACInterfaceStressInterface stress driving force Allen-Cahn Kernel
  • ACKappaFunctionGradient energy term for when kappa as a function of the variable
  • ACMultiInterfaceGradient energy Allen-Cahn Kernel with cross terms
  • ACSEDGPolyStored Energy contribution to grain growth
  • ACSwitchingKernel for Allen-Cahn equation that adds derivatives of switching functions and energies
  • AllenCahnAllen-Cahn Kernel that uses a DerivativeMaterial Free Energy
  • AllenCahnElasticEnergyOffDiagThis kernel calculates off-diagonal jacobian of elastic energy in AllenCahn with respect to displacements
  • CHBulkPFCTradCahn-Hilliard kernel for a polynomial phase field crystal free energy.
  • CHInterfaceGradient energy Cahn-Hilliard Kernel with a scalar (isotropic) mobility
  • CHInterfaceAnisoGradient energy Cahn-Hilliard Kernel with a tensor (anisotropic) mobility
  • CHMathSimple demonstration Cahn-Hilliard Kernel using an algebraic double-well potential
  • CHPFCRFFCahn-Hilliard residual for the RFF form of the phase field crystal model
  • CHSplitChemicalPotentialChemical potential kernel in Split Cahn-Hilliard that solves chemical potential in a weak form
  • CHSplitConcentrationConcentration kernel in Split Cahn-Hilliard that solves chemical potential in a weak form
  • CHSplitFluxComputes flux as nodal variable
  • CahnHilliardCahn-Hilliard Kernel that uses a DerivativeMaterial Free Energy and a scalar (isotropic) mobility
  • CahnHilliardAnisoCahn-Hilliard Kernel that uses a DerivativeMaterial Free Energy and a tensor (anisotropic) mobility
  • CoefCoupledTimeDerivativeScaled time derivative Kernel that acts on a coupled variable
  • CoefReactionImplements the residual term (p*u, test)
  • ConservedLangevinNoiseSource term for noise from a ConservedNoise userobject
  • CoupledAllenCahnCoupled Allen-Cahn Kernel that uses a DerivativeMaterial Free Energy
  • CoupledMaterialDerivativeKernel that implements the first derivative of a function material property with respect to a coupled variable.
  • CoupledSusceptibilityTimeDerivativeA modified coupled time derivative Kernel that multiplies the time derivative of a coupled variable by a generalized susceptibility
  • CoupledSwitchingTimeDerivativeCoupled time derivative Kernel that multiplies the time derivative by $\frac{dh_\alpha}{d\eta_i} F_\alpha + \frac{dh_\beta}{d\eta_i} F_\beta + \dots)
  • DiscreteNucleationForceTerm for inserting grain nuclei or phases in non-conserved order parameter fields
  • GradientComponentSet the kernel variable to a specified component of the gradient of a coupled variable.
  • HHPFCRFFReaction type kernel for the RFF phase fit crystal model
  • KKSACBulkCKKS model kernel (part 2 of 2) for the Bulk Allen-Cahn. This includes all terms dependent on chemical potential.
  • KKSACBulkFKKS model kernel (part 1 of 2) for the Bulk Allen-Cahn. This includes all terms NOT dependent on chemical potential.
  • KKSCHBulkKKS model kernel for the Bulk Cahn-Hilliard term. This operates on the concentration 'c' as the non-linear variable
  • KKSMultiACBulkCMulti-phase KKS model kernel (part 2 of 2) for the Bulk Allen-Cahn. This includes all terms dependent on chemical potential.
  • KKSMultiACBulkFKKS model kernel (part 1 of 2) for the Bulk Allen-Cahn. This includes all terms NOT dependent on chemical potential.
  • KKSMultiPhaseConcentrationKKS multi-phase model kernel to enforce . The non-linear variable of this kernel is , the final phase concentration in the list.
  • KKSPhaseChemicalPotentialKKS model kernel to enforce the pointwise equality of phase chemical potentials dFa/dca = dFb/dcb. The non-linear variable of this kernel is ca.
  • KKSPhaseConcentrationKKS model kernel to enforce the decomposition of concentration into phase concentration (1-h(eta))ca + h(eta)cb - c = 0. The non-linear variable of this kernel is cb.
  • KKSSplitCHCResKKS model kernel for the split Bulk Cahn-Hilliard term. This operates on the chemical potential 'c' as the non-linear variable
  • LangevinNoiseSource term for non-conserved Langevin noise
  • LaplacianSplitSplit with a variable that holds the Laplacian of a phase field variable.
  • MaskedBodyForceKernel that defines a body force modified by a material mask
  • MatAnisoDiffusionDiffusion equation Kernel that takes an anisotropic Diffusivity from a material property
  • MatGradSquareCoupledGradient square of a coupled variable.
  • MatReactionKernel to add -L*v, where L=reaction rate, v=variable
  • MultiGrainRigidBodyMotionAdds rigid mody motion to grains
  • SimpleACInterfaceGradient energy for Allen-Cahn Kernel with constant Mobility and Interfacial parameter
  • SimpleCHInterfaceGradient energy for Cahn-Hilliard equation with constant Mobility and Interfacial parameter
  • SimpleCoupledACInterfaceGradient energy for Allen-Cahn Kernel with constant Mobility and Interfacial parameter for a coupled order parameter variable.
  • SimpleSplitCHWResGradient energy for split Cahn-Hilliard equation with constant Mobility for a coupled order parameter variable.
  • SingleGrainRigidBodyMotionAdds rigid mody motion to a single grain
  • SoretDiffusionAdd Soret effect to Split formulation Cahn-Hilliard Kernel
  • SplitCHMathSimple demonstration split formulation Cahn-Hilliard Kernel using an algebraic double-well potential
  • SplitCHParsedSplit formulation Cahn-Hilliard Kernel that uses a DerivativeMaterial Free Energy
  • SplitCHWResSplit formulation Cahn-Hilliard Kernel for the chemical potential variable with a scalar (isotropic) mobility
  • SplitCHWResAnisoSplit formulation Cahn-Hilliard Kernel for the chemical potential variable with a tensor (anisotropic) mobility
  • SusceptibilityTimeDerivativeA modified time derivative Kernel that multiplies the time derivative of a variable by a generalized susceptibility
  • SwitchingFunctionConstraintEtaLagrange multiplier kernel to constrain the sum of all switching functions in a multiphase system. This kernel acts on a non-conserved order parameter eta_i.
  • SwitchingFunctionConstraintLagrangeLagrange multiplier kernel to constrain the sum of all switching functions in a multiphase system. This kernel acts on the lagrange multiplier variable.
  • SwitchingFunctionPenaltyPenalty kernel to constrain the sum of all switching functions in a multiphase system.
  • CHPFCRFFSplitKernel
  • HHPFCRFFSplitKernel
  • PFCRFFKernel
  • PolycrystalElasticDrivingForce
  • PolycrystalKernel
  • PolycrystalStoredEnergy
  • RigidBodyMultiKernel
  • Misc App
  • CoefDiffusionKernel for diffusion with diffusivity = coef + function
  • ThermoDiffusionKernel for thermo-diffusion (Soret effect, thermophoresis, etc.)
  • Navier Stokes Test App
  • AdvectionThis class solves the scalar advection equation, with SUPG stabilization.
  • Level Set App
  • LevelSetAdvectionImplements the level set advection equation: , where the weak form is .
  • LevelSetAdvectionSUPGSUPG stablization term for the advection portion of the level set equation.
  • LevelSetForcingFunctionSUPGThe SUPG stablization term for a forcing function.
  • LevelSetOlssonReinitializationThe re-initialization equation defined by Olsson et. al. (2007).
  • LevelSetTimeDerivativeSUPGSUPG stablization terms for the time derivative of the level set equation.
  • Solid Mechanics App
  • HomogenizationKernel
  • OutOfPlaneStress
  • SolidMechImplicitEuler
  • StressDivergence
  • StressDivergenceRSpherical
  • StressDivergenceRZ
  • XFEMApp
  • CrackTipEnrichmentStressDivergenceTensorsEnrich stress divergence kernel for small-strain simulations
  • Heat Conduction App
  • AnisoHeatConduction
  • HeatCapacityConductionTimeDerivativeTime derivative term of the heat equation with the heat capacity as an argument.
  • HeatConductionComputes residual/Jacobian contribution for term.
  • HeatConductionTimeDerivativeTime derivative term of the heat equation for quasi-constant specific heat and the density .
  • HeatSourceDemonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form .
  • HomogenizedHeatConduction
  • JouleHeatingSourceDemonstrates the multiple ways that scalar values can be introduced into kernels, e.g. (controllable) constants, functions, and postprocessors. Implements the weak form .
  • SpecificHeatConductionTimeDerivativeTime derivative term of the heat equation with the specific heat and the density as arguments.
  • Richards App
  • DarcyFluxDarcy flux. nabla_i (k_ij/mu (nabla_j P - w_j)), where k_ij is the permeability tensor, mu is the fluid viscosity, P is the fluid pressure, and w_j is the fluid weight
  • PoroFullSatTimeDerivativeKernel = biot_coefficient*d(volumetric_strain)/dt + (1/biot_modulus)*d(porepressure)/dt. This is the time-derivative for poromechanics for a single-phase, fully-saturated fluid with constant bulk modulus
  • Q2PNegativeNodalMassOld- fluid_mass
  • Q2PNodalMassFluid mass lumped to the nodes divided by dt
  • Q2PPorepressureFluxFlux according to Darcy-Richards flow. The Variable for this Kernel should be the porepressure.
  • Q2PSaturationDiffusionDiffusion part of the Flux according to Darcy-Richards flow. The Variable of this Kernel must be the saturation.
  • Q2PSaturationFluxFlux according to Darcy-Richards flow. The Variable of this Kernel must be the saturation
  • RichardsFlux
  • RichardsFullyUpwindFlux
  • RichardsLumpedMassChange
  • RichardsMassChangeThe time derivative operator with the weak form of .
  • RichardsPPenaltyThis adds a term to the residual that attempts to enforce variable > lower_var. The term is a*(lower - variable) for variable<lower, and zero otherwise
  • Tensor Mechanics App
  • CosseratStressDivergenceTensorsStress divergence kernel for the Cartesian coordinate system
  • DynamicStressDivergenceTensorsResidual due to stress related Rayleigh damping and HHT time integration terms
  • GeneralizedPlaneStrainOffDiagGeneralized Plane Strain kernel to provide contribution of the out-of-plane strain to other kernels
  • GravityApply gravity. Value is in units of acceleration.
  • InertialForceCalculates the residual for the interial force () and the contribution of mass dependent Rayleigh damping and HHT time integration scheme ($\eta \cdot M \cdot ((1+\alpha)velq2-\alpha \cdot vel-old) $)
  • InertialForceBeamCalculates the residual for the interial force/moment and the contribution of mass dependent Rayleigh damping and HHT time integration scheme.
  • InertialTorqueKernel for interial torque: density * displacement x acceleration
  • MomentBalancing
  • OutOfPlanePressureApply pressure in the out-of-plane direction in 2D plane stress or generalized plane strain models
  • PhaseFieldFractureMechanicsOffDiagStress divergence kernel for phase-field fracture: Computes off diagonal damage dependent Jacobian components. To be used with StressDivergenceTensors or DynamicStressDivergenceTensors.
  • PlasticHeatEnergyPlastic heat energy density = coeff * stress * plastic_strain_rate
  • PoroMechanicsCouplingAdds , where the subscript is the component.
  • StressDivergenceBeamQuasi-static and dynamic stress divergence kernel for Beam element
  • StressDivergenceRSphericalTensorsCalculate stress divergence for a spherically symmetric 1D problem in polar coordinates.
  • StressDivergenceRZTensorsCalculate stress divergence for an axisymmetric problem in cylindrical coordinates.
  • StressDivergenceTensorsStress divergence kernel for the Cartesian coordinate system
  • StressDivergenceTensorsTrussKernel for truss element
  • WeakPlaneStressPlane stress kernel to provide out-of-plane strain contribution
  • DynamicTensorMechanics
  • PoroMechanics
  • TensorMechanics
  • Porous Flow App
  • FluxLimitedTVDAdvectionConservative form of (advection), using the Flux Limited TVD scheme invented by Kuzmin and Turek
  • PorousFlowAdvectiveFluxFully-upwinded advective flux of the component given by fluid_component
  • PorousFlowBasicAdvectionAdvective flux of a Variable using the Darcy velocity of the fluid phase
  • PorousFlowDesorpedMassTimeDerivativeDesorped component mass derivative wrt time.
  • PorousFlowDesorpedMassVolumetricExpansionDesorped_mass * rate_of_solid_volumetric_expansion
  • PorousFlowDispersiveFluxDispersive and diffusive flux of the component given by fluid_component in all phases
  • PorousFlowEffectiveStressCouplingAdds , where the subscript is the component.
  • PorousFlowEnergyTimeDerivativeDerivative of heat-energy-density wrt time
  • PorousFlowExponentialDecayResidual = rate * (variable - reference). Useful for modelling exponential decay of a variable
  • PorousFlowFluxLimitedTVDAdvectionAdvective flux of fluid species or heat using the Flux Limited TVD scheme invented by Kuzmin and Turek
  • PorousFlowFullySaturatedDarcyBaseDarcy flux suitable for models involving a fully-saturated, single phase, single component fluid. No upwinding is used
  • PorousFlowFullySaturatedDarcyFlowDarcy flux suitable for models involving a fully-saturated single phase, multi-component fluid. No upwinding is used
  • PorousFlowFullySaturatedHeatAdvectionHeat flux that arises from the advection of a fully-saturated single phase fluid. No upwinding is used
  • PorousFlowFullySaturatedMassTimeDerivativeFully-saturated version of the single-component, single-phase fluid mass derivative wrt time
  • PorousFlowHeatAdvectionFully-upwinded heat flux, advected by the fluid
  • PorousFlowHeatConductionHeat conduction in the Porous Flow module
  • PorousFlowHeatVolumetricExpansionEnergy-density*rate_of_solid_volumetric_expansion
  • PorousFlowMassRadioactiveDecayRadioactive decay of a fluid component
  • PorousFlowMassTimeDerivativeComponent mass derivative wrt time for component given by fluid_component
  • PorousFlowMassVolumetricExpansionComponent_mass*rate_of_solid_volumetric_expansion
  • PorousFlowPlasticHeatEnergyPlastic heat energy density source = (1 - porosity) * coeff * stress * plastic_strain_rate
  • PorousFlowPreDisPrecipitation-dissolution of chemical species
  • Navier Stokes App
  • DistributedForce
  • DistributedPower
  • INSChorinCorrectorThis class computes the 'Chorin' Corrector equation in fully-discrete (both time and space) form.
  • INSChorinPredictorThis class computes the 'Chorin' Predictor equation in fully-discrete (both time and space) form.
  • INSChorinPressurePoissonThis class computes the pressure Poisson solve which is part of the 'split' scheme used for solving the incompressible Navier-Stokes equations.
  • INSCompressibilityPenaltyThe penalty term may be used when Dirichlet boundary condition is applied to the entire boundary.
  • INSMassThis class computes the mass equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation.
  • INSMassRZThis class computes the mass equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ coordinates.
  • INSMomentumLaplaceFormThis class computes momentum equation residual and Jacobian viscous contributions for the 'Laplacian' form of the governing equations.
  • INSMomentumLaplaceFormRZThis class computes additional momentum equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ (axisymmetric cylindrical) coordinates, using the 'Laplace' form of the governing equations.
  • INSMomentumTimeDerivativeThis class computes the time derivative for the incompressible Navier-Stokes momentum equation.
  • INSMomentumTractionFormThis class computes momentum equation residual and Jacobian viscous contributions for the 'traction' form of the governing equations.
  • INSMomentumTractionFormRZThis class computes additional momentum equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ (axisymmetric cylindrical) coordinates.
  • INSPressurePoissonThis class computes the pressure Poisson solve which is part of the 'split' scheme used for solving the incompressible Navier-Stokes equations.
  • INSProjectionThis class computes the 'projection' part of the 'split' method for solving incompressible Navier-Stokes.
  • INSSplitMomentumThis class computes the 'split' momentum equation residual.
  • INSTemperatureThis class computes the residual and Jacobian contributions for the incompressible Navier-Stokes temperature (energy) equation.
  • INSTemperatureTimeDerivativeThis class computes the time derivative for the incompressible Navier-Stokes momentum equation.
  • MassConvectiveFlux
  • MomentumConvectiveFlux
  • NSEnergyInviscidFluxThis class computes the inviscid part of the energy flux.
  • NSEnergyThermalFluxThis class is responsible for computing residuals and Jacobian terms for the k * grad(T) * grad(phi) term in the Navier-Stokes energy equation.
  • NSEnergyViscousFluxViscous flux terms in energy equation.
  • NSGravityForceThis class computes the gravity force contribution.
  • NSGravityPowerThis class computes the momentum contributed by gravity.
  • NSMassInviscidFluxThis class computes the inviscid flux in the mass equation.
  • NSMomentumInviscidFluxThe inviscid flux (convective + pressure terms) for the momentum conservation equations.
  • NSMomentumInviscidFluxWithGradPThis class computes the inviscid flux with pressure gradient in the momentum equation.
  • NSMomentumViscousFluxDerived instance of the NSViscousFluxBase class for the momentum equations.
  • NSSUPGEnergyCompute residual and Jacobian terms form the SUPG terms in the energy equation.
  • NSSUPGMassCompute residual and Jacobian terms form the SUPG terms in the mass equation.
  • NSSUPGMomentumCompute residual and Jacobian terms form the SUPG terms in the momentum equation.
  • NSTemperatureL2This class was originally used to solve for the temperature using an L2-projection.
  • PressureGradient
  • TotalEnergyConvectiveFlux
  • Fluid Properties Test App
  • NaNInterfaceTestKernelKernel to test NaNInterface using NaNInterfaceTestFluidProperties
  • Chemical Reactions App
  • CoupledBEEquilibriumSubDerivative of equilibrium species concentration wrt time
  • CoupledBEKineticDerivative of kinetic species concentration wrt time
  • CoupledConvectionReactionSubConvection of equilibrium species
  • CoupledDiffusionReactionSubDiffusion of equilibrium species
  • DarcyFluxPressure
  • DesorptionFromMatrixMass flow rate from the matrix to the porespace. Add this to TimeDerivative kernel to get complete DE for the fluid adsorbed in the matrix
  • DesorptionToPorespaceMass flow rate to the porespace from the matrix. Add this to the other kernels for the porepressure variable to form the complete DE
  • PrimaryConvectionConvection of primary species
  • PrimaryDiffusionDiffusion of primary species
  • PrimaryTimeDerivativeDerivative of primary species concentration wrt time
  • Misc Test App
  • Convection

Materials

Postprocessors

ReactionNetwork

ReactionNetwork/AqueousEquilibriumReactions

ReactionNetwork/SolidKineticReactions

UserObjects

  • Moose App
  • AddUserObjectAction
  • AreaPostprocessorComputes the "area" or dimension - 1 "volume" of a given boundary or boundaries in your mesh.
  • AverageElementSize
  • AverageNodalVariableValue
  • AxisymmetricCenterlineAverageValueComputes the average value of a variable on a sideset located along the centerline of an axisymmetric model.
  • ChangeOverTimePostprocessorComputes the change or relative change in a post-processor value over a timestep or the entire transient
  • ChangeOverTimestepPostprocessorComputes the change or relative change in a post-processor value over a timestep or the entire transient
  • CumulativeValuePostprocessor
  • DifferencePostprocessor
  • ElementAverageSecondTimeDerivativeComputes the element averaged second derivative of variable
  • ElementAverageTimeDerivative
  • ElementAverageValue
  • ElementExtremeValue
  • ElementH1Error
  • ElementH1SemiError
  • ElementIntegralMaterialProperty
  • ElementIntegralVariablePostprocessor
  • ElementIntegralVariableUserObject
  • ElementL2Difference
  • ElementL2Error
  • ElementL2Norm
  • ElementQualityCheckerClass to check the quality of each element using different metrics from libmesh.
  • ElementVectorL2Error
  • ElementW1pError
  • ElementalVariableValueOutputs an elemental variable value at a particular location
  • EmptyPostprocessor
  • ExecutionerAttributeReporter
  • FindValueOnLineFind a specific target value along a sampling line. The variable values along the line should change monotonically. The target value is searched using a bisection algorithm.
  • FunctionSideIntegral
  • FunctionValuePostprocessor
  • GeometrySphereSnap nodes to the surface of a sphere on adaptivity
  • LayeredAverage
  • LayeredIntegral
  • LayeredSideAverage
  • LayeredSideFluxAverage
  • LayeredSideIntegral
  • LinearCombinationPostprocessor
  • MemoryUsageMemory usage statistics for the running simulation.
  • NearestPointLayeredAverage
  • NodalExtremeValue
  • NodalL2Error
  • NodalL2Norm
  • NodalMaxValue
  • NodalNormalsCorner
  • NodalNormalsEvaluator
  • NodalNormalsPreprocessor
  • NodalProxyMaxValue
  • NodalSum
  • NodalVariableValueOutputs values of a nodal variable at a particular location
  • NumDOFsReturn the number of Degrees of freedom from either the NL, Aux or both systems.
  • NumElemsReturn the number of active or total elements in the simulation.
  • NumLinearIterations
  • NumNodesReturns the total number of nodes in a simulation (works with DistributedMesh)
  • NumNonlinearIterationsOutputs the number of nonlinear iterations
  • NumPicardIterations
  • NumResidualEvaluations
  • NumVarsReturn the number of variables from either the NL, Aux, or both systems.
  • PercentChangePostprocessor
  • PerfGraphDataRetrieves timing information from the PerfGraph.
  • PerformanceDataProvides programmatic access to Performance Log Data
  • PointValue
  • PostprocessorComparisonCompares two post-processors and produces a boolean value
  • Receiver
  • RelativeDifferencePostprocessorComputes the absolute value of the relative difference between 2 post-processor values.
  • RelativeSolutionDifferenceNorm
  • Residual
  • ScalarL2Error
  • ScalarVariable
  • ScalePostprocessor
  • SideAverageValueComputes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.
  • SideFluxAverageComputes the integral of the flux over the specified boundary
  • SideFluxIntegralComputes the integral of the flux over the specified boundary
  • SideIntegralVariablePostprocessor
  • SolutionUserObjectReads a variable from a mesh in one simulation to another
  • Terminator
  • TimeExtremeValueA postprocessor for reporting the extreme value of another postprocessor over time.
  • TimestepSizeReports the timestep size
  • TotalVariableValue
  • VariableInnerProduct
  • VariableResidual
  • VectorPostprocessorComparisonCompares two vector post-processors of equal size and produces a boolean value
  • VerifyElementUniqueID
  • VerifyNodalUniqueID
  • VolumePostprocessor
  • Stochastic Tools Test App
  • TestDistributionDirectPostprocessor
  • TestDistributionPostprocessor
  • TestSampler
  • Rdg App
  • AEFVFreeOutflowBoundaryFluxFree outflow BC based boundary flux user object for the advection equation using a cell-centered finite volume method.
  • AEFVSlopeLimitingOneDOne-dimensional slope limiting to get the limited slope of cell average variable for the advection equation using a cell-centered finite volume method.
  • AEFVUpwindInternalSideFluxUpwind numerical flux scheme for the advection equation using a cell-centered finite volume method.
  • Phase Field App
  • AverageGrainVolumeCalculate average grain area in a polycrystal
  • ComputeExternalGrainForceAndTorqueUserobject for calculating force and torque acting on a grain
  • ComputeGrainForceAndTorqueUserobject for calculating force and torque acting on a grain
  • ConservedMaskedNormalNoiseGaussian normal distributed random number noise provider with an applied spatially dependent material property mask for the ConservedLangevinNoise kernel.
  • ConservedMaskedUniformNoiseUniformly distributed random number noise provider with an applied spatially dependent material property mask for the ConservedLangevinNoise kernel.
  • ConservedNormalNoiseGaussian normal distributed random number noise provider for the ConservedLangevinNoise kernel.
  • ConservedUniformNoiseUniformly distributed random number noise provider for the ConservedLangevinNoise kernel.
  • ConstantGrainForceAndTorqueUserobject for calculating force and torque acting on a grain
  • DiscreteNucleationDataOutput diagnostic data on a DiscreteNucleationInserter
  • DiscreteNucleationFromFileManages the list of currently active nucleation sites and adds new sites according to a predetermined list from a CSV file (use this with sync_times).
  • DiscreteNucleationInserterManages the list of currently active nucleation sites and adds new sites according to a given probability function.
  • DiscreteNucleationMapGenerates a spatial smoothed map of all nucleation sites with the data of the DiscreteNucleationInserter for use by the DiscreteNucleation material.
  • DiscreteNucleationTimeStepReturn a time step limit for nucleation event to be used by IterationAdaptiveDT
  • EBSDReaderLoad and manage DREAM.3D EBSD data files for running simulations on reconstructed microstructures.
  • EulerAngleUpdaterProvide updated euler angles after rigid body rotation of the grains.
  • FauxGrainTrackerFake grain tracker object for cases where the number of grains is equal to the number of order parameters.
  • FeatureFloodCountThe object is able to find and count "connected components" in any solution field or number of solution fields. A primary example would be to count "bubbles".
  • FeatureVolumeFraction
  • GrainBoundaryAreaCalculate total grain boundary length in 2D and area in 3D
  • GrainForceAndTorqueSumUserobject for summing forces and torques acting on a grain
  • GrainTrackerGrain Tracker object for running reduced order parameter simulations without grain coalescence.
  • GrainTrackerElasticityGrain Tracker object for running reduced order parameter simulations without grain coalescence.
  • MaskedGrainForceAndTorqueUserobject for masking/pinning grains and making forces and torques acting on that grain zero
  • PFCElementEnergyIntegral
  • PolycrystalCirclesPolycrystal circles generated from a vector input or read from a file
  • PolycrystalEBSDObject for setting up a polycrystal structure from an EBSD Datafile
  • PolycrystalHexPerturbed hexagonal polycrystal
  • PolycrystalVoronoiRandom Voronoi tesselation polycrystal (used by PolycrystalVoronoiAction)
  • RandomEulerAngleProviderAssign random euler angles for each grain.
  • SolutionRasterizerProcess an XYZ file of atomic coordinates and filter atoms via threshold or map variable values.
  • Misc App
  • InternalVolumeComputes the volume of an enclosed area by performing an integral over a user-supplied boundary.
  • RigidBodyModes3D
  • Functional Expansion Tools App
  • FXBoundaryFluxUserObjectGenerates an Functional Expansion representation for a boundary flux condition using a 'FunctionSeries'-type Function
  • FXBoundaryValueUserObjectGenerates an Functional Expansion representation for a boundary value condition using a 'FunctionSeries'-type Function
  • FXVolumeUserObjectGenerates an Functional Expansion representation of a variable value over a volume using a 'FunctionSeries'-type Function
  • Level Set App
  • LevelSetCFLConditionCompute the minimum timestep from the Courant-Friedrichs-Lewy (CFL) condition for the level-set equation.
  • LevelSetOlssonTerminatorTool for terminating the reinitialization of the level set equation based on the criteria defined by Olsson et. al. (2007).
  • LevelSetVolumeCompute the area or volume of the region inside or outside of a level set contour.
  • Richards App
  • Q2PPiecewiseLinearSinkFluxRecords the fluid flow into a sink (positive values indicate fluid is flowing from porespace into the sink).
  • Q2PRelPermPowerGasPower form of relative permeability that might be useful for gases as a function of water saturation in Q2P models. Define s = seff/(1 - simm). Then relperm = 1 - (n+1)sn + ns(n+1) if seff<1-simm, otherwise relperm=1. Here seff is the water saturation
  • RichardsDensityConstBulkFluid density assuming constant bulk modulus. dens0 * Exp(pressure/bulk)
  • RichardsDensityConstBulkCutFluid density assuming constant bulk modulus. dens0 * Exp(pressure/bulk)
  • RichardsDensityIdealFluid density of ideal gas. Density = slope*(p - p0)
  • RichardsDensityMethane20degCMethane density (kg/m^3) at 20degC. Pressure is assumed to be measured in Pascals. NOTE: this expression is only valid to about P=20MPa. Use van der Waals (RichardsDensityVDW) for higher pressures.
  • RichardsDensityVDWDensity of van der Waals gas.
  • RichardsExcavFlowRecords total flow INTO an excavation (if quantity is positive then flow has occured from rock into excavation void)
  • RichardsHalfGaussianSinkFlux
  • RichardsMassReturns the mass in a region.
  • RichardsPiecewiseLinearSinkFluxRecords the fluid flow into a sink (positive values indicate fluid is flowing from porespace into the sink).
  • RichardsPlotQuantity
  • RichardsRelPermBWBroadbridge-White form of relative permeability. Define s = (seff - Sn)/(Ss - Sn). Then relperm = Kn + s^2(c-1)(Kn-Ks)/(c-s) if 0<s<1, otherwise relperm = Kn if s<0, otherwise relperm = Ks if s>1.
  • RichardsRelPermMonomialMonomial form of relative permeability. Define s = (seff - simm)/(1 - simm). Then relperm = s^n if s<simm, otherwise relperm=1
  • RichardsRelPermPowerPower form of relative permeability. Define s = (seff - simm)/(1 - simm). Then relperm = (n+1)sn - ns(n+1) if s<simm, otherwise relperm=1
  • RichardsRelPermPowerGasPower form of relative permeability that might be useful for gases. Define s = (seff - simm)/(1 - simm). Then relperm = 1 - (n+1)(1-s)^n + n(1-s)^(n+1) if s<simm, otherwise relperm=1
  • RichardsRelPermVGVG form of relative permeability. Define s = (seff - simm)/(1 - simm). Then relperm = s(1/2) * (1 - (1 - s(1/m))^m)^2, if s>0, and relperm=0 otherwise
  • RichardsRelPermVG1VG1 form of relative permeability. Define s = (seff - simm)/(1 - simm). Then relperm = s(1/2) * (1 - (1 - s(1/m))^m)^2, if s>0, and relperm=0 otherwise
  • RichardsSUPGnoneUser object for no SUPG
  • RichardsSUPGstandardStandard SUPG relationships for Richards flow based on Appendix A of TJR Hughes, M Mallet and A Mizukami A new finite element formulation for computational fluid dynamics:: II. Behond SUPG'' Computer Methods in Applied Mechanics and Engineering 54 (1986) 341–355
  • RichardsSatUser object yielding saturation for a phase as a function of effective saturation of that phase
  • RichardsSeff1BWsmallBroadbridge-white form of effective saturation for negligable Kn. Then porepressure = -las*( (1-th)/th - (1/c)Ln((C-th)/((C-1)th))), for th = (Seff - Sn)/(Ss - Sn). A Lambert-W function must be evaluated to express Seff in terms of porepressure, which can be expensive
  • RichardsSeff1RSCRogers-Stallybrass-Clements version of effective saturation for the water phase, valid for residual saturations = 0, and viscosityOil = 2viscosityWater. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25scale_ratio*oil_viscosity. Note that this effective saturation is mostly useful for 2-phase, not single-phase.
  • RichardsSeff1VGvan-Genuchten effective saturation as a function of pressure suitable for use in single-phase simulations.. seff = (1 + (-al*p)^(1/(1-m)))^(-m)
  • RichardsSeff1VGcutcut van-Genuchten effective saturation as a function of capillary pressure. Single-phase seff = (1 + (-al*p)^(1/(1-m)))^(-m) for p>p_cut, otherwise user a a linear relationship that is chosen so the value and derivative match van-Genuchten at p=p_cut.
  • RichardsSeff2gasRSCRogers-Stallybrass-Clements version of effective saturation for the oil (gas) phase, valid for residual saturations = 0, and viscosityOil = 2viscosityWater. seff_gas = 1 - 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25scale_ratio*oil_viscosity
  • RichardsSeff2gasVGvan-Genuchten effective saturation as a function of (Pwater, Pgas) suitable for use for the gas phase in two-phase simulations. With Pc=Pgas-Pwater, seff = 1 - (1 + (al*pc)^(1/(1-m)))^(-m)
  • RichardsSeff2gasVGshiftedShifted van-Genuchten effective saturation as a function of (Pwater, Pgas) suitable for use for the gas phase in two-phase simulations. seff = (1 + (-al*(P0-p1-shift))^(1/(1-m)))^(-m), then scaled so it runs between 0 and 1.
  • RichardsSeff2waterRSCRogers-Stallybrass-Clements version of effective saturation for the water phase, valid for residual saturations = 0, and viscosityOil = 2viscosityWater. seff_water = 1/Sqrt(1 + Exp(Pc - shift)/scale)), where scale = 0.25scale_ratio*oil_viscosity
  • RichardsSeff2waterVGvan-Genuchten effective saturation as a function of (Pwater, Pgas) suitable for use for the water phase in two-phase simulations. With Pc=Pgas-Pwater, seff = (1 + (al*pc)^(1/(1-m)))^(-m)
  • RichardsSeff2waterVGshiftedShifted van-Genuchten effective saturation as a function of (Pwater, Pgas) suitable for use for the water phase in two-phase simulations. seff = (1 + (-al*(P0-p1-shift))^(1/(1-m)))^(-m), then scaled so it runs between 0 and 1.
  • RichardsSumQuantity
  • RichardsVarNamesHolds information on the porepressure variable names
  • XFEMApp
  • CircleCutUserObjectCreates a UserObject for circular cuts on 3D meshes for XFEM
  • EllipseCutUserObjectCreates a UserObject for elliptical cuts on 3D meshes for XFEM
  • LevelSetCutUserObjectXFEM mesh cut by level set function
  • LineSegmentCutSetUserObjectCreates a UserObject for a line segment cut on 2D meshes for XFEM
  • LineSegmentCutUserObjectCreates a UserObject for a line segment cut on 2D meshes for XFEM
  • MeshCut3DUserObjectCreates a UserObject for a mesh cutter in 3D problems
  • MovingLineSegmentCutSetUserObjectCreates a UserObject for a moving line segment cut on 2D meshes for XFEM
  • PointValueAtXFEMInterfaceObtain field values and gradients on the interface.
  • RectangleCutUserObjectCreates a UserObject for planar cuts on 3D meshes for XFEM
  • XFEMMaterialTensorMarkerUserObject
  • XFEMPhaseTransitionMovingInterfaceVelocitycalculate the interface velocity for a simple phase transition problem.
  • XFEMRankTwoTensorMarkerUserObjectMark elements to be cut by XFEM based on a scalar extracted from a RankTwoTensor
  • Contact App
  • NodalArea
  • Heat Conduction App
  • HomogenizedThermalConductivity
  • ThermalConductivityComputes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.
  • Solid Mechanics App
  • HomogenizedElasticConstants
  • InteractionIntegralSM
  • MaterialTensorIntegralSM
  • Tensor Mechanics App
  • CavityPressurePostprocessorInterfaces with the CavityPressureUserObject to store the initial number of moles of a gas contained within an internal volume.
  • CavityPressureUserObjectUses the ideal gas law to compute internal pressure and an initial moles of gas quantity.
  • CrackFrontData
  • CrackFrontDefinition
  • CrystalPlasticitySlipRateGSSPhenomenological constitutive model slip rate class. Override the virtual functions in your class
  • CrystalPlasticitySlipResistanceGSSPhenomenological constitutive models' slip resistance base class. Override the virtual functions in your class
  • CrystalPlasticityStateVarRateComponentGSSPhenomenological constitutive model state variable evolution rate component base class. Override the virtual functions in your class
  • CrystalPlasticityStateVarRateComponentVocePhenomenological Voce constitutive model state variable evolution rate component base class.
  • CrystalPlasticityStateVariableCrystal plasticity state variable class. Override the virtual functions in your class
  • ElementPropertyReadFileUser Object to read property data from an external file and assign to elements: Works only for Rectangular geometry (2D-3D)
  • EulerAngleFileReaderRead Euler angle data from a file and provide it to other objects.
  • GeneralizedPlaneStrainUserObjectGeneralized plane strain UserObject to provide residual and diagonal jacobian entries.
  • GlobalStrainUserObjectGlobal Strain UserObject to provide Residual and diagonal Jacobian entry
  • HEVPEqvPlasticStrainUser Object to integrate equivalent plastic strain
  • HEVPEqvPlasticStrainRateUser Object computing equivalent plastic strain rate
  • HEVPFlowRatePowerLawJ2User object to evaluate power law flow rate and flow direction based on J2
  • HEVPLinearHardeningUser Object for linear hardening
  • HEVPRambergOsgoodHardeningUser object for Ramberg-Osgood hardening power law hardening
  • InteractionIntegralComputes the interaction integral for fracture
  • JIntegralCalculates the J-integral at a specified point along the crack front
  • LinearViscoelasticityManagerManages the updating of the semi-implicit single-step first-order finite difference time-stepping scheme
  • Mass
  • MaterialTensorIntegralThis postprocessor computes an element integral of a component of a material tensor as specified by the user-supplied indices
  • MaterialTimeStepPostprocessorThis postprocessor estimates a timestep that reduces the increment change in a material property below a given threshold.
  • MixedModeEquivalentKComputes the mixed-mode stress intensity factor given the , , and stress intensity factors
  • TensorMechanicsHardeningConstantNo hardening - the parameter is independent of the internal parameter(s)
  • TensorMechanicsHardeningCubicHardening is Cubic
  • TensorMechanicsHardeningCutExponentialHardening is Cut-exponential
  • TensorMechanicsHardeningExponentialHardening is Exponential
  • TensorMechanicsHardeningGaussianHardening is Gaussian
  • TensorMechanicsHardeningPowerRuleHardening defined by power rule
  • TensorMechanicsPlasticDruckerPragerNon-associative Drucker Prager plasticity with no smoothing of the cone tip.
  • TensorMechanicsPlasticDruckerPragerHyperbolicNon-associative Drucker Prager plasticity with hyperbolic smoothing of the cone tip.
  • TensorMechanicsPlasticIsotropicSDIsotropicSD plasticity for pressure sensitive materials and also models the strength differential effect
  • TensorMechanicsPlasticJ2J2 plasticity, associative, with hardening
  • TensorMechanicsPlasticMeanCapClass that limits the mean stress. Yield function = a*mean_stress - strength. mean_stress = (stress_xx + stress_yy + stress_zz)/3
  • TensorMechanicsPlasticMeanCapTCAssociative mean-cap tensile and compressive plasticity with hardening/softening
  • TensorMechanicsPlasticMohrCoulombNon-associative Mohr-Coulomb plasticity with hardening/softening
  • TensorMechanicsPlasticMohrCoulombMultiNon-associative Mohr-Coulomb plasticity with hardening/softening
  • TensorMechanicsPlasticOrthotropicOrthotropic plasticity for pressure sensitive materials and also models the strength differential effect
  • TensorMechanicsPlasticSimpleTesterClass that can be used for testing multi-surface plasticity models. Yield function = a*stress_yy + b*stress_zz + c*stress_xx + d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + f*(stress_yz + stress_zy)/2 - strength
  • TensorMechanicsPlasticTensileAssociative tensile plasticity with hardening/softening, and tensile_strength = 1
  • TensorMechanicsPlasticTensileMultiAssociative tensile plasticity with hardening/softening
  • TensorMechanicsPlasticWeakPlaneShearNon-associative finite-strain weak-plane shear perfect plasticity. Here cohesion = 1, tan(phi) = 1 = tan(psi)
  • TensorMechanicsPlasticWeakPlaneTensileAssociative weak-plane tensile plasticity with hardening/softening
  • TensorMechanicsPlasticWeakPlaneTensileNAssociative weak-plane tensile plasticity with hardening/softening, with specified, fixed normal vector. (WeakPlaneTensile combined with specifying N in the Material might be preferable to you.)
  • TorqueReactionTorqueReaction calculates the torque in 2D and 3Dabout a user-specified axis of rotation centeredat a user-specied origin.
  • XFEMTest App
  • TestCrackCounterTest postprocessor for extracting the crack_tip_origin_direction_map from XFEM.
  • Navier Stokes App
  • INSExplicitTimestepSelectorPostprocessor that computes the minimum value of h_min/|u|, where |u| is coupled in as an aux variable.
  • NSEntropyErrorComputes entropy error.
  • VolumetricFlowRateComputes the volumetric flow rate through a boundary.
  • Tensor Mechanics Test App
  • TestSubblockIndexProvider
  • Chemical Reactions App
  • TotalMineralVolumeFractionTotal volume fraction of coupled mineral species
  • Porous Flow App
  • AdvectiveFluxCalculatorConstantVelocityCompute K_ij (a measure of advective flux from node i to node j) and R+ and R- (which quantify amount of antidiffusion to add) in the Kuzmin-Turek FEM-TVD multidimensional scheme. Constant advective velocity is assumed
  • PorousFlowAdvectiveFluxCalculatorSaturatedComputes the advective flux of fluid of given phase, assuming fully-saturated conditions. Hence this UserObject is only relevant to single-phase situations. Explicitly, the UserObject computes (density / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowAdvectiveFluxCalculatorSaturatedHeatComputes the advective flux of heat energy in the given phase, assuming fully-saturated conditions. Hence this UserObject is only relevant to single-phase situations. Explicitly, the UserObject computes (density * enthalpy / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponentComputes the advective flux of fluid of given phase and fluid component. Explicitly, the UserObject computes (mass_fraction * density / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowAdvectiveFluxCalculatorUnsaturatedComputes the advective flux of fluid of given phase, assuming unsaturated conditions. Hence this UserObject is only relevant to single-phase situations, or multi-phase situations where each fluid component appears in one phase only. Explicitly, the UserObject computes (density * relative_permeability / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowAdvectiveFluxCalculatorUnsaturatedHeatComputes the advective flux of heat energy in a given phase, assuming unsaturated conditions. Hence this UserObject is only relevant to single-phase situations, or multi-phase situations where each fluid component appears in one phase only. Explicitly, the UserObject computes (density * enthalpy * relative_permeability / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponentComputes the advective flux of fluid of given phase and component. Hence this UserObject is relevant to multi-phase, multi-component situations. Explicitly, the UserObject computes (mass_fraction * density * relative_permeability / viscosity) * (- permeability * (grad(P) - density * gravity)), using the Kuzmin-Turek FEM-TVD multidimensional stabilization scheme
  • PorousFlowBrineCO2Fluid state class for brine and CO2
  • PorousFlowCapillaryPressureBCBrooks-Corey capillary pressure
  • PorousFlowCapillaryPressureBWBroadbridge and White capillary pressure for negligable Kn
  • PorousFlowCapillaryPressureConstConstant capillary pressure
  • PorousFlowCapillaryPressureRSCRogers-Stallybrass-Clements version of effective saturation for the water phase, valid for residual saturations = 0, and viscosityOil = 2 * viscosityWater. seff_water = 1 / sqrt(1 + exp((Pc - shift) / scale)), where scale = 0.25 * scale_ratio * oil_viscosity.
  • PorousFlowCapillaryPressureVGvan Genuchten capillary pressure
  • PorousFlowDictatorHolds information on the PorousFlow variable names
  • PorousFlowFluidMassCalculates the mass of a fluid component in a region
  • PorousFlowFluidStateFlashCompositional flash calculations for use in fluid state classes
  • PorousFlowHeatEnergyCalculates the sum of heat energy of fluid phase(s) and/or the porous skeleton in a region
  • PorousFlowPlotQuantityExtracts the value from the PorousFlowSumQuantity UserObject
  • PorousFlowSumQuantityRecords total mass flowing into a borehole
  • PorousFlowWaterNCGFluid state class for water and non-condensable gas

References

  1. Luanjing Guo, Hai Huang, Derek R Gaston, Cody J Permann, David Andrs, George D Redden, Chuan Lu, Don T Fox, and Yoshiko Fujita. A parallel, fully coupled, fully implicit solution to reactive transport in porous media using the preconditioned Jacobian-Free Newton-Krylov Method. Advances in Water Resources, 53:101–108, 2013.[BibTeX]
  2. Peter C Lichtner. Continuum formulation of multicomponent-multiphase reactive transport. Reviews in Mineralogy and Geochemistry, 34:1–81, 1996.[BibTeX]