6. Thermodynamic Property Data

Raw data obtained from [RWO+07] and [GP07]

6.1. Heat Capacity

class gasthermo.cp.CpIdealGas(dippr_no: str = None, compound_name: str = None, cas_number: str = None, T_min_fit: float = None, T_max_fit: float = None, n_points_fit: int = 1000, poly_order: int = 2, T_units='K', Cp_units='J/mol/K')[source]

Heat Capacity \(C_{\mathrm{p}}^{\mathrm{IG}}\) [J/mol/K] at Constant Pressure of Inorganic and Organic Compounds in the Ideal Gas State Fit to Hyperbolic Functions [RWO+07]

(1)\[C_{\mathrm{p}}^{\mathrm{IG}} = C_1 + C_2\left[\frac{C_3/T}{\sinh{(C_3/T)}}\right] + C_4 \left[\frac{C_5/T}{\cosh{(C_5/T)}}\right]^2\]

where \(C_{\mathrm{p}}^{\mathrm{IG}}\) is in J/mol/K and \(T\) is in K.

Computing integrals of Equation (1) is challenging. Instead, the function is fit to a polynomial within a range of interest so that it can be integrated by using an antiderivative that is a polynomial.

Parameters
  • dippr_no (str, optional) – dippr_no of compound by DIPPR table, defaults to None

  • compound_name (str, optional) – name of chemical compound, defaults to None

  • cas_number (str, optional) – CAS registry number for chemical compound, defaults to None

  • MW (float, derived from input) – molecular weight in g/mol

  • T_min (float, derived from input) – minimum temperature of validity for relationship [K]

  • T_max (float, derived from input) – maximum temperature of validity [K]

  • T_min_fit – minimum temperature for fitting, defaults to Tmin

  • T_max_fit – maximum temperature for fitting, defaults to Tmax

  • C1 (float, derived from input) – parameter in Equation (1)

  • C2 (float, derived from input) – parameter in Equation (1)

  • C3 (float, derived from input) – parameter in Equation (1)

  • C4 (float, derived from input) – parameter in Equation (1)

  • C5 (float, derived from input) – parameter in Equation (1)

  • Cp_units (str, optional) – units for \(C_{\mathrm{p}}^{\mathrm{IG}}\), defaults to J/mol/K (SI units)

  • T_units (str, optional) – units for \(T\), defaults to K

  • n_points_fit (int, optional) – number of points for fitting polynomial and plotting, defaults to 1000

  • poly_order (int, optional) – order of polynomial for fitting, defaults to 2

cp_integral(T_a, T_b)[source]

Evaluate integral

(2)\[\int_{T_a}^{T_b}C_{\mathrm{p}}^{\mathrm{IG}}(T^\prime) \mathrm{d}T^\prime\]
Parameters
  • T_a – start temperature in K

  • T_b – finish temperature in K

Returns

integral

eval(T, f_sinh=<ufunc 'sinh'>, f_cosh=<ufunc 'cosh'>)[source]

Evaluate heat capacity

Parameters
  • T – temperature in K

  • f_sinh (callable) – function for hyperbolic sine, defaults to np.sinh

  • f_cosh (callable) – function for hyperbolic cosine, defaults to np.cosh

Returns

\(C_{\mathrm{p}}^{\mathrm{IG}}\) J/mol/K (see equation (1))

get_numerical_percent_difference()[source]

Calculate the percent difference with numerical integration

numerical_integration(T_a, T_b) → tuple[source]

Numerical integration using scipy

class gasthermo.cp.CpStar(T_ref: float, **kwargs)[source]

Dimensionless Heat Capacity at Constant Pressure of Inorganic and Organic Compounds in the Ideal Gas State Fit to Hyperbolic Functions [RWO+07]

The dimensionless form is obtained by introducing the following variables

\[\begin{split}\begin{align} C_{\mathrm{p}}^\star &= \frac{C_\mathrm{p}^\mathrm{IG}}{\text{R}} \\ T^\star &= \frac{T}{T_\text{ref}} \end{align}\end{split}\]

where R is the gas constant in units of J/mol/K, and \(T_\text{ref}\) is a reference temperature [K] input by the user (see T_ref)

The heat capacity in dimensionless form becomes

(3)\[C_{\mathrm{p}}^\star = C_1^\star + C_2^\star \left[\frac{C_3^\star/T^\star}{\sinh{(C_3^\star/T^\star)}}\right] + C_4^\star \left[\frac{C_5^\star/T^\star}{\cosh{(C_5^\star/T^\star)}}\right]^2\]

where

\[\begin{split}\begin{align} C_1^\star &= \frac{C_1}{\text{R}} \\ C_2^\star &= \frac{C_2}{\text{R}} \\ C_3^\star &= \frac{C_3}{T_\text{ref}} \\ C_4^\star &= \frac{C_4}{\text{R}} \\ C_5^\star &= \frac{C_5}{T_\text{ref}} \end{align}\end{split}\]
Parameters

T_ref (float) – reference temperature [K] for dimensionless computations

eval(T, f_sinh=<ufunc 'sinh'>, f_cosh=<ufunc 'cosh'>)[source]
Parameters
  • T – temperature in K

  • f_sinh (callable) – function for hyperbolic sine, defaults to np.sinh

  • f_cosh (callable) – function for hyperbolic cosine, defaults to np.cosh

Returns

\(C_{\mathrm{p}}^{\star}\) [dimensionless] (see equation (3))

class gasthermo.cp.CpRawData(T_raw: list, Cp_raw: list, T_min_fit: float = None, T_max_fit: float = None, poly_order: int = 2, T_units='K', Cp_units='J/mol/K')[source]

Obtain heat capacity relationships from raw data

Using input raw data # fit to polynomial of temperature # fit polynomial to antiderivative

Parameters
  • T_min_fit (float, optional) – minimum temperature for fitting function [K]

  • T_max_fit (float, optional) – maximum temperature for fitting function [K]

  • poly_order (int, optional) – order of polynomial for fitting, defaults to 2

  • T_raw (list) – raw temperatures in K

  • Cp_raw (list) – raw heat capacities in J/K/mol

  • Cp_units (str, optional) – units for \(C_{\mathrm{p}}\), defaults to J/mol/K

  • T_units (str, optional) – units for \(T\), defaults to K

get_max_percent_difference()[source]

Get largest percent difference

6.2. Critical Properties

class gasthermo.critical_constants.CriticalConstants(dippr_no: str = None, compound_name: str = None, cas_number: str = None, MW: float = None, P_c: float = None, V_c: float = None, Z_c: float = None, T_c: float = None, w: float = None)[source]

Get critical constants of a compound

If critical constants are not passed in, reads from DIPPR table

Parameters
  • dippr_no (str, optional) – dippr_no of compound by DIPPR table, defaults to None

  • compound_name (str, optional) – name of chemical compound, defaults to None

  • cas_number (str, optional) – CAS registry number for chemical compound, defaults to None

  • MW – molecular weight in g/mol

  • T_c – critical temperature [K]

  • P_c – critical pressure [Pa]

  • V_c – critical molar volume [m^3/mol]

  • Z_c – critical compressibility factor [dimensionless]

  • w – accentric factor [dimensionless]

  • tol (float, hard-coded) – tolerance for percent difference in Zc calulcated and tabulated, set to 0.5

Z_c_percent_difference()[source]

calculate percent difference between Z_c calculated and tabulated

calc_Z_c()[source]

Calculate critical compressibility, for comparison to tabulated value

6.3. Thermal Conductivity

class gasthermo.thermal_conductivity.ThermalConductivity(dippr_no: str = None, compound_name: str = None, cas_number: str = None, T_min_fit: float = None, T_max_fit: float = None, n_points_fit: int = 1000, poly_order: int = 2)[source]

Thermal Conductivity of Inorganic and Organic Substances [W/m/K] [RWO+07]

(4)\[k = \frac{C_1T^{C_2}}{1 + C_3/T + C_4 / T^2}\]

where \(k\) is the thermal conductivity in W/m/K and \(T\) is in K. Thermal conductivites are either at 1 atm or the vapor pressure, whichever is lower.

Parameters
  • dippr_no (str, optional) – dippr_no of compound by DIPPR table, defaults to None

  • compound_name (str, optional) – name of chemical compound, defaults to None

  • cas_number (str, optional) – CAS registry number for chemical compound, defaults to None

  • MW (float, derived from input) – molecular weight in g/mol

  • T_min (float, derived from input) – minimum temperature of validity for relationship [K]

  • T_max (float, derived from input) – maximum temperature of validity [K]

  • C1 (float, derived from input) – parameter in Equation (4)

  • C2 (float, derived from input) – parameter in Equation (4)

  • C3 (float, derived from input) – parameter in Equation (4)

  • C4 (float, derived from input) – parameter in Equation (4)

  • units (str) – units for \(k\), set to W/m/K

  • T_min_fit – minimum temperature for fit, defaults to T_min

  • T_max_fit – maximum temperature for fit, defaults to T_max

eval(T)[source]
Parameters

T – temperature in K

Returns

\(k\) W/m/K (see equation (4))

class gasthermo.thermal_conductivity.ThermalConductivityMixture(name_to_cas: dict, mixing_rule='Simple')[source]

Viscosity of vapor mixture using Wilke mixing rule

Parameters
  • name_to_cas (dict[components, str]) – mapping of chemical name to cas registry number

  • mixing_rule (str, optional) – mixing rule for calculation of viscosity, defaults to Simple

  • pure (dict[components, Viscosity]) – pure component viscosity info, obtained rom gasthermo.vapor_viscosity.Viscosity

eval_HR(y_i, T)[source]

Weights based off of sqrt of molecular weights

eval_simple(y_i, T)[source]

Calculate thermal conductivity using simple relationship

Parameters

y_i (dict[component, float]) – mole fraction of each component i

6.4. Viscosity

class gasthermo.viscosity.Viscosity(dippr_no: str = None, compound_name: str = None, cas_number: str = None, T_min_fit: float = None, T_max_fit: float = None, n_points_fit: int = 1000, poly_order: int = 2)[source]

Vapor Viscosity of Inorganic and Organic Substances [W/m/K] [RWO+07]

(5)\[\mu = \frac{C_1T^{C_2}}{1 + C_3/T + C_4 / T^2}\]

where \(\mu\) is the thermal conductivity in W/m/K and \(T\) is in K. Viscosities are either at 1 atm or the vapor pressure, whichever is lower.

Parameters
  • dippr_no (str, optional) – dippr_no of compound by DIPPR table, defaults to None

  • compound_name (str, optional) – name of chemical compound, defaults to None

  • cas_number (str, optional) – CAS registry number for chemical compound, defaults to None

  • MW (float, derived from input) – molecular weight in g/mol

  • T_min (float, derived from input) – minimum temperature of validity for relationship [K]

  • T_max (float, derived from input) – maximum temperature of validity [K]

  • C1 (float, derived from input) – parameter in Equation (5)

  • C2 (float, derived from input) – parameter in Equation (5)

  • C3 (float, derived from input) – parameter in Equation (5)

  • C4 (float, derived from input) – parameter in Equation (5)

  • units (str) – units for \(\mu\), set to Pa*s

  • T_min_fit – minimum temperature for fit, defaults to T_min

  • T_max_fit – maximum temperature for fit, defaults to T_max

eval(T)[source]
Parameters

T – temperature in K

Returns

\(\mu\) Pa*s (see equation (5))

class gasthermo.viscosity.ViscosityMixture(name_to_cas: dict = None, mixing_rule='Herning Zipperer', **kwargs)[source]

Viscosity of vapor mixture using Wilke or HR mixing rule

Parameters
  • name_to_cas (dict[components, str]) – mapping of chemical name to cas registry number

  • mixing_rule (str, optional) – mixing rule for calculation of viscosity, defaults to Herning Zipperer

  • pure (dict[components, Viscosity]) – pure component viscosity info, obtained rom Viscosity

eval_Wilke(y_i, T)[source]

Calculate mixture viscosity in Pa*s using Wilke mixing rule

Parameters

y_i (dict[component, float]) – mole fraction of each component i

phi_ij(i: str, j: str, T: float)[source]

Coefficient for each pair of components in a mixtures

Parameters
  • i – name of component i

  • j – name of component j