Interfacial/Surface Tension (thermo.interface)

This module contains implementations of TDependentProperty representing liquid-air surface tension. A variety of estimation and data methods are available as included in the chemicals library. Additionally a liquid mixture surface tension predictor objects are implemented subclassing MixtureProperty.

For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker.

Pure Liquid Surface Tension

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, extrapolation='DIPPR106_AB', **kwargs)[source]

Bases: thermo.utils.t_dependent_property.TDependentProperty

Class for dealing with surface tension as a function of temperature. Consists of three coefficient-based methods and four data sources, one source of tabular information, five corresponding-states estimators, and one substance-specific method.

Parameters
Tbfloat, optional

Boiling point, [K]

MWfloat, optional

Molecular weight, [g/mol]

Tcfloat, optional

Critical temperature, [K]

Pcfloat, optional

Critical pressure, [Pa]

Vcfloat, optional

Critical volume, [m^3/mol]

Zcfloat, optional

Critical compressibility

omegafloat, optional

Acentric factor, [-]

StielPolarfloat, optional

Stiel polar factor

Hvap_Tbfloat

Mass enthalpy of vaporization at the normal boiling point [kg/m^3]

CASRNstr, optional

The CAS number of the chemical

Vmlfloat or callable, optional

Liquid molar volume at a given temperature and pressure or callable for the same, [m^3/mol]

Cplfloat or callable, optional

Molar heat capacity of the fluid at a pressure and temperature or or callable for the same, [J/mol/K]

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 surface_tension_methods.

IAPWS:

The IAPWS formulation for water, REFPROP_sigma

STREFPROP:

The REFPROP coefficient-based method, documented in the function REFPROP_sigma for 115 fluids from [5].

SOMAYAJULU and SOMAYAJULU2:

The Somayajulu coefficient-based method, documented in the function Somayajulu. Both methods have data for 64 fluids. The first data set if from [1], and the second from [2]. 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 [4] but originally in [3].

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_sigma; 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 [6] along the saturation curve; interpolation is as set by the user or the default.

REFPROP_FIT:

A series of higher-order polynomial fits to the calculated results from the equations implemented in REFPROP.

References

1

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): 559-66. doi:10.1007/BF00503154.

2

Mulero, A., M. I. Parra, and I. Cachadina. “The Somayajulu Correlation for the Surface Tension Revisited.” Fluid Phase Equilibria 339 (February 15, 2013): 81-88. doi:10.1016/j.fluid.2012.11.038.

3

Jasper, Joseph J. “The Surface Tension of Pure Liquid Compounds.” Journal of Physical and Chemical Reference Data 1, no. 4 (October 1, 1972): 841-1010. doi:10.1063/1.3253106.

4

Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.

5

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.

6

Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.

Methods

calculate(T, method)

Method to calculate surface tension of a liquid 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 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
Tfloat

Temperature at which to calculate surface tension, [K]

methodstr

Name of the method to use

Returns
sigmafloat

Surface tension of the liquid at T, [N/m]

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 = ['IAPWS', 'REFPROP_FIT', 'REFPROP', 'SOMAYAJULU2', 'SOMAYAJULU', 'VDI_PPDS', 'VDI_TABULAR', 'JASPER', 'MIQUEU', 'BROCK_BIRD', 'SASTRI_RAO', 'PITZER', 'ZUO_STENBY', 'Aleem']

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 = 'N/m'
thermo.interface.surface_tension_methods = ['IAPWS', 'REFPROP_FIT', '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.

Mixture Surface Tension

class thermo.interface.SurfaceTensionMixture(MWs=[], Tbs=[], Tcs=[], CASs=[], SurfaceTensions=[], VolumeLiquids=[], correct_pressure_pure=False, **kwargs)[source]

Bases: thermo.utils.mixture_property.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, LINEAR, is also available and is still relatively accurate.

Parameters
MWslist[float], optional

Molecular weights of all species in the mixture, [g/mol]

Tbslist[float], optional

Boiling points of all species in the mixture, [K]

Tcslist[float], optional

Critical temperatures of all species in the mixture, [K]

CASslist[str], optional

The CAS numbers of all species in the mixture, [-]

SurfaceTensionslist[SurfaceTension], optional

SurfaceTension objects created for all species in the mixture [-]

VolumeLiquidslist[VolumeLiquid], optional

VolumeLiquid objects created for all species in the mixture [-]

correct_pressure_purebool, optional

Whether to try to use the better pressure-corrected pure component models or to use only the T-only dependent pure species models, [-]

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.

LINEAR:

Mixing rule described in mixing_simple.

References

1

Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.

Methods

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.

test_method_validity(T, P, zs, ws, method)

Method to test the validity of a specified method for the given conditions.

Tmax

Maximum temperature at which no method can calculate the property above.

Tmin

Minimum temperature at which no method can calculate the property under.

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
Tfloat

Temperature at which to calculate the property, [K]

Pfloat

Pressure at which to calculate the property, [Pa]

zslist[float]

Mole fractions of all species in the mixture, [-]

wslist[float]

Weight fractions of all species in the mixture, [-]

methodstr

Name of the method to use

Returns
sigmafloat

Surface tension of the liquid at given conditions, [N/m]

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)', 'LINEAR']
test_method_validity(T, P, zs, ws, method)[source]

Method to test the validity of a specified method for the given conditions.

Parameters
Tfloat

Temperature at which to check method validity, [K]

Pfloat

Pressure at which to check method validity, [Pa]

zslist[float]

Mole fractions of all species in the mixture, [-]

wslist[float]

Weight fractions of all species in the mixture, [-]

methodstr

Method name to use

Returns
validitybool

Whether or not a specifid method is valid

units = 'N/m'
thermo.interface.surface_tension_mixture_methods = ['Winterfeld, Scriven, and Davis (1978)', 'Diguilio and Teja (1988)', 'LINEAR']

Holds all methods available for the SurfaceTensionMixture class, for use in iterating over them.