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)

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: