23 "cutoff in pressure. Must be negative. If p>p_cut then use " 24 "van-Genuchten function. Otherwise use a linear relationship which is " 25 "chosen so the value and derivative match van-Genuchten at p=p_cut");
26 params.
addClassDescription(
"cut van-Genuchten effective saturation as a function of capillary " 27 "pressure. Single-phase seff = (1 + (-al*p)^(1/(1-m)))^(-m) for " 28 "p>p_cut, otherwise user a a linear relationship that is chosen so " 29 "the value and derivative match van-Genuchten at p=p_cut.");
35 _al(getParam<
Real>(
"al")),
36 _m(getParam<
Real>(
"m")),
37 _p_cut(getParam<
Real>(
"p_cut")),
71 std::vector<Real> & result)
const 82 std::vector<std::vector<Real>> & result)
const
Real seff(std::vector< const VariableValue *> p, unsigned int qp) const
effective saturation as a function of porepressure
static InputParameters validParams()
void dseff(std::vector< const VariableValue *> p, unsigned int qp, std::vector< Real > &result) const
derivative of effective saturation as a function of porepressure
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
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
static Real dseff(Real p, Real al, Real m)
derivative of effective saturation wrt porepressure
Real _s_cut
effective saturation at p=_p_cut
void dseff(std::vector< const VariableValue *> p, unsigned int qp, std::vector< Real > &result) const
derivative of effective saturation as a function of porepressure
static Real seff(Real p, Real al, Real m)
effective saturation as a fcn of porepressure
void initialSetup()
just prints some (maybe) useful info to the console
Real seff(std::vector< const VariableValue *> p, unsigned int qp) const
effective saturation as a function of porepressure
Effective saturation as a function of porepressure using the van Genuchten formula.
Real _al
van Genuchten alpha parameter
Real _m
van Genuchten m parameter
Effective saturation as a function of porepressure using the van Genuchten formula, but when p<p_cut use a linear instead, seff = a + b*p, which matches value and derivative at p=p_cut This is so seff=0 at a finite value of p rather than p=-infinity.
Real _ds_cut
derivative of effective saturation wrt p at p=_p_cut
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("RichardsApp", RichardsSeff1VGcut)
Real _p_cut
cutoff in pressure below which use a linear relationship instead of van-Genuchten expression...
static InputParameters validParams()
RichardsSeff1VGcut(const InputParameters ¶meters)
const ConsoleStream _console