My Project
|
Implements the second phase capillary pressure/relperm law suggested by Stone as used by the ECLipse simulator. More...
#include <EclStone1Material.hpp>
Public Types | |
using | GasOilMaterialLaw = GasOilMaterialLawT |
using | OilWaterMaterialLaw = OilWaterMaterialLawT |
using | Traits = TraitsT |
using | Params = ParamsT |
using | Scalar = typename Traits::Scalar |
Static Public Member Functions | |
template<class ContainerT , class FluidState > | |
static void | capillaryPressures (ContainerT &values, const Params ¶ms, const FluidState &state) |
Implements the default three phase capillary pressure law used by the ECLipse simulator. More... | |
static void | oilWaterHysteresisParams (Scalar &pcSwMdc, Scalar &krnSwMdc, const Params ¶ms) |
static void | setOilWaterHysteresisParams (const Scalar &pcSwMdc, const Scalar &krnSwMdc, Params ¶ms) |
static void | gasOilHysteresisParams (Scalar &pcSwMdc, Scalar &krnSwMdc, const Params ¶ms) |
static void | setGasOilHysteresisParams (const Scalar &pcSwMdc, const Scalar &krnSwMdc, Params ¶ms) |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | pcgn (const Params ¶ms, const FluidState &fs) |
Capillary pressure between the gas and the non-wetting liquid (i.e., oil) phase. More... | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | pcnw (const Params ¶ms, const FluidState &fs) |
Capillary pressure between the non-wetting liquid (i.e., oil) and the wetting liquid (i.e., water) phase. More... | |
template<class ContainerT , class FluidState > | |
static void | saturations (ContainerT &, const Params &, const FluidState &) |
The inverse of the capillary pressure. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sg (const Params &, const FluidState &) |
The saturation of the gas phase. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sn (const Params &, const FluidState &) |
The saturation of the non-wetting (i.e., oil) phase. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | Sw (const Params &, const FluidState &) |
The saturation of the wetting (i.e., water) phase. | |
template<class ContainerT , class FluidState > | |
static void | relativePermeabilities (ContainerT &values, const Params ¶ms, const FluidState &fluidState) |
The relative permeability of all phases. More... | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krg (const Params ¶ms, const FluidState &fluidState) |
The relative permeability of the gas phase. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krw (const Params ¶ms, const FluidState &fluidState) |
The relative permeability of the wetting phase. | |
template<class FluidState , class Evaluation = typename FluidState::Scalar> | |
static Evaluation | krn (const Params ¶ms, const FluidState &fluidState) |
The relative permeability of the non-wetting (i.e., oil) phase. | |
template<class Evaluation , class FluidState > | |
static Evaluation | relpermOilInOilGasSystem (const Params ¶ms, const FluidState &fluidState) |
The relative permeability of oil in oil/gas system. | |
template<class Evaluation , class FluidState > | |
static Evaluation | relpermOilInOilWaterSystem (const Params ¶ms, const FluidState &fluidState) |
The relative permeability of oil in oil/water system. | |
template<class FluidState > | |
static void | updateHysteresis (Params ¶ms, const FluidState &fluidState) |
Update the hysteresis parameters after a time step. More... | |
Static Public Attributes | |
static constexpr int | numPhases = 3 |
static constexpr int | waterPhaseIdx = Traits::wettingPhaseIdx |
static constexpr int | oilPhaseIdx = Traits::nonWettingPhaseIdx |
static constexpr int | gasPhaseIdx = Traits::gasPhaseIdx |
static constexpr bool | implementsTwoPhaseApi = false |
Specify whether this material law implements the two-phase convenience API. | |
static constexpr bool | implementsTwoPhaseSatApi = false |
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. | |
Implements the second phase capillary pressure/relperm law suggested by Stone as used by the ECLipse simulator.
This material law is valid for three fluid phases and only depends on the saturations.
The required two-phase relations are supplied by means of template arguments and can be an arbitrary other material laws. (Provided that these only depend on saturation.)
|
inlinestatic |
Implements the default three phase capillary pressure law used by the ECLipse simulator.
This material law is valid for three fluid phases and only depends on the saturations.
The required two-phase relations are supplied by means of template arguments and can be an arbitrary other material laws.
values | Container for the return values |
params | Parameters |
state | The fluid state |
|
inlinestatic |
Capillary pressure between the gas and the non-wetting liquid (i.e., oil) phase.
This is defined as
|
inlinestatic |
Capillary pressure between the non-wetting liquid (i.e., oil) and the wetting liquid (i.e., water) phase.
This is defined as
|
inlinestatic |
The relative permeability of all phases.
The relative permeability of the water phase it uses the same value as the relative permeability for water in the water-oil law with . The gas relative permebility is taken from the gas-oil material law, but with
. The relative permeability of the oil phase is calculated using the relative permeabilities of the oil phase in the two two-phase systems.
A more detailed description can be found in the "Three phase oil relative permeability models" section of the ECLipse technical description.
|
inlinestatic |
Update the hysteresis parameters after a time step.
This assumes that the nested two-phase material laws are parameters for EclHysteresisLaw. If they are not, calling this methid will cause a compiler error. (But not calling it will still work.)