Opm::BrineCO2FluidSystem< Scalar, CO2Tables > Class Template Reference

A two-phase fluid system with water and CO2. More...

#include <BrineCO2FluidSystem.hpp>

Inheritance diagram for Opm::BrineCO2FluidSystem< Scalar, CO2Tables >:
Inheritance graph

Classes

struct  ParameterCache
 

Public Types

typedef Brine_Tabulated Brine
 The type of the component for brine used by the fluid system. More...
 
typedef ::Opm::CO2< Scalar, CO2Tables > CO2
 The type of the component for pure CO2 used by the fluid system. More...
 
typedef BinaryCoeff::Brine_CO2< Scalar, H2O, CO2BinaryCoeffBrineCO2
 The binary coefficients for brine and CO2 used by this fluid system. More...
 
typedef Scalar Scalar
 The type used for scalar quantities. More...
 

Static Public Member Functions

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 bool isIdealGas (unsigned phaseIdx)
 Returns true if and only if a fluid phase is assumed to be an ideal gas. More...
 
static bool isIdealMixture (unsigned phaseIdx)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. More...
 
static bool isCompressible (unsigned phaseIdx)
 Returns true if and only if a fluid phase is assumed to be compressible. More...
 
static const char * componentName (unsigned compIdx)
 Return the human readable name of a component. More...
 
static Scalar molarMass (unsigned compIdx)
 Return the molar mass of a component in [kg/mol]. More...
 
static void init ()
 Initialize the fluid system's static parameters. More...
 
static void init (Scalar tempMin, Scalar tempMax, unsigned nTemp, Scalar pressMin, Scalar pressMax, unsigned nPress)
 Initialize the fluid system's static parameters using problem specific temperature and pressure ranges. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval density (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, 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 viscosity (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, 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 fugacityCoefficient (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, 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 diffusionCoefficient (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, unsigned phaseIdx, unsigned)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval enthalpy (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, 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, class ParamCacheEval = LhsEval>
static LhsEval thermalConductivity (const FluidState &, const ParameterCache< ParamCacheEval > &, unsigned phaseIdx)
 Thermal conductivity of a fluid phase [W/(m K)]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval heatCapacity (const FluidState &fluidState, const ParameterCache< ParamCacheEval > &, unsigned phaseIdx)
 Specific isobaric heat capacity of a fluid phase [J/kg]. More...
 
static Scalar acentricFactor (unsigned)
 Return the acetntric factor of a component. More...
 
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. More...
 

Static Public Attributes

static const int numPhases = 2
 The number of phases considered by the fluid system. More...
 
static const int liquidPhaseIdx = 0
 The index of the liquid phase. More...
 
static const int gasPhaseIdx = 1
 The index of the gas phase. More...
 
static const int numComponents = 2
 Number of chemical species in the fluid system. More...
 
static const int BrineIdx = 0
 The index of the brine component. More...
 
static const int CO2Idx = 1
 The index of the CO2 component. More...
 

Detailed Description

template<class Scalar, class CO2Tables>
class Opm::BrineCO2FluidSystem< Scalar, CO2Tables >

A two-phase fluid system with water and CO2.

This fluid system uses the a tabulated CO2 component to achieve high thermodynamic accuracy and thus requires the tables of the sampling to be supplied as template argument.

Member Typedef Documentation

◆ BinaryCoeffBrineCO2

template<class Scalar , class CO2Tables >
typedef BinaryCoeff::Brine_CO2<Scalar, H2O, CO2> Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::BinaryCoeffBrineCO2

The binary coefficients for brine and CO2 used by this fluid system.

◆ Brine

template<class Scalar , class CO2Tables >
typedef Brine_Tabulated Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::Brine

The type of the component for brine used by the fluid system.

◆ CO2

template<class Scalar , class CO2Tables >
typedef ::Opm::CO2<Scalar, CO2Tables> Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::CO2

The type of the component for pure CO2 used by the fluid system.

◆ Scalar

typedef Scalar Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::Scalar
inherited

The type used for scalar quantities.

Member Function Documentation

◆ acentricFactor()

static Scalar Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::acentricFactor ( unsigned  )
inlinestaticinherited

Return the acetntric factor of a component.

◆ componentName()

template<class Scalar , class CO2Tables >
static const char * Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::componentName ( unsigned  compIdx)
inlinestatic

◆ density() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::density ( const FluidState &  ,
const ParamCache &  ,
unsigned   
)
inlinestaticinherited

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

◆ density() [2/2]

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

◆ diffusionCoefficient() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::diffusionCoefficient ( const FluidState &  ,
ParamCache &  ,
unsigned  ,
unsigned   
)
inlinestaticinherited

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 CO2Tables >
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::diffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  ,
unsigned  phaseIdx,
unsigned   
)
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.

References Opm::BinaryCoeff::Brine_CO2< Scalar, H2O, CO2, verbose >::gasDiffCoeff(), Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::gasPhaseIdx, Opm::BinaryCoeff::Brine_CO2< Scalar, H2O, CO2, verbose >::liquidDiffCoeff(), and Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::liquidPhaseIdx.

◆ enthalpy() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::enthalpy ( const FluidState &  ,
ParamCache &  ,
unsigned   
)
inlinestaticinherited

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

◆ enthalpy() [2/2]

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

◆ fugacityCoefficient() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::fugacityCoefficient ( const FluidState &  ,
ParamCache &  ,
unsigned  ,
unsigned   
)
inlinestaticinherited

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 CO2Tables >
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::fugacityCoefficient ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  ,
unsigned  phaseIdx,
unsigned  compIdx 
)
inlinestatic

◆ heatCapacity() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::heatCapacity ( const FluidState &  ,
ParamCache &  ,
unsigned   
)
inlinestaticinherited

Specific isobaric heat capacity of a fluid phase [J/kg].

◆ heatCapacity() [2/2]

template<class Scalar , class CO2Tables >
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::heatCapacity ( const FluidState &  fluidState,
const ParameterCache< ParamCacheEval > &  ,
unsigned  phaseIdx 
)
inlinestatic

Specific isobaric heat capacity of a fluid phase [J/kg].

We employ the heat capacity of the pure phases.

Todo: Include compositional effects.

Parameters
fluidStateAn arbitrary fluid state
paramCacheThe object which caches parameters which are expensive to compute
phaseIdxThe index of the fluid phase to consider
Template Parameters
FluidStatethe fluid state class

References Opm::CO2< Scalar, CO2Tables >::gasHeatCapacity(), Opm::TabulatedComponent< ScalarT, RawComponent, useVaporPressure >::liquidHeatCapacity(), Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::liquidPhaseIdx, and Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::numPhases.

◆ init() [1/2]

template<class Scalar , class CO2Tables >
static void Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::init ( )
inlinestatic

Initialize the fluid system's static parameters.

References Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::init().

Referenced by Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::init().

◆ init() [2/2]

template<class Scalar , class CO2Tables >
static void Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::init ( Scalar  tempMin,
Scalar  tempMax,
unsigned  nTemp,
Scalar  pressMin,
Scalar  pressMax,
unsigned  nPress 
)
inlinestatic

Initialize the fluid system's static parameters using problem specific temperature and pressure ranges.

Parameters
tempMinThe minimum temperature used for tabulation of water [K]
tempMaxThe maximum temperature used for tabulation of water [K]
nTempThe number of ticks on the temperature axis of the table of water
pressMinThe minimum pressure used for tabulation of water [Pa]
pressMaxThe maximum pressure used for tabulation of water [Pa]
nPressThe number of ticks on the pressure axis of the table of water

References Opm::TabulatedComponent< ScalarT, RawComponent, useVaporPressure >::init(), Opm::TabulatedComponent< ScalarT, RawComponent, useVaporPressure >::isTabulated, and Opm::Brine< Scalar, H2O >::salinity.

◆ isCompressible()

template<class Scalar , class CO2Tables >
static bool Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::isCompressible ( unsigned  phaseIdx)
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.

References Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::numPhases.

◆ isIdealGas()

template<class Scalar , class CO2Tables >
static bool Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::isIdealGas ( unsigned  phaseIdx)
inlinestatic

◆ isIdealMixture()

template<class Scalar , class CO2Tables >
static bool Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::isIdealMixture ( unsigned  phaseIdx)
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.

References Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::numPhases.

◆ isLiquid()

template<class Scalar , class CO2Tables >
static bool Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::isLiquid ( unsigned  phaseIdx)
inlinestatic

◆ molarMass()

◆ phaseIsActive()

static unsigned Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::phaseIsActive ( unsigned  )
inlinestaticinherited

Returns whether a fluid phase is active.

◆ phaseName()

template<class Scalar , class CO2Tables >
static const char * Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::phaseName ( unsigned  phaseIdx)
inlinestatic

Return the human readable name of a fluid phase.

References Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::numPhases.

◆ thermalConductivity() [1/2]

template<class Scalar , class CO2Tables >
template<class FluidState , class LhsEval = typename FluidState::Scalar, class ParamCacheEval = LhsEval>
static LhsEval Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::thermalConductivity ( const FluidState &  ,
const ParameterCache< ParamCacheEval > &  ,
unsigned  phaseIdx 
)
inlinestatic

Thermal conductivity of a fluid phase [W/(m K)].

References Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::liquidPhaseIdx.

◆ thermalConductivity() [2/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::thermalConductivity ( const FluidState &  ,
ParamCache &  ,
unsigned   
)
inlinestaticinherited

Thermal conductivity of a fluid phase [W/(m K)].

◆ viscosity() [1/2]

static LhsEval Opm::BaseFluidSystem< Scalar , BrineCO2FluidSystem< Scalar, CO2Tables > >::viscosity ( const FluidState &  ,
ParamCache &  ,
unsigned   
)
inlinestaticinherited

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

◆ viscosity() [2/2]

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

Member Data Documentation

◆ BrineIdx

◆ CO2Idx

◆ gasPhaseIdx

◆ liquidPhaseIdx

◆ numComponents

template<class Scalar , class CO2Tables >
const int Opm::BrineCO2FluidSystem< Scalar, CO2Tables >::numComponents = 2
static

◆ numPhases


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