OGS
MaterialLib::PorousMedium::RelativePermeabilityCurve Class Referencefinal

Detailed Description

Definition at line 25 of file RelativePermeabilityCurve.h.

#include <RelativePermeabilityCurve.h>

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

Public Member Functions

 RelativePermeabilityCurve (std::unique_ptr< MathLib::PiecewiseLinearInterpolation > &&curve_data)
 
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

std::unique_ptr< MathLib::PiecewiseLinearInterpolation_curve_data
 

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

◆ RelativePermeabilityCurve()

MaterialLib::PorousMedium::RelativePermeabilityCurve::RelativePermeabilityCurve ( std::unique_ptr< MathLib::PiecewiseLinearInterpolation > && curve_data)
inlineexplicit

Definition at line 28 of file RelativePermeabilityCurve.h.

30 : RelativePermeability(curve_data->getSupportMin(),
31 curve_data->getSupportMax()),
32 _curve_data(std::move(curve_data))
33 {
34 }
std::unique_ptr< MathLib::PiecewiseLinearInterpolation > _curve_data
RelativePermeability(const double Sr, const double Smax)

Member Function Documentation

◆ getdValue()

double MaterialLib::PorousMedium::RelativePermeabilityCurve::getdValue ( const double saturation) const
inlineoverridevirtual

Get the derivative of relative permeability with respect to saturation.

Parameters
saturationWetting phase saturation

Implements MaterialLib::PorousMedium::RelativePermeability.

Definition at line 53 of file RelativePermeabilityCurve.h.

54 {
55 const double S = std::clamp(saturation, _saturation_r + _minor_offset,
57
58 return _curve_data->getDerivative(S);
59 }

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

◆ getName()

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

Get model name.

Implements MaterialLib::PorousMedium::RelativePermeability.

Definition at line 37 of file RelativePermeabilityCurve.h.

38 {
39 return "Relative permeability curve.";
40 }

◆ getValue()

double MaterialLib::PorousMedium::RelativePermeabilityCurve::getValue ( const double saturation) const
inlineoverridevirtual

Member Data Documentation

◆ _curve_data

std::unique_ptr<MathLib::PiecewiseLinearInterpolation> MaterialLib::PorousMedium::RelativePermeabilityCurve::_curve_data
private

Definition at line 62 of file RelativePermeabilityCurve.h.

Referenced by getdValue(), and getValue().


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