www.mooseframework.org
RichardsSeff1VG.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 // van-Genuchten effective saturation as a function of single pressure, and its derivs wrt to that
9 // pressure
10 //
11 #include "RichardsSeff1VG.h"
12 
13 template <>
14 InputParameters
16 {
17  InputParameters params = validParams<RichardsSeff>();
18  params.addRequiredRangeCheckedParam<Real>("al",
19  "al > 0",
20  "van-Genuchten alpha parameter. Must "
21  "be positive. Single-phase VG seff = "
22  "(1 + (-al*c)^(1/(1-m)))^(-m)");
23  params.addRequiredRangeCheckedParam<Real>(
24  "m",
25  "m > 0 & m < 1",
26  "van-Genuchten m parameter. Must be between 0 and 1, and optimally "
27  "should be set to >0.5 Single-phase VG seff = (1 + "
28  "(-al*p)^(1/(1-m)))^(-m)");
29  params.addClassDescription("van-Genuchten effective saturation as a function of pressure "
30  "suitable for use in single-phase simulations.. seff = (1 + "
31  "(-al*p)^(1/(1-m)))^(-m)");
32  return params;
33 }
34 
35 RichardsSeff1VG::RichardsSeff1VG(const InputParameters & parameters)
36  : RichardsSeff(parameters), _al(getParam<Real>("al")), _m(getParam<Real>("m"))
37 {
38 }
39 
40 Real
41 RichardsSeff1VG::seff(std::vector<const VariableValue *> p, unsigned int qp) const
42 {
43  return RichardsSeffVG::seff((*p[0])[qp], _al, _m);
44 }
45 
46 void
47 RichardsSeff1VG::dseff(std::vector<const VariableValue *> p,
48  unsigned int qp,
49  std::vector<Real> & result) const
50 {
51  result[0] = RichardsSeffVG::dseff((*p[0])[qp], _al, _m);
52 }
53 
54 void
55 RichardsSeff1VG::d2seff(std::vector<const VariableValue *> p,
56  unsigned int qp,
57  std::vector<std::vector<Real>> & result) const
58 {
59  result[0][0] = RichardsSeffVG::d2seff((*p[0])[qp], _al, _m);
60 }
Base class for effective saturation as a function of porepressure(s) The functions seff...
Definition: RichardsSeff.h:22
static Real dseff(Real p, Real al, Real m)
derivative of effective saturation wrt porepressure
static Real seff(Real p, Real al, Real m)
effective saturation as a fcn 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
Real seff(std::vector< const VariableValue * > p, unsigned int qp) const
effective saturation as a function of porepressure
InputParameters validParams< RichardsSeff >()
Definition: RichardsSeff.C:14
Real _al
van Genuchten alpha parameter
static Real d2seff(Real p, Real al, Real m)
2nd derivative of effective saturation wrt porepressure
RichardsSeff1VG(const InputParameters &parameters)
Real _m
van Genuchten m parameter
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< RichardsSeff1VG >()