Opm::RegularizedVanGenuchten< TraitsT, ParamsT > Class Template Reference

Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation. More...

#include <RegularizedVanGenuchten.hpp>

Inheritance diagram for Opm::RegularizedVanGenuchten< TraitsT, ParamsT >:
Inheritance graph

Public Types

typedef TraitsT Traits
 
typedef ParamsT Params
 
typedef Traits::Scalar Scalar
 

Static Public Attributes

static const int numPhases = Traits::numPhases
 The number of fluid phases. More...
 

Detailed Description

template<class TraitsT, class ParamsT = RegularizedVanGenuchtenParams<TraitsT>>
class Opm::RegularizedVanGenuchten< TraitsT, ParamsT >

Implementation of the regularized van Genuchten's capillary pressure / relative permeability <-> saturation relation.

This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa.

In order to avoid very steep gradients the marginal values are "regularized". This means that in stead of following the curve of the material law in these regions, some linear approximation is used. Doing this is not worse than following the material law. E.g. for very low wetting phase values the material laws predict infinite values for $p_c$ which is completely unphysical. In case of very high wetting phase saturations the difference between regularized and "pure" material law is not big.

Regularizing has the additional benefit of being numerically friendly: Newton's method does not like infinite gradients.

The implementation is accomplished as follows:

  • check whether we are in the range of regularization
    • yes: use the regularization
    • no: forward to the standard material law.

An example of the regularization of the capillary pressure curve is shown below:

regularizedVanGenuchten.png
See also
VanGenuchten

Member Typedef Documentation

template<class TraitsT , class ParamsT = RegularizedVanGenuchtenParams<TraitsT>>
typedef ParamsT Opm::RegularizedVanGenuchten< TraitsT, ParamsT >::Params
template<class TraitsT , class ParamsT = RegularizedVanGenuchtenParams<TraitsT>>
typedef Traits::Scalar Opm::RegularizedVanGenuchten< TraitsT, ParamsT >::Scalar
template<class TraitsT , class ParamsT = RegularizedVanGenuchtenParams<TraitsT>>
typedef TraitsT Opm::RegularizedVanGenuchten< TraitsT, ParamsT >::Traits

Member Data Documentation

template<class TraitsT , class ParamsT = RegularizedVanGenuchtenParams<TraitsT>>
const int Opm::RegularizedVanGenuchten< TraitsT, ParamsT >::numPhases = Traits::numPhases
static

The number of fluid phases.


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