# 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]

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

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. Function to make the data-based interpolation as linear as possible. log(P) interpolation transformation by default. 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]

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]

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. Function to make the data-based interpolation as linear as possible. log(P) interpolation transformation by default. 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.