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