Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations > Class Template Reference

A fluid system with a liquid and a gaseous phase and water and air as components. More...

#include <H2OAirFluidSystem.hpp>

Inheritance diagram for Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >:
Inheritance graph

Public Types

typedef NullParameterCache ParameterCache
 The type of the fluid system's parameter cache. More...
 
typedef H2Otype H2O
 The type of the water component used for this fluid system. More...
 
typedef Opm::Air< Scalar > Air
 The type of the air component used for this fluid system. 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 isCompressible (unsigned phaseIdx)
 Returns true if and only if a fluid phase is assumed to be compressible. 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)
 Returns true if and only if a fluid phase is assumed to be an ideal mixture. 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 Scalar criticalTemperature (unsigned compIdx)
 Critical temperature of a component [K]. More...
 
static Scalar criticalPressure (unsigned compIdx)
 Critical pressure of a component [Pa]. More...
 
static Scalar acentricFactor (unsigned compIdx)
 The acentric factor of a component []. 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>
static LhsEval density (const FluidState &fluidState, const ParameterCache &, unsigned phaseIdx)
 Calculate the density [kg/m^3] of a fluid phase. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval viscosity (const FluidState &fluidState, const ParameterCache &, unsigned phaseIdx)
 Calculate the dynamic viscosity of a fluid phase [Pa*s]. More...
 
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval fugacityCoefficient (const FluidState &fluidState, const ParameterCache &, 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>
static LhsEval binaryDiffusionCoefficient (const FluidState &fluidState, const ParameterCache &, 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>
static LhsEval enthalpy (const FluidState &fluidState, const ParameterCache &, 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 thermalConductivity (const FluidState &fluidState, const ParameterCache &, unsigned phaseIdx)
 Thermal conductivity of a fluid phase [W/(m K)]. More...
 
static LhsEval diffusionCoefficient (const FluidState &, const ParameterCache &, unsigned, unsigned)
 Calculate the binary molecular diffusion coefficient for a component in a fluid phase [mol^2 * s / (kg*m^3)]. More...
 
static LhsEval heatCapacity (const FluidState &, const ParameterCache &, unsigned)
 Specific isobaric heat capacity of a fluid phase [J/kg]. More...
 

Static Public Attributes

static const int numPhases = 2
 Number of fluid phases in 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 H2OIdx = 0
 The index of the water component. More...
 
static const int AirIdx = 1
 The index of the air component. More...
 

Detailed Description

template<class Scalar, class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
class Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >

A fluid system with a liquid and a gaseous phase and water and air as components.

This fluidsystem is applied by default with the tabulated version of water of the IAPWS-formulation.

Member Typedef Documentation

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
typedef Opm::Air<Scalar> Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::Air

The type of the air component used for this fluid system.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
typedef H2Otype Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::H2O

The type of the water component used for this fluid system.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
typedef NullParameterCache Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::ParameterCache

The type of the fluid system's parameter cache.

The parameter cache can be used to avoid re-calculating expensive parameters for multiple quantities. Be aware that what the parameter cache actually does is specific for each fluid system and that it is opaque outside the fluid system.

Member Function Documentation

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static Scalar Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::acentricFactor ( unsigned  compIdx)
inlinestatic

The acentric factor of a component [].

Parameters
compIdxThe index of the component to consider

References Opm::H2O< Scalar >::acentricFactor(), and Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::AirIdx.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::binaryDiffusionCoefficient ( const FluidState &  fluidState,
const ParameterCache ,
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::H2O_Air::gasDiffCoeff(), and Opm::BinaryCoeff::H2O_Air::liquidDiffCoeff().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static const char* Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::componentName ( unsigned  compIdx)
inlinestatic

Return the human readable name of a component.

References Opm::Air< Scalar >::name(), and Opm::H2O< Scalar >::name().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static Scalar Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::criticalPressure ( unsigned  compIdx)
inlinestatic

Critical pressure of a component [Pa].

Parameters
compIdxThe index of the component to consider

References Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::AirIdx, Opm::Air< Scalar >::criticalPressure(), and Opm::H2O< Scalar >::criticalPressure().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static Scalar Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::criticalTemperature ( unsigned  compIdx)
inlinestatic

Critical temperature of a component [K].

Parameters
compIdxThe index of the component to consider

References Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::AirIdx, Opm::Air< Scalar >::criticalTemperature(), and Opm::H2O< Scalar >::criticalTemperature().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::density ( const FluidState &  fluidState,
const ParameterCache ,
unsigned  phaseIdx 
)
inlinestatic
static LhsEval Opm::BaseFluidSystem< Scalar, H2OAir< Scalar, H2Otype, useComplexRelations > >::diffusionCoefficient ( const FluidState &  ,
const ParameterCache ,
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.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::enthalpy ( const FluidState &  fluidState,
const ParameterCache ,
unsigned  phaseIdx 
)
inlinestatic

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

References Valgrind::CheckDefined(), Opm::H2O< Scalar >::gasEnthalpy(), Opm::Air< Scalar >::gasEnthalpy(), and Opm::H2O< Scalar >::liquidEnthalpy().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::fugacityCoefficient ( const FluidState &  fluidState,
const ParameterCache ,
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} \]

References Opm::BinaryCoeff::H2O_Air::henry(), and Opm::H2O< Scalar >::vaporPressure().

static LhsEval Opm::BaseFluidSystem< Scalar, H2OAir< Scalar, H2Otype, useComplexRelations > >::heatCapacity ( const FluidState &  ,
const ParameterCache ,
unsigned   
)
inlinestaticinherited

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

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static void Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::init ( )
inlinestatic

Initialize the fluid system's static parameters.

If a tabulated H2O component is used, we do our best to create tables that always work.

References Opm::Component< Scalar, H2O< Scalar > >::isTabulated.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static void Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::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::Component< Scalar, H2O< Scalar > >::init(), and Opm::Component< Scalar, H2O< Scalar > >::isTabulated.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static bool Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::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::H2O< Scalar >::liquidIsCompressible().

Referenced by Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::density().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static bool Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::isIdealGas ( unsigned  phaseIdx)
inlinestatic

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

References Opm::Air< Scalar >::gasIsIdeal(), and Opm::H2O< Scalar >::gasIsIdeal().

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static bool Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::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.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static bool Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::isLiquid ( unsigned  phaseIdx)
inlinestatic
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static Scalar Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::molarMass ( unsigned  compIdx)
inlinestatic
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
static const char* Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::phaseName ( unsigned  phaseIdx)
inlinestatic

Return the human readable name of a fluid phase.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::thermalConductivity ( const FluidState &  fluidState,
const ParameterCache ,
unsigned  phaseIdx 
)
inlinestatic
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
template<class FluidState , class LhsEval = typename FluidState::Scalar>
static LhsEval Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::viscosity ( const FluidState &  fluidState,
const ParameterCache ,
unsigned  phaseIdx 
)
inlinestatic

Member Data Documentation

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::AirIdx = 1
static
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::gasPhaseIdx = 1
static
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::H2OIdx = 0
static

The index of the water component.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::liquidPhaseIdx = 0
static

The index of the liquid phase.

template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::numComponents = 2
static
template<class Scalar , class H2Otype = Opm::TabulatedComponent<Scalar, Opm::H2O<Scalar> >, bool useComplexRelations = true>
const int Opm::FluidSystems::H2OAir< Scalar, H2Otype, useComplexRelations >::numPhases = 2
static

Number of fluid phases in the fluid system.


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