Brooks-Corey effective saturation, capillary pressure and relative permeability functions. More...
#include <PorousFlowCapillaryPressureBC.h>
Public Member Functions | |
PorousFlowCapillaryPressureBC (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 DualReal | capillaryPressure (DualReal saturation, unsigned qp=0) const |
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... | |
Real | saturation (Real pc, unsigned qp=0) const |
Saturation as a function of capillary pressure. More... | |
Real | dSaturation (Real pc, unsigned qp=0) const |
Derivative of saturation wrt capillary pressure. More... | |
Real | d2Saturation (Real pc, unsigned qp=0) const |
Second derivative of saturation wrt capillary pressure. 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 | _lambda |
Brooks-Corey exponent lambda. More... | |
const Real | _pe |
Threshold entry pressure. 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... | |
Brooks-Corey effective saturation, capillary pressure and relative permeability functions.
From Brooks, R. H. and A. T. Corey (1966), Properties of porous media affecting fluid flow, J. Irrig. Drain. Div., 6, 61
Definition at line 26 of file PorousFlowCapillaryPressureBC.h.
PorousFlowCapillaryPressureBC::PorousFlowCapillaryPressureBC | ( | const InputParameters & | parameters | ) |
Definition at line 27 of file PorousFlowCapillaryPressureBC.C.
|
virtualinherited |
Definition at line 177 of file PorousFlowCapillaryPressure.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::capillaryPressure(), PorousFlowCapillaryPressure::initialSetup(), PorousFlowWaterVapor::thermophysicalProperties(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), PorousFlowBrineCO2::totalMassFraction(), PorousFlowWaterNCG::twoPhaseProperties(), and PorousFlowBrineCO2::twoPhaseProperties().
|
overridevirtual |
Raw capillary pressure curve (does not include logarithmic extension)
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 35 of file PorousFlowCapillaryPressureBC.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 115 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(), PorousFlowFluidStateSingleComponent::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().
|
overridevirtual |
Second derivative of raw capillary pressure wrt true saturation.
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 49 of file PorousFlowCapillaryPressureBC.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 127 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 69 of file PorousFlowCapillaryPressureBC.C.
|
inherited |
Second derivative of saturation wrt capillary pressure.
pc | capillary pressure |
qp | quadpoint to use (when saturation depends on coupled variables, not just pc) |
Definition at line 109 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow2PhasePP::computeQpProperties(), and PorousFlow1PhaseP::computeQpProperties().
|
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 PorousFlowCapillaryPressure::capillaryPressure(), PorousFlow2PhasePS::computeQpProperties(), PorousFlowFluidStateSingleComponent::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().
|
overridevirtual |
Derivative of raw capillary pressure wrt true saturation.
saturation | true saturation |
Implements PorousFlowCapillaryPressure.
Definition at line 42 of file PorousFlowCapillaryPressureBC.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 121 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 63 of file PorousFlowCapillaryPressureBC.C.
|
inherited |
Derivative of saturation wrt capillary pressure.
pc | capillary pressure (Pa) |
qp | quadpoint to use (when saturation depends on coupled variables, not just pc) |
Definition at line 103 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow2PhasePP::computeQpProperties(), and PorousFlow1PhaseP::computeQpProperties().
|
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 57 of file PorousFlowCapillaryPressureBC.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 PorousFlowCapillaryPressureVG::capillaryPressureCurve(), capillaryPressureCurve(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), and 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 134 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::initialSetup().
|
inlinefinalvirtualinherited |
Definition at line 44 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 158 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 167 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlowCapillaryPressure::extensionSaturation().
|
inherited |
Saturation as a function of capillary pressure.
pc | capillary pressure (Pa) |
qp | quadpoint to use (when saturation depends on coupled variables, not just pc) |
Definition at line 97 of file PorousFlowCapillaryPressure.C.
Referenced by PorousFlow1PhaseP::buildQpPPSS(), PorousFlow2PhasePP::buildQpPPSS(), PorousFlowCapillaryPressure::capillaryPressure(), PorousFlowCapillaryPressureVG::capillaryPressureCurve(), capillaryPressureCurve(), PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressure(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressure(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), dCapillaryPressureCurve(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), PorousFlowCapillaryPressure::effectiveSaturationFromSaturation(), PorousFlowCapillaryPressure::interceptFunction(), and PorousFlowCapillaryPressure::interceptFunctionDeriv().
|
protectedinherited |
Derivative of effective saturation with respect to saturation.
Definition at line 227 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), and dCapillaryPressureCurve().
|
protected |
Brooks-Corey exponent lambda.
Definition at line 41 of file PorousFlowCapillaryPressureBC.h.
Referenced by capillaryPressureCurve(), d2CapillaryPressureCurve(), d2EffectiveSaturation(), dCapillaryPressureCurve(), dEffectiveSaturation(), and effectiveSaturation().
|
protectedinherited |
log(10)
Definition at line 249 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 229 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressure(), PorousFlowCapillaryPressure::d2CapillaryPressure(), PorousFlowCapillaryPressure::dCapillaryPressure(), PorousFlowCapillaryPressure::initialSetup(), PorousFlowCapillaryPressureBW::PorousFlowCapillaryPressureBW(), PorousFlowCapillaryPressureConst::PorousFlowCapillaryPressureConst(), and PorousFlowCapillaryPressureRSC::PorousFlowCapillaryPressureRSC().
|
protectedinherited |
Capillary pressure where the extension meets the raw curve.
This is computed only for qp=0.
Definition at line 242 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 231 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressureVG::capillaryPressureCurve(), capillaryPressureCurve(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), dCapillaryPressureCurve(), PorousFlowCapillaryPressure::initialSetup(), and PorousFlowCapillaryPressure::interceptFunction().
|
protected |
Threshold entry pressure.
Definition at line 43 of file PorousFlowCapillaryPressureBC.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 237 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 225 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::d2Saturation(), PorousFlowCapillaryPressure::dSaturation(), PorousFlowCapillaryPressure::effectiveSaturationFromSaturation(), PorousFlowCapillaryPressure::extensionSaturation(), and PorousFlowCapillaryPressure::saturation().
|
protectedinherited |
Gradient of the logarithmic extension This is computed only for qp=0.
Definition at line 247 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), and PorousFlowCapillaryPressure::initialSetup().