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 26 of file RichardsRelPermVG1.h.

Constructor & Destructor Documentation

◆ RichardsRelPermVG1()

RichardsRelPermVG1::RichardsRelPermVG1 ( const InputParameters &  parameters)

Definition at line 41 of file RichardsRelPermVG1.C.

42  : RichardsRelPermVG(parameters),
43  _simm(getParam<Real>("simm")),
44  _m(getParam<Real>("m")),
45  _scut(getParam<Real>("scut")),
46  _vg1_const(0),
47  _vg1_linear(0),
48  _vg1_quad(0),
49  _vg1_cub(0)
50 {
54  _vg1_cub = (1 - _vg1_const - _vg1_linear * (1 - _scut) - _vg1_quad * std::pow(1 - _scut, 2)) /
55  std::pow(1 - _scut, 3);
56 }
RichardsRelPermVG(const InputParameters &parameters)
Real drelperm(Real seff) const
derivative of relative permeability wrt effective saturation
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
Real d2relperm(Real seff) const
second derivative of relative permeability wrt effective 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 _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

◆ d2relperm()

Real RichardsRelPermVG1::d2relperm ( Real  seff) const
virtual

second derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 115 of file RichardsRelPermVG1.C.

116 {
117  if (seff >= 1.0)
118  return 0.0;
119 
120  if (seff <= _simm)
121  return 0.0;
122 
123  Real s_internal = (seff - _simm) / (1.0 - _simm);
124 
125  if (s_internal < _scut)
126  return RichardsRelPermVG::d2relperm(seff);
127 
128  Real krelpp = 2 * _vg1_quad + 6 * _vg1_cub * (s_internal - _scut);
129  return krelpp / std::pow(1.0 - _simm, 2);
130 }
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
Real d2relperm(Real seff) const
second derivative of relative permeability wrt effective saturation
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _scut
for seff > _scut use cubic relative permeability, otherwise use van Genuchten

◆ drelperm()

Real RichardsRelPermVG1::drelperm ( Real  seff) const
virtual

derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 96 of file RichardsRelPermVG1.C.

97 {
98  if (seff >= 1.0)
99  return 0.0;
100 
101  if (seff <= _simm)
102  return 0.0;
103 
104  Real s_internal = (seff - _simm) / (1.0 - _simm);
105 
106  if (s_internal < _scut)
107  return RichardsRelPermVG::drelperm(seff);
108 
109  Real krelp = _vg1_linear + 2 * _vg1_quad * (s_internal - _scut) +
110  3 * _vg1_cub * std::pow(s_internal - _scut, 2);
111  return krelp / (1.0 - _simm);
112 }
Real drelperm(Real seff) const
derivative of relative permeability wrt effective saturation
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

◆ execute()

void RichardsRelPerm::execute ( )
inherited

Definition at line 34 of file RichardsRelPerm.C.

35 {
36 }

◆ finalize()

void RichardsRelPerm::finalize ( )
inherited

Definition at line 39 of file RichardsRelPerm.C.

40 {
41 }

◆ initialize()

void RichardsRelPerm::initialize ( )
inherited

Definition at line 29 of file RichardsRelPerm.C.

30 {
31 }

◆ initialSetup()

void RichardsRelPermVG1::initialSetup ( )

just prints some (maybe) useful info to the console

Definition at line 59 of file RichardsRelPermVG1.C.

60 {
61  _console << "Relative permeability of VG1 type has cubic coefficients " << _vg1_const << " "
62  << _vg1_linear << " " << _vg1_quad << " " << _vg1_cub << std::endl;
63 }
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

◆ relperm()

Real RichardsRelPermVG1::relperm ( Real  seff) const
virtual

relative permeability as a function of effective saturation

Parameters
seffeffective saturation

Reimplemented from RichardsRelPermVG.

Definition at line 66 of file RichardsRelPermVG1.C.

67 {
68  if (seff >= 1.0)
69  return 1.0;
70 
71  if (seff <= _simm)
72  return 0.0;
73 
74  Real s_internal = (seff - _simm) / (1.0 - _simm);
75 
76  if (s_internal < _scut)
77  return RichardsRelPermVG::relperm(seff);
78 
79  Real krel = _vg1_const + _vg1_linear * (s_internal - _scut) +
80  _vg1_quad * std::pow(s_internal - _scut, 2) +
81  _vg1_cub * std::pow(s_internal - _scut, 3);
82 
83  // bound, just in case
84  if (krel < 0)
85  {
86  krel = 0;
87  }
88  if (krel > 1)
89  {
90  krel = 1;
91  }
92  return krel;
93 }
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

◆ _m

Real RichardsRelPermVG1::_m
protected

van Genuchten m parameter

Definition at line 57 of file RichardsRelPermVG1.h.

◆ _scut

Real RichardsRelPermVG1::_scut
protected

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

Definition at line 60 of file RichardsRelPermVG1.h.

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

◆ _simm

Real RichardsRelPermVG1::_simm
protected

immobile saturation

Definition at line 54 of file RichardsRelPermVG1.h.

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

◆ _vg1_const

Real RichardsRelPermVG1::_vg1_const
protected

constant in cubic relperm relation

Definition at line 63 of file RichardsRelPermVG1.h.

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

◆ _vg1_cub

Real RichardsRelPermVG1::_vg1_cub
protected

coefficient of cubic term in cubic relperm relation

Definition at line 72 of file RichardsRelPermVG1.h.

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

◆ _vg1_linear

Real RichardsRelPermVG1::_vg1_linear
protected

coefficient of linear term in cubic relperm relation

Definition at line 66 of file RichardsRelPermVG1.h.

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

◆ _vg1_quad

Real RichardsRelPermVG1::_vg1_quad
protected

coefficient of quadratic term in cubic relperm relation

Definition at line 69 of file RichardsRelPermVG1.h.

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


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