OGS
MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas Class Referencefinal

Detailed Description

BrooksCorey oil-gas model: wetting phase.

\[k{rel}= S_e^{3 + 2 /m}\]

with

\[S_e=\frac{S-S_r}{S_{\mbox{max}}-S_r}\]

where

\begin{eqnarray*} &S_r& \mbox{ residual saturation,}\\ &S_{\mbox{max}}& \mbox{ maximum saturation,}\\ &m(>=1) & \mbox{ exponent.}\\ \end{eqnarray*}

Definition at line 34 of file WettingPhaseBrooksCoreyOilGas.h.

#include <WettingPhaseBrooksCoreyOilGas.h>

Inheritance diagram for MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas:
[legend]
Collaboration diagram for MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas:
[legend]

Public Member Functions

 WettingPhaseBrooksCoreyOilGas (const double Sr, const double Smax, const double m, const double krel_min)
std::string getName () const override
 Get model name.
double getValue (const double saturation) const override
 Get relative permeability value.
double getdValue (const double saturation) const override
Public Member Functions inherited from MaterialLib::PorousMedium::RelativePermeability
 RelativePermeability (const double Sr, const double Smax)
virtual ~RelativePermeability ()=default

Private Attributes

const double _m
 Exponent m, m>=1.0.
const double _krel_min
 Minimum relative permeability.

Additional Inherited Members

Protected Attributes inherited from MaterialLib::PorousMedium::RelativePermeability
const double _minor_offset = std::numeric_limits<double>::epsilon()
const double _saturation_r
 Residual saturation.
const double _saturation_max
 Maximum saturation.

Constructor & Destructor Documentation

◆ WettingPhaseBrooksCoreyOilGas()

MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::WettingPhaseBrooksCoreyOilGas ( const double Sr,
const double Smax,
const double m,
const double krel_min )
inline
Parameters
SrResidual saturation, \( S_r \)
SmaxMaximum saturation, \( S_{\mbox{max}} \)
mExponent, \( m \)
krel_minMinimum relative permeability, \( k_{rel}^{\mbox{min}}\)

Definition at line 43 of file WettingPhaseBrooksCoreyOilGas.h.

45 : RelativePermeability(Sr, Smax), _m(m), _krel_min(krel_min)
46 {
47 }
RelativePermeability(const double Sr, const double Smax)

References MaterialLib::PorousMedium::RelativePermeability::RelativePermeability(), _krel_min, and _m.

Member Function Documentation

◆ getdValue()

double MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::getdValue ( const double saturation) const
overridevirtual

Get the derivative of relative permeability with respect to saturation.

Parameters
saturationWetting phase saturation

Implements MaterialLib::PorousMedium::RelativePermeability.

Definition at line 31 of file WettingPhaseBrooksCoreyOilGas.cpp.

32{
33 const double S = std::clamp(saturation, _saturation_r + _minor_offset,
35 const double Se = (S - _saturation_r) / (_saturation_max - _saturation_r);
36 return ((3.0 + 2.0 / _m) * std::pow(Se, 2.0 + 2.0 / _m)) /
38}

References _m, MaterialLib::PorousMedium::RelativePermeability::_minor_offset, MaterialLib::PorousMedium::RelativePermeability::_saturation_max, and MaterialLib::PorousMedium::RelativePermeability::_saturation_r.

◆ getName()

std::string MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::getName ( ) const
inlineoverridevirtual

Get model name.

Implements MaterialLib::PorousMedium::RelativePermeability.

Definition at line 50 of file WettingPhaseBrooksCoreyOilGas.h.

51 {
52 return "Wetting phase Brooks-Corey relative permeability model.";
53 }

◆ getValue()

double MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::getValue ( const double saturation) const
overridevirtual

Get relative permeability value.

Implements MaterialLib::PorousMedium::RelativePermeability.

Definition at line 22 of file WettingPhaseBrooksCoreyOilGas.cpp.

23{
24 const double S = std::clamp(saturation, _saturation_r + _minor_offset,
26 const double Se = (S - _saturation_r) / (_saturation_max - _saturation_r);
27 const double krel = std::pow(Se, 3.0 + 2.0 / _m);
28 return std::max(_krel_min, krel);
29}

References _krel_min, _m, MaterialLib::PorousMedium::RelativePermeability::_minor_offset, MaterialLib::PorousMedium::RelativePermeability::_saturation_max, and MaterialLib::PorousMedium::RelativePermeability::_saturation_r.

Member Data Documentation

◆ _krel_min

const double MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::_krel_min
private

Minimum relative permeability.

Definition at line 64 of file WettingPhaseBrooksCoreyOilGas.h.

Referenced by WettingPhaseBrooksCoreyOilGas(), and getValue().

◆ _m

const double MaterialLib::PorousMedium::WettingPhaseBrooksCoreyOilGas::_m
private

Exponent m, m>=1.0.

Definition at line 63 of file WettingPhaseBrooksCoreyOilGas.h.

Referenced by WettingPhaseBrooksCoreyOilGas(), getdValue(), and getValue().


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