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

"Broadbridge-White" form of relative permeability as a function of effective saturation P Broadbridge and I White ``Constant rate rainfall infiltration: A versatile nonlinear model 1. More...

#include <RichardsRelPermBW.h>

Inheritance diagram for RichardsRelPermBW:
[legend]

Public Member Functions

 RichardsRelPermBW (const InputParameters &parameters)
 
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 _sn
 
Real _ss
 
Real _kn
 
Real _ks
 
Real _c
 
Real _coef
 

Detailed Description

"Broadbridge-White" form of relative permeability as a function of effective saturation P Broadbridge and I White ``Constant rate rainfall infiltration: A versatile nonlinear model 1.

Analytic Solution'', Water Resources Research 24 (1988) 145-154)

Definition at line 25 of file RichardsRelPermBW.h.

Constructor & Destructor Documentation

◆ RichardsRelPermBW()

RichardsRelPermBW::RichardsRelPermBW ( const InputParameters &  parameters)

Definition at line 53 of file RichardsRelPermBW.C.

54  : RichardsRelPerm(parameters),
55  _sn(getParam<Real>("Sn")),
56  _ss(getParam<Real>("Ss")),
57  _kn(getParam<Real>("Kn")),
58  _ks(getParam<Real>("Ks")),
59  _c(getParam<Real>("C"))
60 {
61  if (_ss <= _sn)
62  mooseError("In BW relative permeability Sn set to ",
63  _sn,
64  " and Ss set to ",
65  _ss,
66  " but these must obey Ss > Sn");
67  if (_ks <= _kn)
68  mooseError("In BW relative permeability Kn set to ",
69  _kn,
70  " and Ks set to ",
71  _ks,
72  " but these must obey Ks > Kn");
73  _coef = (_ks - _kn) * (_c - 1); // shorthand coefficient
74 }
RichardsRelPerm(const InputParameters &parameters)

Member Function Documentation

◆ d2relperm()

Real RichardsRelPermBW::d2relperm ( Real  seff) const
virtual

second derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 106 of file RichardsRelPermBW.C.

107 {
108  if (seff <= _sn)
109  return 0.0;
110 
111  if (seff >= _ss)
112  return 0.0;
113 
114  const Real s_internal = (seff - _sn) / (_ss - _sn);
115  const Real krelpp =
116  _coef * (2.0 / (_c - s_internal) + 4.0 * s_internal / Utility::pow<2>(_c - s_internal) +
117  2.0 * Utility::pow<2>(s_internal) / Utility::pow<3>(_c - s_internal));
118  return krelpp / Utility::pow<2>(_ss - _sn);
119 }

◆ drelperm()

Real RichardsRelPermBW::drelperm ( Real  seff) const
virtual

derivative of relative permeability wrt effective saturation

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 91 of file RichardsRelPermBW.C.

92 {
93  if (seff <= _sn)
94  return 0.0;
95 
96  if (seff >= _ss)
97  return 0.0;
98 
99  const Real s_internal = (seff - _sn) / (_ss - _sn);
100  const Real krelp = _coef * (2.0 * s_internal / (_c - s_internal) +
101  Utility::pow<2>(s_internal) / Utility::pow<2>(_c - s_internal));
102  return krelp / (_ss - _sn);
103 }

◆ 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 }

◆ relperm()

Real RichardsRelPermBW::relperm ( Real  seff) const
virtual

relative permeability as a function of effective saturation

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 77 of file RichardsRelPermBW.C.

78 {
79  if (seff <= _sn)
80  return _kn;
81 
82  if (seff >= _ss)
83  return _ks;
84 
85  const Real s_internal = (seff - _sn) / (_ss - _sn);
86  const Real krel = _kn + _coef * Utility::pow<2>(s_internal) / (_c - s_internal);
87  return krel;
88 }

Member Data Documentation

◆ _c

Real RichardsRelPermBW::_c
protected

Definition at line 62 of file RichardsRelPermBW.h.

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

◆ _coef

Real RichardsRelPermBW::_coef
protected

Definition at line 65 of file RichardsRelPermBW.h.

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

◆ _kn

Real RichardsRelPermBW::_kn
protected

Definition at line 56 of file RichardsRelPermBW.h.

Referenced by relperm(), and RichardsRelPermBW().

◆ _ks

Real RichardsRelPermBW::_ks
protected

Definition at line 59 of file RichardsRelPermBW.h.

Referenced by relperm(), and RichardsRelPermBW().

◆ _sn

Real RichardsRelPermBW::_sn
protected

Definition at line 50 of file RichardsRelPermBW.h.

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

◆ _ss

Real RichardsRelPermBW::_ss
protected

Definition at line 53 of file RichardsRelPermBW.h.

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


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