van Genuchten form of capillary pressure. More...
#include <PorousFlowCapillaryPressureVG.h>
Public Member Functions | |
PorousFlowCapillaryPressureVG (const InputParameters ¶meters) | |
virtual Real | capillaryPressureCurve (Real saturation, unsigned qp=0) const override |
Raw capillary pressure curve (does not include logarithmic extension) More... | |
virtual Real | dCapillaryPressureCurve (Real saturation, unsigned qp=0) const override |
Derivative of raw capillary pressure wrt true saturation. More... | |
virtual Real | d2CapillaryPressureCurve (Real saturation, unsigned qp=0) const override |
Second derivative of raw capillary pressure wrt true saturation. More... | |
virtual Real | effectiveSaturation (Real pc, unsigned qp=0) const override |
Effective saturation as a function of capillary pressure. More... | |
virtual Real | dEffectiveSaturation (Real pc, unsigned qp=0) const override |
Derivative of effective saturation wrt capillary pressure. More... | |
virtual Real | d2EffectiveSaturation (Real pc, unsigned qp=0) const override |
Second derivative of effective saturation wrt capillary pressure. More... | |
virtual void | initialize () final |
virtual void | initialSetup () override |
virtual Real | capillaryPressure (Real saturation, unsigned qp=0) const |
Capillary pressure is calculated as a function of true saturation. More... | |
virtual Real | dCapillaryPressure (Real saturation, unsigned qp=0) const |
Derivative of capillary pressure wrt true saturation. More... | |
virtual Real | d2CapillaryPressure (Real saturation, unsigned qp=0) const |
Second derivative of capillary pressure wrt true saturation. More... | |
Protected Member Functions | |
Real | effectiveSaturationFromSaturation (Real saturation) const |
Effective saturation of liquid phase given liquid saturation and residual liquid saturation. More... | |
Real | extensionSaturation () const |
Calculates the saturation where the logarithmic extension to capillary pressure meets the raw curve using Newton's method. More... | |
Real | interceptFunction (Real s) const |
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation. More... | |
Real | interceptFunctionDeriv (Real s) const |
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation. More... | |
Real | capillaryPressureLogExt (Real s) const |
The capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities. More... | |
Real | dCapillaryPressureLogExt (Real s) const |
The derivative of capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities. More... | |
Real | d2CapillaryPressureLogExt (Real s) const |
The second derivative of capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities. More... | |
Protected Attributes | |
const Real | _m |
van Genuchten exponent m More... | |
const Real | _alpha |
van Genuchten capillary coefficient alpha More... | |
const Real | _s_scale |
Capillary pressure = f(Seff * s_scale) - pc_sscale, where f is the van Genuchten function. For almost all simulations s_scale=1 will be appropriate. More... | |
const Real | _pc_sscale |
pc_sscale = f(s_scale), where f is the van Genuchten function More... | |
const Real | _sat_lr |
Liquid residual saturation. More... | |
const Real | _dseff_ds |
Derivative of effective saturation with respect to saturation. More... | |
bool | _log_ext |
Flag to use a logarithmic extension for low saturation. More... | |
const Real | _pc_max |
Maximum capillary pressure (Pa). Note: must be <= 0. More... | |
Real | _sat_ext |
Saturation where the logarithmic extension meets the raw curve This is computed only for qp=0. More... | |
Real | _pc_ext |
Capillary pressure where the extension meets the raw curve. More... | |
Real | _slope_ext |
Gradient of the logarithmic extension This is computed only for qp=0. More... | |
const Real | _log10 |
log(10) More... | |
van Genuchten form of capillary pressure.
From van Genuchten, M. Th., A closed for equation for predicting the hydraulic conductivity of unsaturated soils, Soil Sci. Soc., 44, 892-898 (1980)
Definition at line 26 of file PorousFlowCapillaryPressureVG.h.
PorousFlowCapillaryPressureVG::PorousFlowCapillaryPressureVG | ( | const InputParameters & | parameters | ) |
Definition at line 39 of file PorousFlowCapillaryPressureVG.C.
|
virtualinherited |
Capillary pressure is calculated as a function of true saturation.
Note that this method includes the ability to use a logarithmic extension at low saturation.
saturation | true saturation |
qp | quadpoint to use (when capillary-pressure depends on coupled variables, not just saturation) |
Definition at line 64 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow2PhasePS::buildQpPPSS(), PorousFlowCapillaryPressure::initialSetup(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
overridevirtual |
Raw capillary pressure curve (does not include logarithmic extension)
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 49 of file PorousFlowCapillaryPressureVG.C.
|
protectedinherited |
The capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities.
s | liquid saturation |
Definition at line 97 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::capillaryPressure().
|
virtualinherited |
Second derivative of capillary pressure wrt true saturation.
saturation | true saturation |
qp | quadpoint to use (when capillary-pressure depends on coupled variables, not just saturation) |
Definition at line 82 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow2PhasePS::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().
|
overridevirtual |
Second derivative of raw capillary pressure wrt true saturation.
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 64 of file PorousFlowCapillaryPressureVG.C.
|
protectedinherited |
The second derivative of capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities.
s | liquid saturation |
Definition at line 109 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::d2CapillaryPressure().
|
overridevirtual |
Second derivative of effective saturation wrt capillary pressure.
pc | capillary pressure |
qp | quadpoint to use (when effective saturation depends on coupled variables, not just pc) |
Implements PorousFlowCapillaryPressure.
Definition at line 86 of file PorousFlowCapillaryPressureVG.C.
|
virtualinherited |
Derivative of capillary pressure wrt true saturation.
saturation | true saturation |
qp | quadpoint to use (when capillary-pressure depends on coupled variables, not just saturation) |
Definition at line 73 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow2PhasePS::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().
|
overridevirtual |
Derivative of raw capillary pressure wrt true saturation.
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 56 of file PorousFlowCapillaryPressureVG.C.
|
protectedinherited |
The derivative of capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities.
s | liquid saturation |
Definition at line 103 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::dCapillaryPressure().
|
overridevirtual |
Derivative of effective saturation wrt capillary pressure.
pc | capillary pressure (Pa) |
qp | quadpoint to use (when effective saturation depends on coupled variables, not just pc) |
Implements PorousFlowCapillaryPressure.
Definition at line 79 of file PorousFlowCapillaryPressureVG.C.
|
overridevirtual |
Effective saturation as a function of capillary pressure.
pc | capillary pressure (Pa) |
qp | quadpoint to use (when effective saturation depends on coupled variables, not just pc) |
Implements PorousFlowCapillaryPressure.
Definition at line 72 of file PorousFlowCapillaryPressureVG.C.
|
protectedinherited |
Effective saturation of liquid phase given liquid saturation and residual liquid saturation.
Note: not to be mistaken with effectiveSaturation(pc) which is a function of capillary pressure.
saturation | true saturation |
Definition at line 91 of file PorousFlowCapillaryPressure.C.
Referenced by capillaryPressureCurve(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), dCapillaryPressureCurve(), and PorousFlowCapillaryPressureBC::dCapillaryPressureCurve().
|
protectedinherited |
Calculates the saturation where the logarithmic extension to capillary pressure meets the raw curve using Newton's method.
This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities
Definition at line 116 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::initialSetup().
|
inlinefinalvirtualinherited |
Definition at line 45 of file PorousFlowCapillaryPressure.h.
|
overridevirtualinherited |
Definition at line 51 of file PorousFlowCapillaryPressure.C.
|
protectedinherited |
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation.
This is computed for qp=0 only. This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities
s | effective saturation |
Definition at line 140 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::extensionSaturation().
|
protectedinherited |
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation.
This implementation assumes capillary-pressure is a function of saturation only, and not any other quad-point dependent quantities
s | effective saturation |
Definition at line 149 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::extensionSaturation().
|
protected |
van Genuchten capillary coefficient alpha
Definition at line 43 of file PorousFlowCapillaryPressureVG.h.
Referenced by capillaryPressureCurve(), d2CapillaryPressureCurve(), d2EffectiveSaturation(), dCapillaryPressureCurve(), dEffectiveSaturation(), and effectiveSaturation().
|
protectedinherited |
Derivative of effective saturation with respect to saturation.
Definition at line 200 of file PorousFlowCapillaryPressure.h.
Referenced by d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), dCapillaryPressureCurve(), and PorousFlowCapillaryPressureBC::dCapillaryPressureCurve().
|
protectedinherited |
log(10)
Definition at line 222 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), PorousFlowCapillaryPressure::interceptFunction(), and PorousFlowCapillaryPressure::interceptFunctionDeriv().
|
protectedinherited |
Flag to use a logarithmic extension for low saturation.
Definition at line 202 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressure(), PorousFlowCapillaryPressure::d2CapillaryPressure(), PorousFlowCapillaryPressure::dCapillaryPressure(), PorousFlowCapillaryPressure::initialSetup(), PorousFlowCapillaryPressureBW::PorousFlowCapillaryPressureBW(), PorousFlowCapillaryPressureConst::PorousFlowCapillaryPressureConst(), and PorousFlowCapillaryPressureRSC::PorousFlowCapillaryPressureRSC().
|
protected |
van Genuchten exponent m
Definition at line 41 of file PorousFlowCapillaryPressureVG.h.
Referenced by capillaryPressureCurve(), d2CapillaryPressureCurve(), d2EffectiveSaturation(), dCapillaryPressureCurve(), dEffectiveSaturation(), and effectiveSaturation().
|
protectedinherited |
Capillary pressure where the extension meets the raw curve.
This is computed only for qp=0.
Definition at line 215 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), and PorousFlowCapillaryPressure::initialSetup().
|
protectedinherited |
Maximum capillary pressure (Pa). Note: must be <= 0.
Definition at line 204 of file PorousFlowCapillaryPressure.h.
Referenced by capillaryPressureCurve(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), dCapillaryPressureCurve(), PorousFlowCapillaryPressureBC::dCapillaryPressureCurve(), PorousFlowCapillaryPressure::initialSetup(), and PorousFlowCapillaryPressure::interceptFunction().
|
protected |
pc_sscale = f(s_scale), where f is the van Genuchten function
Definition at line 47 of file PorousFlowCapillaryPressureVG.h.
Referenced by capillaryPressureCurve(), d2EffectiveSaturation(), dEffectiveSaturation(), and effectiveSaturation().
|
protected |
Capillary pressure = f(Seff * s_scale) - pc_sscale, where f is the van Genuchten function. For almost all simulations s_scale=1 will be appropriate.
Definition at line 45 of file PorousFlowCapillaryPressureVG.h.
Referenced by capillaryPressureCurve(), d2CapillaryPressureCurve(), d2EffectiveSaturation(), dCapillaryPressureCurve(), dEffectiveSaturation(), and effectiveSaturation().
|
protectedinherited |
Saturation where the logarithmic extension meets the raw curve This is computed only for qp=0.
Definition at line 210 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressure(), PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressure(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressure(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), and PorousFlowCapillaryPressure::initialSetup().
|
protectedinherited |
Liquid residual saturation.
Definition at line 198 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::effectiveSaturationFromSaturation(), and PorousFlowCapillaryPressure::extensionSaturation().
|
protectedinherited |
Gradient of the logarithmic extension This is computed only for qp=0.
Definition at line 220 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), and PorousFlowCapillaryPressure::initialSetup().