Phase Change Properties (thermo.phase_change)¶
This module contains implementations of thermo.utils.TDependentProperty
representing enthalpy of vaporization and enthalpy of sublimation. 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.
Enthalpy of Vaporization¶
- class thermo.phase_change.EnthalpyVaporization(CASRN='', Tb=None, Tc=None, Pc=None, omega=None, similarity_variable=None, Psat=None, Zl=None, Zg=None, extrapolation='Watson', **kwargs)[source]¶
Bases:
thermo.utils.t_dependent_property.TDependentProperty
Class for dealing with heat of vaporization as a function of temperature. Consists of three constant value data sources, one source of tabular information, three coefficient-based methods, nine corresponding-states estimators, and the external library CoolProp.
- Parameters
- Tbfloat, optional
Boiling point, [K]
- Tcfloat, optional
Critical temperature, [K]
- Pcfloat, optional
Critical pressure, [Pa]
- omegafloat, optional
Acentric factor, [-]
- similarity_variablefloat, optional
similarity variable, n_atoms/MW, [mol/g]
- Psatfloat or callable, optional
Vapor pressure at T or callable for the same, [Pa]
- Zlfloat or callable, optional
Compressibility of liquid at T or callable for the same, [-]
- Zgfloat or callable, optional
Compressibility of gas at T or callable for the same, [-]
- CASRNstr, optional
The CAS number of the chemical
- load_databool, optional
If False, do not load property coefficients from data sources in files [-]
- 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
Notes
To iterate over all methods, use the list stored in
enthalpy_vaporization_methods
.- CLAPEYRON:
The Clapeyron fundamental model desecribed in
Clapeyron
. This is the model which uses Zl, Zg, and Psat, all of which must be set at each temperature change to allow recalculation of the heat of vaporization.- MORGAN_KOBAYASHI:
The MK CSP model equation documented in
MK
.- SIVARAMAN_MAGEE_KOBAYASHI:
The SMK CSP model equation documented in
SMK
.- VELASCO:
The Velasco CSP model equation documented in
Velasco
.- PITZER:
The Pitzer CSP model equation documented in
Pitzer
.- RIEDEL:
The Riedel CSP model equation, valid at the boiling point only, documented in
Riedel
. This is adjusted with theWatson
equation unless Tc is not available.- CHEN:
The Chen CSP model equation, valid at the boiling point only, documented in
Chen
. This is adjusted with theWatson
equation unless Tc is not available.- VETERE:
The Vetere CSP model equation, valid at the boiling point only, documented in
Vetere
. This is adjusted with theWatson
equation unless Tc is not available.- LIU:
The Liu CSP model equation, valid at the boiling point only, documented in
Liu
. This is adjusted with theWatson
equation unless Tc is not available.- CRC_HVAP_TB:
The constant value available in [4] at the normal boiling point. This is adusted with the
Watson
equation unless Tc is not available. Data is available for 707 chemicals.- CRC_HVAP_298:
The constant value available in [4] at 298.15 K. This is adusted with the
Watson
equation unless Tc is not available. Data is available for 633 chemicals.- GHARAGHEIZI_HVAP_298:
The constant value available in [5] at 298.15 K. This is adusted with the
Watson
equation unless Tc is not available. Data is available for 2730 chemicals.- 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 but accurate.
- VDI_TABULAR:
Tabular data in [4] along the saturation curve; interpolation is as set by the user or the default.
- VDI_PPDS:
Coefficients for a equation form developed by the PPDS, published openly in [3]. Extrapolates poorly at low temperatures.
- DIPPR_PERRY_8E:
A collection of 344 coefficient sets from the DIPPR database published openly in [6]. Provides temperature limits for all its fluids.
chemicals.dippr.EQ106
is used for its fluids.- ALIBAKHSHI:
One-constant limited temperature range regression method presented in [7], with constants for ~2000 chemicals from the DIPPR database. Valid up to 100 K below the critical point, and 50 K under the boiling point.
References
- 1
Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
- 2
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/
- 3(1,2)
Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
- 4(1,2,3)
Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014.
- 5
Gharagheizi, Farhad, Poorandokht Ilani-Kashkouli, William E. Acree Jr., Amir H. Mohammadi, and Deresh Ramjugernath. “A Group Contribution Model for Determining the Vaporization Enthalpy of Organic Compounds at the Standard Reference Temperature of 298 K.” Fluid Phase Equilibria 360 (December 25, 2013): 279-92. doi:10.1016/j.fluid.2013.09.021.
- 6
Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.
- 7
Alibakhshi, Amin. “Enthalpy of Vaporization, Its Temperature Dependence and Correlation with Surface Tension: A Theoretical Approach.” Fluid Phase Equilibria 432 (January 25, 2017): 62-69. doi:10.1016/j.fluid.2016.10.013.
- Attributes
- interpolation_T
- interpolation_property
- interpolation_property_inv
Methods
calculate
(T, method)Method to calculate heat of vaporization of a liquid at temperature T with a given method.
test_method_validity
(T, method)Method to check the validity of a method.
- Watson_exponent = 0.38¶
Exponent used in the Watson equation
- calculate(T, method)[source]¶
Method to calculate heat of vaporization of a liquid at temperature T with a given method.
This method has no exception handling; see
T_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate heat of vaporization, [K]
- methodstr
Name of the method to use
- Returns
- Hvapfloat
Heat of vaporization of the liquid at T, [J/mol]
- interpolation_T = None¶
No interpolation transformation by default.
- interpolation_property = None¶
No interpolation transformation by default.
- interpolation_property_inv = None¶
No interpolation transformation by default.
- name = 'Enthalpy of vaporization'¶
- property_max = 1000000.0¶
Maximum valid of heat of vaporization. Set to twice the value in the available data.
- property_min = 0¶
Mimimum valid value of heat of vaporization. This occurs at the critical point exactly.
- ranked_methods = ['COOLPROP', 'DIPPR_PERRY_8E', 'VDI_PPDS', 'MORGAN_KOBAYASHI', 'SIVARAMAN_MAGEE_KOBAYASHI', 'VELASCO', 'PITZER', 'VDI_TABULAR', 'ALIBAKHSHI', 'CRC_HVAP_TB', 'CRC_HVAP_298', 'GHARAGHEIZI_HVAP_298', 'CLAPEYRON', 'RIEDEL', 'CHEN', 'VETERE', 'LIU']¶
Default rankings of the available methods.
- test_method_validity(T, method)[source]¶
Method to check the validity of a method. 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.
The constant methods CRC_HVAP_TB, CRC_HVAP_298, and GHARAGHEIZI_HVAP are adjusted for temperature dependence according to the
Watson
equation, with a temperature exponent as set inWatson_exponent
, usually regarded as 0.38. However, if Tc is not set, then the adjustment cannot be made. In that case the methods are considered valid for within 5 K of their boiling point or 298.15 K as appropriate.- 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 = 'J/mol'¶
- thermo.phase_change.enthalpy_vaporization_methods = ['DIPPR_PERRY_8E', 'VDI_PPDS', 'COOLPROP', 'VDI_TABULAR', 'MORGAN_KOBAYASHI', 'SIVARAMAN_MAGEE_KOBAYASHI', 'VELASCO', 'PITZER', 'ALIBAKHSHI', 'CRC_HVAP_TB', 'CRC_HVAP_298', 'GHARAGHEIZI_HVAP_298', 'CLAPEYRON', 'RIEDEL', 'CHEN', 'VETERE', 'LIU']¶
Holds all methods available for the EnthalpyVaporization class, for use in iterating over them.
Enthalpy of Sublimation¶
- class thermo.phase_change.EnthalpySublimation(CASRN='', Tm=None, Tt=None, Cpg=None, Cps=None, Hvap=None, extrapolation='linear', **kwargs)[source]¶
Bases:
thermo.utils.t_dependent_property.TDependentProperty
Class for dealing with heat of sublimation as a function of temperature. Consists of one temperature-dependent method based on the heat of sublimation at 298.15 K.
- Parameters
- CASRNstr, optional
The CAS number of the chemical
- Tmfloat, optional
Normal melting temperature, [K]
- Ttfloat, optional
Triple point temperature, [K]
- Cpgfloat or callable, optional
Gaseous heat capacity at a given temperature or callable for the same, [J/mol/K]
- Cpsfloat or callable, optional
Solid heat capacity at a given temperature or callable for the same, [J/mol/K]
- Hvapfloat of callable, optional
Enthalpy of Vaporization at a given temperature or callable for the same, [J/mol]
- load_databool, optional
If False, do not load property coefficients from data sources in files [-]
- 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
enthalpy_sublimation_methods
.- WEBBOOK_HSUB:
Enthalpy of sublimation at a constant temperature of 298.15 K as given in [3].
- GHARAGHEIZI_HSUB_298:
Enthalpy of sublimation at a constant temperature of 298 K as given in [1].
- GHARAGHEIZI_HSUB:
Enthalpy of sublimation at a constant temperature of 298 K as given in [1] are adjusted using the solid and gas heat capacity functions to correct for any temperature.
- CRC_HFUS_HVAP_TM:
Enthalpies of fusion in [1] are corrected to be enthalpies of sublimation by adding the enthalpy of vaporization at the fusion temperature, and then adjusted using the solid and gas heat capacity functions to correct for any temperature.
References
- 1(1,2,3)
Gharagheizi, Farhad, Poorandokht Ilani-Kashkouli, William E. Acree Jr., Amir H. Mohammadi, and Deresh Ramjugernath. “A Group Contribution Model for Determining the Sublimation Enthalpy of Organic Compounds at the Standard Reference Temperature of 298 K.” Fluid Phase Equilibria 354 (September 25, 2013): 265-doi:10.1016/j.fluid.2013.06.046.
- 2
Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. Boca Raton, FL: CRC press, 2014.
- 3
Shen, V.K., Siderius, D.W., Krekelberg, W.P., and Hatch, H.W., Eds., NIST WebBook, NIST, http://doi.org/10.18434/T4M88Q
- Attributes
- interpolation_T
- interpolation_property
- interpolation_property_inv
Methods
calculate
(T, method)Method to calculate heat of sublimation of a solid at temperature T with a given method.
test_method_validity
(T, method)Method to check the validity of a method.
- calculate(T, method)[source]¶
Method to calculate heat of sublimation of a solid at temperature T with a given method.
This method has no exception handling; see
T_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate heat of sublimation, [K]
- methodstr
Name of the method to use
- Returns
- Hsubfloat
Heat of sublimation of the solid at T, [J/mol]
- interpolation_T = None¶
No interpolation transformation by default.
- interpolation_property = None¶
No interpolation transformation by default.
- interpolation_property_inv = None¶
No interpolation transformation by default.
- name = 'Enthalpy of sublimation'¶
- property_max = 1000000.0¶
Maximum valid of heat of sublimation. A theoretical concept only.
- property_min = 0¶
Mimimum valid value of heat of vaporization. A theoretical concept only.
- ranked_methods = ['WEBBOOK_HSUB', 'GHARAGHEIZI_HSUB', 'CRC_HFUS_HVAP_TM', 'GHARAGHEIZI_HSUB_298']¶
- test_method_validity(T, method)[source]¶
Method to check the validity of a method. 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 = 'J/mol'¶
- thermo.phase_change.enthalpy_sublimation_methods = ['WEBBOOK_HSUB', 'GHARAGHEIZI_HSUB', 'CRC_HFUS_HVAP_TM', 'GHARAGHEIZI_HSUB_298']¶
Holds all methods available for the EnthalpySublimation class, for use in iterating over them.