Go to the documentation of this file.
22 params.addRequiredRangeCheckedParam<Real>(
25 "van-Genuchten alpha parameter. Must be positive. seff = (1 + "
26 "(-al*(P0-P1-shift))^(1/(1-m)))^(-m) (then scaled to 0 to 1)");
27 params.addRequiredRangeCheckedParam<Real>(
30 "van-Genuchten m parameter. Must be between 0 and 1, and optimally "
31 "should be set to >0.5 seff = (1 + "
32 "(-al*(P0-P1-shift)^(1/(1-m)))^(-m) (then scaled to 0 to 1)");
33 params.addRequiredRangeCheckedParam<Real>(
36 "Shift in capillary-pressure porepressure values. Standard "
37 "van-Genuchten Seff = Seff(Pwater-Pgas) is shifted to the right, and "
38 "then scaled to 0<=Seff<=1. This means that dS/dP>0 at S=1 which is "
39 "useful to provide nonsingular Jacobians for small dt.");
40 params.addClassDescription(
"Shifted van-Genuchten effective saturation as a function of (Pwater, "
41 "Pgas) suitable for use for the water phase in two-phase simulations. "
42 " seff = (1 + (-al*(P0-p1-shift))^(1/(1-m)))^(-m), then scaled so "
43 "it runs between 0 and 1.");
49 _al(getParam<Real>(
"al")),
50 _m(getParam<Real>(
"m")),
51 _shift(getParam<Real>(
"shift"))
59 Real negpc = (*p[0])[qp] - (*p[1])[qp];
67 std::vector<Real> & result)
const
69 Real negpc = (*p[0])[qp] - (*p[1])[qp];
72 result[1] = -result[0];
78 std::vector<std::vector<Real>> & result)
const
80 Real negpc = (*p[0])[qp] - (*p[1])[qp];
83 result[0][1] = -result[0][0];
84 result[1][0] = -result[0][0];
85 result[1][1] = result[0][0];
Real _m
van Genuchten m parameter
void d2seff(std::vector< const VariableValue * > p, unsigned int qp, std::vector< std::vector< Real >> &result) const
second derivative of effective saturation as a function of porepressure
Real seff(std::vector< const VariableValue * > p, unsigned int qp) const
water effective saturation
void dseff(std::vector< const VariableValue * > p, unsigned int qp, std::vector< Real > &result) const
derivative of effective saturation as a function of porepressure
Shifted van-Genuchten water effective saturation as a function of (Pwater, Pgas), and its derivs wrt ...
registerMooseObject("RichardsApp", RichardsSeff2waterVGshifted)
Base class for effective saturation as a function of porepressure(s) The functions seff,...
InputParameters validParams< RichardsSeff2waterVGshifted >()
static Real dseff(Real p, Real al, Real m)
derivative of effective saturation wrt porepressure
RichardsSeff2waterVGshifted(const InputParameters ¶meters)
static Real d2seff(Real p, Real al, Real m)
2nd derivative of effective saturation wrt porepressure
InputParameters validParams< RichardsSeff >()
Real _al
van Genuchten alpha parameter
static Real seff(Real p, Real al, Real m)
effective saturation as a fcn of porepressure