My Project
Opm::BlackOilFluidSystem< Scalar, IndexTraits > Class Template Reference

A fluid system which uses the black-oil model assumptions to calculate termodynamically meaningful quantities. More...

#include <BlackOilFluidSystem.hpp>

Inheritance diagram for Opm::BlackOilFluidSystem< Scalar, IndexTraits >:
Opm::BaseFluidSystem< Scalar, BlackOilFluidSystem< Scalar, BlackOilDefaultIndexTraits > >

Classes

struct  ParameterCache
 The type of the fluid system's parameter cache. More...
 

Public Types

using GasPvt = GasPvtMultiplexer< Scalar >
 
using OilPvt = OilPvtMultiplexer< Scalar >
 
using WaterPvt = WaterPvtMultiplexer< Scalar >
 
- Public Types inherited from Opm::BaseFluidSystem< Scalar, BlackOilFluidSystem< Scalar, BlackOilDefaultIndexTraits > >
typedef Scalar Scalar
 The type used for scalar quantities.
 

Static Public Member Functions

static void initBegin (size_t numPvtRegions)
 Begin the initialization of the black oil fluid system. More...
 
static void setEnableDissolvedGas (bool yesno)
 Specify whether the fluid system should consider that the gas component can dissolve in the oil phase. More...
 
static void setEnableVaporizedOil (bool yesno)
 Specify whether the fluid system should consider that the oil component can dissolve in the gas phase. More...
 
static void setEnableVaporizedWater (bool yesno)
 Specify whether the fluid system should consider that the water component can dissolve in the gas phase. More...
 
static void setEnableDiffusion (bool yesno)
 Specify whether the fluid system should consider diffusion. More...
 
static void setGasPvt (std::shared_ptr< GasPvt > pvtObj)
 Set the pressure-volume-saturation (PVT) relations for the gas phase.
 
static void setOilPvt (std::shared_ptr< OilPvt > pvtObj)
 Set the pressure-volume-saturation (PVT) relations for the oil phase.
 
static void setWaterPvt (std::shared_ptr< WaterPvt > pvtObj)
 Set the pressure-volume-saturation (PVT) relations for the water phase.
 
static void setReferenceDensities (Scalar rhoOil, Scalar rhoWater, Scalar rhoGas, unsigned regionIdx)
 Initialize the values of the reference densities. More...
 
static void initEnd ()
 Finish initializing the black oil fluid system.
 
static bool isInitialized ()
 
static const char * phaseName (unsigned phaseIdx)
 Return the human readable name of a fluid phase. More...
 
static bool isLiquid (unsigned phaseIdx)
 Return whether a phase is liquid. More...
 
static unsigned numActivePhases ()
 Returns the number of active fluid phases (i.e., usually three)
 
static unsigned phaseIsActive (unsigned phaseIdx)
 Returns whether a fluid phase is active.
 
static constexpr unsigned solventComponentIndex (unsigned phaseIdx)
 returns the index of "primary" component of a phase (solvent)
 
static constexpr unsigned soluteComponentIndex (unsigned phaseIdx)
 returns the index of "secondary" component of a phase (solute)
 
static const char * componentName (unsigned compIdx)
 Return the human readable name of a component. More...
 
static Scalar molarMass (unsigned compIdx, unsigned regionIdx=0)
 Return the molar mass of a component in [kg/mol]. More...
 
static bool isIdealMixture (unsigned)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. More...
 
static bool isCompressible (unsigned)
 Returns true if and only if a fluid phase is assumed to be compressible. More...
 
static bool isIdealGas (unsigned)
 Returns true if and only if a fluid phase is assumed to be an ideal gas. More...
 
static size_t numRegions ()
 Returns the number of PVT regions which are considered. More...
 
static bool enableDissolvedGas ()
 Returns whether the fluid system should consider that the gas component can dissolve in the oil phase. More...
 
static bool enableVaporizedOil ()
 Returns whether the fluid system should consider that the oil component can dissolve in the gas phase. More...
 
static bool enableVaporizedWater ()
 Returns whether the fluid system should consider that the water component can dissolve in the gas phase. More...
 
static bool enableDiffusion ()
 Returns whether the fluid system should consider diffusion. More...
 
static Scalar referenceDensity (unsigned phaseIdx, unsigned regionIdx)
 Returns the density of a fluid phase at surface pressure [kg/m^3]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval density (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx)
 Calculate the density [kg/m^3] of a fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval fugacityCoefficient (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx, unsigned compIdx)
 Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval viscosity (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx)
 Calculate the dynamic viscosity of a fluid phase [Pa*s]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval enthalpy (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval density (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Calculate the density [kg/m^3] of a fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturatedDensity (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Compute the density of a saturated fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval inverseFormationVolumeFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Returns the formation volume factor $B_\alpha$ of an "undersaturated" fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturatedInverseFormationVolumeFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Returns the formation volume factor $B_\alpha$ of a "saturated" fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval fugacityCoefficient (const FluidState &fluidState, unsigned phaseIdx, unsigned compIdx, unsigned regionIdx)
 Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval viscosity (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Calculate the dynamic viscosity of a fluid phase [Pa*s]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval enthalpy (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturatedVaporizationFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Returns the water vaporization factor $R_\alpha$ of saturated phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturatedDissolutionFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx, const LhsEval &maxOilSaturation)
 Returns the dissolution factor $R_\alpha$ of a saturated fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturatedDissolutionFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Returns the dissolution factor $R_\alpha$ of a saturated fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval bubblePointPressure (const FluidState &fluidState, unsigned regionIdx)
 Returns the bubble point pressure $P_b$ using the current Rs.
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval dewPointPressure (const FluidState &fluidState, unsigned regionIdx)
 Returns the dew point pressure $P_d$ using the current Rv.
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval saturationPressure (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
 Returns the saturation pressure of a given phase [Pa] depending on its composition. More...
 
template<class LhsEval >
static LhsEval convertXoGToRs (const LhsEval &XoG, unsigned regionIdx)
 Convert the mass fraction of the gas component in the oil phase to the corresponding gas dissolution factor.
 
template<class LhsEval >
static LhsEval convertXgOToRv (const LhsEval &XgO, unsigned regionIdx)
 Convert the mass fraction of the oil component in the gas phase to the corresponding oil vaporization factor.
 
template<class LhsEval >
static LhsEval convertXgWToRvw (const LhsEval &XgW, unsigned regionIdx)
 Convert the mass fraction of the water component in the gas phase to the corresponding water vaporization factor.
 
template<class LhsEval >
static LhsEval convertRsToXoG (const LhsEval &Rs, unsigned regionIdx)
 Convert a gas dissolution factor to the the corresponding mass fraction of the gas component in the oil phase.
 
template<class LhsEval >
static LhsEval convertRvToXgO (const LhsEval &Rv, unsigned regionIdx)
 Convert an oil vaporization factor to the corresponding mass fraction of the oil component in the gas phase.
 
template<class LhsEval >
static LhsEval convertRvwToXgW (const LhsEval &Rvw, unsigned regionIdx)
 Convert an water vaporization factor to the corresponding mass fraction of the water component in the gas phase.
 
template<class LhsEval >
static LhsEval convertXoGToxoG (const LhsEval &XoG, unsigned regionIdx)
 Convert a gas mass fraction in the oil phase the corresponding mole fraction.
 
template<class LhsEval >
static LhsEval convertxoGToXoG (const LhsEval &xoG, unsigned regionIdx)
 Convert a gas mole fraction in the oil phase the corresponding mass fraction.
 
template<class LhsEval >
static LhsEval convertXgOToxgO (const LhsEval &XgO, unsigned regionIdx)
 Convert a oil mass fraction in the gas phase the corresponding mole fraction.
 
template<class LhsEval >
static LhsEval convertxgOToXgO (const LhsEval &xgO, unsigned regionIdx)
 Convert a oil mole fraction in the gas phase the corresponding mass fraction.
 
static const GasPvtgasPvt ()
 Return a reference to the low-level object which calculates the gas phase quantities. More...
 
static const OilPvtoilPvt ()
 Return a reference to the low-level object which calculates the oil phase quantities. More...
 
static const WaterPvtwaterPvt ()
 Return a reference to the low-level object which calculates the water phase quantities. More...
 
static Scalar reservoirTemperature (unsigned=0)
 Set the temperature of the reservoir. More...
 
static void setReservoirTemperature (Scalar value)
 Return the temperature of the reservoir. More...
 
static short activeToCanonicalPhaseIdx (unsigned activePhaseIdx)
 
static short canonicalToActivePhaseIdx (unsigned phaseIdx)
 
static Scalar diffusionCoefficient (unsigned compIdx, unsigned phaseIdx, unsigned regionIdx=0)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)]. More...
 
static void setDiffusionCoefficient (Scalar coefficient, unsigned compIdx, unsigned phaseIdx, unsigned regionIdx=0)
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval diffusionCoefficient (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx, unsigned compIdx)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)]. More...
 
- Static Public Member Functions inherited from Opm::BaseFluidSystem< Scalar, BlackOilFluidSystem< Scalar, BlackOilDefaultIndexTraits > >
static char * phaseName (unsigned)
 Return the human readable name of a fluid phase. More...
 
static bool isLiquid (unsigned)
 Return whether a phase is liquid. More...
 
static bool isIdealMixture (unsigned)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. More...
 
static bool isCompressible (unsigned)
 Returns true if and only if a fluid phase is assumed to be compressible. More...
 
static bool isIdealGas (unsigned)
 Returns true if and only if a fluid phase is assumed to be an ideal gas. More...
 
static const char * componentName (unsigned)
 Return the human readable name of a component. More...
 
static Scalar molarMass (unsigned)
 Return the molar mass of a component in [kg/mol]. More...
 
static Scalar acentricFactor (unsigned)
 Return the acetntric factor of a component. More...
 
static void init ()
 Initialize the fluid system's static parameters.
 
static LhsEval density (const FluidState &, const ParamCache &, unsigned)
 Calculate the density [kg/m^3] of a fluid phase. More...
 
static LhsEval fugacityCoefficient (const FluidState &, ParamCache &, unsigned, unsigned)
 Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase. More...
 
static LhsEval viscosity (const FluidState &, ParamCache &, unsigned)
 Calculate the dynamic viscosity of a fluid phase [Pa*s]. More...
 
static LhsEval diffusionCoefficient (const FluidState &, ParamCache &, unsigned, unsigned)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)]. More...
 
static LhsEval enthalpy (const FluidState &, ParamCache &, unsigned)
 Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg]. More...
 
static LhsEval thermalConductivity (const FluidState &, ParamCache &, unsigned)
 Thermal conductivity of a fluid phase [W/(m K)]. More...
 
static LhsEval heatCapacity (const FluidState &, ParamCache &, unsigned)
 Specific isobaric heat capacity of a fluid phase [J/kg]. More...
 
static unsigned phaseIsActive (unsigned)
 Returns whether a fluid phase is active.
 

Static Public Attributes

static constexpr unsigned numPhases = 3
 Number of fluid phases in the fluid system. More...
 
static constexpr unsigned waterPhaseIdx = IndexTraits::waterPhaseIdx
 Index of the water phase.
 
static constexpr unsigned oilPhaseIdx = IndexTraits::oilPhaseIdx
 Index of the oil phase.
 
static constexpr unsigned gasPhaseIdx = IndexTraits::gasPhaseIdx
 Index of the gas phase.
 
static Scalar surfacePressure
 The pressure at the surface.
 
static Scalar surfaceTemperature
 The temperature at the surface.
 
static constexpr unsigned numComponents = 3
 Number of chemical species in the fluid system. More...
 
static constexpr unsigned oilCompIdx = IndexTraits::oilCompIdx
 Index of the oil component.
 
static constexpr unsigned waterCompIdx = IndexTraits::waterCompIdx
 Index of the water component.
 
static constexpr unsigned gasCompIdx = IndexTraits::gasCompIdx
 Index of the gas component.
 
- Static Public Attributes inherited from Opm::BaseFluidSystem< Scalar, BlackOilFluidSystem< Scalar, BlackOilDefaultIndexTraits > >
static const int numComponents
 Number of chemical species in the fluid system.
 
static const int numPhases
 Number of fluid phases in the fluid system.
 

Static Protected Attributes

static unsigned char numActivePhases_
 
static std::array< bool, numPhasesphaseIsActive_
 

Detailed Description

template<class Scalar, class IndexTraits = BlackOilDefaultIndexTraits>
class Opm::BlackOilFluidSystem< Scalar, IndexTraits >

A fluid system which uses the black-oil model assumptions to calculate termodynamically meaningful quantities.

Template Parameters
ScalarThe type used for scalar floating point values

Member Function Documentation

◆ componentName()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static const char* Opm::BlackOilFluidSystem< Scalar, IndexTraits >::componentName ( unsigned  compIdx)
inlinestatic

Return the human readable name of a component.

◆ density() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::density ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  paramCache,
unsigned  phaseIdx 
)
inlinestatic

Calculate the density [kg/m^3] of a fluid phase.

◆ density() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::density ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Calculate the density [kg/m^3] of a fluid phase.

◆ diffusionCoefficient() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::diffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  paramCache,
unsigned  phaseIdx,
unsigned  compIdx 
)
inlinestatic

Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)].

Molecular diffusion of a compoent $\kappa$ is caused by a gradient of the mole fraction and follows the law

\[ J = - D \mathbf{grad} x^\kappa_\alpha \]

where $x_\alpha^\kappa$ is the component's mole fraction in phase $\alpha$, $D$ is the diffusion coefficient and $J$ is the diffusive flux.

◆ diffusionCoefficient() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static Scalar Opm::BlackOilFluidSystem< Scalar, IndexTraits >::diffusionCoefficient ( unsigned  compIdx,
unsigned  phaseIdx,
unsigned  regionIdx = 0 
)
inlinestatic

Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)].

Molecular diffusion of a compoent $\kappa$ is caused by a gradient of the mole fraction and follows the law

\[ J = - D \mathbf{grad} x^\kappa_\alpha \]

where $x_\alpha^\kappa$ is the component's mole fraction in phase $\alpha$, $D$ is the diffusion coefficient and $J$ is the diffusive flux.

◆ enableDiffusion()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableDiffusion ( )
inlinestatic

Returns whether the fluid system should consider diffusion.

By default, diffusion is not considered.

◆ enableDissolvedGas()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableDissolvedGas ( )
inlinestatic

Returns whether the fluid system should consider that the gas component can dissolve in the oil phase.

By default, dissolved gas is considered.

◆ enableVaporizedOil()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableVaporizedOil ( )
inlinestatic

Returns whether the fluid system should consider that the oil component can dissolve in the gas phase.

By default, vaporized oil is not considered.

◆ enableVaporizedWater()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableVaporizedWater ( )
inlinestatic

Returns whether the fluid system should consider that the water component can dissolve in the gas phase.

By default, vaporized water is not considered.

◆ enthalpy() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enthalpy ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  paramCache,
unsigned  phaseIdx 
)
inlinestatic

Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg].

◆ enthalpy() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enthalpy ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg].

◆ fugacityCoefficient() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::fugacityCoefficient ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  paramCache,
unsigned  phaseIdx,
unsigned  compIdx 
)
inlinestatic

Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase.

The fugacity coefficient $\phi_\kappa$ is connected to the fugacity $f_\kappa$ and the component's molarity $x_\kappa$ by means of the relation

\[ f_\kappa = \phi_\kappa\,x_{\kappa} \]

◆ fugacityCoefficient() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::fugacityCoefficient ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  compIdx,
unsigned  regionIdx 
)
inlinestatic

Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase.

The fugacity coefficient $\phi_\kappa$ is connected to the fugacity $f_\kappa$ and the component's molarity $x_\kappa$ by means of the relation

\[ f_\kappa = \phi_\kappa\,x_{\kappa} \]

◆ gasPvt()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static const GasPvt& Opm::BlackOilFluidSystem< Scalar, IndexTraits >::gasPvt ( )
inlinestatic

Return a reference to the low-level object which calculates the gas phase quantities.

Note
It is not recommended to use this method directly, but the black-oil specific methods of the fluid systems from above should be used instead.

◆ initBegin()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::initBegin ( size_t  numPvtRegions)
inlinestatic

Begin the initialization of the black oil fluid system.

After calling this method the reference densities, all dissolution and formation volume factors, the oil bubble pressure, all viscosities and the water compressibility must be set. Before the fluid system can be used, initEnd() must be called to finalize the initialization.

◆ inverseFormationVolumeFactor()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::inverseFormationVolumeFactor ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the formation volume factor $B_\alpha$ of an "undersaturated" fluid phase.

For the oil (gas) phase, "undersaturated" means that the concentration of the gas (oil) component is not assumed to be at the thermodynamically possible maximum at the given temperature and pressure.

◆ isCompressible()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::isCompressible ( unsigned  )
inlinestatic

Returns true if and only if a fluid phase is assumed to be compressible.

Compressible means that the partial derivative of the density to the fluid pressure is always larger than zero.

◆ isIdealGas()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::isIdealGas ( unsigned  )
inlinestatic

Returns true if and only if a fluid phase is assumed to be an ideal gas.

◆ isIdealMixture()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::isIdealMixture ( unsigned  )
inlinestatic

Returns true if and only if a fluid phase is assumed to be an ideal mixture.

We define an ideal mixture as a fluid phase where the fugacity coefficients of all components times the pressure of the phase are independent on the fluid composition. This assumption is true if Henry's law and Rault's law apply. If you are unsure what this function should return, it is safe to return false. The only damage done will be (slightly) increased computation times in some cases.

◆ isLiquid()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::isLiquid ( unsigned  phaseIdx)
inlinestatic

Return whether a phase is liquid.

◆ molarMass()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static Scalar Opm::BlackOilFluidSystem< Scalar, IndexTraits >::molarMass ( unsigned  compIdx,
unsigned  regionIdx = 0 
)
inlinestatic

Return the molar mass of a component in [kg/mol].

◆ numRegions()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static size_t Opm::BlackOilFluidSystem< Scalar, IndexTraits >::numRegions ( )
inlinestatic

Returns the number of PVT regions which are considered.

By default, this is 1.

◆ oilPvt()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static const OilPvt& Opm::BlackOilFluidSystem< Scalar, IndexTraits >::oilPvt ( )
inlinestatic

Return a reference to the low-level object which calculates the oil phase quantities.

Note
It is not recommended to use this method directly, but the black-oil specific methods of the fluid systems from above should be used instead.

◆ phaseName()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static const char* Opm::BlackOilFluidSystem< Scalar, IndexTraits >::phaseName ( unsigned  phaseIdx)
inlinestatic

Return the human readable name of a fluid phase.

◆ referenceDensity()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static Scalar Opm::BlackOilFluidSystem< Scalar, IndexTraits >::referenceDensity ( unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the density of a fluid phase at surface pressure [kg/m^3].

◆ reservoirTemperature()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static Scalar Opm::BlackOilFluidSystem< Scalar, IndexTraits >::reservoirTemperature ( unsigned  = 0)
inlinestatic

Set the temperature of the reservoir.

This method is black-oil specific and only makes sense for isothermal simulations.

◆ saturatedDensity()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturatedDensity ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Compute the density of a saturated fluid phase.

This means the density of the given fluid phase if the dissolved component (gas for the oil phase and oil for the gas phase) is at the thermodynamically possible maximum. For the water phase, there's no difference to the density() method.

◆ saturatedDissolutionFactor() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturatedDissolutionFactor ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the dissolution factor $R_\alpha$ of a saturated fluid phase.

For the oil (gas) phase, this means the R_s and R_v factors, for the water phase, it is always 0. The difference of this method compared to the previous one is that this method does not prevent dissolving a given component if the corresponding phase's saturation is small-

◆ saturatedDissolutionFactor() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturatedDissolutionFactor ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx,
const LhsEval &  maxOilSaturation 
)
inlinestatic

Returns the dissolution factor $R_\alpha$ of a saturated fluid phase.

For the oil (gas) phase, this means the R_s and R_v factors, for the water phase, it is always 0.

◆ saturatedInverseFormationVolumeFactor()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturatedInverseFormationVolumeFactor ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the formation volume factor $B_\alpha$ of a "saturated" fluid phase.

For the oil phase, this means that it is gas saturated, the gas phase is oil saturated and for the water phase, there is no difference to formationVolumeFactor()

◆ saturatedVaporizationFactor()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturatedVaporizationFactor ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the water vaporization factor $R_\alpha$ of saturated phase.

For the gas phase, this means the R_vw factor, for the water and oil phase, it is always 0.

◆ saturationPressure()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::saturationPressure ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Returns the saturation pressure of a given phase [Pa] depending on its composition.

In the black-oil model, the saturation pressure it the pressure at which the fluid phase is in equilibrium with the gas phase, i.e., it is the inverse of the "dissolution factor". Note that a-priori this quantity is undefined for the water phase (because water is assumed to be immiscible with everything else). This method here just returns 0, though.

◆ setDiffusionCoefficient()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setDiffusionCoefficient ( Scalar  coefficient,
unsigned  compIdx,
unsigned  phaseIdx,
unsigned  regionIdx = 0 
)
inlinestatic

◆ setEnableDiffusion()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableDiffusion ( bool  yesno)
inlinestatic

Specify whether the fluid system should consider diffusion.

By default, diffusion is not considered.

◆ setEnableDissolvedGas()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableDissolvedGas ( bool  yesno)
inlinestatic

Specify whether the fluid system should consider that the gas component can dissolve in the oil phase.

By default, dissolved gas is considered.

◆ setEnableVaporizedOil()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableVaporizedOil ( bool  yesno)
inlinestatic

Specify whether the fluid system should consider that the oil component can dissolve in the gas phase.

By default, vaporized oil is not considered.

◆ setEnableVaporizedWater()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableVaporizedWater ( bool  yesno)
inlinestatic

Specify whether the fluid system should consider that the water component can dissolve in the gas phase.

By default, vaporized water is not considered.

◆ setReferenceDensities()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setReferenceDensities ( Scalar  rhoOil,
Scalar  rhoWater,
Scalar  rhoGas,
unsigned  regionIdx 
)
inlinestatic

Initialize the values of the reference densities.

Parameters
rhoOilThe reference density of (gas saturated) oil phase.
rhoWaterThe reference density of the water phase.
rhoGasThe reference density of the gas phase.

◆ setReservoirTemperature()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setReservoirTemperature ( Scalar  value)
inlinestatic

Return the temperature of the reservoir.

This method is black-oil specific and only makes sense for isothermal simulations.

◆ viscosity() [1/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::viscosity ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  paramCache,
unsigned  phaseIdx 
)
inlinestatic

Calculate the dynamic viscosity of a fluid phase [Pa*s].

◆ viscosity() [2/2]

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::BlackOilFluidSystem< Scalar, IndexTraits >::viscosity ( const FluidState &  fluidState,
unsigned  phaseIdx,
unsigned  regionIdx 
)
inlinestatic

Calculate the dynamic viscosity of a fluid phase [Pa*s].

◆ waterPvt()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
static const WaterPvt& Opm::BlackOilFluidSystem< Scalar, IndexTraits >::waterPvt ( )
inlinestatic

Return a reference to the low-level object which calculates the water phase quantities.

Note
It is not recommended to use this method directly, but the black-oil specific methods of the fluid systems from above should be used instead.

Member Data Documentation

◆ numComponents

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
constexpr unsigned Opm::BlackOilFluidSystem< Scalar, IndexTraits >::numComponents = 3
staticconstexpr

Number of chemical species in the fluid system.

◆ numPhases

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>
constexpr unsigned Opm::BlackOilFluidSystem< Scalar, IndexTraits >::numPhases = 3
staticconstexpr

Number of fluid phases in the fluid system.


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