# thermo.phase_change module¶

thermo.phase_change.Tb(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=['PSAT_DEFINITION'])[source]

This function handles the retrieval of a chemical’s boiling point. Lookup is based on CASRNs. Will automatically select a data source to use if no Method is provided; returns None if the data is not available.

Prefered sources are ‘CRC Physical Constants, organic’ for organic chemicals, and ‘CRC Physical Constants, inorganic’ for inorganic chemicals. Function has data for approximately 13000 chemicals.

Parameters: Returns: CASRN : string CASRN [-] Tb : float Boiling temperature, [K] methods : list, only returned if AvailableMethods == True List of methods which can be used to obtain Tb with the given inputs Method : string, optional A string for the method name to use, as defined by constants in Tb_methods AvailableMethods : bool, optional If True, function will determine which methods can be used to obtain Tb for the desired chemical, and will return methods instead of Tb IgnoreMethods : list, optional A list of methods to ignore in obtaining the full list of methods, useful for for performance reasons and ignoring inaccurate methods

Notes

A total of four methods are available for this function. They are:

• ‘CRC_ORG’, a compillation of data on organics as published in [R10041030].
• ‘CRC_INORG’, a compillation of data on inorganic as published in [R10041030].
• ‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of [R10051030].
• ‘PSAT_DEFINITION’, calculation of boiling point from a vapor pressure calculation. This is normally off by a fraction of a degree even in the best cases. Listed in IgnoreMethods by default for performance reasons.

References

 [R10041030] (1, 2, 3) Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. Boca Raton, FL: CRC press, 2014.
 [R10051030] (1, 2) Yaws, Carl L. Thermophysical Properties of Chemicals and Hydrocarbons, Second Edition. Amsterdam Boston: Gulf Professional Publishing, 2014.

Examples

>>> Tb('7732-18-5')
373.124

thermo.phase_change.Tm(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=[])[source]

This function handles the retrieval of a chemical’s melting point. Lookup is based on CASRNs. Will automatically select a data source to use if no Method is provided; returns None if the data is not available.

Prefered sources are ‘Open Notebook Melting Points’, with backup sources ‘CRC Physical Constants, organic’ for organic chemicals, and ‘CRC Physical Constants, inorganic’ for inorganic chemicals. Function has data for approximately 14000 chemicals.

Parameters: Returns: CASRN : string CASRN [-] Tm : float Melting temperature, [K] methods : list, only returned if AvailableMethods == True List of methods which can be used to obtain Tm with the given inputs Method : string, optional A string for the method name to use, as defined by constants in Tm_methods AvailableMethods : bool, optional If True, function will determine which methods can be used to obtain Tm for the desired chemical, and will return methods instead of Tm IgnoreMethods : list, optional A list of methods to ignore in obtaining the full list of methods

Notes

A total of three sources are available for this function. They are:

• ‘OPEN_NTBKM, a compillation of data on organics as published in [R10061032] as Open Notebook Melting Points; Averaged (median) values were used when multiple points were available. For more information on this invaluable and excellent collection, see http://onswebservices.wikispaces.com/meltingpoint.
• ‘CRC_ORG’, a compillation of data on organics as published in [R10071032].
• ‘CRC_INORG’, a compillation of data on inorganic as published in [R10071032].

References

 [R10061032] (1, 2) Bradley, Jean-Claude, Antony Williams, and Andrew Lang. “Jean-Claude Bradley Open Melting Point Dataset”, May 20, 2014. https://figshare.com/articles/Jean_Claude_Bradley_Open_Melting_Point_Datset/1031637.
 [R10071032] (1, 2, 3) Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. Boca Raton, FL: CRC press, 2014.

Examples

>>> Tm(CASRN='7732-18-5')
273.15

thermo.phase_change.Clapeyron(T, Tc, Pc, dZ=1, Psat=101325)[source]

Calculates enthalpy of vaporization at arbitrary temperatures using the Clapeyron equation.

The enthalpy of vaporization is given by:

$\Delta H_{vap} = RT \Delta Z \frac{\ln (P_c/Psat)}{(1-T_{r})}$
Parameters: T : float Temperature of fluid [K] Tc : float Critical temperature of fluid [K] Pc : float Critical pressure of fluid [Pa] dZ : float Change in compressibility factor between liquid and gas, [] Psat : float Saturation pressure of fluid [Pa], optional Hvap : float Enthalpy of vaporization, [J/mol]

Notes

No original source is available for this equation. [R10081034] claims this equation overpredicts enthalpy by several percent. Under Tr = 0.8, dZ = 1 is a reasonable assumption. This equation is most accurate at the normal boiling point.

Internal units are bar.

WARNING: I believe it possible that the adjustment for pressure may be incorrect

References

 [R10081034] (1, 2) Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.

Examples

Problem from Perry’s examples.

>>> Clapeyron(T=294.0, Tc=466.0, Pc=5.55E6)
26512.354585061985

thermo.phase_change.Pitzer(T, Tc, omega)[source]

Calculates enthalpy of vaporization at arbitrary temperatures using a fit by [R10101035] to the work of Pitzer [R10091035]; requires a chemical’s critical temperature and acentric factor.

The enthalpy of vaporization is given by:

$\frac{\Delta_{vap} H}{RT_c}=7.08(1-T_r)^{0.354}+10.95\omega(1-T_r)^{0.456}$
Parameters: T : float Temperature of fluid [K] Tc : float Critical temperature of fluid [K] omega : float Acentric factor [-] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

This equation is listed in [R10111035], page 2-487 as method #2 for estimating Hvap. This cites [R10101035].

The recommended range is 0.6 to 1 Tr. Users should expect up to 5% error. T must be under Tc, or an exception is raised.

The original article has been reviewed and found to have a set of tabulated values which could be used instead of the fit function to provide additional accuracy.

References

 [R10091035] (1, 2) Pitzer, Kenneth S. “The Volumetric and Thermodynamic Properties of Fluids. I. Theoretical Basis and Virial Coefficients.” Journal of the American Chemical Society 77, no. 13 (July 1, 1955): 3427-33. doi:10.1021/ja01618a001
 [R10101035] (1, 2, 3) Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
 [R10111035] (1, 2, 3) Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.

Examples

Example as in [R10111035], p2-487; exp: 37.51 kJ/mol

>>> Pitzer(452, 645.6, 0.35017)
36696.736640106414

thermo.phase_change.SMK(T, Tc, omega)[source]

Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R10121038]; requires a chemical’s critical temperature and acentric factor.

The enthalpy of vaporization is given by:

\begin{align}\begin{aligned}\frac{\Delta H_{vap}} {RT_c} = \left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R1)} + \left( \frac{\omega - \omega^{(R1)}} {\omega^{(R2)} - \omega^{(R1)}} \right) \left[\left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R2)} - \left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R1)} \right]\\\left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R1)} = 6.537 \tau^{1/3} - 2.467 \tau^{5/6} - 77.251 \tau^{1.208} + 59.634 \tau + 36.009 \tau^2 - 14.606 \tau^3\\\left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R2)} - \left( \frac{\Delta H_{vap}} {RT_c} \right)^{(R1)}=-0.133 \tau^{1/3} - 28.215 \tau^{5/6} - 82.958 \tau^{1.208} + 99.00 \tau + 19.105 \tau^2 -2.796 \tau^3\\\tau = 1-T/T_c\end{aligned}\end{align}
Parameters: T : float Temperature of fluid [K] Tc : float Critical temperature of fluid [K] omega : float Acentric factor [-] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

The original article has been reviewed and found to have coefficients with slightly more precision. Additionally, the form of the equation is slightly different, but numerically equivalent.

The refence fluids are:

$$\omega_0$$ = benzene = 0.212

$$\omega_1$$ = carbazole = 0.461

A sample problem in the article has been verified. The numerical result presented by the author requires high numerical accuracy to obtain.

References

 [R10121038] (1, 2, 3) Sivaraman, Alwarappa, Joe W. Magee, and Riki Kobayashi. “Generalized Correlation of Latent Heats of Vaporization of Coal-Liquid Model Compounds between Their Freezing Points and Critical Points.” Industrial & Engineering Chemistry Fundamentals 23, no. 1 (February 1, 1984): 97-100. doi:10.1021/i100013a017.

Examples

Problem in [R10121038]:

>>> SMK(553.15, 751.35, 0.302)
39866.17647797959

thermo.phase_change.MK(T, Tc, omega)[source]

Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R10131039]; requires a chemical’s critical temperature and acentric factor.

The enthalpy of vaporization is given by:

\begin{align}\begin{aligned}\Delta H_{vap} = \Delta H_{vap}^{(0)} + \omega \Delta H_{vap}^{(1)} + \omega^2 \Delta H_{vap}^{(2)}\\\frac{\Delta H_{vap}^{(i)}}{RT_c} = b^{(j)} \tau^{1/3} + b_2^{(j)} \tau^{5/6} + b_3^{(j)} \tau^{1.2083} + b_4^{(j)}\tau + b_5^{(j)} \tau^2 + b_6^{(j)} \tau^3\\\tau = 1-T/T_c\end{aligned}\end{align}
Parameters: T : float Temperature of fluid [K] Tc : float Critical temperature of fluid [K] omega : float Acentric factor [-] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

The original article has been reviewed. A total of 18 coefficients are used:

WARNING: The correlation has been implemented as described in the article, but its results seem different and with some error. Its results match with other functions however.

Has poor behavior for low-temperature use.

References

 [R10131039] (1, 2) Morgan, David L., and Riki Kobayashi. “Extension of Pitzer CSP Models for Vapor Pressures and Heats of Vaporization to Long-Chain Hydrocarbons.” Fluid Phase Equilibria 94 (March 15, 1994): 51-87. doi:10.1016/0378-3812(94)87051-9.

Examples

Problem in article for SMK function.

>>> MK(553.15, 751.35, 0.302)
38727.993546377205

thermo.phase_change.Velasco(T, Tc, omega)[source]

Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R10141040]; requires a chemical’s critical temperature and acentric factor.

The enthalpy of vaporization is given by:

$\Delta_{vap} H = RT_c(7.2729 + 10.4962\omega + 0.6061\omega^2)(1-T_r)^{0.38}$
Parameters: T : float Temperature of fluid [K] Tc : float Critical temperature of fluid [K] omega : float Acentric factor [-] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

The original article has been reviewed. It is regressed from enthalpy of vaporization values at 0.7Tr, from 121 fluids in REFPROP 9.1. A value in the article was read to be similar, but slightly too low from that calculated here.

References

 [R10141040] (1, 2, 3) Velasco, S., M. J. Santos, and J. A. White. “Extended Corresponding States Expressions for the Changes in Enthalpy, Compressibility Factor and Constant-Volume Heat Capacity at Vaporization.” The Journal of Chemical Thermodynamics 85 (June 2015): 68-76. doi:10.1016/j.jct.2015.01.011.

Examples

From graph, in [R10141040] for perfluoro-n-heptane.

>>> Velasco(333.2, 476.0, 0.5559)
33299.41734936356

thermo.phase_change.Riedel(Tb, Tc, Pc)[source]

Calculates enthalpy of vaporization at the boiling point, using the Ridel [R10151041] CSP method. Required information are critical temperature and pressure, and boiling point. Equation taken from [R10161041] and [R10171041].

The enthalpy of vaporization is given by:

$\Delta_{vap} H=1.093 T_b R\frac{\ln P_c-1.013}{0.930-T_{br}}$
Parameters: Tb : float Boiling temperature of fluid [K] Tc : float Critical temperature of fluid [K] Pc : float Critical pressure of fluid [Pa] Hvap : float Enthalpy of vaporization at the normal boiling point, [J/mol]

Notes

This equation has no example calculation in any source. The source has not been verified. It is equation 4-144 in Perry’s. Perry’s also claims that errors seldom surpass 5%.

[R10161041] is the source of example work here, showing a calculation at 0.0% error.

Internal units of pressure are bar.

References

 [R10151041] (1, 2) Riedel, L. “Eine Neue Universelle Dampfdruckformel Untersuchungen Uber Eine Erweiterung Des Theorems Der Ubereinstimmenden Zustande. Teil I.” Chemie Ingenieur Technik 26, no. 2 (February 1, 1954): 83-89. doi:10.1002/cite.330260206.
 [R10161041] (1, 2, 3, 4) Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
 [R10171041] (1, 2) Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.

Examples

Pyridine, 0.0% err vs. exp: 35090 J/mol; from Poling [R10161041].

>>> Riedel(388.4, 620.0, 56.3E5)
35089.78989646058

thermo.phase_change.Chen(Tb, Tc, Pc)[source]

Calculates enthalpy of vaporization using the Chen [R10181044] correlation and a chemical’s critical temperature, pressure and boiling point.

The enthalpy of vaporization is given by:

$\Delta H_{vb} = RT_b \frac{3.978 T_r - 3.958 + 1.555 \ln P_c}{1.07 - T_r}$
Parameters: Tb : float Boiling temperature of the fluid [K] Tc : float Critical temperature of fluid [K] Pc : float Critical pressure of fluid [Pa] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

The formulation presented in the original article is similar, but uses units of atm and calorie instead. The form in [R10191044] has adjusted for this. A method for estimating enthalpy of vaporization at other conditions has also been developed, but the article is unclear on its implementation. Based on the Pitzer correlation.

Internal units: bar and K

References

 [R10181044] (1, 2) Chen, N. H. “Generalized Correlation for Latent Heat of Vaporization.” Journal of Chemical & Engineering Data 10, no. 2 (April 1, 1965): 207-10. doi:10.1021/je60025a047
 [R10191044] (1, 2) Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.

Examples

Same problem as in Perry’s examples.

>>> Chen(294.0, 466.0, 5.55E6)
26705.893506174052

thermo.phase_change.Liu(Tb, Tc, Pc)[source]

Calculates enthalpy of vaporization at the normal boiling point using the Liu [R10201046] correlation, and a chemical’s critical temperature, pressure and boiling point.

The enthalpy of vaporization is given by:

$\Delta H_{vap} = RT_b \left[ \frac{T_b}{220}\right]^{0.0627} \frac{ (1-T_{br})^{0.38} \ln(P_c/P_A)}{1-T_{br} + 0.38 T_{br} \ln T_{br}}$
Parameters: Tb : float Boiling temperature of the fluid [K] Tc : float Critical temperature of fluid [K] Pc : float Critical pressure of fluid [Pa] Hvap : float Enthalpy of vaporization, [J/mol]

Notes

This formulation can be adjusted for lower boiling points, due to the use of a rationalized pressure relationship. The formulation is taken from the original article.

A correction for alcohols and organic acids based on carbon number, which only modifies the boiling point, is available but not implemented.

No sample calculations are available in the article.

Internal units: Pa and K

References

 [R10201046] (1, 2) LIU, ZHI-YONG. “Estimation of Heat of Vaporization of Pure Liquid at Its Normal Boiling Temperature.” Chemical Engineering Communications 184, no. 1 (February 1, 2001): 221-28. doi:10.1080/00986440108912849.

Examples

Same problem as in Perry’s examples

>>> Liu(294.0, 466.0, 5.55E6)
26378.566319606754

thermo.phase_change.Vetere(Tb, Tc, Pc, F=1)[source]

Calculates enthalpy of vaporization at the boiling point, using the Vetere [R10211047] CSP method. Required information are critical temperature and pressure, and boiling point. Equation taken from [R10221047].

The enthalpy of vaporization is given by:

$\frac {\Delta H_{vap}}{RT_b} = \frac{\tau_b^{0.38} \left[ \ln P_c - 0.513 + \frac{0.5066}{P_cT_{br}^2}\right]} {\tau_b + F(1-\tau_b^{0.38})\ln T_{br}}$
Parameters: Tb : float Boiling temperature of fluid [K] Tc : float Critical temperature of fluid [K] Pc : float Critical pressure of fluid [Pa] F : float, optional Constant for a fluid, [-] Hvap : float Enthalpy of vaporization at the boiling point, [J/mol]

Notes

The equation cannot be found in the original source. It is believed that a second article is its source, or that DIPPR staff have altered the formulation.

Internal units of pressure are bar.

References

 [R10211047] (1, 2) Vetere, Alessandro. “Methods to Predict the Vaporization Enthalpies at the Normal Boiling Temperature of Pure Compounds Revisited.” Fluid Phase Equilibria 106, no. 1-2 (May 1, 1995): 1–10. doi:10.1016/0378-3812(94)02627-D.
 [R10221047] (1, 2, 3) Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.

Examples

Example as in [R10221047], p2-487; exp: 25.73

>>> Vetere(294.0, 466.0, 5.55E6)
26363.430021286465

thermo.phase_change.Watson(T, Hvap_ref, T_Ref, Tc, exponent=0.38)[source]

Adjusts enthalpy of vaporization of enthalpy for another temperature, for one temperature.

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.

class thermo.phase_change.EnthalpyVaporization(CASRN='', Tb=None, Tc=None, Pc=None, omega=None, similarity_variable=None, Psat=None, Zl=None, Zg=None)[source]

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: Tb : float, optional Boiling point, [K] Tc : float, optional Critical temperature, [K] Pc : float, optional Critical pressure, [Pa] omega : float, optional Acentric factor, [-] similarity_variable : float, optional similarity variable, n_atoms/MW, [mol/g] Psat : float or callable, optional Vapor pressure at T or callable for the same, [Pa] Zl : float or callable, optional Compressibility of liquid at T or callable for the same, [-] Zg : float or callable, optional Compressibility of gas at T or callable for the same, [-] CASRN : str, optional The CAS number of the chemical

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 the Watson 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 the Watson 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 the Watson 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 the Watson equation unless Tc is not available.
CRC_HVAP_TB:
The constant value available in [R10261049] 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 [R10261049] 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 [R10271049] 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 [R10251049]. Very slow but accurate.
VDI_TABULAR:
Tabular data in [R10261049] 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 [R10251049]. Extrapolates poorly at low temperatures.
DIPPR_PERRY_8E:
A collection of 344 coefficient sets from the DIPPR database published openly in [R10281049]. Provides temperature limits for all its fluids. thermo.dippr.EQ106 is used for its fluids.
ALIBAKHSHI:
One-constant limited temperature range regression method presented in [R10291049], 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

 [R10231049] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
 [R10241049] 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/
 [R10251049] (1, 2, 3) Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
 [R10261049] (1, 2, 3, 4) Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014.
 [R10271049] (1, 2) 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.
 [R10281049] (1, 2) Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Professional, 2007.
 [R10291049] (1, 2) 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

 T_cached interpolation_T interpolation_property interpolation_property_inv method

Methods

 T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method. T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order. T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method. T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method. __call__(T) Convenience method to calculate the property; calls T_dependent_property. calculate(T, method) Method to calculate heat of vaporization of a liquid at temperature T with a given method. calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method. calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method. calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method. extrapolate_tabular(T) interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data. load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it. plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods. select_valid_methods(T) Method to obtain a sorted list of methods which are valid at T according to test_method_validity. set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation. set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default. solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value. test_method_validity(T, method) Method to check the validity of a method. test_property_validity(prop) Method to test the validity of a calculated property.
CSP_methods = ['MORGAN_KOBAYASHI', 'SIVARAMAN_MAGEE_KOBAYASHI', 'VELASCO', 'PITZER']
Tmax = None

Maximum temperature at which no method can calculate the heat of vaporization above.

Tmin = None

Minimum temperature at which no method can calculate the heat of vaporization under.

Watson_exponent = 0.38

Exponent used in the Watson equation

all_methods = None

Set of all methods available for a given CASRN and properties; filled by load_all_methods.

boiling_methods = ['RIEDEL', 'CHEN', 'VETERE', 'LIU']
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: T : float Temperature at which to calculate heat of vaporization, [K] method : str Name of the method to use Hvap : float 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.

load_all_methods()[source]

Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, and all_methods as a set of methods for which the data exists for.

Called on initialization only. See the source code for the variables at which the coefficients are stored. The coefficients can safely be altered once the class is initialized. This method can be called again to reset the parameters.

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', 'VDI_TABULAR', 'MORGAN_KOBAYASHI', 'SIVARAMAN_MAGEE_KOBAYASHI', 'VELASCO', 'PITZER', 'ALIBAKHSHI', 'CRC_HVAP_TB', 'CRC_HVAP_298', 'GHARAGHEIZI_HVAP_298', 'CLAPEYRON', 'RIEDEL', 'CHEN', 'VETERE', 'LIU']

Default rankings of the available methods.

sorted_valid_methods = None

sorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by T_dependent_property.

tabular_data = None

tabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.

tabular_data_interpolators = None

tabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances for each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which had been created is no longer used.

tabular_extrapolation_permitted = True

Allow tabular extrapolation by default; values below 0 will be obtained at high temperatures.

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 in Watson_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: T : float Temperature at which to test the method, [K] method : str Name of the method to test validity : bool Whether or not a method is valid
units = 'J/mol'
user_methods = None

user_methods, list: Stored methods which were specified by the user in a ranked order of preference; set by T_dependent_property.

thermo.phase_change.Hfus(T=298.15, P=101325, MW=None, AvailableMethods=False, Method=None, CASRN='')[source]

This function handles the calculation of a chemical’s enthalpy of fusion. Generally this, is used by the chemical class, as all parameters are passed. Calling the function directly works okay.

Enthalpy of fusion is a weak function of pressure, and its effects are neglected.

This API is considered experimental, and is expected to be removed in a future release in favor of a more complete object-oriented interface.

thermo.phase_change.Hsub(T=298.15, P=101325, MW=None, AvailableMethods=False, Method=None, CASRN='')[source]

This function handles the calculation of a chemical’s enthalpy of sublimation. Generally this, is used by the chemical class, as all parameters are passed.

This API is considered experimental, and is expected to be removed in a future release in favor of a more complete object-oriented interface.

thermo.phase_change.Tliquidus(Tms=None, ws=None, xs=None, CASRNs=None, AvailableMethods=False, Method=None)[source]

This function handles the retrival of a mixtures’s liquidus point.

This API is considered experimental, and is expected to be removed in a future release in favor of a more complete object-oriented interface.

>>> Tliquidus(Tms=[250.0, 350.0], xs=[0.5, 0.5])
350.0
>>> Tliquidus(Tms=[250, 350], xs=[0.5, 0.5], Method='Simple')
300.0
>>> Tliquidus(Tms=[250, 350], xs=[0.5, 0.5], AvailableMethods=True)
['Maximum', 'Simple', 'None']