Loading...
Searching...
No Matches
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 >:

## 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< ScalarT, Implementation >
typedef ScalarT | Scalar
| The type used for scalar quantities.

## Public Member Functions

double | surfaceTemperature
float | surfaceTemperature
double | surfacePressure
float | surfacePressure

## Static Public Member Functions

static void | initBegin (std::size_t numPvtRegions)
| Begin the initialization of the black oil fluid system.
static void | setEnableDissolvedGas (bool yesno)
| Specify whether the fluid system should consider that the gas component can dissolve in the oil phase.
static void | setEnableVaporizedOil (bool yesno)
| Specify whether the fluid system should consider that the oil component can dissolve in the gas phase.
static void | setEnableVaporizedWater (bool yesno)
| Specify whether the fluid system should consider that the water component can dissolve in the gas phase.
static void | setEnableDissolvedGasInWater (bool yesno)
| Specify whether the fluid system should consider that the gas component can dissolve in the water phase.
static void | setEnableDiffusion (bool yesno)
| Specify whether the fluid system should consider diffusion.
static void | setUseSaturatedTables (bool yesno)
| Specify whether the saturated tables should be used.
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 | setVapPars (const Scalar par1, const Scalar par2)
static void | setReferenceDensities (Scalar rhoOil, Scalar rhoWater, Scalar rhoGas, unsigned regionIdx)
| Initialize the values of the reference densities.
static void | initEnd ()
| Finish initializing the black oil fluid system.
static bool | isInitialized ()
static std::string_view | phaseName (unsigned phaseIdx)
| Return the human readable name of a fluid phase.
static bool | isLiquid (unsigned phaseIdx)
| Return whether a phase is liquid.
static unsigned | numActivePhases ()
| Returns the number of active fluid phases (i.e., usually three)
static bool | phaseIsActive (unsigned phaseIdx)
| Returns whether a fluid phase is active.
static unsigned | solventComponentIndex (unsigned phaseIdx)
| returns the index of "primary" component of a phase (solvent)
static unsigned | soluteComponentIndex (unsigned phaseIdx)
| returns the index of "secondary" component of a phase (solute)
static std::string_view | componentName (unsigned compIdx)
| Return the human readable name of a component.
static Scalar | molarMass (unsigned compIdx, unsigned regionIdx=0)
| Return the molar mass of a component in [kg/mol].
static bool | isIdealMixture (unsigned)
| Returns true if and only if a fluid phase is assumed to be an ideal mixture.
static bool | isCompressible (unsigned)
| Returns true if and only if a fluid phase is assumed to be compressible.
static bool | isIdealGas (unsigned)
| Returns true if and only if a fluid phase is assumed to be an ideal gas.
static std::size_t | numRegions ()
| Returns the number of PVT regions which are considered.
static bool | enableDissolvedGas ()
| Returns whether the fluid system should consider that the gas component can dissolve in the oil phase.
static bool | enableDissolvedGasInWater ()
| Returns whether the fluid system should consider that the gas component can dissolve in the water phase.
static bool | enableVaporizedOil ()
| Returns whether the fluid system should consider that the oil component can dissolve in the gas phase.
static bool | enableVaporizedWater ()
| Returns whether the fluid system should consider that the water component can dissolve in the gas phase.
static bool | enableDiffusion ()
| Returns whether the fluid system should consider diffusion.
static bool | useSaturatedTables ()
| Returns whether the saturated tables should be used.
static Scalar | referenceDensity (unsigned phaseIdx, unsigned regionIdx)
| Returns the density of a fluid phase at surface pressure [kg/m^3].
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.
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.
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].
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].
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval | internalEnergy (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &paramCache, unsigned phaseIdx)
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.
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.
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | inverseFormationVolumeFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
| Returns the formation volume factor of an "undersaturated" fluid phase.
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | saturatedInverseFormationVolumeFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
| Returns the formation volume factor of a "saturated" fluid phase.
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.
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].
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | internalEnergy (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | internalMixingTotalEnergy (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
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].
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | saturatedVaporizationFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
| Returns the water vaporization factor of saturated phase.
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 of a saturated fluid phase.
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval | saturatedDissolutionFactor (const FluidState &fluidState, unsigned phaseIdx, unsigned regionIdx)
| Returns the dissolution factor of a saturated fluid phase.
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.
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 | convertXwGToRsw (const LhsEval &XwG, unsigned regionIdx)
| Convert the mass fraction of the gas component in the water 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 | convertRswToXwG (const LhsEval &Rsw, unsigned regionIdx)
| Convert a gas dissolution factor to the the corresponding mass fraction of the gas component in the water 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 | convertXgWToxgW (const LhsEval &XgW, unsigned regionIdx)
| Convert a water mass fraction in the gas phase the corresponding mole fraction.
template<class LhsEval >
static LhsEval | convertXwGToxwG (const LhsEval &XwG, unsigned regionIdx)
| Convert a gas mass fraction in the water phase the corresponding mole fraction.
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 GasPvt & | gasPvt ()
| Return a reference to the low-level object which calculates the gas phase quantities.
static const OilPvt & | oilPvt ()
| Return a reference to the low-level object which calculates the oil phase quantities.
static const WaterPvt & | waterPvt ()
| Return a reference to the low-level object which calculates the water phase quantities.
static Scalar | reservoirTemperature (unsigned=0)
| Set the temperature of the reservoir.
static void | setReservoirTemperature (Scalar value)
| Return the temperature of the reservoir.
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)].
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)].
static void | setEnergyEqualEnthalpy (bool enthalpy_eq_energy)
static bool | enthalpyEqualEnergy ()
Static Public Member Functions inherited from Opm::BaseFluidSystem< ScalarT, Implementation >
static std::string_view | phaseName (unsigned)
| Return the human readable name of a fluid phase.
static bool | isLiquid (unsigned)
| Return whether a phase is liquid.
static bool | isIdealMixture (unsigned)
| Returns true if and only if a fluid phase is assumed to be an ideal mixture.
static bool | isCompressible (unsigned)
| Returns true if and only if a fluid phase is assumed to be compressible.
static bool | isIdealGas (unsigned)
| Returns true if and only if a fluid phase is assumed to be an ideal gas.
static std::string_view | componentName (unsigned)
| Return the human readable name of a component.
static Scalar | molarMass (unsigned)
| Return the molar mass of a component in [kg/mol].
static Scalar | acentricFactor (unsigned)
| Return the acetntric factor of a component.
static void | init ()
| Initialize the fluid system's static parameters.
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | density (const FluidState &, const ParamCache &, unsigned)
| Calculate the density [kg/m^3] of a fluid phase.
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | fugacityCoefficient (const FluidState &, ParamCache &, unsigned, unsigned)
| Calculate the fugacity coefficient [Pa] of an individual component in a fluid phase.
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | viscosity (const FluidState &, ParamCache &, unsigned)
| Calculate the dynamic viscosity of a fluid phase [Pa*s].
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
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)].
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | enthalpy (const FluidState &, ParamCache &, unsigned)
| Given a phase's composition, temperature, pressure and density, calculate its specific enthalpy [J/kg].
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | thermalConductivity (const FluidState &, ParamCache &, unsigned)
| Thermal conductivity of a fluid phase [W/(m K)].
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCache >
static LhsEval | heatCapacity (const FluidState &, ParamCache &, unsigned)
| Specific isobaric heat capacity of a fluid phase [J/kg].
static bool | 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.
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.
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< ScalarT, Implementation >
static const int | numComponents = -1000
| Number of chemical species in the fluid system.
static const int | numPhases = -2000
| Number of fluid phases in the fluid system.

## Protected Member Functions

unsigned char | numActivePhases_
std::array< bool, BlackOilFluidSystem< double, BlackOilDefaultIndexTraits >::numPhases > | phaseIsActive_
unsigned char | numActivePhases_
std::array< bool, BlackOilFluidSystem< float, BlackOilDefaultIndexTraits >::numPhases > | phaseIsActive_

## Static Protected Attributes

static unsigned char | numActivePhases_
static std::array< bool, numPhases > | phaseIsActive_

## 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

  Scalar | The type used for scalar floating point values

## Member Function Documentation

## componentName()

template<class Scalar , class IndexTraits >

std::string_view Opm::BlackOilFluidSystem< Scalar, IndexTraits >::componentName | ( | unsigned | compIdx | ) |

static

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
| ) |  |

inline static

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
| ) |  |

inline static

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
| ) |  |

inline static

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

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

where is the component's mole fraction in phase , is the diffusion coefficient and 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`
| ) |  |

inline static

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

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

where is the component's mole fraction in phase , is the diffusion coefficient and is the diffusive flux.

## enableDiffusion()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableDiffusion | ( |  | ) |

inline static

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 | ( |  | ) |

inline static

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

By default, dissolved gas is considered.

## enableDissolvedGasInWater()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableDissolvedGasInWater | ( |  | ) |

inline static

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

By default, dissolved gas is considered.

## enableVaporizedOil()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::enableVaporizedOil | ( |  | ) |

inline static

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 | ( |  | ) |

inline static

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
| ) |  |

inline static

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
| ) |  |

inline static

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
| ) |  |

inline static

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

The fugacity coefficient is connected to the fugacity and the component's molarity by means of the relation

## 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
| ) |  |

inline static

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

The fugacity coefficient is connected to the fugacity and the component's molarity by means of the relation

## gasPvt()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static const GasPvt & Opm::BlackOilFluidSystem< Scalar, IndexTraits >::gasPvt | ( |  | ) |

inline static

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 >

void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::initBegin | ( | std::size_t | numPvtRegions | ) |

static

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
| ) |  |

inline static

Returns the formation volume factor 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 |  | ) |

inline static

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 |  | ) |

inline static

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 |  | ) |

inline static

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 | ) |

inline static

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`
| ) |  |

inline static

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

## numRegions()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static std::size_t Opm::BlackOilFluidSystem< Scalar, IndexTraits >::numRegions | ( |  | ) |

inline static

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 | ( |  | ) |

inline static

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 >

std::string_view Opm::BlackOilFluidSystem< Scalar, IndexTraits >::phaseName | ( | unsigned | phaseIdx | ) |

static

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
| ) |  |

inline static

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` | ) |

inline static

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
| ) |  |

inline static

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 for the standard blackoil model. If enableDissolvedGasInWater is enabled the water density takes into account the amount of dissolved gas

## 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
| ) |  |

inline static

Returns the dissolution factor 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
| ) |  |

inline static

Returns the dissolution factor 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
| ) |  |

inline static

Returns the formation volume factor 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() for the standard blackoil model. If enableDissolvedGasInWater is enabled the water density takes into account the amount of dissolved gas

## 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
| ) |  |

inline static

Returns the water vaporization factor 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
| ) |  |

inline static

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`
| ) |  |

inline static

## setEnableDiffusion()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableDiffusion | ( | bool | yesno | ) |

inline static

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 | ) |

inline static

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

By default, dissolved gas is considered.

## setEnableDissolvedGasInWater()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableDissolvedGasInWater | ( | bool | yesno | ) |

inline static

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

By default, dissovled gas in water is not considered.

## setEnableVaporizedOil()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setEnableVaporizedOil | ( | bool | yesno | ) |

inline static

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 | ) |

inline static

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 >

void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setReferenceDensities | ( | Scalar | rhoOil,
|  | Scalar | rhoWater,
|  | Scalar | rhoGas,
|  | unsigned | regionIdx
| ) |  |

static

Initialize the values of the reference densities.

Parameters

  rhoOil | The reference density of (gas saturated) oil phase.
  rhoWater | The reference density of the water phase.
  rhoGas | The reference density of the gas phase.

## setReservoirTemperature()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setReservoirTemperature | ( | Scalar | value | ) |

inline static

Return the temperature of the reservoir.

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

## setUseSaturatedTables()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static void Opm::BlackOilFluidSystem< Scalar, IndexTraits >::setUseSaturatedTables | ( | bool | yesno | ) |

inline static

Specify whether the saturated tables should be used.

By default, saturated tables are used

## useSaturatedTables()

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

static bool Opm::BlackOilFluidSystem< Scalar, IndexTraits >::useSaturatedTables | ( |  | ) |

inline static

Returns whether the saturated tables should be used.

By default, saturated tables are used. If false the unsaturated tables are extrapolated

## 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
| ) |  |

inline static

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
| ) |  |

inline static

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 | ( |  | ) |

inline static

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

static constexpr

Number of chemical species in the fluid system.

## numPhases

template<class Scalar , class IndexTraits = BlackOilDefaultIndexTraits>

constexpr unsigned Opm::BlackOilFluidSystem< Scalar, IndexTraits >::numPhases = 3

static constexpr

Number of fluid phases in the fluid system.

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

- opm/material/fluidsystems/BlackOilFluidSystem.hpp
- opm/material/fluidsystems/BlackOilFluidSystem.cpp