PyThermo may not be the fastest thermophysical property library in the land, but thanks to the tireless efforts of Caleb Bell (the author of the underlying Python library, Thermo), it’s quite thorough.
Data is available for a vast number of chemical species, with Unitful
accessor functions for the most common properties. Additional properties can be queried via the underlying PyObject
, and should be assumed to have units of J
, kg
, m
, s
, K
unless otherwise specified in Thermo’s documentation.
Water:
julia> H2O = Species("water", T = 40u"°C")
Species(water, 313.1 K, 1.013e+05 Pa)
julia> density(H2O)
997.0326202881853 kg m^-3
julia> H2O.calculate(T = 1000, P = 3000) # K, Pa
julia> density(H2O)
0.006500222660286359 kg m^-3
Air:
julia> air = Mixture(["N2" => 0.78, "O2" => 0.21, "Ar" => 0.01], P = 1u"atm")
Mixture({N2: 0.78, O2: 0.21, Ar: 0.01}, 298.1 K, 1.013e+05 Pa)
julia> R_specific(air)
287.0055796266994 J kg^-1 K^-1
Vodka:
julia> vodka = Mixture(["water", "ethanol"], Vfls = [.6, .4]) # liquid volume frac
Mixture({water: 0.83, ethanol: 0.17}, 298.1 K, 1.013e+05 Pa)
julia> vodka.Pc # critical pressure
1.933817214110451e7
1,1,1,3,5,5,5-heptamethyltrisiloxane:
julia> siloxane = Species("1,1,1,3,5,5,5-heptamethyltrisiloxane", T=500u"°F")
Species(1,1,1,3,5,5,5-heptamethyltrisiloxane, 533.1 K, 1.013e+05 Pa)
julia> soundspeed(siloxane)
142.92248228212017 m s^-1
julia> siloxane.Cp
1853.573089850276