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");
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const override
Second derivative of effective saturation wrt capillary pressure.
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const override
Raw capillary pressure curve (does not include logarithmic extension)
static InputParameters validParams()
const Real _shift
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_visco...
Base class for capillary pressure for multiphase flow in porous media.
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Derivative of raw capillary pressure wrt true saturation.
registerMooseObject("PorousFlowApp", PorousFlowCapillaryPressureRSC)
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const override
Effective saturation as a function of capillary pressure.
PorousFlowCapillaryPressureRSC(const InputParameters ¶meters)
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const override
Derivative of effective saturation wrt capillary pressure.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Second derivative of raw capillary pressure wrt true saturation.
static InputParameters validParams()
void mooseError(Args &&... args) const
bool _log_ext
Flag to use a logarithmic extension for low saturation.
const Real _scale
Scale = 0.25 * scale_ratio * oil_viscosity.
Rogers-Stallybrass-Clements form of capillary pressure.