ADComputeMultipleInelasticStress<JACOBIAN>Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.

ADComputeMultipleInelasticStress<RESIDUAL>Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.

ADPowerLawCreepStressUpdate<JACOBIAN>This class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.

ADPowerLawCreepStressUpdate<RESIDUAL>This class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.

VectorMagnitudeAuxCreates a field representing the magnitude of three coupled variables using an Euclidean norm.

VectorPostprocessorVisualizationAuxRead values from a VectorPostprocessor that is producing vectors that are 'number of processors' * in length. Puts the value for each processor into an elemental auxiliary field.

Phase Field Test App

VoronoiICAux

Phase Field App

BndsCalcAuxCalculate location of grain boundaries in a polycrystalline sample

DarcyFluxComponentDarcy flux (in m3.s-1.m-2, or m.s-1) -(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. If velocity_scaling is used then -(k_ij/mu (nabla_j P - w_j))/velocity_scaling is returned

RichardsDensityAuxauxillary variable which is fluid density

RichardsDensityPrimeAuxauxillary variable which is d(density)/dp

RichardsDensityPrimePrimeAuxauxillary variable which is d2(density)/dp2

RichardsRelPermAuxauxillary variable which is the relative permeability

RichardsRelPermPrimeAuxauxillary variable which is d(relative permeability)/dSeff

RichardsRelPermPrimePrimeAuxauxillary variable which is d2(relative permeability)/dSeff2

RichardsSatAuxauxillary variable which is saturation

RichardsSatPrimeAuxauxillary variable which is saturation

RichardsSeffAuxauxillary variable which is effective saturation

RichardsSeffPrimeAuxauxillary variable which is effective saturation

RichardsSeffPrimePrimeAuxauxillary variable which is 2nd derivative of effective saturation

PorousFlowDarcyVelocityComponentDarcy velocity (in m3.s-1.m-2, or m.s-1) -(k_ij * krel /mu (nabla_j P - w_j)), where k_ij is the permeability tensor, krel is the relative permeability, mu is the fluid viscosity, P is the fluid pressure, and w_j is the fluid weight.

PorousFlowDarcyVelocityComponentLowerDimensionalDarcy velocity on a lower-dimensional element embedded in a higher-dimensional mesh. Units m3.s-1.m-2, or m.s-1. Darcy velocity = -(k_ij * krel /(mu * a) (nabla_j P - w_j)), where k_ij is the permeability tensor, krel is the relative permeability, mu is the fluid viscosity, P is the fluid pressure, a is the fracture aperture and w_j is the fluid weight. The difference between this AuxKernel and PorousFlowDarcyVelocity is that this one projects gravity along the element's tangent direction. NOTE! For a meaningful answer, your permeability tensor must NOT contain terms that rotate tangential vectors to non-tangential vectors.

PorousFlowPropertyAuxAuxKernel to provide access to properties evaluated at quadpoints. Note that elemental AuxVariables must be used, so that these properties are integrated over each element.

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.

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.

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.

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.

GapConductanceConstraintComputes the residual and Jacobian contributions for the 'Lagrange Multiplier' implementation of the thermal contact problem. For more information, see the detailed description here: http://tinyurl.com/gmmhbe9

PiecewiseMulticonstantPiecewiseMulticonstant performs constant interpolation on 1D, 2D, 3D or 4D data. The data_file specifies the axes directions and the function values. If a point lies outside the data range, the appropriate end value is used.

PiecewiseMultilinearPiecewiseMultilinear performs linear interpolation on 1D, 2D, 3D or 4D data. The data_file specifies the axes directions and the function values. If a point lies outside the data range, the appropriate end value is used.

MovingPlanarFrontThis function defines the position of a moving front. The front is an infinite plane with normal pointing from start_posn to end_posn. The front's distance from start_posn is defined by 'distance', so if the 'distance' function is time dependent, the front's position will change with time. Roughly speaking, the function returns true_value for points lying in between start_posn and start_posn + distance. Precisely speaking, two planes are constructed, both with normal pointing from start_posn to end_posn. The first plane passes through start_posn; the second plane passes through end_posn. Given a point p and time t, this function returns false_value if ANY of the following are true: (a) t<activation_time; (b) t>=deactivation_time; (c) p is 'behind' start_posn (ie, p lies on one side of the start_posn plane and end_posn lies on the other side); (d) p is 'ahead' of the front (ie, p lies one one side of the front and start_posn lies on the other side); (e) the distance between p and the front is greater than active_length. Otherwise, the point is 'in the active zone' and the function returns true_value.

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

PhaseFieldFractureMechanicsOffDiagStress divergence kernel for phase-field fracture: Computes off diagonal damage dependent Jacobian components. To be used with StressDivergenceTensors or DynamicStressDivergenceTensors.

DarcyMaterialMaterial that holds the permeability tensor used in Darcy flow

PoroFullSatMaterialThis Material is designed to calculate and store all the quantities needed for the fluid-flow part of poromechanics, assuming a fully-saturated, single-phase fluid with constant bulk modulus

IsotropicPlasticityCalculates the stress and plastic strain in the general isotropic linear strain hardening plasticity model

IsotropicPowerLawHardeningCalculates the stress and plastic strain in the general isotropic linear strain hardening plasticity model

IsotropicTempDepHardeningCalculates the stress and plastic strain in the general isotropic linear strain hardening plasticity model

LinearAnisotropicMaterial

LinearGeneralAnisotropicMaterial

LinearIsotropicMaterial

LinearStrainHardening

MacroElasticA simple hypo-elastic model

PLC_LSH

PowerLawCreep

PowerLawCreepModel

RateDepSmearCrackModel

RateDepSmearIsoCrackModel

SolidModel

Tensor Mechanics App

AbruptSofteningSoftening model with an abrupt stress release upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.

CappedDruckerPragerCosseratStressUpdateCapped Drucker-Prager plasticity stress calculator for the Cosserat situation where the host medium (ie, the limit where all Cosserat effects are zero) is isotropic. Note that the return-map flow rule uses an isotropic elasticity tensor built with the 'host' properties defined by the user.

CappedMohrCoulombCosseratStressUpdateCapped Mohr-Coulomb plasticity stress calculator for the Cosserat situation where the host medium (ie, the limit where all Cosserat effects are zero) is isotropic. Note that the return-map flow rule uses an isotropic elasticity tensor built with the 'host' properties defined by the user.

ComputeLayeredCosseratElasticityTensorComputes Cosserat elasticity and flexural bending rigidity tensors relevant for simulations with layered materials. The layering direction is assumed to be perpendicular to the 'z' direction.

ComputeMultipleInelasticCosseratStressCompute state (stress and other quantities such as plastic strains and internal parameters) using an iterative process, as well as Cosserat versions of these quantities. Only elasticity is currently implemented for the Cosserat versions.Combinations of creep models and plastic models may be used

ComputeMultipleInelasticStressCompute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.

ComputeVolumetricEigenstrainComputes an eigenstrain that is defined by a set of scalar material properties that summed together define the volumetric change. This also computes the derivatives of that eigenstrain with respect to a supplied set of variable dependencies.

EshelbyTensorComputes the Eshelby tensor as a function of strain energy density and the first Piola-Kirchoff stress

ExponentialSofteningSoftening model with an exponential softening response upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.

IsotropicPlasticityStressUpdateThis class uses the discrete material in a radial return isotropic plasticity model. This class is one of the basic radial return constitutive models, yet it can be used in conjunction with other creep and plasticity materials for more complex simulations.

IsotropicPowerLawHardeningStressUpdateThis class uses the discrete material in a radial return isotropic plasticity power law hardening model, solving for the yield stress as the intersection of the power law relation curve and Hooke's law. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.

LinearViscoelasticStressUpdateCalculates an admissible state (stress that lies on or within the yield surface, plastic strains, internal parameters, etc). This class is intended to be a parent class for classes with specific constitutive models.

PowerLawCreepStressUpdateThis class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.

PowerLawSofteningSoftening model with an abrupt stress release upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.

TemperatureDependentHardeningStressUpdateComputes the stress as a function of temperature and plastic strain from user-supplied hardening functions. This class can be used in conjunction with other creep and plasticity materials for more complex simulations

PorousFlow1PhaseMD_GaussianThis Material is used for the single-phase situation where log(mass-density) is the primary variable. calculates the 1 porepressure and the 1 saturation in a 1-phase isothermal situation, and derivatives of these with respect to the PorousFlowVariables. A gaussian capillary function is assumed

PorousFlow1PhasePThis Material is used for the fully saturated single-phase situation where porepressure is the primary variable

PorousFlow2PhasePPThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase isothermal situation, and derivatives of these with respect to the PorousFlowVariables

PorousFlow2PhasePSThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase isothermal situation, and derivatives of these with respect to the PorousFlowVariables.

PorousFlowAqueousPreDisChemistryThis Material forms a std::vector of mineralisation reaction rates (L(precipitate)/L(solution)/s) appropriate to the aqueous precipitation-dissolution system provided. Note: the PorousFlowTemperature must be measured in Kelvin.

PorousFlowAqueousPreDisMineralThis Material forms a std::vector of mineral concentrations (volume-of-mineral/volume-of-material) appropriate to the aqueous precipitation-dissolution system provided.

PorousFlowBrineThis Material calculates fluid properties for brine at the quadpoints or nodes

PorousFlowConstantBiotModulusComputes the Biot Modulus, which is assumed to be constant for all time. Sometimes 1 / BiotModulus is called storativity

PorousFlowJoinerThis Material forms a std::vector of properties, old properties (optionally), and derivatives, out of the individual phase properties

PorousFlowMassFractionThis Material forms a std::vector<std::vector ...> of mass-fractions out of the individual mass fractions

PorousFlowMassFractionAqueousEquilibriumChemistryThis Material forms a std::vector<std::vector ...> of mass-fractions (total concentrations of primary species (m{3}(primary species)/m{3}(solution)) and since this is for an aqueous system only, mass-fraction equals volume-fraction) corresponding to an aqueous equilibrium chemistry system. The first mass fraction is the concentration of the first primary species, etc, and the last mass fraction is the concentration of H2O.

PorousFlowMatrixInternalEnergyThis Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature. Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system

PorousFlowPermeabilityExponentialThis Material calculates the permeability tensor from an exponential function of porosity: k = k_ijk * BB exp(AA phi), where k_ijk is a tensor providing the anisotropy, phi is porosity, and AA and BB are empirical constants. The user can provide input for the function expressed in ln k, log k or exponential forms (see poroperm_function).

PorousFlowPermeabilityKozenyCarmanThis Material calculates the permeability tensor from a form of the Kozeny-Carman equation, k = k_ijk * A * phin / (1 - phi)m, where k_ijk is a tensor providing the anisotropy, phi is porosity, n and m are positive scalar constants and A is given in one of the following forms: A = k0 * (1 - phi0)^m / phi0^n (where k0 and phi0 are a reference permeability and porosity) or A = f * d^2 (where f is a scalar constant and d is grain diameter.

PorousFlowPorosityHMBiotModulusThis Material calculates the porosity for hydro-mechanical simulations, assuming that the Biot modulus and the fluid bulk modulus are both constant. This is useful for comparing with solutions from poroelasticity theory, but is less accurate than PorousFlowPorosity

AnnularMeshFor rmin>0: creates an annular mesh of QUAD4 elements. For rmin=0: creates a disc mesh of QUAD4 and TRI3 elements. Boundary sidesets are created at rmax and rmin, and given these names. If tmin!0 and tmax!2Pi, a sector of an annulus or disc is created. In this case boundary sidesets are also created a tmin and tmax, and given these names

AnnularMeshGeneratorFor rmin>0: creates an annular mesh of QUAD4 elements. For rmin=0: creates a disc mesh of QUAD4 and TRI3 elements. Boundary sidesets are created at rmax and rmin, and given these names. If tmin!0 and tmax!2Pi, a sector of an annulus or disc is created. In this case boundary sidesets are also created a tmin and tmax, and given these names

BreakBoundaryOnSubdomainGeneratorBreak boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name

BreakMeshByBlockGeneratorBreak boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name. At the momentthis only works on REPLICATED mesh

ParsedGenerateSidesetA MeshModifier that adds element's sides to a sideset if the centroid satisfies the combinatorial_geometry expression, (and optionally) if one of the side's elements is in included_subdomain_ids and if it features the correct normal.

ParsedSubdomainMeshGeneratorMeshModifier that uses a parsed expression (combinatorial_geometry) to determine if an element (aka its centroid) is inside the combinatorial geometry and assigns a new block id.

PatternedMeshGeneratorCreates a 2D mesh from a specified set of unique 'tiles' meshes and a two-dimensional pattern.

RenameBlockGeneratorRenameBlock re-numbers or re-names an old_block_id or old_block_name with a new_block_id or new_block_name. If using RenameBlock to merge blocks (by giving them the same name, for instance) it is advisable to specify all your blocks in old_blocks to avoid inconsistencies

RenameBoundaryGeneratorRenameBoundaryGenerator re-numbers or re-names an old_boundary_id or old_boundary_name with a new_boundary_id or new_boundary_name. If using RenameBoundaryGenerator to merge boundaries (by giving them the same name, for instance) it is advisable to specify all your boundaries in old_boundaries to avoid inconsistencies

SideSetsFromBoundingBoxGeneratorFind sidesets with given boundary ids in bounding box and add new boundary id. This can be done by finding all required boundary and adding the new boundary id to those sidesets. Alternatively, a number of boundary ids can be provided and all nodes within the bounding box that have all the required boundary ids will have a newboundary id added.

AddSideSetsFromBoundingBoxFind sidesets with given boundary ids in bounding box and add new boundary id. This can be done by finding all required boundary and adding the new boundary id to those sidesets. Alternatively, a number of boundary ids can be provided and all nodes within the bounding box that have all the required boundary ids will have a newboundary id added.

BlockDeleterMesh modifier which removes elements with the specified subdomain ID

BoundingBoxNodeSetAssigns all of the nodes either inside or outside of a bounding box to a new nodeset.

BreakBoundaryOnSubdomainBreak boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name

BreakMeshByBlockBreak boundaries based on the subdomains to which their sides are attached. Naming convention for the new boundaries will be the old boundary name plus "_to_" plus the subdomain name. At the momentthis only works on REPLICATED mesh

ImageSubdomainSamples an image at the coordinates of each element centroid using the resulting value as each element's subdomain ID

ParsedAddSidesetA MeshModifier that adds element's sides to a sideset if the centroid satisfies the combinatorial_geometry expression, (and optionally) if one of the side's elements is in included_subdomain_ids and if it features the correct normal.

ParsedSubdomainMeshModifierMeshModifier that uses a parsed expression (combinatorial_geometry) to determine if an element (aka its centroid) is inside the combinatorial geometry and assigns a new block id.

RenameBlockRenameBlock re-numbers or re-names an old_block_id or old_block_name with a new_block_id or new_block_name. If using RenameBlock to merge blocks (by giving them the same name, for instance) it is advisable to specify all your blocks in old_blocks to avoid inconsistencies

AddNavierStokesKernelsActionThis class allows us to have a section of the input file like the following which automatically adds Kernels and AuxKernels for all the required nonlinear and auxiliary variables.

CommonLineElementActionSets up variables, stress divergence kernels and materials required for a static analysis with beam or truss elements. Also sets up aux variables, aux kernels, and consistent or nodal inertia kernels for dynamic analysis with beam elements.

LineElementActionSets up variables, stress divergence kernels and materials required for a static analysis with beam or truss elements. Also sets up aux variables, aux kernels, and consistent or nodal inertia kernels for dynamic analysis with beam elements.

PorousFlowBasicTHMAdds Kernels and fluid-property Materials necessary to simulate a single-phase, single-component fully-saturated flow problem. No upwinding and no mass lumping of the fluid mass are used. The fluid-mass time derivative is close to linear, and is perfectly linear if multiply_by_density=false. These features mean the results may differ slightly from the Unsaturated Action case. To run a simulation you will also need to provide various other Materials for each mesh block, depending on your simulation type, viz: permeability, constant Biot modulus, constant thermal expansion coefficient, porosity, elasticity tensor, strain calculator, stress calculator, matrix internal energy, thermal conductivity, diffusivity

PorousFlowFullySaturatedAdds Kernels and fluid-property Materials necessary to simulate a single-phase fully-saturated flow problem. Full-upwinding of fluid flow is not available in this Action, so the results may differ slightly from the Unsaturated Action. However KT stabilization may be employed for both the fluid and any heat flow. No Kernels for diffusion and dispersion of fluid components are added. To run a simulation you will also need to provide various other Materials for each mesh block, depending on your simulation type, viz: permeability, porosity, elasticity tensor, strain calculator, stress calculator, matrix internal energy, thermal conductivity, diffusivity

PorousFlowUnsaturatedAdds Kernels and fluid-property Materials necessary to simulate a single-phase saturated-unsaturated flow problem. The saturation is computed using van Genuchten's expression. No Kernels for diffusion and dispersion of fluid components are added. To run a simulation you will also need to provide various other Materials for each mesh block, depending on your simulation type, viz: permeability, porosity, elasticity tensor, strain calculator, stress calculator, matrix internal energy, thermal conductivity, diffusivity

MultiAppVectorPostprocessorTransferThis transfer distributes the N values of a VectorPostprocessor to Postprocessors located in N sub-apps or collects Postprocessor values from N sub-apps into a VectorPostprocessor

Level Set App

LevelSetMeshRefinementTransferTransfers the mesh from the master application to the sub application for the purposes of level set reinitialization problems with mesh adaptivity.

MultiAppFXTransferTransfers coefficient arrays between objects that are derived from MutableCoefficientsInterface; currently includes the following types: FunctionSeries, FXBoundaryUserObject, and FXVolumeUserObject

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

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).

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.

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.

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.