My Project
|
Implementation of the regularized Brooks-Corey capillary pressure / relative permeability <-> saturation relation. More...
#include <RegularizedBrooksCorey.hpp>
Public Types | |
typedef TraitsT | Traits |
typedef ParamsT | Params |
typedef Traits::Scalar | Scalar |
Static Public Member Functions | |
template<class Container , class FluidState > | |
static void | capillaryPressures (Container &values, const Params ¶ms, const FluidState &fs) |
The capillary pressure-saturation curves depending on absolute saturations. | |
template<class Container , class FluidState > | |
static void | saturations (Container &values, const Params ¶ms, const FluidState &fs) |
Calculate the saturations of the phases starting from their pressure differences. | |
template<class Container , class FluidState > | |
static void | relativePermeabilities (Container &values, const Params ¶ms, const FluidState &fs) |
The relative permeability-saturation curves depending on absolute saturations. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | pcnw (const Params ¶ms, const FluidState &fs) |
A regularized Brooks-Corey capillary pressure-saturation curve. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatPcnw (const Params ¶ms, const Evaluation &Sw) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sw (const Params ¶ms, const FluidState &fs) |
A regularized Brooks-Corey saturation-capillary pressure curve. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatSw (const Params ¶ms, const Evaluation &pcnw) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sn (const Params ¶ms, const FluidState &fs) |
Calculate the non-wetting phase saturations depending on the phase pressures. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatSn (const Params ¶ms, const Evaluation &pcnw) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krw (const Params ¶ms, const FluidState &fs) |
Regularized version of the relative permeability of the wetting phase of the Brooks-Corey curves. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrw (const Params ¶ms, const Evaluation &Sw) |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrwInv (const Params ¶ms, const Evaluation &krw) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krn (const Params ¶ms, const FluidState &fs) |
Regularized version of the relative permeability of the non-wetting phase of the Brooks-Corey curves. | |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrn (const Params ¶ms, const Evaluation &Sw) |
template<class Evaluation > | |
static Evaluation | twoPhaseSatKrnInv (const Params ¶ms, const Evaluation &krn) |
Implementation of the regularized Brooks-Corey 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
Regularizing has the additional benefit of being numerically friendly: Newton's method does not like infinite gradients.
The implementation is accomplished as follows:
|
inlinestatic |
The capillary pressure-saturation curves depending on absolute saturations.
values | A random access container which stores the relative pressure of each fluid phase. |
params | The parameter object expressing the coefficients required by the material law. |
fs | The fluid state for which the capillary pressure ought to be calculated |
|
inlinestatic |
Regularized version of the relative permeability of the non-wetting phase of the Brooks-Corey curves.
The approach for regularization is very similar to the one of the capillary pressure, but it does not avoid kinks:
|
inlinestatic |
Regularized version of the relative permeability of the wetting phase of the Brooks-Corey curves.
The approach for regularization is very similar to the one of the capillary pressure, but it does not avoid kinks:
|
inlinestatic |
A regularized Brooks-Corey capillary pressure-saturation curve.
This is a regularized variant of the Brooks-Corey curve:
|
inlinestatic |
The relative permeability-saturation curves depending on absolute saturations.
values | A random access container which stores the relative permeability of each fluid phase. |
params | The parameter object expressing the coefficients required by the material law. |
fs | The fluid state for which the relative permeabilities ought to be calculated |
|
inlinestatic |
A regularized Brooks-Corey saturation-capillary pressure curve.
This is the inverse of the pcnw() method.