Rogers-Stallybrass-Clements form of capillary pressure. More...
#include <PorousFlowCapillaryPressureRSC.h>
Public Member Functions | |
PorousFlowCapillaryPressureRSC (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 | _oil_viscosity |
Oil viscosity (which must be twice the water viscocity in this formulation) More... | |
const Real | _scale_ratio |
Scale ratio: porosity/permeability/beta^2, where beta is chosen by the user. More... | |
const Real | _shift |
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_viscosity. More... | |
const Real | _scale |
Scale = 0.25 * scale_ratio * oil_viscosity. 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... | |
Rogers-Stallybrass-Clements form of capillary pressure.
Definition at line 22 of file PorousFlowCapillaryPressureRSC.h.
PorousFlowCapillaryPressureRSC::PorousFlowCapillaryPressureRSC | ( | const InputParameters & | parameters | ) |
Definition at line 36 of file PorousFlowCapillaryPressureRSC.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 48 of file PorousFlowCapillaryPressureRSC.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 62 of file PorousFlowCapillaryPressureRSC.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 81 of file PorousFlowCapillaryPressureRSC.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 55 of file PorousFlowCapillaryPressureRSC.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 75 of file PorousFlowCapillaryPressureRSC.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 69 of file PorousFlowCapillaryPressureRSC.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().
|
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().
|
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().
|
protected |
Oil viscosity (which must be twice the water viscocity in this formulation)
Definition at line 37 of file PorousFlowCapillaryPressureRSC.h.
|
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().
|
protected |
Scale = 0.25 * scale_ratio * oil_viscosity.
Definition at line 43 of file PorousFlowCapillaryPressureRSC.h.
Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), and effectiveSaturation().
|
protected |
Scale ratio: porosity/permeability/beta^2, where beta is chosen by the user.
Definition at line 39 of file PorousFlowCapillaryPressureRSC.h.
|
protected |
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_viscosity.
Definition at line 41 of file PorousFlowCapillaryPressureRSC.h.
Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), and effectiveSaturation().
|
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().