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)

References MaterialLib::PorousMedium::RelativePermeability::RelativePermeability(), and _curve_data.

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 RelativePermeabilityCurve(), getdValue(), and getValue().


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