Go to the documentation of this file.
21 params.addRequiredRangeCheckedParam<Real>(
24 "cutoff in pressure. Must be negative. If p>p_cut then use "
25 "van-Genuchten function. Otherwise use a linear relationship which is "
26 "chosen so the value and derivative match van-Genuchten at p=p_cut");
27 params.addClassDescription(
"cut van-Genuchten effective saturation as a function of capillary "
28 "pressure. Single-phase seff = (1 + (-al*p)^(1/(1-m)))^(-m) for "
29 "p>p_cut, otherwise user a a linear relationship that is chosen so "
30 "the value and derivative match van-Genuchten at p=p_cut.");
36 _al(getParam<Real>(
"al")),
37 _m(getParam<Real>(
"m")),
38 _p_cut(getParam<Real>(
"p_cut")),
49 _console <<
"cut VG Seff has p_cut=" <<
_p_cut <<
" so seff_cut=" <<
_s_cut
72 std::vector<Real> & result)
const
83 std::vector<std::vector<Real>> & result)
const
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
InputParameters validParams< RichardsSeff1VG >()
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 _p_cut
cutoff in pressure below which use a linear relationship instead of van-Genuchten expression....
static Real dseff(Real p, Real al, Real m)
derivative of effective saturation wrt porepressure
registerMooseObject("RichardsApp", RichardsSeff1VGcut)
RichardsSeff1VGcut(const InputParameters ¶meters)
void dseff(std::vector< const VariableValue * > p, unsigned int qp, std::vector< Real > &result) const
derivative of effective saturation as a function of porepressure
InputParameters validParams< RichardsSeff1VGcut >()
Effective saturation as a function of porepressure using the van Genuchten formula.
Real _ds_cut
derivative of effective saturation wrt p 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
Real _s_cut
effective saturation at p=_p_cut
Real _al
van Genuchten alpha parameter
Real _m
van Genuchten m parameter
Real seff(std::vector< const VariableValue * > p, unsigned int qp) const
effective saturation as a function of porepressure
Real seff(std::vector< const VariableValue * > p, unsigned int qp) const
effective saturation as a function of porepressure
void initialSetup()
just prints some (maybe) useful info to the console
Effective saturation as a function of porepressure using the van Genuchten formula,...
static Real seff(Real p, Real al, Real m)
effective saturation as a fcn of porepressure