13#include "libmesh/utility.h"
108 using std::pow, std::sqrt;
110 const T a = 1.0 -
pow(seff, 1.0 / m);
111 const T b = 1.0 -
pow(
a, m);
113 return sqrt(seff) * Utility::pow<2>(
b);
147 using std::pow, std::sqrt;
149 const T a =
pow(1.0 - seff, 1.0 / m);
150 const T b =
pow(1.0 -
a, 2.0 * m);
152 return sqrt(seff) *
b;
196 Pc(
std::numeric_limits<Real>::max()),
197 dPc(
std::numeric_limits<Real>::lowest())
231 dPc(
std::numeric_limits<Real>::lowest())
263 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
264 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
287 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
288 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
310 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
311 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
333 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
334 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
355 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
356 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
377 const LowCapillaryPressureExtension & low_ext = LowCapillaryPressureExtension(),
378 const HighCapillaryPressureExtension & high_ext = HighCapillaryPressureExtension());
408 Real upper_liquid_param,
442 Real upper_liquid_param,
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
van Genuchten effective saturation, capillary pressure and relative permeability functions.
Real d2saturationHys(Real pc, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Second derivative of Hysteretic saturation function with respect to pc.
T relativePermeabilityNW(const T &seff, Real m)
Relative permeability for a non-wetting phase as a function of effective saturation.
Real d2capillaryPressureHys(Real sl, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Second derivative of capillaryPressureHys with respect to sl.
Real drelativePermeabilityNWHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real gamma, Real k_rg_max, Real y0p)
Derivative of hysteretic relative permeability for gas with respect to the liquid saturation.
Real dRelativePermeability(Real seff, Real m)
Derivative of relative permeability with respect to effective saturation.
T relativePermeability(const T &seff, Real m)
Relative permeability as a function of effective saturation.
Real saturationHys(Real pc, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Hysteretic saturation function (Eqn(1) of Doughty2007) with extensions (page5 and Fig1 of Doughty2008...
Real relativePermeabilityNWHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real gamma, Real k_rg_max, Real y0p)
Hysteretic relative permeability for gas.
Real d2EffectiveSaturation(Real p, Real alpha, Real m)
Second derivative of effective saturation wrt porepressure.
Real dEffectiveSaturation(Real p, Real alpha, Real m)
Derivative of effective saturation wrt porepressure.
Real dCapillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Derivative of capillary pressure wrt effective saturation.
Real capillaryPressureHys(Real sl, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Hysteretic capillary pressure function (Eqn(1) of Doughty2007) with extensions (page5 and Fig1 of Dou...
Real drelativePermeabilityHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real upper_liquid_param, Real y0, Real y0p, Real y1, Real y1p)
Derivative of Hysteretic relative permeability for liquid, with respect to liquid saturation.
Real capillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Capillary pressure as a function of effective saturation.
Real dcapillaryPressureHys(Real sl, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Derivative of capillaryPressureHys with respect to sl.
Real d2CapillaryPressure(Real seff, Real alpha, Real m, Real pc_max)
Second derivative of capillary pressure wrt effective saturation.
Real effectiveSaturation(Real p, Real alpha, Real m)
Effective saturation as a function of porepressure.
Real relativePermeabilityHys(Real sl, Real slr, Real sgrdel, Real sgrmax, Real sldel, Real m, Real upper_liquid_param, Real y0, Real y0p, Real y1, Real y1p)
Hysteretic relative permeability for liquid.
Real d2RelativePermeabilityNW(Real seff, Real m)
Second derivative of relative permeability for a non-wetting phase with respect to effective saturati...
Real dsaturationHys(Real pc, Real slmin, Real sgrdel, Real alpha, Real n, const LowCapillaryPressureExtension &low_ext=LowCapillaryPressureExtension(), const HighCapillaryPressureExtension &high_ext=HighCapillaryPressureExtension())
Derivative of Hysteretic saturation function with respect to pc.
Real d2RelativePermeability(Real seff, Real m)
Second derivative of relative permeability with respect to effective saturation.
Real dRelativePermeabilityNW(Real seff, Real m)
Derivative of relative permeability for a non-wetting phase with respect to effective saturation.
Parameters associated with the extension of the hysteretic wetting capillary pressure function to hig...
HighCapillaryPressureExtension(const ExtensionStrategy &strategy, Real S, Real Pc, Real dPc)
HighCapillaryPressureExtension()
ExtensionStrategy strategy
Parameters associated with the extension of the hysteretic capillary pressure function to low saturat...
LowCapillaryPressureExtension()
ExtensionStrategy strategy
LowCapillaryPressureExtension(const ExtensionStrategy &strategy, Real S, Real Pc, Real dPc)