www.mooseframework.org
Functions
PorousFlowRogersStallybrassClements Namespace Reference

Rogers-Stallybrass-Clements version of effective saturation as a function of capillary pressure. More...

Functions

Real effectiveSaturation (Real pc, Real shift, Real scale)
 Effective saturation as a function of capillary pressure. More...
 
Real dEffectiveSaturation (Real pc, Real shift, Real scale)
 Derivative of effective saturation wrt capillary pressure. More...
 
Real d2EffectiveSaturation (Real pc, Real shift, Real scale)
 Second derivative of effective saturation wrt capillary pressure. More...
 

Detailed Description

Rogers-Stallybrass-Clements version of effective saturation as a function of capillary pressure.

valid for residual saturations = 0, and viscosityOil = 2*viscosityWater. (the "2" is important here!). C Rogers, MP Stallybrass and DL Clements "On two phase filtration under gravity and with boundary infiltration: application of a Backlund transformation" Nonlinear Analysis Theory Methods and Applications 7 (1983) 785–799.

Function Documentation

◆ d2EffectiveSaturation()

Real PorousFlowRogersStallybrassClements::d2EffectiveSaturation ( Real  pc,
Real  shift,
Real  scale 
)

Second derivative of effective saturation wrt capillary pressure.

Parameters
pccapillary pressure
shiftRSC's shift parameter
scaleRSC's scale parameter
Returns
second derivative of effective saturation wrt capillary pressure

Definition at line 31 of file PorousFlowRogersStallybrassClements.C.

Referenced by PorousFlowCapillaryPressureRSC::d2EffectiveSaturation(), and TEST().

32 {
33  Real x = (pc - shift) / scale;
34  Real ex = std::exp(x);
35  return (0.75 * ex * ex * std::pow(1.0 + ex, -2.5) - 0.5 * ex * std::pow(1.0 + ex, -1.5)) / scale /
36  scale;
37 }
void scale(MeshBase &mesh, const Real xs, const Real ys=0., const Real zs=0.)
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)

◆ dEffectiveSaturation()

Real PorousFlowRogersStallybrassClements::dEffectiveSaturation ( Real  pc,
Real  shift,
Real  scale 
)

Derivative of effective saturation wrt capillary pressure.

Parameters
pccapillary pressure
shiftRSC's shift parameter
scaleRSC's scale parameter
Returns
derivative of effective saturation wrt capillary pressure

Definition at line 23 of file PorousFlowRogersStallybrassClements.C.

Referenced by PorousFlowCapillaryPressureRSC::dEffectiveSaturation(), and TEST().

24 {
25  Real x = (pc - shift) / scale;
26  Real ex = std::exp(x);
27  return -0.5 * ex * std::pow(1.0 + ex, -1.5) / scale;
28 }
void scale(MeshBase &mesh, const Real xs, const Real ys=0., const Real zs=0.)
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)

◆ effectiveSaturation()

Real PorousFlowRogersStallybrassClements::effectiveSaturation ( Real  pc,
Real  shift,
Real  scale 
)

Effective saturation as a function of capillary pressure.

Parameters
pccapillary pressure
shiftRSC's shift parameter
scaleRSC's scale parameter
Returns
effective saturation

Definition at line 15 of file PorousFlowRogersStallybrassClements.C.

Referenced by PorousFlowCapillaryPressureRSC::effectiveSaturation(), and TEST().

16 {
17  Real x = (pc - shift) / scale;
18  Real ex = std::exp(x);
19  return std::pow(1.0 + ex, -0.5);
20 }
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)