3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Static Public Member Functions | Static Protected Member Functions | Static Protected Attributes | List of all members
Dumux::PengRobinson< Scalar > Class Template Reference

Implements the Peng-Robinson equation of state for liquids and gases. More...

#include <dumux/material/eos/pengrobinson.hh>

Description

template<class Scalar>
class Dumux::PengRobinson< Scalar >

Implements the Peng-Robinson equation of state for liquids and gases.

See:

D.-Y. Peng, D.B. Robinson (1976, pp. 59–64) [50]

R. Reid, et al. (1987, pp. 42-44, 82) [53]

Static Public Member Functions

static void init (Scalar aMin, Scalar aMax, int na, Scalar bMin, Scalar bMax, int nb)
 
template<class Params >
static Scalar computeVaporPressure (const Params &params, Scalar T)
 Predicts the vapor pressure \(\mathrm{[Pa]}\) for the temperature given in setTP(). More...
 
template<class FluidState , class Params >
static Scalar computeMolarVolume (const FluidState &fs, Params &params, int phaseIdx, bool isGasPhase)
 Computes molar volumes \(\mathrm{[m^3 / mol]}\) where the Peng-Robinson EOS is true. More...
 
template<class Params >
static Scalar computeFugacityCoeffient (const Params &params)
 Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume. More...
 
template<class Params >
static Scalar computeFugacity (const Params &params)
 Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume. More...
 

Static Protected Member Functions

template<class FluidState , class Params >
static void handleCriticalFluid_ (Scalar &Vm, const FluidState &fs, const Params &params, int phaseIdx, bool isGasPhase)
 
static void findCriticalPoint_ (Scalar &Tcrit, Scalar &pcrit, Scalar &Vcrit, Scalar a, Scalar b)
 
static bool findExtrema_ (Scalar &Vmin, Scalar &Vmax, Scalar &pMin, Scalar &pMax, Scalar a, Scalar b, Scalar T)
 
template<class Params >
static Scalar ambroseWalton_ (const Params &params, Scalar T)
 The Ambrose-Walton method to estimate the vapor pressure. More...
 
template<class Params >
static Scalar fugacityDifference_ (const Params &params, Scalar T, Scalar p, Scalar VmLiquid, Scalar VmGas)
 Returns the difference between the liquid and the gas phase fugacities in [bar]. More...
 

Static Protected Attributes

static Tabulated2DFunction< Scalar > criticalTemperature_
 
static Tabulated2DFunction< Scalar > criticalPressure_
 
static Tabulated2DFunction< Scalar > criticalMolarVolume_
 

Member Function Documentation

◆ ambroseWalton_()

template<class Scalar >
template<class Params >
static Scalar Dumux::PengRobinson< Scalar >::ambroseWalton_ ( const Params &  params,
Scalar  T 
)
inlinestaticprotected

The Ambrose-Walton method to estimate the vapor pressure.

Returns
Vapor pressure estimate in bar

See:

D. Ambrose, J. Walton (1989, pp. 1395-1403) [5]

◆ computeFugacity()

template<class Scalar >
template<class Params >
static Scalar Dumux::PengRobinson< Scalar >::computeFugacity ( const Params &  params)
inlinestatic

Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume.

This is the fugacity coefficient times the pressure. The mole fraction of a component in a pure fluid is obviously always 100%, so it is not required.

Parameters
paramsParameters

◆ computeFugacityCoeffient()

template<class Scalar >
template<class Params >
static Scalar Dumux::PengRobinson< Scalar >::computeFugacityCoeffient ( const Params &  params)
inlinestatic

Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume.

This is the same value as computeFugacity() because the mole fraction of a component in a pure fluid is obviously always 100%.

Parameters
paramsParameters

◆ computeMolarVolume()

template<class Scalar >
template<class FluidState , class Params >
static Scalar Dumux::PengRobinson< Scalar >::computeMolarVolume ( const FluidState &  fs,
Params &  params,
int  phaseIdx,
bool  isGasPhase 
)
inlinestatic

Computes molar volumes \(\mathrm{[m^3 / mol]}\) where the Peng-Robinson EOS is true.

Parameters
fsThermodynamic state of the fluids
paramsParameters
phaseIdxThe phase index
isGasPhaseSpecifies the phase state

◆ computeVaporPressure()

template<class Scalar >
template<class Params >
static Scalar Dumux::PengRobinson< Scalar >::computeVaporPressure ( const Params &  params,
Scalar  T 
)
inlinestatic

Predicts the vapor pressure \(\mathrm{[Pa]}\) for the temperature given in setTP().

Parameters
Ttemperature in \(\mathrm{[K]}\)
paramsParameters

Initially, the vapor pressure is roughly estimated by using the Ambrose-Walton method, then the Newton method is used to make difference between the gas and liquid phase fugacity zero.

◆ findCriticalPoint_()

template<class Scalar >
static void Dumux::PengRobinson< Scalar >::findCriticalPoint_ ( Scalar &  Tcrit,
Scalar &  pcrit,
Scalar &  Vcrit,
Scalar  a,
Scalar  b 
)
inlinestaticprotected

◆ findExtrema_()

template<class Scalar >
static bool Dumux::PengRobinson< Scalar >::findExtrema_ ( Scalar &  Vmin,
Scalar &  Vmax,
Scalar &  pMin,
Scalar &  pMax,
Scalar  a,
Scalar  b,
Scalar  T 
)
inlinestaticprotected

◆ fugacityDifference_()

template<class Scalar >
template<class Params >
static Scalar Dumux::PengRobinson< Scalar >::fugacityDifference_ ( const Params &  params,
Scalar  T,
Scalar  p,
Scalar  VmLiquid,
Scalar  VmGas 
)
inlinestaticprotected

Returns the difference between the liquid and the gas phase fugacities in [bar].

Parameters
paramsParameters
TTemperature [K]
pPressure [bar]
VmLiquidMolar volume of the liquid phase [cm^3/mol]
VmGasMolar volume of the gas phase [cm^3/mol]

◆ handleCriticalFluid_()

template<class Scalar >
template<class FluidState , class Params >
static void Dumux::PengRobinson< Scalar >::handleCriticalFluid_ ( Scalar &  Vm,
const FluidState &  fs,
const Params &  params,
int  phaseIdx,
bool  isGasPhase 
)
inlinestaticprotected

◆ init()

template<class Scalar >
static void Dumux::PengRobinson< Scalar >::init ( Scalar  aMin,
Scalar  aMax,
int  na,
Scalar  bMin,
Scalar  bMax,
int  nb 
)
inlinestatic

Member Data Documentation

◆ criticalMolarVolume_

template<class Scalar >
Tabulated2DFunction< Scalar > Dumux::PengRobinson< Scalar >::criticalMolarVolume_
staticprotected

◆ criticalPressure_

template<class Scalar >
Tabulated2DFunction< Scalar > Dumux::PengRobinson< Scalar >::criticalPressure_
staticprotected

◆ criticalTemperature_

template<class Scalar >
Tabulated2DFunction< Scalar > Dumux::PengRobinson< Scalar >::criticalTemperature_
staticprotected

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