www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PorousFlowCapillaryPressureRSC Class Reference

Rogers-Stallybrass-Clements form of capillary pressure. More...

#include <PorousFlowCapillaryPressureRSC.h>

Inheritance diagram for PorousFlowCapillaryPressureRSC:
[legend]

Public Member Functions

 PorousFlowCapillaryPressureRSC (const InputParameters &parameters)
 
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...
 

Detailed Description

Rogers-Stallybrass-Clements form of capillary pressure.

Definition at line 22 of file PorousFlowCapillaryPressureRSC.h.

Constructor & Destructor Documentation

◆ PorousFlowCapillaryPressureRSC()

PorousFlowCapillaryPressureRSC::PorousFlowCapillaryPressureRSC ( const InputParameters &  parameters)

Definition at line 36 of file PorousFlowCapillaryPressureRSC.C.

37  : PorousFlowCapillaryPressure(parameters),
38  _oil_viscosity(getParam<Real>("oil_viscosity")),
39  _scale_ratio(getParam<Real>("scale_ratio")),
40  _shift(getParam<Real>("shift")),
42 {
43  // Set _log_ext to false as no capillary pressure curves are implmented in this class
44  _log_ext = false;
45 }

Member Function Documentation

◆ capillaryPressure() [1/2]

DualReal PorousFlowCapillaryPressure::capillaryPressure ( DualReal  saturation,
unsigned  qp = 0 
) const
virtualinherited

Definition at line 177 of file PorousFlowCapillaryPressure.C.

178 {
179  const Real Pc = capillaryPressure(saturation.value(), qp);
180  const Real dPc_ds = dCapillaryPressure(saturation.value(), qp);
181 
182  DualReal result = Pc;
183  result.derivatives() = saturation.derivatives() * dPc_ds;
184 
185  return result;
186 }

◆ capillaryPressure() [2/2]

Real PorousFlowCapillaryPressure::capillaryPressure ( Real  saturation,
unsigned  qp = 0 
) const
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.

Parameters
saturationtrue saturation
qpquadpoint to use (when capillary-pressure depends on coupled variables, not just saturation)
Returns
capillary pressure (Pa)

Definition at line 64 of file PorousFlowCapillaryPressure.C.

65 {
66  if (_log_ext && saturation < _sat_ext)
68  else
70 }

Referenced by PorousFlow2PhasePS::buildQpPPSS(), PorousFlowCapillaryPressure::capillaryPressure(), PorousFlowCapillaryPressure::initialSetup(), PorousFlowWaterVapor::thermophysicalProperties(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), PorousFlowBrineCO2::totalMassFraction(), PorousFlowWaterNCG::twoPhaseProperties(), and PorousFlowBrineCO2::twoPhaseProperties().

◆ capillaryPressureCurve()

Real PorousFlowCapillaryPressureRSC::capillaryPressureCurve ( Real  saturation,
unsigned  qp = 0 
) const
overridevirtual

Raw capillary pressure curve (does not include logarithmic extension)

Parameters
saturationtrue saturation
Returns
capillary pressure (Pa)

Implements PorousFlowCapillaryPressure.

Definition at line 48 of file PorousFlowCapillaryPressureRSC.C.

49 {
50  mooseError("PorousFlowCapillaryPressureRSC::capillaryPressure not implemented");
51  return 0.0;
52 }

◆ capillaryPressureLogExt()

Real PorousFlowCapillaryPressure::capillaryPressureLogExt ( Real  s) const
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.

Parameters
sliquid saturation
Returns
capillary pressure in logarithmic extension

Definition at line 115 of file PorousFlowCapillaryPressure.C.

116 {
117  return _pc_ext * std::pow(10.0, _slope_ext * (saturation - _sat_ext));
118 }

Referenced by PorousFlowCapillaryPressure::capillaryPressure().

◆ d2CapillaryPressure()

Real PorousFlowCapillaryPressure::d2CapillaryPressure ( Real  saturation,
unsigned  qp = 0 
) const
virtualinherited

Second derivative of capillary pressure wrt true saturation.

Parameters
saturationtrue saturation
qpquadpoint to use (when capillary-pressure depends on coupled variables, not just saturation)
Returns
second derivative of capillary pressure with respect to true saturation

Definition at line 82 of file PorousFlowCapillaryPressure.C.

83 {
84  if (_log_ext && saturation < _sat_ext)
86  else
88 }

Referenced by PorousFlow2PhasePS::computeQpProperties(), PorousFlowFluidStateSingleComponent::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().

◆ d2CapillaryPressureCurve()

Real PorousFlowCapillaryPressureRSC::d2CapillaryPressureCurve ( Real  saturation,
unsigned  qp = 0 
) const
overridevirtual

Second derivative of raw capillary pressure wrt true saturation.

Parameters
saturationtrue saturation
Returns
second derivative of capillary pressure with respect to true saturation

Implements PorousFlowCapillaryPressure.

Definition at line 62 of file PorousFlowCapillaryPressureRSC.C.

63 {
64  mooseError("PorousFlowCapillaryPressureRSC::d2CapillaryPressure not implemented");
65  return 0.0;
66 }

◆ d2CapillaryPressureLogExt()

Real PorousFlowCapillaryPressure::d2CapillaryPressureLogExt ( Real  s) const
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.

Parameters
sliquid saturation
Returns
second derivative of capillary pressure in logarithmic extension

Definition at line 127 of file PorousFlowCapillaryPressure.C.

128 {
129  return _pc_ext * _slope_ext * _slope_ext * _log10 * _log10 *
130  std::pow(10.0, _slope_ext * (saturation - _sat_ext));
131 }

Referenced by PorousFlowCapillaryPressure::d2CapillaryPressure().

◆ d2EffectiveSaturation()

Real PorousFlowCapillaryPressureRSC::d2EffectiveSaturation ( Real  pc,
unsigned  qp = 0 
) const
overridevirtual

Second derivative of effective saturation wrt capillary pressure.

Parameters
pccapillary pressure
qpquadpoint to use (when effective saturation depends on coupled variables, not just pc)
Returns
second derivative of effective saturation wrt capillary pressure

Implements PorousFlowCapillaryPressure.

Definition at line 81 of file PorousFlowCapillaryPressureRSC.C.

◆ d2Saturation()

Real PorousFlowCapillaryPressure::d2Saturation ( Real  pc,
unsigned  qp = 0 
) const
inherited

Second derivative of saturation wrt capillary pressure.

Parameters
pccapillary pressure
qpquadpoint to use (when saturation depends on coupled variables, not just pc)
Returns
second derivative of saturation wrt capillary pressure

Definition at line 109 of file PorousFlowCapillaryPressure.C.

110 {
111  return d2EffectiveSaturation(pc, qp) * (1.0 - _sat_lr);
112 }

Referenced by PorousFlow2PhasePP::computeQpProperties(), and PorousFlow1PhaseP::computeQpProperties().

◆ dCapillaryPressure()

Real PorousFlowCapillaryPressure::dCapillaryPressure ( Real  saturation,
unsigned  qp = 0 
) const
virtualinherited

Derivative of capillary pressure wrt true saturation.

Parameters
saturationtrue saturation
qpquadpoint to use (when capillary-pressure depends on coupled variables, not just saturation)
Returns
derivative of capillary pressure with respect to true saturation

Definition at line 73 of file PorousFlowCapillaryPressure.C.

74 {
75  if (_log_ext && saturation < _sat_ext)
77  else
79 }

Referenced by PorousFlowCapillaryPressure::capillaryPressure(), PorousFlow2PhasePS::computeQpProperties(), PorousFlowFluidStateSingleComponent::computeQpProperties(), and PorousFlowFluidState::computeQpProperties().

◆ dCapillaryPressureCurve()

Real PorousFlowCapillaryPressureRSC::dCapillaryPressureCurve ( Real  saturation,
unsigned  qp = 0 
) const
overridevirtual

Derivative of raw capillary pressure wrt true saturation.

Parameters
saturationtrue saturation
Returns
derivative of capillary pressure with respect to true saturation

Implements PorousFlowCapillaryPressure.

Definition at line 55 of file PorousFlowCapillaryPressureRSC.C.

56 {
57  mooseError("PorousFlowCapillaryPressureRSC::dCapillaryPressure not implemented");
58  return 0.0;
59 }

◆ dCapillaryPressureLogExt()

Real PorousFlowCapillaryPressure::dCapillaryPressureLogExt ( Real  s) const
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.

Parameters
sliquid saturation
Returns
derivative of capillary pressure in logarithmic extension

Definition at line 121 of file PorousFlowCapillaryPressure.C.

122 {
123  return _pc_ext * _slope_ext * _log10 * std::pow(10.0, _slope_ext * (saturation - _sat_ext));
124 }

Referenced by PorousFlowCapillaryPressure::dCapillaryPressure().

◆ dEffectiveSaturation()

Real PorousFlowCapillaryPressureRSC::dEffectiveSaturation ( Real  pc,
unsigned  qp = 0 
) const
overridevirtual

Derivative of effective saturation wrt capillary pressure.

Parameters
pccapillary pressure (Pa)
qpquadpoint to use (when effective saturation depends on coupled variables, not just pc)
Returns
derivative of effective saturation wrt capillary pressure

Implements PorousFlowCapillaryPressure.

Definition at line 75 of file PorousFlowCapillaryPressureRSC.C.

◆ dSaturation()

Real PorousFlowCapillaryPressure::dSaturation ( Real  pc,
unsigned  qp = 0 
) const
inherited

Derivative of saturation wrt capillary pressure.

Parameters
pccapillary pressure (Pa)
qpquadpoint to use (when saturation depends on coupled variables, not just pc)
Returns
derivative of saturation wrt capillary pressure

Definition at line 103 of file PorousFlowCapillaryPressure.C.

104 {
105  return dEffectiveSaturation(pc, qp) * (1.0 - _sat_lr);
106 }

Referenced by PorousFlow2PhasePP::computeQpProperties(), and PorousFlow1PhaseP::computeQpProperties().

◆ effectiveSaturation()

Real PorousFlowCapillaryPressureRSC::effectiveSaturation ( Real  pc,
unsigned  qp = 0 
) const
overridevirtual

Effective saturation as a function of capillary pressure.

Parameters
pccapillary pressure (Pa)
qpquadpoint to use (when effective saturation depends on coupled variables, not just pc)
Returns
effective saturation

Implements PorousFlowCapillaryPressure.

Definition at line 69 of file PorousFlowCapillaryPressureRSC.C.

◆ effectiveSaturationFromSaturation()

Real PorousFlowCapillaryPressure::effectiveSaturationFromSaturation ( Real  saturation) const
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.

Parameters
saturationtrue saturation
Returns
effective saturation

Definition at line 91 of file PorousFlowCapillaryPressure.C.

92 {
93  return (saturation - _sat_lr) / (1.0 - _sat_lr);
94 }

Referenced by PorousFlowCapillaryPressureVG::capillaryPressureCurve(), PorousFlowCapillaryPressureBC::capillaryPressureCurve(), PorousFlowCapillaryPressureVG::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(), PorousFlowCapillaryPressureVG::dCapillaryPressureCurve(), and PorousFlowCapillaryPressureBC::dCapillaryPressureCurve().

◆ extensionSaturation()

Real PorousFlowCapillaryPressure::extensionSaturation ( ) const
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

Returns
saturation where logarithmic extension begins

Definition at line 134 of file PorousFlowCapillaryPressure.C.

135 {
136  // Initial guess for saturation where extension matches curve
137  Real sat = _sat_lr + 0.01;
138 
139  // Calculate the saturation where the extension matches the derivative of the
140  // raw capillary pressure curve
141  const unsigned int max_its = 20;
142  const Real nr_tol = 1.0e-8;
143  unsigned int iter = 0;
144 
145  while (std::abs(interceptFunction(sat)) > nr_tol)
146  {
147  sat = sat - interceptFunction(sat) / interceptFunctionDeriv(sat);
148 
149  iter++;
150  if (iter > max_its)
151  break;
152  }
153 
154  return sat;
155 }

Referenced by PorousFlowCapillaryPressure::initialSetup().

◆ initialize()

virtual void PorousFlowCapillaryPressure::initialize ( )
inlinefinalvirtualinherited

Definition at line 44 of file PorousFlowCapillaryPressure.h.

44 {};

◆ initialSetup()

void PorousFlowCapillaryPressure::initialSetup ( )
overridevirtualinherited

Definition at line 51 of file PorousFlowCapillaryPressure.C.

52 {
53  // If _log_ext = true, calculate the saturation where the the logarithmic
54  // extension meets the raw capillary pressure curve.
55  if (_log_ext)
56  {
59  _slope_ext = (std::log10(_pc_ext) - std::log10(_pc_max)) / _sat_ext;
60  }
61 }

◆ interceptFunction()

Real PorousFlowCapillaryPressure::interceptFunction ( Real  s) const
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

Parameters
seffective saturation
Returns
capillary pressure function in the logarithmic extension

Definition at line 158 of file PorousFlowCapillaryPressure.C.

159 {
162 
163  return std::log10(pc) - saturation * dpc / (_log10 * pc) - std::log10(_pc_max);
164 }

Referenced by PorousFlowCapillaryPressure::extensionSaturation().

◆ interceptFunctionDeriv()

Real PorousFlowCapillaryPressure::interceptFunctionDeriv ( Real  s) const
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

Parameters
seffective saturation
Returns
derivative of logarithmic extension function

Definition at line 167 of file PorousFlowCapillaryPressure.C.

168 {
172 
173  return saturation * (dpc * dpc / pc - d2pc) / (_log10 * pc);
174 }

Referenced by PorousFlowCapillaryPressure::extensionSaturation().

◆ saturation()

Real PorousFlowCapillaryPressure::saturation ( Real  pc,
unsigned  qp = 0 
) const
inherited

Member Data Documentation

◆ _dseff_ds

const Real PorousFlowCapillaryPressure::_dseff_ds
protectedinherited

◆ _log10

const Real PorousFlowCapillaryPressure::_log10
protectedinherited

◆ _log_ext

bool PorousFlowCapillaryPressure::_log_ext
protectedinherited

◆ _oil_viscosity

const Real PorousFlowCapillaryPressureRSC::_oil_viscosity
protected

Oil viscosity (which must be twice the water viscocity in this formulation)

Definition at line 37 of file PorousFlowCapillaryPressureRSC.h.

◆ _pc_ext

Real PorousFlowCapillaryPressure::_pc_ext
protectedinherited

◆ _pc_max

const Real PorousFlowCapillaryPressure::_pc_max
protectedinherited

◆ _sat_ext

Real PorousFlowCapillaryPressure::_sat_ext
protectedinherited

◆ _sat_lr

const Real PorousFlowCapillaryPressure::_sat_lr
protectedinherited

◆ _scale

const Real PorousFlowCapillaryPressureRSC::_scale
protected

Scale = 0.25 * scale_ratio * oil_viscosity.

Definition at line 43 of file PorousFlowCapillaryPressureRSC.h.

Referenced by d2EffectiveSaturation(), dEffectiveSaturation(), and effectiveSaturation().

◆ _scale_ratio

const Real PorousFlowCapillaryPressureRSC::_scale_ratio
protected

Scale ratio: porosity/permeability/beta^2, where beta is chosen by the user.

Definition at line 39 of file PorousFlowCapillaryPressureRSC.h.

◆ _shift

const Real PorousFlowCapillaryPressureRSC::_shift
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().

◆ _slope_ext

Real PorousFlowCapillaryPressure::_slope_ext
protectedinherited

The documentation for this class was generated from the following files:
PorousFlowCapillaryPressure::PorousFlowCapillaryPressure
PorousFlowCapillaryPressure(const InputParameters &parameters)
Definition: PorousFlowCapillaryPressure.C:37
PorousFlowCapillaryPressure::capillaryPressureCurve
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const =0
Raw capillary pressure curve (does not include logarithmic extension)
PorousFlowCapillaryPressure::d2CapillaryPressureLogExt
Real d2CapillaryPressureLogExt(Real s) const
The second derivative of capillary pressure in the logarithmic extension This implementation assumes ...
Definition: PorousFlowCapillaryPressure.C:127
PorousFlowCapillaryPressure::d2EffectiveSaturation
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const =0
Second derivative of effective saturation wrt capillary pressure.
PorousFlowCapillaryPressure::_slope_ext
Real _slope_ext
Gradient of the logarithmic extension This is computed only for qp=0.
Definition: PorousFlowCapillaryPressure.h:247
PorousFlowRogersStallybrassClements::effectiveSaturation
Real effectiveSaturation(Real pc, Real shift, Real scale)
Effective saturation as a function of capillary pressure.
Definition: PorousFlowRogersStallybrassClements.C:15
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
PorousFlowCapillaryPressure::_log10
const Real _log10
log(10)
Definition: PorousFlowCapillaryPressure.h:249
PorousFlowCapillaryPressure::interceptFunction
Real interceptFunction(Real s) const
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation.
Definition: PorousFlowCapillaryPressure.C:158
PorousFlowCapillaryPressure::_sat_ext
Real _sat_ext
Saturation where the logarithmic extension meets the raw curve This is computed only for qp=0.
Definition: PorousFlowCapillaryPressure.h:237
PorousFlowCapillaryPressure::d2CapillaryPressureCurve
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const =0
Second derivative of raw capillary pressure wrt true saturation.
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
Real d2EffectiveSaturation(Real pc, Real shift, Real scale)
Second derivative of effective saturation wrt capillary pressure.
Definition: PorousFlowRogersStallybrassClements.C:31
PorousFlowCapillaryPressureRSC::_scale_ratio
const Real _scale_ratio
Scale ratio: porosity/permeability/beta^2, where beta is chosen by the user.
Definition: PorousFlowCapillaryPressureRSC.h:39
PorousFlowCapillaryPressure::_pc_ext
Real _pc_ext
Capillary pressure where the extension meets the raw curve.
Definition: PorousFlowCapillaryPressure.h:242
PorousFlowCapillaryPressureRSC::_scale
const Real _scale
Scale = 0.25 * scale_ratio * oil_viscosity.
Definition: PorousFlowCapillaryPressureRSC.h:43
PorousFlowCapillaryPressure::dCapillaryPressureLogExt
Real dCapillaryPressureLogExt(Real s) const
The derivative of capillary pressure in the logarithmic extension This implementation assumes capilla...
Definition: PorousFlowCapillaryPressure.C:121
PorousFlowCapillaryPressureRSC::_oil_viscosity
const Real _oil_viscosity
Oil viscosity (which must be twice the water viscocity in this formulation)
Definition: PorousFlowCapillaryPressureRSC.h:37
PorousFlowCapillaryPressure::effectiveSaturation
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const =0
Effective saturation as a function of capillary pressure.
PorousFlowCapillaryPressure::dEffectiveSaturation
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const =0
Derivative of effective saturation wrt capillary pressure.
PorousFlowCapillaryPressure::capillaryPressure
virtual Real capillaryPressure(Real saturation, unsigned qp=0) const
Capillary pressure is calculated as a function of true saturation.
Definition: PorousFlowCapillaryPressure.C:64
PorousFlowCapillaryPressureRSC::_shift
const Real _shift
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_visco...
Definition: PorousFlowCapillaryPressureRSC.h:41
PorousFlowCapillaryPressure::dCapillaryPressure
virtual Real dCapillaryPressure(Real saturation, unsigned qp=0) const
Derivative of capillary pressure wrt true saturation.
Definition: PorousFlowCapillaryPressure.C:73
PorousFlowCapillaryPressure::_sat_lr
const Real _sat_lr
Liquid residual saturation.
Definition: PorousFlowCapillaryPressure.h:225
PorousFlowCapillaryPressure::_pc_max
const Real _pc_max
Maximum capillary pressure (Pa). Note: must be <= 0.
Definition: PorousFlowCapillaryPressure.h:231
PorousFlowCapillaryPressure::interceptFunctionDeriv
Real interceptFunctionDeriv(Real s) const
Calculates the saturation where the logarithmic extension to capillary pressure at low saturation.
Definition: PorousFlowCapillaryPressure.C:167
PorousFlowCapillaryPressure::extensionSaturation
Real extensionSaturation() const
Calculates the saturation where the logarithmic extension to capillary pressure meets the raw curve u...
Definition: PorousFlowCapillaryPressure.C:134
PorousFlowCapillaryPressure::capillaryPressureLogExt
Real capillaryPressureLogExt(Real s) const
The capillary pressure in the logarithmic extension This implementation assumes capillary-pressure is...
Definition: PorousFlowCapillaryPressure.C:115
PorousFlowCapillaryPressure::_log_ext
bool _log_ext
Flag to use a logarithmic extension for low saturation.
Definition: PorousFlowCapillaryPressure.h:229
PorousFlowCapillaryPressure::saturation
Real saturation(Real pc, unsigned qp=0) const
Saturation as a function of capillary pressure.
Definition: PorousFlowCapillaryPressure.C:97
PorousFlowRogersStallybrassClements::dEffectiveSaturation
Real dEffectiveSaturation(Real pc, Real shift, Real scale)
Derivative of effective saturation wrt capillary pressure.
Definition: PorousFlowRogersStallybrassClements.C:23
PorousFlowCapillaryPressure::dCapillaryPressureCurve
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const =0
Derivative of raw capillary pressure wrt true saturation.