Loading [MathJax]/extensions/tex2jax.js
OGS
MaterialLib::PorousMedium::CapillaryPressureSaturationCurve Class Referencefinal

Detailed Description

Definition at line 25 of file CapillaryPressureSaturationCurve.h.

#include <CapillaryPressureSaturationCurve.h>

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

Public Member Functions

 CapillaryPressureSaturationCurve (std::unique_ptr< MathLib::PiecewiseLinearMonotonicCurve > &&curve_data)
std::string getName () const override
 Get model name.
double getCapillaryPressure (const double saturation) const override
 Get capillary pressure.
double getSaturation (const double capillary_pressure) const override
 Get saturation.
double getdPcdS (const double saturation) const override
 Get the derivative of the capillary pressure with respect to saturation.
double getd2PcdS2 (const double) const override
Public Member Functions inherited from MaterialLib::PorousMedium::CapillaryPressureSaturation
 CapillaryPressureSaturation (const double Sr, const double Sg_r, const double Smax, const double Pc_max)
virtual ~CapillaryPressureSaturation ()=default

Private Attributes

std::unique_ptr< MathLib::PiecewiseLinearMonotonicCurve_curve_data

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ CapillaryPressureSaturationCurve()

MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::CapillaryPressureSaturationCurve ( std::unique_ptr< MathLib::PiecewiseLinearMonotonicCurve > && curve_data)
inlineexplicit

Definition at line 29 of file CapillaryPressureSaturationCurve.h.

32 curve_data->getSupportMin(),
33 1.0 - curve_data->getSupportMax(),
34 curve_data->getSupportMax(),
35 curve_data->getValue(curve_data->getSupportMin())),
36 _curve_data(std::move(curve_data))
37 {
38 }
std::unique_ptr< MathLib::PiecewiseLinearMonotonicCurve > _curve_data
CapillaryPressureSaturation(const double Sr, const double Sg_r, const double Smax, const double Pc_max)

References MaterialLib::PorousMedium::CapillaryPressureSaturation::CapillaryPressureSaturation(), _curve_data, and getValue().

Member Function Documentation

◆ getCapillaryPressure()

double MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::getCapillaryPressure ( const double saturation) const
inlineoverridevirtual

◆ getd2PcdS2()

double MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::getd2PcdS2 ( const double ) const
inlineoverridevirtual

Get the second derivative of the capillary pressure with respect to saturation In the case of piecewise linear curves, it is always zero.

Implements MaterialLib::PorousMedium::CapillaryPressureSaturation.

Definition at line 75 of file CapillaryPressureSaturationCurve.h.

75{ return 0; }

◆ getdPcdS()

double MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::getdPcdS ( const double saturation) const
inlineoverridevirtual

◆ getName()

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

Get model name.

Implements MaterialLib::PorousMedium::CapillaryPressureSaturation.

Definition at line 41 of file CapillaryPressureSaturationCurve.h.

42 {
43 return "Capillary pressure saturation curve.";
44 }

◆ getSaturation()

double MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::getSaturation ( const double capillary_pressure) const
inlineoverridevirtual

Get saturation.

Implements MaterialLib::PorousMedium::CapillaryPressureSaturation.

Definition at line 56 of file CapillaryPressureSaturationCurve.h.

57 {
58 const double pc =
59 std::clamp(capillary_pressure, _minor_offset, _pc_max);
60 return _curve_data->getInverseVariable(pc);
61 }

References _curve_data, MaterialLib::PorousMedium::CapillaryPressureSaturation::_minor_offset, and MaterialLib::PorousMedium::CapillaryPressureSaturation::_pc_max.

Member Data Documentation

◆ _curve_data

std::unique_ptr<MathLib::PiecewiseLinearMonotonicCurve> MaterialLib::PorousMedium::CapillaryPressureSaturationCurve::_curve_data
private

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