www.mooseframework.org
Public Member Functions | Protected Attributes | List of all members
RichardsRelPermVG1 Class Reference

Van-Genuchten form of relative permeability when seff <= _scut cubic relative permeability for seff >= _scut These two match in value and derivative at seff = _scut and relperm = 1 for seff = 1. More...

#include <RichardsRelPermVG1.h>

Inheritance diagram for RichardsRelPermVG1:
[legend]

Public Member Functions

 RichardsRelPermVG1 (const InputParameters &parameters)
 
void initialSetup ()
 just prints some (maybe) useful info to the console More...
 
Real relperm (Real seff) const
 relative permeability as a function of effective saturation More...
 
Real drelperm (Real seff) const
 derivative of relative permeability wrt effective saturation More...
 
Real d2relperm (Real seff) const
 second derivative of relative permeability wrt effective saturation More...
 
void initialize ()
 
void execute ()
 
void finalize ()
 

Protected Attributes

Real _simm
 immobile saturation More...
 
Real _m
 van Genuchten m parameter More...
 
Real _scut
 for seff > _scut use cubic relative permeability, otherwise use van Genuchten More...
 
Real _vg1_const
 constant in cubic relperm relation More...
 
Real _vg1_linear
 coefficient of linear term in cubic relperm relation More...
 
Real _vg1_quad
 coefficient of quadratic term in cubic relperm relation More...
 
Real _vg1_cub
 coefficient of cubic term in cubic relperm relation More...
 

Detailed Description

Van-Genuchten form of relative permeability when seff <= _scut cubic relative permeability for seff >= _scut These two match in value and derivative at seff = _scut and relperm = 1 for seff = 1.

Definition at line 24 of file RichardsRelPermVG1.h.

Constructor & Destructor Documentation

RichardsRelPermVG1::RichardsRelPermVG1 ( const InputParameters &  parameters)

Definition at line 37 of file RichardsRelPermVG1.C.

38  : RichardsRelPermVG(parameters),
39  _simm(getParam<Real>("simm")),
40  _m(getParam<Real>("m")),
41  _scut(getParam<Real>("scut")),
42  _vg1_const(0),
43  _vg1_linear(0),
44  _vg1_quad(0),
45  _vg1_cub(0)
46 {
50  _vg1_cub = (1 - _vg1_const - _vg1_linear * (1 - _scut) - _vg1_quad * std::pow(1 - _scut, 2)) /
51  std::pow(1 - _scut, 3);
52 }
RichardsRelPermVG(const InputParameters &parameters)
Real _vg1_quad
coefficient of quadratic term in cubic relperm relation
Real _vg1_cub
coefficient of cubic term in cubic relperm relation
Real d2relperm(Real seff) const
second derivative of relative permeability wrt effective saturation
Real _simm
immobile saturation
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real drelperm(Real seff) const
derivative of relative permeability wrt effective saturation
Real _vg1_linear
coefficient of linear term in cubic relperm relation
Real _scut
for seff > _scut use cubic relative permeability, otherwise use van Genuchten
Real _m
van Genuchten m parameter
Real _vg1_const
constant in cubic relperm relation
Real relperm(Real seff) const
relative permeability as a function of effective saturation

Member Function Documentation

Real RichardsRelPermVG1::d2relperm ( Real  seff) const
virtual

second derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 111 of file RichardsRelPermVG1.C.

112 {
113  if (seff >= 1.0)
114  return 0.0;
115 
116  if (seff <= _simm)
117  return 0.0;
118 
119  Real s_internal = (seff - _simm) / (1.0 - _simm);
120 
121  if (s_internal < _scut)
122  return RichardsRelPermVG::d2relperm(seff);
123 
124  Real krelpp = 2 * _vg1_quad + 6 * _vg1_cub * (s_internal - _scut);
125  return krelpp / std::pow(1.0 - _simm, 2);
126 }
Real _vg1_quad
coefficient of quadratic term in cubic relperm relation
Real _vg1_cub
coefficient of cubic term in cubic relperm relation
Real d2relperm(Real seff) const
second derivative of relative permeability wrt effective saturation
Real _simm
immobile saturation
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _scut
for seff > _scut use cubic relative permeability, otherwise use van Genuchten
Real RichardsRelPermVG1::drelperm ( Real  seff) const
virtual

derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 92 of file RichardsRelPermVG1.C.

93 {
94  if (seff >= 1.0)
95  return 0.0;
96 
97  if (seff <= _simm)
98  return 0.0;
99 
100  Real s_internal = (seff - _simm) / (1.0 - _simm);
101 
102  if (s_internal < _scut)
103  return RichardsRelPermVG::drelperm(seff);
104 
105  Real krelp = _vg1_linear + 2 * _vg1_quad * (s_internal - _scut) +
106  3 * _vg1_cub * std::pow(s_internal - _scut, 2);
107  return krelp / (1.0 - _simm);
108 }
Real _vg1_quad
coefficient of quadratic term in cubic relperm relation
Real _vg1_cub
coefficient of cubic term in cubic relperm relation
Real _simm
immobile saturation
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real drelperm(Real seff) const
derivative of relative permeability wrt effective saturation
Real _vg1_linear
coefficient of linear term in cubic relperm relation
Real _scut
for seff > _scut use cubic relative permeability, otherwise use van Genuchten
void RichardsRelPerm::execute ( )
inherited

Definition at line 32 of file RichardsRelPerm.C.

33 {
34 }
void RichardsRelPerm::finalize ( )
inherited

Definition at line 37 of file RichardsRelPerm.C.

38 {
39 }
void RichardsRelPerm::initialize ( )
inherited

Definition at line 27 of file RichardsRelPerm.C.

28 {
29 }
void RichardsRelPermVG1::initialSetup ( )

just prints some (maybe) useful info to the console

Definition at line 55 of file RichardsRelPermVG1.C.

56 {
57  _console << "Relative permeability of VG1 type has cubic coefficients " << _vg1_const << " "
58  << _vg1_linear << " " << _vg1_quad << " " << _vg1_cub << std::endl;
59 }
Real _vg1_quad
coefficient of quadratic term in cubic relperm relation
Real _vg1_cub
coefficient of cubic term in cubic relperm relation
Real _vg1_linear
coefficient of linear term in cubic relperm relation
Real _vg1_const
constant in cubic relperm relation
Real RichardsRelPermVG1::relperm ( Real  seff) const
virtual

relative permeability as a function of effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 62 of file RichardsRelPermVG1.C.

63 {
64  if (seff >= 1.0)
65  return 1.0;
66 
67  if (seff <= _simm)
68  return 0.0;
69 
70  Real s_internal = (seff - _simm) / (1.0 - _simm);
71 
72  if (s_internal < _scut)
73  return RichardsRelPermVG::relperm(seff);
74 
75  Real krel = _vg1_const + _vg1_linear * (s_internal - _scut) +
76  _vg1_quad * std::pow(s_internal - _scut, 2) +
77  _vg1_cub * std::pow(s_internal - _scut, 3);
78 
79  // bound, just in case
80  if (krel < 0)
81  {
82  krel = 0;
83  }
84  if (krel > 1)
85  {
86  krel = 1;
87  }
88  return krel;
89 }
Real _vg1_quad
coefficient of quadratic term in cubic relperm relation
Real _vg1_cub
coefficient of cubic term in cubic relperm relation
Real _simm
immobile saturation
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _vg1_linear
coefficient of linear term in cubic relperm relation
Real _scut
for seff > _scut use cubic relative permeability, otherwise use van Genuchten
Real _vg1_const
constant in cubic relperm relation
Real relperm(Real seff) const
relative permeability as a function of effective saturation

Member Data Documentation

Real RichardsRelPermVG1::_m
protected

van Genuchten m parameter

Definition at line 55 of file RichardsRelPermVG1.h.

Real RichardsRelPermVG1::_scut
protected

for seff > _scut use cubic relative permeability, otherwise use van Genuchten

Definition at line 58 of file RichardsRelPermVG1.h.

Referenced by d2relperm(), drelperm(), relperm(), and RichardsRelPermVG1().

Real RichardsRelPermVG1::_simm
protected

immobile saturation

Definition at line 52 of file RichardsRelPermVG1.h.

Referenced by d2relperm(), drelperm(), and relperm().

Real RichardsRelPermVG1::_vg1_const
protected

constant in cubic relperm relation

Definition at line 61 of file RichardsRelPermVG1.h.

Referenced by initialSetup(), relperm(), and RichardsRelPermVG1().

Real RichardsRelPermVG1::_vg1_cub
protected

coefficient of cubic term in cubic relperm relation

Definition at line 70 of file RichardsRelPermVG1.h.

Referenced by d2relperm(), drelperm(), initialSetup(), relperm(), and RichardsRelPermVG1().

Real RichardsRelPermVG1::_vg1_linear
protected

coefficient of linear term in cubic relperm relation

Definition at line 64 of file RichardsRelPermVG1.h.

Referenced by drelperm(), initialSetup(), relperm(), and RichardsRelPermVG1().

Real RichardsRelPermVG1::_vg1_quad
protected

coefficient of quadratic term in cubic relperm relation

Definition at line 67 of file RichardsRelPermVG1.h.

Referenced by d2relperm(), drelperm(), initialSetup(), relperm(), and RichardsRelPermVG1().


The documentation for this class was generated from the following files: