19 params.
addParam<Real>(
"oil_viscosity",
20 "Viscosity of oil (gas) phase. It is assumed this is "
21 "double the water-phase viscosity. (Note that this "
22 "effective saturation is mostly useful for 2-phase, not "
25 "This is porosity / permeability / beta^2, where beta may "
26 "be chosen by the user. It has dimensions [time]");
27 params.
addParam<Real>(
"shift",
"effective saturation is a function of (Pc - shift)");
28 params.
addClassDescription(
"Rogers-Stallybrass-Clements version of effective saturation for the "
29 "water phase, valid for residual saturations = 0, and viscosityOil = "
30 "2 * viscosityWater. seff_water = 1 / sqrt(1 + exp((Pc - shift) / "
31 "scale)), where scale = 0.25 * scale_ratio * oil_viscosity.");
37 _oil_viscosity(getParam<Real>(
"oil_viscosity")),
38 _scale_ratio(getParam<Real>(
"scale_ratio")),
39 _shift(getParam<Real>(
"shift")),
40 _scale(0.25 * _scale_ratio * _oil_viscosity)
49 mooseError(
"PorousFlowCapillaryPressureRSC::capillaryPressure not implemented");
56 mooseError(
"PorousFlowCapillaryPressureRSC::dCapillaryPressure not implemented");
63 mooseError(
"PorousFlowCapillaryPressureRSC::d2CapillaryPressure not implemented");
registerMooseObject("PorousFlowApp", PorousFlowCapillaryPressureRSC)
void mooseError(Args &&... args) const
Rogers-Stallybrass-Clements form of capillary pressure.
const Real _shift
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_visco...
const Real _scale
Scale = 0.25 * scale_ratio * oil_viscosity.
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const override
Raw capillary pressure curve (does not include logarithmic extension)
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const override
Effective saturation as a function of capillary pressure.
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Derivative of raw capillary pressure wrt true saturation.
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const override
Derivative of effective saturation wrt capillary pressure.
PorousFlowCapillaryPressureRSC(const InputParameters ¶meters)
static InputParameters validParams()
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Second derivative of raw capillary pressure wrt true saturation.
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const override
Second derivative of effective saturation wrt capillary pressure.
Base class for capillary pressure for multiphase flow in porous media.
bool _log_ext
Flag to use a logarithmic extension for low saturation.
static InputParameters validParams()