Capillary pressure of Broadbridge and White. More...
#include <PorousFlowCapillaryPressureBW.h>
Public Member Functions | |
PorousFlowCapillaryPressureBW (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 | _sn |
BW's Sn parameter (initial saturation) More... | |
const Real | _ss |
BW's Ss parameter. More... | |
const Real | _c |
BW's C parameter (>1) More... | |
const Real | _las |
BWs lambda_s parameter multiplied by fluid density * gravity (>0) 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... | |
Capillary pressure of Broadbridge and White.
Definition at line 22 of file PorousFlowCapillaryPressureBW.h.
PorousFlowCapillaryPressureBW::PorousFlowCapillaryPressureBW | ( | const InputParameters & | parameters | ) |
Definition at line 45 of file PorousFlowCapillaryPressureBW.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 64 of file PorousFlowCapillaryPressureBW.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 78 of file PorousFlowCapillaryPressureBW.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 97 of file PorousFlowCapillaryPressureBW.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 71 of file PorousFlowCapillaryPressureBW.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 91 of file PorousFlowCapillaryPressureBW.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 85 of file PorousFlowCapillaryPressureBW.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(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::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 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(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), PorousFlowCapillaryPressure::capillaryPressureLogExt(), PorousFlowCapillaryPressure::d2CapillaryPressure(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), PorousFlowCapillaryPressure::d2CapillaryPressureLogExt(), PorousFlowCapillaryPressure::dCapillaryPressure(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), PorousFlowCapillaryPressureBC::dCapillaryPressureCurve(), PorousFlowCapillaryPressure::dCapillaryPressureLogExt(), PorousFlowCapillaryPressure::effectiveSaturationFromSaturation(), PorousFlowCapillaryPressure::interceptFunction(), and PorousFlowCapillaryPressure::interceptFunctionDeriv().
|
protected |
BW's C parameter (>1)
Definition at line 41 of file PorousFlowCapillaryPressureBW.h.
Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), and effectiveSaturation().
|
protectedinherited |
Derivative of effective saturation with respect to saturation.
Definition at line 227 of file PorousFlowCapillaryPressure.h.
Referenced by PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), and PorousFlowCapillaryPressureBC::dCapillaryPressureCurve().
|
protected |
BWs lambda_s parameter multiplied by fluid density * gravity (>0)
Definition at line 43 of file PorousFlowCapillaryPressureBW.h.
Referenced by d2EffectiveSaturation(), 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(), 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(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), PorousFlowCapillaryPressureBC::dCapillaryPressureCurve(), PorousFlowCapillaryPressure::initialSetup(), and PorousFlowCapillaryPressure::interceptFunction().
|
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().
|
protected |
BW's Sn parameter (initial saturation)
Definition at line 37 of file PorousFlowCapillaryPressureBW.h.
Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), effectiveSaturation(), and PorousFlowCapillaryPressureBW().
|
protected |
BW's Ss parameter.
Definition at line 39 of file PorousFlowCapillaryPressureBW.h.
Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), effectiveSaturation(), and PorousFlowCapillaryPressureBW().