Loading...
Searching...
No Matches
Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT > Class Template Reference

This material law implements the hysteresis model of the ECL file format. More...

`#include <EclHysteresisTwoPhaseLaw.hpp>`

Inheritance diagram for Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >:

## Public Types

enum | { wettingPhaseIdx = Traits::wettingPhaseIdx }
enum | { nonWettingPhaseIdx = Traits::nonWettingPhaseIdx }
using | EffectiveLaw = EffectiveLawT
using | EffectiveLawParams = typename EffectiveLaw::Params
using | Traits = typename EffectiveLaw::Traits
using | Params = ParamsT
using | Scalar = typename EffectiveLaw::Scalar

## Static Public Member Functions

template<class Container, class FluidState>
static void | capillaryPressures (Container &, const Params &, const FluidState &)
| The capillary pressure-saturation curves depending on absolute saturations.
template<class Container, class FluidState>
static void | relativePermeabilities (Container &, const Params &, const FluidState &)
| The relative permeability-saturation curves depending on absolute saturations.
template<class FluidState, class Evaluation = typename FluidState::Scalar>
static Evaluation | pcnw (const Params &, const FluidState &)
| The capillary pressure-saturation curve.
template<class Evaluation, class ... Args>
static Evaluation | twoPhaseSatPcnw (const Params &params, const Evaluation &Sw)
template<class Container, class FluidState>
static void | saturations (Container &, const Params &, const FluidState &)
| The saturation-capillary pressure curves.
template<class FluidState, class Evaluation = typename FluidState::Scalar>
static Evaluation | Sw (const Params &, const FluidState &)
| Calculate wetting liquid phase saturation given that the rest of the fluid state has been initialized.
template<class Evaluation>
static Evaluation | twoPhaseSatSw (const Params &, const Evaluation &)
template<class FluidState, class Evaluation = typename FluidState::Scalar>
static Evaluation | Sn (const Params &, const FluidState &)
| Calculate non-wetting liquid phase saturation given that the rest of the fluid state has been initialized.
template<class Evaluation>
static Evaluation | twoPhaseSatSn (const Params &, const Evaluation &)
template<class FluidState, class Evaluation = typename FluidState::Scalar>
static Evaluation | krw (const Params &, const FluidState &)
| The relative permeability for the wetting phase.
template<class Evaluation, class ... Args>
static Evaluation | twoPhaseSatKrw (const Params &params, const Evaluation &Sw)
template<class FluidState, class Evaluation = typename FluidState::Scalar>
static Evaluation | krn (const Params &, const FluidState &)
| The relative permeability of the non-wetting phase.
template<class Evaluation, class ... Args>
static Evaluation | twoPhaseSatKrn (const Params &params, const Evaluation &Sw)

## Static Public Attributes

static constexpr int | numPhases = EffectiveLaw::numPhases
| The number of fluid phases.
static constexpr bool | implementsTwoPhaseApi = true
| Specify whether this material law implements the two-phase convenience API.
static constexpr bool | implementsTwoPhaseSatApi = true
| Specify whether this material law implements the two-phase convenience API which only depends on the phase saturations.
static constexpr bool | isSaturationDependent = true
| Specify whether the quantities defined by this material law are saturation dependent.
static constexpr bool | isPressureDependent = false
| Specify whether the quantities defined by this material law are dependent on the absolute pressure.
static constexpr bool | isTemperatureDependent = false
| Specify whether the quantities defined by this material law are temperature dependent.
static constexpr bool | isCompositionDependent = false
| Specify whether the quantities defined by this material law are dependent on the phase composition.

## Detailed Description

template<class EffectiveLawT, class ParamsT = EclHysteresisTwoPhaseLawParams<EffectiveLawT>>
class Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >

This material law implements the hysteresis model of the ECL file format.

## Member Function Documentation

## capillaryPressures()

template<class EffectiveLawT, class ParamsT = EclHysteresisTwoPhaseLawParams<EffectiveLawT>>
template<class Container, class FluidState>

void Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >::capillaryPressures | ( | Container & | ,
|  | const Params & | ,
|  | const FluidState & | )

inline static

The capillary pressure-saturation curves depending on absolute saturations.

Parameters

  values | A random access container which stores the relative pressure of each fluid phase.
  params | The parameter object expressing the coefficients required by the van Genuchten law.
  fs | The fluid state for which the capillary pressure ought to be calculated

## krw()

template<class EffectiveLawT, class ParamsT = EclHysteresisTwoPhaseLawParams<EffectiveLawT>>
template<class FluidState, class Evaluation = typename FluidState::Scalar>

Evaluation Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >::krw | ( | const Params & | ,
|  | const FluidState & | )

inline static

The relative permeability for the wetting phase.

Parameters

  params | A container object that is populated with the appropriate coefficients for the respective law. Therefore, in the (problem specific) spatialParameters first, the material law is chosen, and then the params container is constructed accordingly. Afterwards the values are set there, too.

Returns
  Relative permeability of the wetting phase calculated as implied by EffectiveLaw e.g. Brooks & Corey, van Genuchten, linear... .

## pcnw()

template<class EffectiveLawT, class ParamsT = EclHysteresisTwoPhaseLawParams<EffectiveLawT>>
template<class FluidState, class Evaluation = typename FluidState::Scalar>

Evaluation Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >::pcnw | ( | const Params & | ,
|  | const FluidState & | )

inline static

The capillary pressure-saturation curve.

Parameters

  params | A object that stores the appropriate coefficients for the respective law.

Returns
  Capillary pressure [Pa] calculated by specific constitutive relation (e.g. Brooks & Corey, van Genuchten, linear...)

## relativePermeabilities()

template<class EffectiveLawT, class ParamsT = EclHysteresisTwoPhaseLawParams<EffectiveLawT>>
template<class Container, class FluidState>

void Opm::EclHysteresisTwoPhaseLaw< EffectiveLawT, ParamsT >::relativePermeabilities | ( | Container & | ,
|  | const Params & | ,
|  | const FluidState & | )

inline static

The relative permeability-saturation curves depending on absolute saturations.

Parameters

  values | A random access container which stores the relative permeability of each fluid phase.
  params | The parameter object expressing the coefficients required by the van Genuchten law.
  fs | The fluid state for which the relative permeabilities ought to be calculated

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

- opm/material/fluidmatrixinteractions/EclHysteresisTwoPhaseLaw.hpp