25 const double saturation)
const
29 double Sg = 1 - saturation;
47 const double pc =
_pb * std::pow(std::pow(Se, (-1.0 /
_m)) - 1.0, 1.0 -
_m);
52 const double capillary_pressure)
const
54 const double pc = std::max(
_minor_offset, capillary_pressure);
55 const double Se = std::pow(std::pow(pc /
_pb, 1.0 / (1.0 -
_m)) + 1.0, -
_m);
62 const double saturation)
const
66 double const Sg = 1 - saturation;
89 const double val1 = std::pow(
91 const double val2 = std::pow(val1 - 1.0, -
_m);
96 const double saturation)
const
101 "Second derivative of regularized van-Genuchten saturation "
102 "pressure relation is not implemented.");
115 const double val1 = std::pow(
118 std::pow(1 - val1, -
_m - 1) * std::pow(val1,
_m - 1) *
119 ((1 -
_m *
_m) * val1 +
_m - 1);
126 double const S_bar =
getSBar(Sg);
134 return Sg_r + (1 -
_xi) * (Sg - Sg_r) + 0.5 *
_xi * (1 - Sg_r - S_lr);
141 double const S_le = (1 - Sg - S_lr) /
143 return _pb * std::pow(std::pow(S_le, (-1.0 /
_m)) - 1.0, 1.0 -
_m);
155 const double Sg)
const
159 double const nn = 1 / (1 -
_m);
160 double const S_le = (1 - Sg - S_lr) / (1 - Sg_r - S_lr);
161 return _pb * (1 / (
_m * nn)) * (1 / (1 - S_lr - Sg_r)) *
162 std::pow(std::pow(S_le, (-1 /
_m)) - 1, (1 / nn) - 1) *
163 std::pow(S_le, (-1 /
_m)) / S_le;
const double _saturation_nonwet_r
const double _saturation_r
Residual saturation.
const double _saturation_max
Maximum saturation.
const double _pc_max
Maximum capillary pressure.
const double _minor_offset
const double _pb
Entry pressure.
double getSBar(double Sg) const
Regularized van Genuchten capillary pressure-saturation Model.
double getCapillaryPressure(const double saturation) const override
Get capillary pressure.
double getPcvGSg(double Sg) const
van Genuchten capillary pressure-saturation Model
const double _xi
using regularized van Genuchten model
const bool _has_regularized
double getdPcdSvG(const double Sg) const
double getSaturation(const double capillary_pressure) const override
Get saturation.
double getd2PcdS2(const double saturation) const override
double getPcBarvGSg(double Sg) const
parameter in regularized van Genuchten model
const double _m
Exponent m, m in [0,1]. n=1/(1-m).
double getdPcdS(const double saturation) const override
Get the derivative of the capillary pressure with respect to saturation.
double getdPcdSvGBar(double Sg) const