Transport of the dilute gases#
A gas-filled fibre’s fill needs, besides the index, three material properties of each gas (OEP 1, section 4.3):
the dilute-gas shear viscosity \(\eta(T)\), Pa s: the zero-density limit, a function of temperature alone, as kinetic theory and Wilke’s rule assume;
the ideal-gas molar isobaric heat capacity \(c_p^\circ(T)\), J mol⁻¹ K⁻¹: the temperature derivative of the ideal-gas part of the gas’s equation of state, not a value at a finite pressure;
the molar mass \(M\), kg/mol, the one the equation of state uses.
optmat.gas.transport.transport_model(gas) gives all three for the thirteen gases
listed below, with their temperature ranges, sources, status and identity (Identity, status and validity).
The caller combines them for a flow problem, sound speed or mean free path.
Read Conventions for state and density definitions; the Quick start
introduces the material interfaces, and Gas mixtures at finite density explains mixture densities.
import numpy as np
from optmat.gas.transport import (
heat_capacity,
mixture_viscosity,
molar_mass,
transport_model,
viscosity,
)
argon = transport_model("Ar")
assert argon.identity.sources == ("lemmon_2004", "tegeler_1999")
eta = viscosity("Ar", np.array([250.0, 294.0, 350.0])) # Pa s
assert 2.2e-5 < eta[1] < 2.3e-5
assert abs(float(heat_capacity("Xe", 294.0)) / 20.786156 - 1) < 1e-7 # (5/2) R
assert molar_mass("N2") == 0.02801348
low, high = argon.temperature_range("viscosity") # K
The sources#
Gas |
Viscosity (form) |
K |
Stated uncertainty |
\(c_p^\circ\), \(M\) |
K |
Status |
|---|---|---|---|---|---|---|
He |
|
110-1500 |
at most 10 % above 100 K, for the correlation as a whole |
|
2.1768-2000 |
validated |
Ne |
|
24.56-725 |
2 % (k = 2) |
Thol et al. 2019, not in hand |
24.56-725 |
validated |
Ar |
|
83.806-2000 |
0.5 % in the dilute gas |
|
83.806-2000 |
validated |
Kr |
|
115.77-750 |
3 % (k = 2) |
|
115.77-750 |
validated |
Xe |
|
161.4-750 |
0.7 % (k = 2) |
|
161.4-750 |
validated |
H2 |
|
13.957-1000 |
0.1 % from 200 K to 400 K up to 0.1 MPa |
|
13.957-1000 |
validated |
D2 |
|
30-2200 |
1 % from 250 K to 350 K, 2 % below, at most 4 % at the highest temperatures |
|
18.724-600 |
validated |
N2 |
|
63.151-2000 |
0.5 % in the dilute gas |
|
63.151-2000 |
validated |
O2 |
|
54.361-2000 |
1 % in the dilute gas above 200 K, 5 % below |
|
54.361-1700 |
validated |
CH4 |
|
95-600 |
not stated (the fit’s average deviation, 0.31 %) |
|
90.6941-625 |
provisional |
SF6 |
|
223.555-1000 |
0.3 % (k = 2) from 298 K to 700 K, 1.5 % at the triple point and 1000 K |
|
223.555-625 |
validated |
N2O |
|
182.33-525 |
5 % (k = 2) |
|
182.33-525 |
validated |
CO2 |
|
200-2000 |
0.2 % from 200 K to 700 K, 1 % to 2000 K |
|
216.592-2000 |
validated |
The choices are curated in data/gas/transport.toml; each record says what was checked
against its paper.
CoolProp’s correlations. For eight gases the viscosity is CoolProp’s correlation at 10⁻⁶ mol/m³, where its density terms are below 10⁻¹⁰. Each reproduces the dilute-gas form printed in its paper, with the paper’s constants (recorded as formulas), to below 10⁻⁹. The ranges are the papers’: Lemmon and Jacobsen’s equations hold over their equations of state’s states, Arp et al. use Maitland and Smith’s dilute values above 110 K, and Laesecke and Muzny state an uncertainty from 200 K, and Quiñones-Cisneros et al. extend SF6’s to 1000 K (TC-765). Methane’s has no stated uncertainty (TC-763).
Ne, Kr, Xe and N2O. CoolProp has no viscosity for these. optmat evaluates Huber’s
dilute-gas form (NISTIR 8209: Chapman-Enskog with Neufeld et al.’s collision integral,
his Lennard-Jones parameters and his factor \(F_c\)), which reproduces his check values to
2×10⁻⁷. These are the models behind the NIST WebBook’s tables, kept in
data/external/nist_webbook as the check. At 0.1 MPa the tables lie above the dilute
values by the density term: 0.013 %, 0.13 %, 0.21 % and 0.21 % at 298.15 K, and at most
0.54 % (Xe at 200 K). For Ne, Kr and Xe, \(F_c\) was adjusted to Assael et al.’s (2018)
reference values at 25 °C, so those are not an independent check.
D2. Assael, Mixafendi and Wakeham’s (1987) correlation is evaluated, and their Table 2 is its check. The paper’s printed Eq. (4) does not reproduce the table: it is the authors’ universal corresponding-states functional (1986, Eq. 13), not their hydrogen correlation (1986, Eq. 3). With the latter, the D2 mass and the paper’s quantum factor \(1 - e^{-f T^{*1/3}}\) (Eq. 7) at every temperature, the table is reproduced within 1.5 units of its last digit, 5.1×10⁻⁴, except for the 90 K cell, degraded in the scan, 1.2×10⁻³ off (TC-760, TC-765). Until 0.2.1 the table itself was served as a cubic spline in \(\log\eta\) against \(\log T\); its knots’ four-digit rounding, 2×10⁻⁴, made the spline wiggle at 10⁻⁴, so that no smooth representation of it (a Chebyshev series over 60-600 K) came closer than 4×10⁻⁴. The correlation is analytic: degree 20 in \(\ln T\) reaches 10⁻¹¹ (TC-839).
The heat capacity is the equation’s dimensionless \(c_p^\circ/R\) times CODATA’s \(R\), the convention of the number density (Conventions). The noble gases give \(\tfrac52 R\) exactly, whatever gas constant their equation was published with (helium’s in CoolProp is 1.5 ppm below the one Harvey et al. give). O2’s ideal part in CoolProp is a refit of Wagner, Ewers and Schmidt’s (Schmidt and Wagner 1985; Stewart et al. 1991, Eq. 11), within 3.3 ppm to 1500 K. Above 1700 K it departs by more than that equation’s stated 0.003 J mol⁻¹ K⁻¹, so O2’s heat capacity stops there (TC-765).
Mixtures: Wilke’s rule#
mixture_viscosity(mixture, T) is Wilke’s rule (wilke_1950, Eqs. 13-14):
It is a kinetic-theory approximation: Wilke reports an average deviation of 0.97 % for
his binary mixtures (0.49 % without H2-Ar, the worst) and 1.9 % for multicomponent ones.
A mixture is a named composition ("dry air" is "dry air (N2, O2, Ar)", as for the air
model) or a mapping of gases to mole fractions summing to one. CIPM-2007’s full
composition is refused: CO has no transport model. The ideal mixture’s heat capacity is
\(\sum_i x_i c_{p,i}^\circ\).
air = float(mixture_viscosity("dry air", 294.0))
assert 1.80e-5 < air < 1.83e-5
he_ar = mixture_viscosity({"He": 0.5, "Ar": 0.5}, np.array([250.0, 300.0]))
Finite-pressure values#
The dilute-gas limit should be distinguished from a viscosity evaluated at finite pressure. For example, the nitrogen correlation at 294 K gives 1.7612×10⁻⁵ Pa s at 1 bar and 1.7599×10⁻⁵ Pa s in the dilute limit (TC-762). The difference comes from the density term. Likewise, a finite-pressure heat-capacity ratio need not equal \(c_p^\circ/(c_p^\circ-R)\).
The Development checks guide describes regression checks retained for
historical calculations. For current model selection, use the sources and ranges
above and the optmat.gas.transport reference.
This page documents what OEP 1 proposed and implemented: its theory, decisions and phase reports are the record.