Go to the documentation of this file.
20 params.addRequiredRangeCheckedParam<Real>(
23 "Low saturation. This must be < Ss, and non-negative. This is BW's "
24 "initial effective saturation, below which effective saturation never goes "
25 "in their simulations/models. If Kn=0 then Sn is the immobile saturation. "
26 "This form of effective saturation is only correct for Kn small.");
27 params.addRangeCheckedParam<Real>(
31 "High saturation. This must be > Sn and <= 1. Effective saturation "
32 "where porepressure = 0. Effective saturation never exceeds this "
33 "value in BW's simulations/models.");
34 params.addRequiredRangeCheckedParam<Real>(
35 "C",
"C > 1",
"BW's C parameter. Must be > 1. Typical value would be 1.05.");
36 params.addRequiredRangeCheckedParam<Real>(
39 "BW's lambda_s parameter multiplied by (fluid_density * gravity). Must be "
40 "> 0. Typical value would be 1E5");
41 params.addClassDescription(
"Broadbridge and White capillary pressure for negligable Kn");
47 _sn(getParam<Real>(
"Sn")),
48 _ss(getParam<Real>(
"Ss")),
49 _c(getParam<Real>(
"C")),
50 _las(getParam<Real>(
"las"))
53 mooseError(
"In BW effective saturation Sn set to ",
57 " but these must obey Ss > Sn");
66 mooseError(
"PorousFlowCapillaryPressureBW::capillaryPressure not implemented");
73 mooseError(
"PorousFlowCapillaryPressureBW::dCapillaryPressure not implemented");
80 mooseError(
"PorousFlowCapillaryPressureBW::d2CapillaryPressure not implemented");
InputParameters validParams< PorousFlowCapillaryPressureBW >()
Base class for capillary pressure for multiphase flow in porous media.
const Real _ss
BW's Ss parameter.
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const override
Raw capillary pressure curve (does not include logarithmic extension)
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const override
Derivative of effective saturation wrt capillary pressure.
const Real _sn
BW's Sn parameter (initial saturation)
registerMooseObject("PorousFlowApp", PorousFlowCapillaryPressureBW)
PorousFlowCapillaryPressureBW(const InputParameters ¶meters)
const Real _c
BW's C parameter (>1)
const Real _las
BWs lambda_s parameter multiplied by fluid density * gravity (>0)
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Derivative of raw capillary pressure wrt true saturation.
Real d2EffectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Second derivative of effective saturation wrt capillary pressure.
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Second derivative of raw capillary pressure wrt true saturation.
Real dEffectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Derivative of effective saturation wrt capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressure >()
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const override
Second derivative of effective saturation wrt capillary pressure.
Capillary pressure of Broadbridge and White.
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const override
Effective saturation as a function of capillary pressure.
bool _log_ext
Flag to use a logarithmic extension for low saturation.
Real effectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Effective saturation as a function of capillary pressure If pc>=0 this will yield 1,...