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

PowerGas form of relative permeability Define s = seff/(1 - simm). More...

#include <Q2PRelPermPowerGas.h>

Inheritance diagram for Q2PRelPermPowerGas:
[legend]

Public Member Functions

 Q2PRelPermPowerGas (const InputParameters &parameters)
 
Real relperm (Real seff) const
 Relative permeability. More...
 
Real drelperm (Real seff) const
 Derivative of relative permeability wrt seff. More...
 
Real d2relperm (Real seff) const
 Second derivative of relative permeability wrt seff. More...
 
void initialize ()
 
void execute ()
 
void finalize ()
 

Protected Attributes

Real _simm
 immobile saturation More...
 
Real _n
 exponent More...
 

Detailed Description

PowerGas form of relative permeability Define s = seff/(1 - simm).

Then relperm = 1 - (n+1)s^n + ns^(n+1) if s<simm, otherwise relperm=1 or 0 This is suitable for gas relative permeability as a function of water saturation in Q2P models

Definition at line 24 of file Q2PRelPermPowerGas.h.

Constructor & Destructor Documentation

Q2PRelPermPowerGas::Q2PRelPermPowerGas ( const InputParameters &  parameters)

Definition at line 34 of file Q2PRelPermPowerGas.C.

35  : RichardsRelPerm(parameters), _simm(getParam<Real>("simm")), _n(getParam<Real>("n"))
36 {
37 }
RichardsRelPerm(const InputParameters &parameters)
Real _simm
immobile saturation

Member Function Documentation

Real Q2PRelPermPowerGas::d2relperm ( Real  seff) const
virtual

Second derivative of relative permeability wrt seff.

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 79 of file Q2PRelPermPowerGas.C.

80 {
81  if (seff >= 1.0 - _simm)
82  return 0.0;
83 
84  if (seff <= 0)
85  return 0.0;
86 
87  Real s_internal = seff / (1.0 - _simm);
88  Real krelpp = -(_n + 1) * _n * (_n - 1) * std::pow(s_internal, _n - 2) +
89  _n * (_n + 1) * _n * std::pow(s_internal, _n - 1);
90  return krelpp / std::pow(1.0 - _simm, 2);
91 }
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _simm
immobile saturation
Real Q2PRelPermPowerGas::drelperm ( Real  seff) const
virtual

Derivative of relative permeability wrt seff.

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 64 of file Q2PRelPermPowerGas.C.

65 {
66  if (seff >= 1.0 - _simm)
67  return 0.0;
68 
69  if (seff <= 0)
70  return 0.0;
71 
72  Real s_internal = seff / (1.0 - _simm);
73  Real krelp =
74  -(_n + 1) * _n * std::pow(s_internal, _n - 1) + _n * (_n + 1) * std::pow(s_internal, _n);
75  return krelp / (1.0 - _simm);
76 }
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _simm
immobile saturation
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 }
Real Q2PRelPermPowerGas::relperm ( Real  seff) const
virtual

Relative permeability.

Parameters
seffeffective saturation

Implements RichardsRelPerm.

Definition at line 40 of file Q2PRelPermPowerGas.C.

41 {
42  if (seff >= 1.0 - _simm)
43  return 0.0;
44 
45  if (seff <= 0)
46  return 1.0;
47 
48  Real s_internal = seff / (1.0 - _simm);
49  Real krel = 1 - (_n + 1) * std::pow(s_internal, _n) + _n * std::pow(s_internal, _n + 1);
50 
51  // bound, just in case
52  if (krel < 0)
53  {
54  krel = 0;
55  }
56  if (krel > 1)
57  {
58  krel = 1;
59  }
60  return krel;
61 }
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Real _simm
immobile saturation

Member Data Documentation

Real Q2PRelPermPowerGas::_n
protected

exponent

Definition at line 52 of file Q2PRelPermPowerGas.h.

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

Real Q2PRelPermPowerGas::_simm
protected

immobile saturation

Definition at line 49 of file Q2PRelPermPowerGas.h.

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


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