24 "van-Genuchten alpha parameter. Must be positive. seff = (1 + " 25 "(-al*(P0-P1-shift))^(1/(1-m)))^(-m) (then scaled to 0 to 1)");
29 "van-Genuchten m parameter. Must be between 0 and 1, and optimally " 30 "should be set to >0.5 seff = (1 + " 31 "(-al*(P0-P1-shift)^(1/(1-m)))^(-m) (then scaled to 0 to 1)");
35 "Shift in capillary-pressure porepressure values. Standard " 36 "van-Genuchten Seff = Seff(Pwater-Pgas) is shifted to the right, and " 37 "then scaled to 0<=Seff<=1. This means that dS/dP>0 at S=1 which is " 38 "useful to provide nonsingular Jacobians for small dt.");
39 params.
addClassDescription(
"Shifted van-Genuchten effective saturation as a function of (Pwater, " 40 "Pgas) suitable for use for the water phase in two-phase simulations. " 41 " seff = (1 + (-al*(P0-p1-shift))^(1/(1-m)))^(-m), then scaled so " 42 "it runs between 0 and 1.");
48 _al(getParam<
Real>(
"al")),
49 _m(getParam<
Real>(
"m")),
50 _shift(getParam<
Real>(
"shift"))
58 Real negpc = (*p[0])[qp] - (*p[1])[qp];
66 std::vector<Real> & result)
const 68 Real negpc = (*p[0])[qp] - (*p[1])[qp];
71 result[1] = -result[0];
77 std::vector<std::vector<Real>> & result)
const 79 Real negpc = (*p[0])[qp] - (*p[1])[qp];
82 result[0][1] = -result[0][0];
83 result[1][0] = -result[0][0];
84 result[1][1] = result[0][0];
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
Shifted van-Genuchten water effective saturation as a function of (Pwater, Pgas), and its derivs wrt ...
Real seff(std::vector< const VariableValue *> p, unsigned int qp) const
water effective saturation
Base class for effective saturation as a function of porepressure(s) The functions seff...
static InputParameters validParams()
static Real dseff(Real p, Real al, Real m)
derivative of effective saturation wrt porepressure
Real _al
van Genuchten alpha parameter
static Real seff(Real p, Real al, Real m)
effective saturation as a fcn of porepressure
static InputParameters validParams()
RichardsSeff2waterVGshifted(const InputParameters ¶meters)
registerMooseObject("RichardsApp", RichardsSeff2waterVGshifted)
Real _m
van Genuchten m parameter
static Real d2seff(Real p, Real al, Real m)
2nd derivative of effective saturation wrt porepressure
void dseff(std::vector< const VariableValue *> p, unsigned int qp, std::vector< Real > &result) const
derivative of effective saturation as a function of porepressure
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real