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)

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 getValue().

◆ _m

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

Exponent m, m>=1.0.

Definition at line 63 of file WettingPhaseBrooksCoreyOilGas.h.

Referenced by getdValue(), and getValue().


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