Go to the documentation of this file.
20 params.addRequiredRangeCheckedParam<Real>(
23 "van Genuchten exponent m. Must be between 0 and 1, and optimally should be set to >0.5");
24 params.addRequiredRangeCheckedParam<Real>(
25 "alpha",
"alpha > 0",
"van Genuchten parameter alpha. Must be positive");
26 params.addRangeCheckedParam<Real>(
"s_scale",
28 "s_scale > 0.0 & s_scale <= 1.0",
29 "CapillaryPressure = f(Seff * s_scale) - "
30 "f(s_scale), where f is the van Genuchten "
31 "expression. Setting s_scale<1 is unusual "
32 "but sometimes helps fully saturated, "
33 "2-phase PP simulations converge as the "
34 "zero derivative (1/f'(S=1)=0) is removed");
35 params.addClassDescription(
"van Genuchten capillary pressure");
41 _m(getParam<Real>(
"m")),
42 _alpha(getParam<Real>(
"alpha")),
43 _s_scale(getParam<Real>(
"s_scale")),
Real capillaryPressure(Real seff, Real pe, Real lambda, Real pc_max)
Capillary pressure as a function of effective saturation.
const Real _pc_sscale
pc_sscale = f(s_scale), where f is the van Genuchten function
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const override
Raw capillary pressure curve (does not include logarithmic extension)
const Real _m
van Genuchten exponent m
Base class for capillary pressure for multiphase flow in porous media.
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const override
Second derivative of effective saturation wrt capillary pressure.
registerMooseObject("PorousFlowApp", PorousFlowCapillaryPressureVG)
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Derivative of raw capillary pressure wrt true saturation.
Real effectiveSaturationFromSaturation(Real saturation) const
Effective saturation of liquid phase given liquid saturation and residual liquid saturation.
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Second derivative of raw capillary pressure wrt true saturation.
const Real _alpha
van Genuchten capillary coefficient alpha
Real effectiveSaturation(Real p, Real alpha, Real m)
Effective saturation as a function of porepressure.
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const override
Effective saturation as a function of capillary pressure.
van Genuchten effective saturation, capillary pressure and relative permeability functions.
const Real _pc_max
Maximum capillary pressure (Pa). Note: must be <= 0.
Real d2CapillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Second derivative of capillary pressure wrt effective saturation.
InputParameters validParams< PorousFlowCapillaryPressure >()
Real dCapillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Derivative of capillary pressure wrt effective saturation.
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const override
Derivative of effective saturation wrt capillary pressure.
van Genuchten form of capillary pressure.
const Real _s_scale
Capillary pressure = f(Seff * s_scale) - pc_sscale, where f is the van Genuchten function....
PorousFlowCapillaryPressureVG(const InputParameters ¶meters)
Real capillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Capillary pressure as a function of effective saturation.
Real dEffectiveSaturation(Real p, Real alpha, Real m)
Derivative of effective saturation wrt porepressure.
Real saturation(Real pc, unsigned qp=0) const
Saturation as a function of capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressureVG >()
Real d2EffectiveSaturation(Real p, Real alpha, Real m)
Second derivative of effective saturation wrt porepressure.
const Real _dseff_ds
Derivative of effective saturation with respect to saturation.