Density/Volume (thermo.volume)¶
This module contains implementations of TDependentProperty
representing liquid, vapor, and solid volume. A variety of estimation
and data methods are available as included in the chemicals library.
Additionally liquid, vapor, and solid mixture volume predictor objects
are implemented subclassing MixtureProperty
.
For reporting bugs, adding feature requests, or submitting pull requests, please use the GitHub issue tracker.
Pure Liquid Volume¶
- class thermo.volume.VolumeLiquid(MW=None, Tb=None, Tc=None, Pc=None, Vc=None, Zc=None, omega=None, dipole=None, Psat=None, CASRN='', eos=None, has_hydroxyl=None, extrapolation='constant', **kwargs)[source]¶
Bases:
thermo.utils.tp_dependent_property.TPDependentProperty
Class for dealing with liquid molar volume as a function of temperature and pressure.
For low-pressure (at 1 atm while under the vapor pressure; along the saturation line otherwise) liquids, there are six coefficient-based methods from five data sources, one source of tabular information, one source of constant values, eight corresponding-states estimators, the external library CoolProp and the equation of state.
For high-pressure liquids (also, <1 atm liquids), there is one corresponding-states estimator, and the external library CoolProp.
- Parameters
- CASRNstr, optional
The CAS number of the chemical
- MWfloat, optional
Molecular weight, [g/mol]
- Tbfloat, optional
Boiling point, [K]
- 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, [-]
- dipolefloat, optional
Dipole, [debye]
- Psatfloat or callable, optional
Vapor pressure at a given temperature, or callable for the same [Pa]
- 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 [-]
- 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.volume.Yen_Woods_saturation
chemicals.volume.Rackett
chemicals.volume.Yamada_Gunn
chemicals.volume.Townsend_Hales
chemicals.volume.Bhirud_normal
chemicals.volume.COSTALD
chemicals.volume.Campbell_Thodos
chemicals.volume.SNM0
chemicals.volume.CRC_inorganic
chemicals.volume.COSTALD_compressed
Notes
A string holding each method’s name is assigned to the following variables in this module, intended as the most convenient way to refer to a method. To iterate over all methods, use the lists stored in
volume_liquid_methods
andvolume_liquid_methods_P
for low and high pressure methods respectively.Low pressure methods:
- DIPPR_PERRY_8E:
A simple polynomial as expressed in [1], with data available for 344 fluids. Temperature limits are available for all fluids. Believed very accurate.
- VDI_PPDS:
Coefficients for a equation form developed by the PPDS (
EQ116
in terms of mass density), published openly in [3]. Valid up to the critical temperature, and extrapolates to very low temperatures well.- MMSNM0FIT:
Uses a fit coefficient for better accuracy in the
SNM0
method, Coefficients available for 73 fluids from [2]. Valid to the critical point.- HTCOSTALDFIT:
A method with two fit coefficients to the
COSTALD
method. Coefficients available for 192 fluids, from [3]. Valid to the critical point.- RACKETTFIT:
The
Rackett
method, with a fit coefficient Z_RA. Data is available for 186 fluids, from [3]. Valid to the critical point.- CRC_INORG_L:
Single-temperature coefficient linear model in terms of mass density for the density of inorganic liquids; converted to molar units internally. Data is available for 177 fluids normally valid over a narrow range above the melting point, from [4]; described in
CRC_inorganic
.- MMSNM0:
CSP method, described in
SNM0
.- HTCOSTALD:
CSP method, described in
COSTALD
.- YEN_WOODS_SAT:
CSP method, described in
Yen_Woods_saturation
.- RACKETT:
CSP method, described in
Rackett
.- YAMADA_GUNN:
CSP method, described in
Yamada_Gunn
.- BHIRUD_NORMAL:
CSP method, described in
Bhirud_normal
.- TOWNSEND_HALES:
CSP method, described in
Townsend_Hales
.- CAMPBELL_THODOS:
CSP method, described in
Campbell_Thodos
.- 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 [5]. Very slow.
- CRC_INORG_L_CONST:
Constant inorganic liquid densities, in [4].
- VDI_TABULAR:
Tabular data in [6] along the saturation curve; interpolation is as set by the user or the default.
- EOS:
Equation of state provided by user.
High pressure methods:
- COSTALD_COMPRESSED:
CSP method, described in
COSTALD_compressed
. Calculates a low-pressure molar volume first, usingT_dependent_property
.- 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 [5]. Very slow, but unparalled in accuracy for pressure dependence.
- EOS:
Equation of state provided by user.
References
- 1
Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, 8E. McGraw-Hill Professional, 2007.
- 2
Mchaweh, A., A. Alsaygh, Kh. Nasrifar, and M. Moshfeghian. “A Simplified Method for Calculating Saturated Liquid Densities.” Fluid Phase Equilibria 224, no. 2 (October 1, 2004): 157-67. doi:10.1016/j.fluid.2004.06.054
- 3(1,2,3)
Hankinson, Risdon W., and George H. Thomson. “A New Correlation for Saturated Densities of Liquids and Their Mixtures.” AIChE Journal 25, no. 4 (1979): 653-663. doi:10.1002/aic.690250412
- 4(1,2)
Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014.
- 5(1,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/
- 6
Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
- Attributes
Methods
calculate
(T, method)Method to calculate low-pressure liquid molar volume at tempearture T with a given method.
calculate_P
(T, P, method)Method to calculate pressure-dependent liquid molar volume at temperature T and pressure P with a given method.
test_method_validity
(T, method)Method to check the validity of a method.
test_method_validity_P
(T, P, method)Method to check the validity of a high-pressure method.
- property Tmax¶
Maximum temperature (K) at which the current method can calculate the property.
- property Tmin¶
Minimum temperature (K) at which the current method can calculate the property.
- calculate(T, method)[source]¶
Method to calculate low-pressure liquid molar volume at tempearture T with a given method.
This method has no exception handling; see
T_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate molar volume, [K]
- methodstr
Name of the method to use
- Returns
- Vmfloat
Molar volume of the liquid at T and a low pressure, [m^3/mol]
- calculate_P(T, P, method)[source]¶
Method to calculate pressure-dependent liquid molar volume at temperature T and pressure P with a given method.
This method has no exception handling; see
TP_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate molar volume, [K]
- Pfloat
Pressure at which to calculate molar volume, [K]
- methodstr
Name of the method to use
- Returns
- Vmfloat
Molar volume of the liquid at T and P, [m^3/mol]
- name = 'Liquid molar volume'¶
- property_max = 0.002¶
Maximum valid value of liquid molar volume. Generous limit.
- property_min = 0¶
Mimimum valid value of liquid molar volume. It should normally occur at the triple point, and be well above this.
- ranked_methods = ['DIPPR_PERRY_8E', 'VDI_PPDS', 'COOLPROP', 'MMSNM0FIT', 'VDI_TABULAR', 'HTCOSTALDFIT', 'RACKETTFIT', 'CRC_INORG_L', 'CRC_INORG_L_CONST', 'COMMON_CHEMISTRY', 'MMSNM0', 'HTCOSTALD', 'YEN_WOODS_SAT', 'RACKETT', 'YAMADA_GUNN', 'BHIRUD_NORMAL', 'TOWNSEND_HALES', 'CAMPBELL_THODOS', 'EOS']¶
Default rankings of the low-pressure methods.
- ranked_methods_P = ['COOLPROP', 'COSTALD_COMPRESSED', 'EOS']¶
Default rankings of the high-pressure 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.
BHIRUD_NORMAL behaves poorly at low temperatures and is not used under 0.35Tc. The constant value available for inorganic chemicals, from method CRC_INORG_L_CONST, is considered valid for all temperatures.
- 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
- test_method_validity_P(T, P, method)[source]¶
Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both a liquid and under the maximum pressure of the fluid’s EOS. COSTALD_COMPRESSED is considered valid for all values of temperature and pressure. However, it very often will not actually work, due to the form of the polynomial in terms of Tr, the result of which is raised to a negative power. 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 and pressures.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]
- Pfloat
Pressure at which to test the method, [Pa]
- methodstr
Name of the method to test
- Returns
- validitybool
Whether or not a method is valid
- units = 'm^3/mol'¶
- thermo.volume.volume_liquid_methods = ['DIPPR_PERRY_8E', 'VDI_PPDS', 'COOLPROP', 'MMSNM0FIT', 'VDI_TABULAR', 'HTCOSTALDFIT', 'RACKETTFIT', 'CRC_INORG_L', 'CRC_INORG_L_CONST', 'COMMON_CHEMISTRY', 'MMSNM0', 'HTCOSTALD', 'YEN_WOODS_SAT', 'RACKETT', 'YAMADA_GUNN', 'BHIRUD_NORMAL', 'TOWNSEND_HALES', 'CAMPBELL_THODOS', 'EOS']¶
Holds all low-pressure methods available for the
VolumeLiquid
class, for use in iterating over them.
- thermo.volume.volume_liquid_methods_P = ['COOLPROP', 'COSTALD_COMPRESSED', 'EOS']¶
Holds all high-pressure methods available for the
VolumeLiquid
class, for use in iterating over them.
Pure Gas Volume¶
- class thermo.volume.VolumeGas(CASRN='', MW=None, Tc=None, Pc=None, omega=None, dipole=None, eos=None, extrapolation=None, **kwargs)[source]¶
Bases:
thermo.utils.tp_dependent_property.TPDependentProperty
Class for dealing with gas molar volume as a function of temperature and pressure.
All considered methods are both temperature and pressure dependent. Included are four CSP methods for calculating second virial coefficients, one source of polynomials for calculating second virial coefficients, one equation of state (Peng-Robinson), and the ideal gas law.
- Parameters
- CASRNstr, optional
The CAS number of the chemical
- MWfloat, optional
Molecular weight, [g/mol]
- Tcfloat, optional
Critical temperature, [K]
- Pcfloat, optional
Critical pressure, [Pa]
- omegafloat, optional
Acentric factor, [-]
- dipolefloat, optional
Dipole, [debye]
- 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
A string holding each method’s name is assigned to the following variables in this module, intended as the most convenient way to refer to a method. To iterate over all methods, use the list stored in
volume_gas_methods
.- PR:
Peng-Robinson Equation of State. See the appropriate module for more information.
- CRC_VIRIAL:
Short polynomials, for 105 fluids from [1]. The full expression is:
\[B = \sum_1^4 a_i\left[T_0/298.15-1\right]^{i-1} \]- TSONOPOULOS_EXTENDED:
CSP method for second virial coefficients, described in
chemicals.virial.BVirial_Tsonopoulos_extended
- TSONOPOULOS:
CSP method for second virial coefficients, described in
chemicals.virial.BVirial_Tsonopoulos
- ABBOTT:
CSP method for second virial coefficients, described in
chemicals.virial.BVirial_Abbott
. This method is the simplest CSP method implemented.- PITZER_CURL:
CSP method for second virial coefficients, described in
chemicals.virial.BVirial_Pitzer_Curl
.- 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 [2]. Very slow, but unparalled in accuracy for pressure dependence.
References
- 1
Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014.
- 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/
- Attributes
Methods
calculate
(T, method)Method to calculate a property with a specified method, with no validity checking or error handling.
calculate_P
(T, P, method)Method to calculate pressure-dependent gas molar volume at temperature T and pressure P with a given method.
test_method_validity
(T, method)Method to test the validity of a specified method for a given temperature.
test_method_validity_P
(T, P, method)Method to check the validity of a pressure and temperature dependent gas molar volume method.
- property Tmax¶
Maximum temperature (K) at which the current method can calculate the property.
- property Tmin¶
Minimum temperature (K) at which the current method can calculate the property.
- calculate(T, method)¶
Method to calculate a property with a specified method, with no validity checking or error handling. Demo function for testing only; must be implemented according to the methods available for each individual method. Include the interpolation call here.
- Parameters
- Tfloat
Temperature at which to calculate the property, [K]
- methodstr
Method name to use
- Returns
- propfloat
Calculated property, [units]
- calculate_P(T, P, method)[source]¶
Method to calculate pressure-dependent gas molar volume at temperature T and pressure P with a given method.
This method has no exception handling; see
TP_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate molar volume, [K]
- Pfloat
Pressure at which to calculate molar volume, [K]
- methodstr
Name of the method to use
- Returns
- Vmfloat
Molar volume of the gas at T and P, [m^3/mol]
- name = 'Gas molar volume'¶
- property_max = 10000000000.0¶
Maximum valid value of gas molar volume. Set roughly at an ideal gas at 1 Pa and 2 billion K.
- property_min = 0¶
Mimimum valid value of gas molar volume. It should normally be well above this.
- ranked_methods = []¶
Default rankings of the low-pressure methods.
- ranked_methods_P = ['COOLPROP', 'EOS', 'TSONOPOULOS_EXTENDED', 'TSONOPOULOS', 'ABBOTT', 'PITZER_CURL', 'CRC_VIRIAL', 'IDEAL']¶
Default rankings of the pressure-dependent methods.
- test_method_validity(T, method)¶
Method to test the validity of a specified method for a given temperature. Demo function for testing only; must be implemented according to the methods available for each individual method. Include the interpolation check here.
- Parameters
- Tfloat
Temperature at which to determine the validity of the method, [K]
- methodstr
Method name to use
- Returns
- validitybool
Whether or not a specifid method is valid
- test_method_validity_P(T, P, method)[source]¶
Method to check the validity of a pressure and temperature dependent gas molar volume method. For the four CSP methods that calculate second virial coefficient, the method is considered valid for all temperatures and pressures, with validity checking based on the result only. For CRC_VIRIAL, there is no limit but there should be one; at some conditions, a negative volume will result! For COOLPROP, the fluid must be both a gas at the given conditions and under the maximum pressure of the fluid’s EOS.
For the equation of state PR, the determined phase must be a gas. For IDEAL, there are no limits.
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 and pressures.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]
- Pfloat
Pressure at which to test the method, [Pa]
- methodstr
Name of the method to test
- Returns
- validitybool
Whether or not a method is valid
- units = 'm^3/mol'¶
Pure Solid Volume¶
- class thermo.volume.VolumeSolid(CASRN='', MW=None, Tt=None, Vml_Tt=None, extrapolation='linear', **kwargs)[source]¶
Bases:
thermo.utils.t_dependent_property.TDependentProperty
Class for dealing with solid molar volume as a function of temperature. Consists of one constant value source, and one simple estimator based on liquid molar volume.
- Parameters
- CASRNstr, optional
CAS number
- MWfloat, optional
Molecular weight, [g/mol]
- Ttfloat, optional
Triple temperature
- Vml_Ttfloat, optional
Liquid molar volume at the triple point
- 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
A string holding each method’s name is assigned to the following variables in this module, intended as the most convenient way to refer to a method. To iterate over all methods, use the list stored in
volume_solid_methods
.- CRC_INORG_S:
Constant values in [1], for 1872 chemicals.
- GOODMAN:
Simple method using the liquid molar volume. Good up to 0.3*Tt. See
Goodman
for details.
References
- 1
Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014.
Methods
calculate
(T, method)Method to calculate the molar volume of a solid at tempearture 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 the molar volume of a solid at tempearture T with a given method.
This method has no exception handling; see
T_dependent_property
for that.- Parameters
- Tfloat
Temperature at which to calculate molar volume, [K]
- methodstr
Name of the method to use
- Returns
- Vmsfloat
Molar volume of the solid at T, [m^3/mol]
- name = 'Solid molar volume'¶
- property_max = 0.002¶
Maximum value of Heat capacity; arbitrarily set to 0.002, as the largest in the data is 0.00136.
- property_min = 0.0¶
Molar volume cannot be under 0.
- ranked_methods = ['CRC_INORG_S', 'GOODMAN']¶
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 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 = 'm^3/mol'¶
- thermo.volume.volume_solid_methods = ['GOODMAN', 'CRC_INORG_S']¶
Holds all methods available for the
VolumeSolid
class, for use in iterating over them.
Mixture Liquid Volume¶
- class thermo.volume.VolumeLiquidMixture(MWs=[], Tcs=[], Pcs=[], Vcs=[], Zcs=[], omegas=[], CASs=[], VolumeLiquids=[], **kwargs)[source]¶
Bases:
thermo.utils.mixture_property.MixtureProperty
Class for dealing with the molar volume of a liquid mixture as a function of temperature, pressure, and composition. Consists of one electrolyte-specific method, four corresponding states methods which do not use pure-component volumes, and one mole-weighted averaging method.
Prefered method is LINEAR, or LALIBERTE if the mixture is aqueous and has electrolytes.
- Parameters
- MWslist[float], optional
Molecular weights of all species in the mixture, [g/mol]
- Tcslist[float], optional
Critical temperatures of all species in the mixture, [K]
- Pcslist[float], optional
Critical pressures of all species in the mixture, [Pa]
- Vcslist[float], optional
Critical molar volumes of all species in the mixture, [m^3/mol]
- Zcslist[float], optional
Critical compressibility factors of all species in the mixture, [Pa]
- omegaslist[float], optional
Accentric factors of all species in the mixture, [-]
- CASslist[str], optional
The CAS numbers of 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
volume_liquid_mixture_methods
.- LALIBERTE:
Aqueous electrolyte model equation with coefficients; see
thermo.electrochem.Laliberte_density
for more details.- COSTALD_MIXTURE:
CSP method described in
COSTALD_mixture
.- COSTALD_MIXTURE_FIT:
CSP method described in
COSTALD_mixture
, with two mixture composition independent fit coefficients, Vc and omega.- RACKETT:
CSP method described in
Rackett_mixture
.- RACKETT_PARAMETERS:
CSP method described in
Rackett_mixture
, but with a mixture independent fit coefficient for compressibility factor for each species.- LINEAR:
Linear mole fraction mixing rule described in
mixing_simple
; also known as Amgat’s law.
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 molar volume 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 molar volume 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
- Vmfloat
Molar volume of the liquid mixture at the given conditions, [m^3/mol]
- name = 'Liquid volume'¶
- property_max = 0.002¶
Maximum valid value of liquid molar volume. Generous limit.
- property_min = 0¶
Mimimum valid value of liquid molar volume. It should normally occur at the triple point, and be well above this.
- ranked_methods = ['LALIBERTE', 'LINEAR', 'COSTALD_MIXTURE_FIT', 'RACKETT_PARAMETERS', 'COSTALD_MIXTURE', 'RACKETT']¶
- 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
- 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 = 'm^3/mol'¶
- thermo.volume.volume_liquid_mixture_methods = ['LALIBERTE', 'LINEAR', 'COSTALD_MIXTURE_FIT', 'RACKETT_PARAMETERS', <function COSTALD>, 'RACKETT']¶
Holds all low-pressure methods available for the
VolumeLiquidMixture
class, for use in iterating over them.
Mixture Gas Volume¶
- class thermo.volume.VolumeGasMixture(eos=None, CASs=[], VolumeGases=[], MWs=[], **kwargs)[source]¶
Bases:
thermo.utils.mixture_property.MixtureProperty
Class for dealing with the molar volume of a gas mixture as a function of temperature, pressure, and composition. Consists of an equation of state, the ideal gas law, and one mole-weighted averaging method.
Prefered method is EOS, or IDEAL if critical properties of components are unavailable.
- Parameters
- CASslist[str], optional
The CAS numbers of all species in the mixture, [-]
- VolumeGaseslist[VolumeGas], optional
VolumeGas objects created for all species in the mixture, [-]
- eoscontainer[EOS Object], optional
Equation of state mixture object, [-]
- MWslist[float], optional
Molecular weights of all species in the mixture, [g/mol]
See also
Notes
To iterate over all methods, use the list stored in
volume_gas_mixture_methods
.- EOS:
Equation of state mixture object; see
thermo.eos_mix
for more details.- LINEAR:
Linear mole fraction mixing rule described in
mixing_simple
; more correct than the ideal gas law.- IDEAL:
The ideal gas law.
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 molar volume of a gas 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 molar volume of a gas 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
- Vmfloat
Molar volume of the gas mixture at the given conditions, [m^3/mol]
- name = 'Gas volume'¶
- property_max = 10000000000.0¶
Maximum valid value of gas molar volume. Set roughly at an ideal gas at 1 Pa and 2 billion K.
- property_min = 0.0¶
Mimimum valid value of gas molar volume. It should normally be well above this.
- ranked_methods = ['EOS', 'LINEAR', 'IDEAL', 'LINEAR_MISSING_IDEAL']¶
- 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
- 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 = 'm^3/mol'¶
- thermo.volume.volume_gas_mixture_methods = ['EOS', 'LINEAR', 'IDEAL']¶
Holds all methods available for the
VolumeGasMixture
class, for use in iterating over them.
Mixture Solid Volume¶
- class thermo.volume.VolumeSolidMixture(CASs=[], VolumeSolids=[], MWs=[], **kwargs)[source]¶
Bases:
thermo.utils.mixture_property.MixtureProperty
Class for dealing with the molar volume of a solid mixture as a function of temperature, pressure, and composition. Consists of only mole-weighted averaging.
- Parameters
- CASslist[str], optional
The CAS numbers of all species in the mixture, [-]
- VolumeSolidslist[VolumeSolid], optional
VolumeSolid objects created for all species in the mixture, [-]
- MWslist[float], optional
Molecular weights of all species in the mixture, [g/mol]
Notes
To iterate over all methods, use the list stored in
volume_solid_mixture_methods
.- LINEAR:
Linear mole fraction mixing rule described in
mixing_simple
.
Methods
calculate
(T, P, zs, ws, method)Method to calculate molar volume of a solid 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 molar volume of a solid 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
- Vmfloat
Molar volume of the solid mixture at the given conditions, [m^3/mol]
- name = 'Solid molar volume'¶
- property_max = 0.002¶
Maximum value of Heat capacity; arbitrarily set to 0.002, as the largest in the data is 0.00136.
- property_min = 0¶
Molar volume cannot be under 0.
- ranked_methods = ['LINEAR']¶
- 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
- 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 = 'm^3/mol'¶
- thermo.volume.volume_solid_mixture_methods = ['LINEAR']¶
Holds all methods available for the
VolumeSolidMixture
class, for use in iterating over them.