Implements the Peng-Robinson equation of state for liquids and gases. More...
#include <dumux/material/eos/pengrobinson.hh>
Implements the Peng-Robinson equation of state for liquids and gases.
See:
D.-Y. Peng, D.B. Robinson (1976, pp. 59–64) [55]
R. Reid, et al. (1987, pp. 42-44, 82) [59]
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 ¶ms, 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 ¶ms, int phaseIdx, bool isGasPhase, bool handleUnphysicalPhase=true) |
Computes molar volumes \(\mathrm{[m^3 / mol]}\) where the Peng-Robinson EOS is true. More... | |
template<class Params > | |
static Scalar | criticalTemperature (const Params ¶ms) |
Returns the critical temperature for a given mix. More... | |
template<class Params > | |
static Scalar | computeFugacityCoeffient (const Params ¶ms) |
Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume. More... | |
template<class Params > | |
static Scalar | computeFugacity (const Params ¶ms) |
Returns the fugacity coefficient \(\mathrm{[-]}\) for a given pressure and molar volume. More... | |
Static Protected Member Functions | |
template<class FluidState , class Params > | |
static Scalar | handleSingleRoot_ (Scalar Vm, const FluidState &fs, const Params ¶ms, int phaseIdx, bool isGasPhase) |
template<class FluidState , class Params > | |
static Scalar | handleCriticalFluid_ (Scalar Vm, const FluidState &fs, const Params ¶ms, 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 ¶ms, Scalar T) |
The Ambrose-Walton method to estimate the vapor pressure. More... | |
template<class Params > | |
static Scalar | fugacityDifference_ (const Params ¶ms, 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_ |
|
inlinestaticprotected |
The Ambrose-Walton method to estimate the vapor pressure.
See:
D. Ambrose, J. Walton (1989, pp. 1395-1403) [5]
|
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.
params | Parameters |
|
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%.
params | Parameters |
|
inlinestatic |
Computes molar volumes \(\mathrm{[m^3 / mol]}\) where the Peng-Robinson EOS is true.
fs | Thermodynamic state of the fluids |
params | Parameters |
phaseIdx | The phase index |
isGasPhase | Specifies the phase state |
handleUnphysicalPhase | Special handling of the case when the EOS has only one intersection with the pressure, and the intersection does not correspond to the given phase (the phase is thus considered unphysical). If it happens in the case of critical fluid, the critical molar volume is returned for the unphysical phase. If the fluid is not critical, a proper extremum of the EOS is returned for the unphysical phase. If the parameter is false and the EOS has only one intersection with the pressure, the molar volume is computed from that single intersection, not depending of the given phase (gas or fluid). If the EOS has three intersections with the pressure, this parameter is ignored. |
|
inlinestatic |
Predicts the vapor pressure \(\mathrm{[Pa]}\) for the temperature given in setTP().
T | temperature in \(\mathrm{[K]}\) |
params | Parameters |
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.
|
inlinestatic |
Returns the critical temperature for a given mix.
params | EOS (equation of state) parameters of a single-component fluid \ (usually PengRobinsonParms) or a mixture (usually PengRobinsonMixtureParams) |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
Returns the difference between the liquid and the gas phase fugacities in [bar].
params | Parameters |
T | Temperature [K] |
p | Pressure [bar] |
VmLiquid | Molar volume of the liquid phase [cm^3/mol] |
VmGas | Molar volume of the gas phase [cm^3/mol] |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestatic |
|
staticprotected |
|
staticprotected |
|
staticprotected |