thermo.interface module¶

thermo.interface.
REFPROP
(T, Tc, sigma0, n0, sigma1=0, n1=0, sigma2=0, n2=0)[source]¶ Calculates airliquid surface tension using the REFPROP [R886910] regressionbased method. Relatively recent, and most accurate.
\[\sigma(T)=\sigma_0\left(1\frac{T}{T_c}\right)^{n_0}+ \sigma_1\left(1\frac{T}{T_c}\right)^{n_1}+ \sigma_2\left(1\frac{T}{T_c}\right)^{n_2}\]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
sigma0 : float
First emperical coefficient of a fluid
n0 : float
First emperical exponent of a fluid
sigma1 : float, optional
Second emperical coefficient of a fluid.
n1 : float, optional
Second emperical exponent of a fluid.
sigma1 : float, optional
Third emperical coefficient of a fluid.
n2 : float, optional
Third emperical exponent of a fluid.
Returns: sigma : float
Liquid surface tension, N/m
Notes
Function as implemented in [R886910]. No example necessary; results match literature values perfectly. Form of function returns imaginary results when T > Tc; None is returned if this is the case.
References
[R886910] (1, 2, 3) Diky, Vladimir, Robert D. Chirico, Chris D. Muzny, Andrei F. Kazakov, Kenneth Kroenlein, Joseph W. Magee, Ilmutdin Abdulagatov, and Michael Frenkel. “ThermoData Engine (TDE): Software Implementation of the Dynamic Data Evaluation Concept.” Journal of Chemical Information and Modeling 53, no. 12 (2013): 341830. doi:10.1021/ci4005699. Examples
Parameters for water at 298.15 K
>>> REFPROP(298.15, 647.096, 0.1306, 2.471, 0.2151, 1.233) 0.07205503890847453

thermo.interface.
Somayajulu
(T, Tc, A, B, C)[source]¶ Calculates airwater surface tension using the [R887911] emperical (parameterregressed) method. Well regressed, no recent data.
\[\sigma=aX^{5/4}+bX^{9/4}+cX^{13/4} X=(T_cT)/T_c\]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
A : float
Regression parameter
B : float
Regression parameter
C : float
Regression parameter
Returns: sigma : float
Liquid surface tension, N/m
Notes
Presently untested, but matches expected values. Internal units are mN/m. Form of function returns imaginary results when T > Tc; None is returned if this is the case. Function is claimed valid from the triple to the critical point. Results can be evaluated beneath the triple point.
References
[R887911] (1, 2) Somayajulu, G. R. “A Generalized Equation for Surface Tension from the Triple Point to the Critical Point.” International Journal of Thermophysics 9, no. 4 (July 1988): 55966. doi:10.1007/BF00503154. Examples
Water at 300 K
>>> Somayajulu(300, 647.126, 232.713514, 140.18645, 4.890098) 0.07166386387996757

thermo.interface.
Jasper
(T, a, b)[source]¶ Calculates surface tension of a fluid given two parameters, a linear fit in Celcius from [R888912] with data reprinted in [R889912].
\[\sigma = a  bT\]Parameters: T : float
Temperature of fluid, [K]
a : float
Parameter for equation. Chemical specific.
b : float
Parameter for equation. Chemical specific.
Returns: sigma: float
Surface tension [N/m]
Notes
Internal units are mN/m, and degrees Celcius. This function has been checked against several references.
References
[R888912] (1, 2) Jasper, Joseph J. “The Surface Tension of Pure Liquid Compounds.” Journal of Physical and Chemical Reference Data 1, no. 4 (October 1, 1972): 8411010. doi:10.1063/1.3253106. [R889912] (1, 2) Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGrawHill Professional, 2005. Examples
>>> Jasper(298.15, 24, 0.0773) 0.0220675

thermo.interface.
Brock_Bird
(T, Tb, Tc, Pc)[source]¶ Calculates airwater surface tension using the [R890914] emperical method. Old and tested.
\[ \begin{align}\begin{aligned}\sigma = P_c^{2/3}T_c^{1/3}Q(1T_r)^{11/9}\\Q = 0.1196 \left[ 1 + \frac{T_{br}\ln (P_c/1.01325)}{1T_{br}}\right]0.279\end{aligned}\end{align} \]Parameters: T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns: sigma : float
Liquid surface tension, N/m
Notes
Numerous arrangements of this equation are available. This is DIPPR Procedure 7A: Method for the Surface Tension of Pure, Nonpolar, Nonhydrocarbon Liquids The exact equation is not in the original paper. If the equation yields a negative result, return None.
References
[R890914] (1, 2) Brock, James R., and R. Byron Bird. “Surface Tension and the Principle of Corresponding States.” AIChE Journal 1, no. 2 (June 1, 1955): 17477. doi:10.1002/aic.690010208 Examples
pdichloribenzene at 412.15 K, from DIPPR; value differs due to a slight difference in method.
>>> Brock_Bird(412.15, 447.3, 685, 3.952E6) 0.02208448325192495
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Brock_Bird(293.15, 404.75, 633.0, 4530000.0) 0.032985686413713036

thermo.interface.
Pitzer
(T, Tc, Pc, omega)[source]¶ Calculates airwater surface tension using the correlation derived by [R891915] from the works of [R892915] and [R893915]. Based on critical property CSP methods.
\[\sigma = P_c^{2/3}T_c^{1/3}\frac{1.86 + 1.18\omega}{19.05} \left[ \frac{3.75 + 0.91 \omega}{0.291  0.08 \omega}\right]^{2/3} (1T_r)^{11/9}\]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, []
Returns: sigma : float
Liquid surface tension, N/m
Notes
The source of this equation has not been reviewed. Internal units of presure are bar, surface tension of mN/m.
References
[R891915] (1, 2) Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGrawHill Professional, 2000. [R892915] (1, 2) Curl, R. F., and Kenneth Pitzer. “Volumetric and Thermodynamic Properties of FluidsEnthalpy, Free Energy, and Entropy.” Industrial & Engineering Chemistry 50, no. 2 (February 1, 1958): 26574. doi:10.1021/ie50578a047 [R893915] (1, 2) Pitzer, K. S.: Thermodynamics, 3d ed., New York, McGrawHill, 1995, p. 521. Examples
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Pitzer(293., 633.0, 4530000.0, 0.249) 0.03458453513446387

thermo.interface.
Sastri_Rao
(T, Tb, Tc, Pc, chemicaltype=None)[source]¶ Calculates airwater surface tension using the correlation derived by [R895919] based on critical property CSP methods and chemical classes.
\[\sigma = K P_c^xT_b^y T_c^z\left[\frac{1T_r}{1T_{br}}\right]^m\]Parameters: T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns: sigma : float
Liquid surface tension, N/m
Notes
The source of this equation has not been reviewed. Internal units of presure are bar, surface tension of mN/m.
References
[R895919] (1, 2) Sastri, S. R. S., and K. K. Rao. “A Simple Method to Predict Surface Tension of Organic Liquids.” The Chemical Engineering Journal and the Biochemical Engineering Journal 59, no. 2 (October 1995): 18186. doi:10.1016/09230467(94)029466. Examples
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Sastri_Rao(293.15, 404.75, 633.0, 4530000.0) 0.03234567739694441

thermo.interface.
Zuo_Stenby
(T, Tc, Pc, omega)[source]¶ Calculates airwater surface tension using the reference fluids methods of [R896920].
\[\sigma^{(1)} = 40.520(1T_r)^{1.287} \sigma^{(2)} = 52.095(1T_r)^{1.21548} \sigma_r = \sigma_r^{(1)}+ \frac{\omega  \omega^{(1)}} {\omega^{(2)}\omega^{(1)}} (\sigma_r^{(2)}\sigma_r^{(1)}) \sigma = T_c^{1/3}P_c^{2/3}[\exp{(\sigma_r)} 1]\]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, []
Returns: sigma : float
Liquid surface tension, N/m
Notes
Presently untested. Have not personally checked the sources. I strongly believe it is broken. The reference values for methane and noctane are from the DIPPR database.
References
[R896920] (1, 2) Zuo, YouXiang, and Erling H. Stenby. “CorrespondingStates and Parachor Models for the Calculation of Interfacial Tensions.” The Canadian Journal of Chemical Engineering 75, no. 6 (December 1, 1997): 113037. doi:10.1002/cjce.5450750617 Examples
Chlorobenzene
>>> Zuo_Stenby(293., 633.0, 4530000.0, 0.249) 0.03345569011871088

thermo.interface.
Hakim_Steinberg_Stiel
(T, Tc, Pc, omega, StielPolar=0)[source]¶ Calculates airwater surface tension using the reference fluids methods of [R897921].
\[ \begin{align}\begin{aligned}\sigma = 4.60104\times 10^{7} P_c^{2/3}T_c^{1/3}Q_p \left(\frac{1T_r}{0.4}\right)^m\\Q_p = 0.1574+0.359\omega1.769\chi13.69\chi^20.51\omega^2+1.298\omega\chi\\m = 1.21+0.5385\omega14.61\chi32.07\chi^21.65\omega^2+22.03\omega\chi\end{aligned}\end{align} \]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, []
StielPolar : float, optional
Stiel Polar Factor, []
Returns: sigma : float
Liquid surface tension, N/m
Notes
Original equation for m and Q are used. Internal units are atm and mN/m.
References
[R897921] (1, 2) Hakim, D. I., David Steinberg, and L. I. Stiel. “Generalized Relationship for the Surface Tension of Polar Fluids.” Industrial & Engineering Chemistry Fundamentals 10, no. 1 (February 1, 1971): 17475. doi:10.1021/i160037a032. Examples
1butanol, as compared to value in CRC Handbook of 0.02493.
>>> Hakim_Steinberg_Stiel(298.15, 563.0, 4414000.0, 0.59, StielPolar=0.07872) 0.021907902575190447

thermo.interface.
Miqueu
(T, Tc, Vc, omega)[source]¶ Calculates airwater surface tension using the methods of [R899923].
\[\sigma = k T_c \left( \frac{N_a}{V_c}\right)^{2/3} (4.35 + 4.14 \omega)t^{1.26}(1+0.19t^{0.5}  0.487t)\]Parameters: T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]
omega : float
Acentric factor for fluid, []
Returns: sigma : float
Liquid surface tension, N/m
Notes
Uses Avogadro’s constant and the Boltsman constant. Internal units of volume are mL/mol and mN/m. However, either a typo is in the article or author’s work, or my value of k is off by 10; this is corrected nonetheless. Created with 31 normal fluids, none polar or hydrogen bonded. Has an AARD of 3.5%.
References
[R899923] (1, 2) Miqueu, C, D Broseta, J Satherley, B Mendiboure, J Lachaise, and A Graciaa. “An Extended Scaled Equation for the Temperature Dependence of the Surface Tension of Pure Compounds Inferred from an Analysis of Experimental Data.” Fluid Phase Equilibria 172, no. 2 (July 5, 2000): 16982. doi:10.1016/S03783812(00)003848. Examples
Bromotrifluoromethane, 2.45 mN/m
>>> Miqueu(300., 340.1, 0.000199, 0.1687) 0.003474099603581931

thermo.interface.
Aleem
(T, MW, Tb, rhol, Hvap_Tb, Cpl)[source]¶ Calculates vaporliquid surface tension using the correlation derived by [R900924] based on critical property CSP methods.
\[ \begin{align}\begin{aligned}\sigma = \phi \frac{MW^{1/3}} {6N_A^{1/3}}\rho_l^{2/3}\left[H_{vap} + C_{p,l}(T_bT)\right]\\\phi = 1  0.0047MW + 6.8\times 10^{6} MW^2\end{aligned}\end{align} \]Parameters: T : float
Temperature of fluid [K]
MW : float
Molecular weight [g/mol]
Tb : float
Boiling temperature of the fluid [K]
rhol : float
Liquid density at T and P [kg/m^3]
Hvap_Tb : float
Mass enthalpy of vaporization at the normal boiling point [kg/m^3]
Cpl : float
Liquid heat capacity of the chemical at T [J/kg/K]
Returns: sigma : float
Liquidvapor surface tension [N/m]
Notes
Internal units of molecuar weight are kg/mol. This model is dimensionally consistent.
This model does not use the critical temperature. After it predicts a surface tension of 0 at a sufficiently high temperature, it returns negative results. The temperature at which this occurs (the “predicted” critical temperature) can be calculated as follows:
\[\sigma = 0 \to T_{c,predicted} \text{ at } T_b + \frac{H_{vap}}{Cp_l}\]Because of its dependence on density, it has the potential to model the effect of pressure on surface tension.
Claims AAD of 4.3%. Developed for normal alkanes. Total of 472 data points. Behaves worse for higher alkanes. Behaves very poorly overall.
References
[R900924] (1, 2) Aleem, W., N. Mellon, S. Sufian, M. I. A. Mutalib, and D. Subbarao. “A Model for the Estimation of Surface Tension of Pure Hydrocarbon Liquids.” Petroleum Science and Technology 33, no. 2324 (December 17, 2015): 190815. doi:10.1080/10916466.2015.1110593. Examples
Methane at 90 K
>>> Aleem(T=90, MW=16.04246, Tb=111.6, rhol=458.7, Hvap_Tb=510870., ... Cpl=2465.) 0.01669970221165325

thermo.interface.
surface_tension_methods
= ['REFPROP', 'SOMAYAJULU2', 'SOMAYAJULU', 'VDI_PPDS', 'VDI_TABULAR', 'JASPER', 'MIQUEU', 'BROCK_BIRD', 'SASTRI_RAO', 'PITZER', 'ZUO_STENBY', 'Aleem']¶ Holds all methods available for the SurfaceTension class, for use in iterating over them.

class
thermo.interface.
SurfaceTension
(MW=None, Tb=None, Tc=None, Pc=None, Vc=None, Zc=None, omega=None, StielPolar=None, Hvap_Tb=None, CASRN='', Vml=None, Cpl=None)[source]¶ Bases:
thermo.utils.TDependentProperty
Class for dealing with surface tension as a function of temperature. Consists of three coefficientbased methods and four data sources, one source of tabular information, and five correspondingstates estimators.
Parameters: Tb : float, optional
Boiling point, [K]
MW : float, optional
Molecular weight, [g/mol]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
Zc : float, optional
Critical compressibility
omega : float, optional
Acentric factor, []
StielPolar : float, optional
Stiel polar factor
Hvap_Tb : float
Mass enthalpy of vaporization at the normal boiling point [kg/m^3]
CASRN : str, optional
The CAS number of the chemical
Vml : float or callable, optional
Liquid molar volume at a given temperature and pressure or callable for the same, [m^3/mol]
Cpl : float or callable, optional
Mass heat capacity of the fluid at a pressure and temperature or or callable for the same, [J/kg/K]
See also
REFPROP
,Somayajulu
,Jasper
,Brock_Bird
,Sastri_Rao
,Pitzer
,Zuo_Stenby
,Miqueu
,Aleem
Notes
To iterate over all methods, use the list stored in
surface_tension_methods
. STREFPROP:
 The REFPROP coefficientbased method, documented in the function
REFPROP
for 115 fluids from [R905925].  SOMAYAJULU and SOMAYAJULU2:
 The Somayajulu coefficientbased method,
documented in the function
Somayajulu
. Both methods have data for 64 fluids. The first data set if from [R901925], and the second from [R902925]. The later, revised coefficients should be used prefered.  JASPER:
 Fit with a single temperature coefficient from Jaspen (1972)
as documented in the function
Jasper
. Data for 522 fluids is available, as shown in [R904925] but originally in [R903925].  BROCK_BIRD:
 CSP method documented in
Brock_Bird
. Most popular estimation method; from 1955.  SASTRI_RAO:
 CSP method documented in
Sastri_Rao
. Second most popular estimation method; from 1995.  PITZER:
 CSP method documented in
Pitzer
; from 1958.  ZUO_STENBY:
 CSP method documented in
Zuo_Stenby
; from 1997.  MIQUEU:
 CSP method documented in
Miqueu
.  ALEEM:
 CSP method documented in
Aleem
.  VDI_TABULAR:
 Tabular data in [R906925] along the saturation curve; interpolation is as set by the user or the default.
References
[R901925] (1, 2) Somayajulu, G. R. “A Generalized Equation for Surface Tension from the Triple Point to the Critical Point.” International Journal of Thermophysics 9, no. 4 (July 1988): 55966. doi:10.1007/BF00503154. [R902925] (1, 2) Mulero, A., M. I. Parra, and I. Cachadina. “The Somayajulu Correlation for the Surface Tension Revisited.” Fluid Phase Equilibria 339 (February 15, 2013): 8188. doi:10.1016/j.fluid.2012.11.038. [R903925] (1, 2) Jasper, Joseph J. “The Surface Tension of Pure Liquid Compounds.” Journal of Physical and Chemical Reference Data 1, no. 4 (October 1, 1972): 8411010. doi:10.1063/1.3253106. [R904925] (1, 2) Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGrawHill Professional, 2005. [R905925] (1, 2) Mulero, A., I. Cachadiña, and M. I. Parra. “Recommended Correlations for the Surface Tension of Common Fluids.” Journal of Physical and Chemical Reference Data 41, no. 4 (December 1, 2012): 043105. doi:10.1063/1.4768782. [R906925] (1, 2) Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. 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 surface tension 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. 
Tmax
= None¶ Maximum temperature at which no method can calculate the surface tension above.

Tmin
= None¶ Minimum temperature at which no method can calculate the surface tension under.

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

calculate
(T, method)[source]¶ Method to calculate surface tension 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 surface tension, [K]
method : str
Name of the method to use
Returns: sigma : float
Surface tension of the liquid at T, [N/m]

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
, andall_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
= 'Surface tension'¶

property_max
= 4.0¶ Maximum valid value of surface tension. Set to roughly twice that of cobalt at its melting point.

property_min
= 0¶ Mimimum valid value of surface tension. This occurs at the critical point exactly.

ranked_methods
= ['REFPROP', 'SOMAYAJULU2', 'SOMAYAJULU', 'VDI_PPDS', 'VDI_TABULAR', 'JASPER', 'MIQUEU', 'BROCK_BIRD', 'SASTRI_RAO', 'PITZER', 'ZUO_STENBY', 'Aleem']¶ 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. Follows the given ranges for all coefficientbased 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: T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns: validity : bool
Whether or not a method is valid

units
= 'N/m'¶

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.interface.
Winterfeld_Scriven_Davis
(xs, sigmas, rhoms)[source]¶ Calculates surface tension of a liquid mixture according to mixing rules in [R907931] and also in [R908931].
\[\sigma_M = \sum_i \sum_j \frac{1}{V_L^{L2}}\left(x_i V_i \right) \left( x_jV_j\right)\sqrt{\sigma_i\cdot \sigma_j}\]Parameters: xs : arraylike
Mole fractions of all components, []
sigmas : arraylike
Surface tensions of all components, [N/m]
rhoms : arraylike
Molar densities of all components, [mol/m^3]
Returns: sigma : float
Airliquid surface tension of mixture, [N/m]
Notes
DIPPR Procedure 7C: Method for the Surface Tension of Nonaqueous Liquid Mixtures
Becomes less accurate as liquidliquid critical solution temperature is approached. DIPPR Evaluation: 34% AARD, from 107 nonaqueous binary systems, 1284 points. Internally, densities are converted to kmol/m^3. The Amgat function is used to obtain liquid mixture density in this equation.
Raises a ZeroDivisionError if either molar volume are zero, and a ValueError if a surface tensions of a pure component is negative.
References
[R907931] (1, 2) Winterfeld, P. H., L. E. Scriven, and H. T. Davis. “An Approximate Theory of Interfacial Tensions of Multicomponent Systems: Applications to Binary LiquidVapor Tensions.” AIChE Journal 24, no. 6 (November 1, 1978): 101014. doi:10.1002/aic.690240610. [R908931] (1, 2) Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical Process Design Data. New York, N.Y, 1982. Examples
>>> Winterfeld_Scriven_Davis([0.1606, 0.8394], [0.01547, 0.02877], ... [8610., 15530.]) 0.024967388450439824

thermo.interface.
Diguilio_Teja
(T, xs, sigmas_Tb, Tbs, Tcs)[source]¶ Calculates surface tension of a liquid mixture according to mixing rules in [R909933].
\[ \begin{align}\begin{aligned}\sigma = 1.002855(T^*)^{1.118091} \frac{T}{T_b} \sigma_r\\T^* = \frac{(T_c/T)1}{(T_c/T_b)1}\\\sigma_r = \sum x_i \sigma_i\\T_b = \sum x_i T_{b,i}\\T_c = \sum x_i T_{c,i}\end{aligned}\end{align} \]Parameters: T : float
Temperature of fluid [K]
xs : arraylike
Mole fractions of all components
sigmas_Tb : arraylike
Surface tensions of all components at the boiling point, [N/m]
Tbs : arraylike
Boiling temperatures of all components, [K]
Tcs : arraylike
Critical temperatures of all components, [K]
Returns: sigma : float
Airliquid surface tension of mixture, [N/m]
Notes
Simple model, however it has 0 citations. Gives similar results to the Winterfeld_Scriven_Davis model.
Raises a ValueError if temperature is greater than the mixture’s critical temperature or if the given temperature is negative, or if the mixture’s boiling temperature is higher than its critical temperature.
[R909933] claims a 4.63 percent average absolute error on 21 binary and 4 ternary nonaqueous systems. [R909933] also considered Van der Waals mixing rules for Tc, but found it provided a higher error of 5.58%
References
[R909933] (1, 2, 3, 4) Diguilio, Ralph, and Amyn S. Teja. “Correlation and Prediction of the Surface Tensions of Mixtures.” The Chemical Engineering Journal 38, no. 3 (July 1988): 2058. doi:10.1016/03009467(88)800790. Examples
>>> Diguilio_Teja(T=298.15, xs=[0.1606, 0.8394], ... sigmas_Tb=[0.01424, 0.02530], Tbs=[309.21, 312.95], Tcs=[469.7, 508.0]) 0.025716823875045505

class
thermo.interface.
SurfaceTensionMixture
(MWs=[], Tbs=[], Tcs=[], CASs=[], SurfaceTensions=[], VolumeLiquids=[])[source]¶ Bases:
thermo.utils.MixtureProperty
Class for dealing with surface tension of a mixture as a function of temperature, pressure, and composition. Consists of two mixing rules specific to surface tension, and mole weighted averaging.
Prefered method is
Winterfeld_Scriven_Davis
which requires mole fractions, pure component surface tensions, and the molar density of each pure component.Diguilio_Teja
is of similar accuracy, but requires the surface tensions of pure components at their boiling points, as well as boiling points and critical points and mole fractions. An ideal mixing rule based on mole fractions, SIMPLE, is also available and is still relatively accurate.Parameters: MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
Tbs : list[float], optional
Boiling points of all species in the mixture, [K]
Tcs : list[float], optional
Critical temperatures of all species in the mixture, [K]
CASs : list[str], optional
The CAS numbers of all species in the mixture
SurfaceTensions : list[SurfaceTension], optional
SurfaceTension objects created for all species in the mixture, normally created by
thermo.chemical.Chemical
.VolumeLiquids : list[VolumeLiquid], optional
VolumeLiquid objects created for all species in the mixture, normally created by
thermo.chemical.Chemical
.See also
Notes
To iterate over all methods, use the list stored in
surface_tension_mixture_methods
. WINTERFELDSCRIVENDAVIS:
 Mixing rule described in
Winterfeld_Scriven_Davis
.  DIGUILIOTEJA:
 Mixing rule described in
Diguilio_Teja
.  SIMPLE:
 Mixing rule described in
thermo.utils.mixing_simple
.
References
[R910934] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGrawHill Professional, 2000. Attributes
method prop_cached Methods
__call__
(T, P, zs, ws)Convenience method to calculate the property; calls mixture_property
.calculate
(T, P, zs, ws, method)Method to calculate surface tension of a liquid mixture at temperature T, pressure P, mole fractions zs and weight fractions ws with a given method. calculate_derivative_P
(P, T, zs, ws, method)Method to calculate a derivative of a mixture property with respect to pressure at constant temperature and composition of a given order using a specified method. calculate_derivative_T
(T, P, zs, ws, method)Method to calculate a derivative of a mixture property with respect to temperature at constant pressure and composition of a given order using a specified method. load_all_methods
()Method to initialize the object by precomputing any values which may be used repeatedly and by retrieving mixturespecific variables. mixture_property
(T, P, zs, ws)Method to calculate the property with sanity checking and without specifying a specific method. plot_isobar
(P, zs, ws[, Tmin, Tmax, ...])Method to create a plot of the property vs temperature at a specific pressure and composition according to either a specified list of methods, or user methods (if set), or all methods. plot_isotherm
(T, zs, ws[, Pmin, Pmax, ...])Method to create a plot of the property vs pressure at a specified temperature and composition according to either a specified list of methods, or the user methods (if set), or all methods. plot_property
(zs, ws[, Tmin, Tmax, Pmin, ...])Method to create a plot of the property vs temperature and pressure according to either a specified list of methods, or user methods (if set), or all methods. property_derivative_P
(T, P, zs, ws[, order])Method to calculate a derivative of a mixture property with respect to pressure at constant temperature and composition, of a given order. property_derivative_T
(T, P, zs, ws[, order])Method to calculate a derivative of a mixture property with respect to temperature at constant pressure and composition, of a given order. select_valid_methods
(T, P, zs, ws)Method to obtain a sorted list of methods which are valid at T, P, zs, ws, and possibly Vfls, according to test_method_validity. set_user_method
(user_methods[, forced])Method to set the T, P, and composition dependent property methods desired for consideration by the user. test_method_validity
(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. test_property_validity
(prop)Method to test the validity of a calculated property. 
Tmax
= None¶ Maximum temperature at which no method can calculate the surface tension above.

Tmin
= None¶ Minimum temperature at which no method can calculate the surface tension under.

all_methods
= None¶ Set of all methods available for a given set of information; filled by
load_all_methods
.

calculate
(T, P, zs, ws, method)[source]¶ Method to calculate surface tension of a liquid mixture at temperature T, pressure P, mole fractions zs and weight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters: T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, []
ws : list[float]
Weight fractions of all species in the mixture, []
method : str
Name of the method to use
Returns: sigma : float
Surface tension of the liquid at given conditions, [N/m]

load_all_methods
()[source]¶ Method to initialize the object by precomputing any values which may be used repeatedly and by retrieving mixturespecific variables. All data are stored as attributes. This method also sets
Tmin
,Tmax
, andall_methods
as a set of methods which should work to calculate the property.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
= 'Surface tension'¶

property_max
= 4.0¶ Maximum valid value of surface tension. Set to roughly twice that of cobalt at its melting point.

property_min
= 0¶ Mimimum valid value of surface tension. This occurs at the critical point exactly.

ranked_methods
= ['Winterfeld, Scriven, and Davis (1978)', 'Diguilio and Teja (1988)', 'Simple']¶

sorted_valid_methods
= None¶ sorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mixture_property.

test_method_validity
(T, P, zs, ws, method)[source]¶ Method to test the validity of a specified method for the given conditions. No methods have implemented checks or strict ranges of validity.
Parameters: T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, []
ws : list[float]
Weight fractions of all species in the mixture, []
method : str
Method name to use
Returns: validity : bool
Whether or not a specifid method is valid

units
= 'N/m'¶

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