A fluid system which uses the black-oil model assumptions to calculate termodynamically meaningful quantities.
More...
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 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 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 > ¶mCache, 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 > ¶mCache, 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 > ¶mCache, 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 > ¶mCache, 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>
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 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 > ¶mCache, unsigned phaseIdx, unsigned compIdx)
Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)].
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.