Vapor Pressure and Sublimation Pressure (thermo.vapor_pressure)

This module contains implementations of thermo.utils.TDependentProperty representing vapor pressure and sublimation pressure. A variety of estimation and data methods are available as included in the chemicals library.

For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker.

Vapor Pressure

class thermo.vapor_pressure.VaporPressure(Tb=None, Tc=None, Pc=None, omega=None, CASRN='', eos=None, extrapolation='AntoineAB|DIPPR101_ABC', **kwargs)[source]

Bases: thermo.utils.t_dependent_property.TDependentProperty

Class for dealing with vapor pressure as a function of temperature. Consists of five coefficient-based methods and four data sources, one source of tabular information, four corresponding-states estimators, any provided equation of state, the external library CoolProp, and one substance-specific formulation.

Parameters
Tbfloat, optional

Boiling point, [K]

Tcfloat, optional

Critical temperature, [K]

Pcfloat, optional

Critical pressure, [Pa]

omegafloat, optional

Acentric factor, [-]

CASRNstr, optional

The CAS number of the chemical

eosobject, optional

Equation of State object after thermo.eos.GCEOS

load_databool, optional

If False, do not load property coefficients from data sources in files; this can be used to reduce the memory consumption of an object as well, [-]

extrapolationstr or None

None to not extrapolate; see TDependentProperty for a full list of all options, [-]

methodstr or None, optional

If specified, use this method by default and do not use the ranked sorting; an exception is raised if this is not a valid method for the provided inputs, [-]

Notes

To iterate over all methods, use the list stored in vapor_pressure_methods.

WAGNER_MCGARRY:

The Wagner 3,6 original model equation documented in chemicals.vapor_pressure.Wagner_original, with data for 245 chemicals, from [1],

WAGNER_POLING:

The Wagner 2.5, 5 model equation documented in chemicals.vapor_pressure.Wagner in [2], with data for 104 chemicals.

ANTOINE_EXTENDED_POLING:

The TRC extended Antoine model equation documented in chemicals.vapor_pressure.TRC_Antoine_extended with data for 97 chemicals in [2].

ANTOINE_POLING:

Standard Antoine equation, as documented in the function chemicals.vapor_pressure.Antoine and with data for 325 fluids from [2]. Coefficients were altered to be in units of Pa and Kelvin.

ANTOINE_WEBBOOK:

Standard Antoine equation, as documented in the function chemicals.vapor_pressure.Antoine and with data for ~1400 fluids from [6]. Coefficients were altered to be in units of Pa and Kelvin.

DIPPR_PERRY_8E:

A collection of 341 coefficient sets from the DIPPR database published openly in [5]. Provides temperature limits for all its fluids. chemicals.dippr.EQ101 is used for its fluids.

VDI_PPDS:

Coefficients for a equation form developed by the PPDS, published openly in [4].

COOLPROP:

CoolProp external library; with select fluids from its library. Range is limited to that of the equations of state it uses, as described in [3]. Very slow.

BOILING_CRITICAL:

Fundamental relationship in thermodynamics making several approximations; see chemicals.vapor_pressure.boiling_critical_relation for details. Least accurate method in most circumstances.

LEE_KESLER_PSAT:

CSP method documented in chemicals.vapor_pressure.Lee_Kesler. Widely used.

AMBROSE_WALTON:

CSP method documented in chemicals.vapor_pressure.Ambrose_Walton.

SANJARI:

CSP method documented in chemicals.vapor_pressure.Sanjari.

EDALAT:

CSP method documented in chemicals.vapor_pressure.Edalat.

VDI_TABULAR:

Tabular data in [4] along the saturation curve; interpolation is as set by the user or the default.

EOS:

Equation of state provided by user; must implement thermo.eos.GCEOS.Psat

IAPWS:

IAPWS-95 formulation documented in chemicals.iapws.iapws95_Psat.

ALCOCK_ELEMENTS:

A collection of vapor pressure data for metallic elements, in chemicals.dippr.EQ101 form [7]

References

1

McGarry, Jack. “Correlation and Prediction of the Vapor Pressures of Pure Liquids over Large Pressure Ranges.” Industrial & Engineering Chemistry Process Design and Development 22, no. 2 (April 1, 1983): 313-22. doi:10.1021/i200021a023.

2(1,2,3)

Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.

3

Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Thermophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Industrial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999. http://www.coolprop.org/

4(1,2)

Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.

5

Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.

6

Shen, V.K., Siderius, D.W., Krekelberg, W.P., and Hatch, H.W., Eds., NIST WebBook, NIST, http://doi.org/10.18434/T4M88Q

7

Alcock, C. B., V. P. Itkin, and M. K. Horrigan. “Vapour Pressure Equations for the Metallic Elements: 298-2500K.” Canadian Metallurgical Quarterly 23, no. 3 (July 1, 1984): 309-13. https://doi.org/10.1179/cmq.1984.23.3.309.

Methods

calculate(T, method)

Method to calculate vapor pressure of a fluid at temperature T with a given method.

interpolation_T(T)

Function to make the data-based interpolation as linear as possible.

interpolation_property(P)

log(P) interpolation transformation by default.

interpolation_property_inv(P)

exp(P) interpolation transformation by default; reverses interpolation_property_inv.

test_method_validity(T, method)

Method to check the validity of a method.

calculate(T, method)[source]

Method to calculate vapor pressure of a fluid at temperature T with a given method.

This method has no exception handling; see thermo.utils.TDependentProperty.T_dependent_property for that.

Parameters
Tfloat

Temperature at calculate vapor pressure, [K]

methodstr

Name of the method to use

Returns
Psatfloat

Vapor pressure at T, [Pa]

static interpolation_T(T)[source]

Function to make the data-based interpolation as linear as possible. This transforms the input T into the 1/T domain.

static interpolation_property(P)[source]

log(P) interpolation transformation by default.

static interpolation_property_inv(P)[source]

exp(P) interpolation transformation by default; reverses interpolation_property_inv.

name = 'Vapor pressure'
property_max = 10000000000.0

Maximum valid value of vapor pressure. Set slightly above the critical point estimated for Iridium; Mercury’s 160 MPa critical point is the highest known.

property_min = 0

Mimimum valid value of vapor pressure.

ranked_methods = ['IAPWS', 'WAGNER_MCGARRY', 'WAGNER_POLING', 'ANTOINE_EXTENDED_POLING', 'DIPPR_PERRY_8E', 'VDI_PPDS', 'COOLPROP', 'ANTOINE_POLING', 'VDI_TABULAR', 'ANTOINE_WEBBOOK', 'ALCOCK_ELEMENTS', 'AMBROSE_WALTON', 'LEE_KESLER_PSAT', 'EDALAT', 'BOILING_CRITICAL', 'EOS', 'SANJARI']

Default rankings of the available methods.

test_method_validity(T, method)[source]

Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. For CSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolation outside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolation is considered valid for all temperatures.

It is not guaranteed that a method will work or give an accurate prediction simply because this method considers the method valid.

Parameters
Tfloat

Temperature at which to test the method, [K]

methodstr

Name of the method to test

Returns
validitybool

Whether or not a method is valid

units = 'Pa'
thermo.vapor_pressure.vapor_pressure_methods = ['IAPWS', 'WAGNER_MCGARRY', 'WAGNER_POLING', 'ANTOINE_EXTENDED_POLING', 'DIPPR_PERRY_8E', 'VDI_PPDS', 'COOLPROP', 'ANTOINE_POLING', 'VDI_TABULAR', 'ANTOINE_WEBBOOK', 'ALCOCK_ELEMENTS', 'AMBROSE_WALTON', 'LEE_KESLER_PSAT', 'EDALAT', 'EOS', 'BOILING_CRITICAL', 'SANJARI']

Holds all methods available for the VaporPressure class, for use in iterating over them.

Sublimation Pressure

class thermo.vapor_pressure.SublimationPressure(CASRN=None, Tt=None, Pt=None, Hsub_t=None, extrapolation='linear', **kwargs)[source]

Bases: thermo.utils.t_dependent_property.TDependentProperty

Class for dealing with sublimation pressure as a function of temperature. Consists of one estimation method.

Parameters
CASRNstr, optional

The CAS number of the chemical

Ttfloat, optional

Triple temperature, [K]

Ptfloat, optional

Triple pressure, [Pa]

Hsub_tfloat, optional

Sublimation enthalpy at the triple point, [J/mol]

load_databool, optional

If False, do not load property coefficients from data sources in files; this can be used to reduce the memory consumption of an object as well, [-]

extrapolationstr or None

None to not extrapolate; see TDependentProperty for a full list of all options, [-]

methodstr or None, optional

If specified, use this method by default and do not use the ranked sorting; an exception is raised if this is not a valid method for the provided inputs, [-]

Notes

To iterate over all methods, use the list stored in sublimation_pressure_methods.

PSUB_CLAPEYRON:

Clapeyron thermodynamic identity, Psub_Clapeyron

References

1

Goodman, B. T., W. V. Wilding, J. L. Oscarson, and R. L. Rowley. “Use of the DIPPR Database for the Development of QSPR Correlations: Solid Vapor Pressure and Heat of Sublimation of Organic Compounds.” International Journal of Thermophysics 25, no. 2 (March 1, 2004): 337-50. https://doi.org/10.1023/B:IJOT.0000028471.77933.80.

Methods

calculate(T, method)

Method to calculate sublimation pressure of a fluid at temperature T with a given method.

interpolation_T(T)

Function to make the data-based interpolation as linear as possible.

interpolation_property(P)

log(P) interpolation transformation by default.

interpolation_property_inv(P)

exp(P) interpolation transformation by default; reverses interpolation_property_inv.

test_method_validity(T, method)

Method to check the validity of a method.

calculate(T, method)[source]

Method to calculate sublimation pressure of a fluid at temperature T with a given method.

This method has no exception handling; see T_dependent_property for that.

Parameters
Tfloat

Temperature at calculate sublimation pressure, [K]

methodstr

Name of the method to use

Returns
Psubfloat

Sublimation pressure at T, [Pa]

static interpolation_T(T)

Function to make the data-based interpolation as linear as possible. This transforms the input T into the 1/T domain.

static interpolation_property(P)

log(P) interpolation transformation by default.

static interpolation_property_inv(P)

exp(P) interpolation transformation by default; reverses interpolation_property_inv.

name = 'Sublimation pressure'
property_max = 100000.0

Maximum valid value of sublimation pressure. Set to 1 bar tentatively.

property_min = 1e-300

Mimimum valid value of sublimation pressure.

ranked_methods = ['PSUB_CLAPEYRON']

Default rankings of the available methods.

test_method_validity(T, method)[source]

Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. For CSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolation outside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolation is considered valid for all temperatures.

It is not guaranteed that a method will work or give an accurate prediction simply because this method considers the method valid.

Parameters
Tfloat

Temperature at which to test the method, [K]

methodstr

Name of the method to test

Returns
validitybool

Whether or not a method is valid

units = 'Pa'
thermo.vapor_pressure.sublimation_pressure_methods = ['PSUB_CLAPEYRON']

Holds all methods available for the SublimationPressure class, for use in iterating over them.