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, [-]
See also
chemicals.vapor_pressure.Wagner_original
chemicals.vapor_pressure.Wagner
chemicals.vapor_pressure.TRC_Antoine_extended
chemicals.vapor_pressure.Antoine
chemicals.vapor_pressure.boiling_critical_relation
chemicals.vapor_pressure.Lee_Kesler
chemicals.vapor_pressure.Ambrose_Walton
chemicals.vapor_pressure.Sanjari
chemicals.vapor_pressure.Edalat
chemicals.iapws.iapws95_Psat
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_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.
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.