Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
thermo DocumentationRelease 0.1
Caleb Bell
August 07, 2016
Contents
1 thermo 31.1 thermo package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Submodules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3thermo.acentric module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
thermo.activity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7thermo.chemical module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
thermo.combustion module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
thermo.critical module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
i
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
thermo.datasheet module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26thermo.dipole module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
thermo.dippr module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ii
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
thermo.electrochem module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
thermo.elements module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
iii
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
thermo.environment module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
thermo.heat_capacity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
iv
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
thermo.identifiers module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
thermo.interface module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
v
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
thermo.law module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
thermo.lennard_jones module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
vi
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
thermo.miscdata module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
thermo.permittivity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
thermo.phase_change module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
vii
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
thermo.pr module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118thermo.reaction module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
thermo.refractivity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
thermo.safety module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
viii
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
thermo.solubility module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
thermo.temperature module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
thermo.thermal_conductivity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
ix
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
thermo.triple module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
thermo.utils module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
x
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
thermo.vapor_pressure module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
xi
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
thermo.virial module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
thermo.viscosity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
xii
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
thermo.volume module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
xiii
Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
1.1.2 Module contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
2 Indices and tables 255
Bibliography 257
Python Module Index 277
xiv
thermo Documentation, Release 0.1
Contents:
Contents 1
thermo Documentation, Release 0.1
2 Contents
CHAPTER 1
thermo
1.1 thermo package
1.1.1 Submodules
thermo.acentric module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.acentric.omega(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMethods=[’Lee-Kesler’, ‘Vapor pressure calculation’])
This function handles the retrieval of a chemical’s acentric factor, omega, or its calculation from correlations ordirectly through the definition of acentric factor if possible. Requires a known boiling point, critical temperatureand pressure for use of the correlations. Requires accurate vapor pressure data for direct calculation.
Will automatically select a method to use if no Method is provided; returns None if the data is not available andcannot be calculated.
𝜔 ≡ − log10
[lim
𝑇/𝑇𝑐=0.7(𝑃 𝑠𝑎𝑡/𝑃𝑐)
]− 1.0
Parameters CASRN : string
CASRN [-]
Returns omega : float
Acentric factor of compound
3
thermo Documentation, Release 0.1
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain omega with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in omega_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain omega for thedesired chemical, and will return methods instead of omega
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of five sources are available for this function. They are:
•‘PSRK Revision 4 Appendix’, a compillation of experimental and estimated data published in [15]_.
•‘Passut Danner 1973 Critical Properties’, an older compillation of data published in [16]_
•‘Yaws Critical Properties’, a large compillation of data from a variety of sources; no data points are sourcedin the work of [17]_.
•‘Lee-Kesler’, a estimation method for hydrocarbons.
•‘Vapor pressure calculation’, based on the definition of omega as presented in [R1], using vapor pressuredata.
References
[R1], [R2], [R3], [R4]
Examples
>>> omega(CASRN='64-17-5')0.635
thermo.acentric.LK_omega(Tb, Tc, Pc)Estimates the acentric factor of a fluid using a correlation in [R5].
𝜔 =ln𝑃 𝑠𝑎𝑡
𝑏𝑟 − 5.92714 + 6.09648/𝑇𝑏𝑟 + 1.28862 ln𝑇𝑏𝑟 − 0.169347𝑇 6𝑏𝑟
15.2518 − 15.6875/𝑇𝑏𝑟 − 13.4721 ln𝑇𝑏𝑟 + 0.43577𝑇 6𝑏𝑟
Parameters Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
4 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns omega : float
Acentric factor of the fluid [-]
Notes
Internal units are atmosphere and Kelvin. Example value from Reid (1987). Using ASPEN V8.4, LK methodgives 0.325595.
References
[R5]
Examples
Isopropylbenzene
>>> LK_omega(425.6, 631.1, 32.1E5)0.32544249926397856
thermo.acentric.omega_mixture(omegas, zs, CASRNs=None, Method=None, AvailableMeth-ods=False)
This function handles the calculation of a mixture’s acentric factor. Calculation is based on the omegas providedfor each pure component. Will automatically select a method to use if no Method is provided; returns None ifinsufficient data is available.
Parameters omegas : array-like
acentric factors of each component, [-]
zs : array-like
mole fractions of each component, [-]
CASRNs: list of strings
CASRNs, not currently used [-]
Returns omega : float
acentric factor of the mixture, [-]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain omega with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants inomega_mixture_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain omega for thedesired chemical, and will return methods instead of omega
1.1. thermo package 5
thermo Documentation, Release 0.1
Notes
The only data used in the methods implemented to date are mole fractions and pure-component omegas. Analternate definition could be based on the dew point or bubble point of a multicomponent mixture, but this hasnot been done to date.
References
[R6]
Examples
>>> omega_mixture([0.025, 0.12], [0.3, 0.7])0.0915
thermo.acentric.StielPolar(Tc=None, Pc=None, omega=None, CASRN=’‘, Method=None, Avail-ableMethods=False)
This function handles the calculation of a chemical’s Stiel polar factor, directly through the definition of Stiel-polar factor if possible. Requires Tc, Pc, acentric factor, and a vapor pressure datum at Tr=0.6.
Will automatically select a method to use if no Method is provided; returns None if the data is not available andcannot be calculated.
𝑥 = log𝑃𝑟|𝑇𝑟=0.6 + 1.70𝜔 + 1.552
Parameters Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor of the fluid [-]
CASRN : string
CASRN [-]
Returns factor : float
Stiel polar factor of compound
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Stiel polar factor with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Stiel_polar_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Stiel-polar factorfor the desired chemical, and will return methods instead of stiel-polar factor
6 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Only one source is available for this function. It is:
•‘Vapor pressure calculation’, based on the definition of stiel polar factor presented in [R7], using vaporpressure data.
A few points have also been published in [R8], which may be used for comparison. Currently this is only usedfor a surface tension correlation.
References
[R7], [R8]
Examples
>>> StielPolar(647.3, 22048321.0, 0.344, CASRN='7732-18-5')0.02458114034873482
thermo.activity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.activity.K(P, Psat, fugacity=1, gamma=1)
>>> K(101325, 3000.)0.029607698001480384>>> K(101325, 3000., fugacity=0.9, gamma=2.4)0.07895386133728102
thermo.activity.Pbubble_mixture(T=None, zs=None, Psats=None, CASRNs=None, Avail-ableMethods=False, Method=None)
>>> Pbubble_mixture(zs=[0.5, 0.5], Psats=[1400, 7000])4200.0
thermo.activity.Pdew_mixture(T=None, zs=None, Psats=None, CASRNs=None, AvailableMeth-ods=False, Method=None)
1.1. thermo package 7
thermo Documentation, Release 0.1
>>> Pdew_mixture(zs=[0.5, 0.5], Psats=[1400, 7000])2333.3333333333335
thermo.activity.Rachford_Rice_flash_error(V_over_F, zs, ks)
thermo.activity.bubble_at_T(zs, Psats, fugacities=None, gammas=None)
>>> bubble_at_T([0.5, 0.5], [1400, 7000])4200.0>>> bubble_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75])3395.0>>> bubble_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75], fugacities=[.995, 0.98])3452.440775305097
thermo.activity.dew_at_T(zs, Psats, fugacities=None, gammas=None)
>>> dew_at_T([0.5, 0.5], [1400, 7000])2333.3333333333335>>> dew_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75])2381.443298969072>>> dew_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75], fugacities=[.995, 0.98])2401.621874512658
thermo.activity.flash(P, zs, Psats, fugacities=None, gammas=None)
thermo.activity.identify_phase(T=None, P=None, Tm=None, Tb=None, Tc=None, Psat=None)
>>> identify_phase(T=280, P=101325, Tm=273.15, Psat=991)'l'>>> identify_phase(T=480, P=101325, Tm=273.15, Psat=1791175)'g'>>> identify_phase(T=650, P=10132500000, Tm=273.15, Psat=None, Tc=647.3)'g'>>> identify_phase(T=250, P=100, Tm=273.15)'s'>>> identify_phase(T=500, P=101325)
thermo.activity.identify_phase_mixture(T=None, P=None, zs=None, Tcs=None, Pcs=None,Psats=None, CASRNs=None, AvailableMeth-ods=False, Method=None)
>>> identify_phase_mixture(T=280, P=5000., zs=[0.5, 0.5], Psats=[1400, 7000])('l', [0.5, 0.5], None, 0)>>> identify_phase_mixture(T=280, P=3000., zs=[0.5, 0.5], Psats=[1400, 7000])('two-phase', [0.7142857142857143, 0.2857142857142857], [0.33333333333333337, 0.66666666666666663], 0.5625)>>> identify_phase_mixture(T=280, P=800., zs=[0.5, 0.5], Psats=[1400, 7000])('g', None, [0.5, 0.5], 1)>>> identify_phase_mixture(T=280, P=800., zs=[0.5, 0.5])(None, None, None, None)
thermo.chemical module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
8 Chapter 1. thermo
thermo Documentation, Release 0.1
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
class thermo.chemical.Chemical(ID, T=298.15, P=101325)Bases: object
Class for obtaining properties of chemicals. Considered somewhat stable, but changes to some mthods areexpected.
Default initialization is for 298.15 K, 1 atm. Goal is for, when a method fails, a warning is printed.
Methods
Bond([L])Capillary([V])Grashof([Tw, L])Jakob([Tw])Peclet_heat([V, D])Reynolds([V, D])Tsat(P)Weber([V, D])calc_H(T, P)calc_S(T, P)calculate([T, P])draw_2d()draw_3d()set_TP()set_TP_sources()set_constant_sources()set_constants()set_phase()set_ref([T_ref, P_ref, phase_ref, H_ref, S_ref])set_structure()set_thermo()
Bond(L=None)
Capillary(V=None)
Grashof(Tw=None, L=None)
Jakob(Tw=None)
Peclet_heat(V=None, D=None)
1.1. thermo package 9
thermo Documentation, Release 0.1
Reynolds(V=None, D=None)
Tsat(P)
Weber(V=None, D=None)
calc_H(T, P)
calc_S(T, P)
calculate(T=None, P=None)
draw_2d()
draw_3d()
set_TP()
set_TP_sources()
set_constant_sources()
set_constants()
set_phase()
set_ref(T_ref=298.15, P_ref=101325, phase_ref=’calc’, H_ref=0, S_ref=0)
set_structure()
set_thermo()
class thermo.chemical.Mixture(IDs, zs=None, ws=None, Vfls=None, Vfgs=None, T=298.15,P=101325)
Bases: object
Class for obtaining properties of mixtures of chemicals. Must be considered unstable due to the goal of changingeach of the property methods into object-oriented interfaces.
Most methods are relatively accurate.
Default initialization is for 298.15 K, 1 atm.
Methods
Bond([L])Capillary([V])Grashof([Tw, L])Jakob([Tw])Peclet_heat([V, D])Reynolds([V, D])Weber([V, D])set_TP([T, P])set_TP_sources()set_chemical_TP()set_chemical_constants()set_constant_sources()set_constants()set_none()set_phase()
10 Chapter 1. thermo
thermo Documentation, Release 0.1
Bond(L=None)
Capillary(V=None)
Grashof(Tw=None, L=None)
Jakob(Tw=None)
Peclet_heat(V=None, D=None)
Reynolds(V=None, D=None)
Weber(V=None, D=None)
set_TP(T=None, P=None)
set_TP_sources()
set_chemical_TP()
set_chemical_constants()
set_constant_sources()
set_constants()
set_none()
set_phase()
class thermo.chemical.Stream(IDs, zs=None, ws=None, Vfls=None, Vfgs=None, m=None, Q=None,T=298.15, P=101325)
Bases: thermo.chemical.Mixture
Methods
Bond([L])Capillary([V])Grashof([Tw, L])Jakob([Tw])Peclet_heat([V, D])Reynolds([V, D])Weber([V, D])set_TP([T, P])set_TP_sources()set_chemical_TP()set_chemical_constants()set_constant_sources()set_constants()set_none()set_phase()
thermo.combustion module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,
1.1. thermo package 11
thermo Documentation, Release 0.1
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.combustion.Hcombustion(atoms=None, Hf=None, HfH2O=-285825, HfCO2=-393474,HfSO2=-296800, HfBr2=30880, HfI2=62417, HfHCl=-92173,HfHF=-272711, HfP4O10=-3009940, HfO2=0, HfN2=0)
Calculates the heat of combustion, in J/mol. Value non-hydrocarbons is not correct, but still calculable.
Parameters atoms : dict
Dictionary of atoms and their counts, []
Hf : float
Heat of formation of given chemical, [J/mol]
HfH2O : float, optional
Heat of formation of water, [J/mol]
HfCO2 : float, optional
Heat of formation of carbon dioxide, [J/mol]
HfSO2 : float, optional
Heat of formation of sulfur dioxide, [J/mol]
HfBr2 : float, optional
Heat of formation of bromine, [J/mol]
HfI2 : float, optional
Heat of formation of iodine, [J/mol]
HfHCl : float, optional
Heat of formation of chlorine, [J/mol]
HfHF : float, optional
Heat of formation of hydrogen fluoride, [J/mol]
HfP4O10 : float, optional
Heat of formation of phosphorus pentoxide, [J/mol]
HfO2 : float, optional
Heat of formation of oxygen, [J/mol]
HfN2 : float, optional
Heat of formation of nitrogen, [J/mol]
Returns Hc : float
Heat of combustion of chemical, [J/mol]
12 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Default heats of formation for chemicals are at 298 K, 1 atm.
References
[R9]
Examples
Liquid methanol burning
>>> Hcombustion('H': 4, 'C': 1, 'O': 1, Hf=-239100)-726024.0
thermo.critical module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.critical.Chueh_Prausnitz_Tc(zs, Tcs, Vcs, taus)Calculates critical temperature of a mixture according to mixing rules in [R10].
𝑇𝑐𝑚 =
𝑛∑𝑖
𝜃𝑖𝑇𝑐𝑖 +
𝑛∑𝑖
𝑛∑𝑗
(𝜃𝑖𝜃𝑗𝜏𝑖𝑗)𝑇𝑟𝑒𝑓
𝜃 =𝑥𝑖𝑉
2/3𝑐𝑖∑𝑛
𝑗=1 𝑥𝑗𝑉2/3𝑐𝑗
For a binary mxiture, this simplifies to:
𝑇𝑐𝑚 = 𝜃1𝑇𝑐1 + 𝜃2𝑇𝑐2 + 2𝜃1𝜃2𝜏12
Parameters zs : array-like
Mole fractions of all components
Tcs : array-like
Critical temperatures of all components, [K]
1.1. thermo package 13
thermo Documentation, Release 0.1
Vcs : array-like
Critical volumes of all components, [m^3/mol]
taus : array-like of shape zs by zs
Interaction parameters
Returns Tcm : float
Critical temperatures of the mixture, [K]
Notes
All parameters, even if zero, must be given to this function.
References
[R10], [R11]
Examples
butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K.
>>> Chueh_Prausnitz_Tc([0.6449, 0.2359, 0.1192], [425.12, 469.7, 507.6],... [0.000255, 0.000313, 0.000371], [[0, 1.92681, 6.80358],... [1.92681, 0, 1.89312], [ 6.80358, 1.89312, 0]])450.1225764723492
thermo.critical.Chueh_Prausnitz_Vc(zs, Vcs, nus)Calculates critical volume of a mixture according to mixing rules in [R12] with an interaction parameter.
𝑉𝑐𝑚 =
𝑛∑𝑖
𝜃𝑖𝑉𝑐𝑖 +
𝑛∑𝑖
𝑛∑𝑗
(𝜃𝑖𝜃𝑗𝜈𝑖𝑗)𝑉𝑟𝑒𝑓𝜃 =𝑥𝑖𝑉
2/3𝑐𝑖∑𝑛
𝑗=1 𝑥𝑗𝑉2/3𝑐𝑗
Parameters zs : float
Mole fractions of all components
Vcs : float
Critical volumes of all components, [m^3/mol]
nus : matrix
Interaction parameters, [cm^3/mol]
Returns Vcm : float
Critical volume of the mixture, [m^3/mol]
Notes
All parameters, even if zero, must be given to this function. nu parameters are in cm^3/mol, but are convertedto m^3/mol inside the function
14 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R12], [R13]
Examples
1-butanol/benzene 0.4271/0.5729 mixture, Vcm = 268.096 mL/mol.
>>> Chueh_Prausnitz_Vc([0.4271, 0.5729], [0.000273, 0.000256], [[0, 5.61847], [5.61847, 0]])0.00026620503424517445
thermo.critical.Grieves_Thodos(zs, Tcs, Aijs)Calculates critical temperature of a mixture according to mixing rules in [R14].
𝑇𝑐𝑚 =∑𝑖
𝑇𝑐𝑖1 + (1/𝑥𝑖)
∑𝑗 𝐴𝑖𝑗𝑥𝑗
For a binary mxiture, this simplifies to:
𝑇𝑐𝑚 =𝑇𝑐1
1 + (𝑥2/𝑥1)𝐴12+
𝑇𝑐21 + (𝑥1/𝑥2)𝐴21
Parameters zs : array-like
Mole fractions of all components
Tcs : array-like
Critical temperatures of all components, [K]
Aijs : array-like of shape zs by zs
Interaction parameters
Returns Tcm : float
Critical temperatures of the mixture, [K]
Notes
All parameters, even if zero, must be given to this function. Giving 0s gives really bad results however.
References
[R14], [R15]
Examples
butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K.
>>> Grieves_Thodos([0.6449, 0.2359, 0.1192], [425.12, 469.7, 507.6], [[0, 1.2503, 1.516], [0.799807, 0, 1.23843], [0.659633, 0.807474, 0]])450.1839618758971
1.1. thermo package 15
thermo Documentation, Release 0.1
thermo.critical.Grigoras(Tc=None, Pc=None, Vc=None)Relatively recent (1990) relationship for estimating critical properties from each other. Two of the three proper-ties are required. This model uses the “critical surface”, a general plot of Tc vs Pc vs Vc. The model used 137organic and inorganic compounds to derive the equation. The general equation is in [R16]:
𝑃𝑐 = 2.9 + 20.2𝑇𝑐𝑉𝑐
Parameters Tc : float
Critical temperature of fluid (optional) [K]
Pc : float
Critical pressure of fluid (optional) [Pa]
Vc : float
Critical volume of fluid (optional) [m^3/mol]
Returns Tc, Pc or Vc : float
Critical property of fluid [K], [Pa], or [m^3/mol]
Notes
The prediction of Tc from Pc and Vc is not tested, as this is not necessary anywhere, but it is implemented.Internal units are bar, cm^3/mol, and K. A slight error occurs when Pa, cm^3/mol and K are used instead, onthe order of <0.2%. This equation is less accurate than that of Ihmels, but surprisingly close. The author alsoinvestigated an early QSPR model.
References
[R16]
Examples
Succinic acid [110-15-6]
>>> Grigoras(Tc=851.0, Vc=0.000308)5871233.766233766
thermo.critical.Ihmels(Tc=None, Pc=None, Vc=None)Most recent, and most recommended method of estimating critical properties from each other. Two of the threeproperties are required. This model uses the “critical surface”, a general plot of Tc vs Pc vs Vc. The model used421 organic compounds to derive equation. The general equation is in [R17]:
𝑃𝑐 = −0.025 + 2.215𝑇𝑐𝑉𝑐
Parameters Tc : float
Critical temperature of fluid (optional) [K]
Pc : float
Critical pressure of fluid (optional) [Pa]
Vc : float
16 Chapter 1. thermo
thermo Documentation, Release 0.1
Critical volume of fluid (optional) [m^3/mol]
Returns Tc, Pc or Vc : float
Critical property of fluid [K], [Pa], or [m^3/mol]
Notes
The prediction of Tc from Pc and Vc is not tested, as this is not necessary anywhere, but it is implemented.Internal units are MPa, cm^3/mol, and K. A slight error occurs when Pa, cm^3/mol and K are used instead, onthe order of <0.2%. Their equation was also compared with 56 inorganic and elements. Devations of 20% for<200K or >1000K points.
References
[R17]
Examples
Succinic acid [110-15-6]
>>> Ihmels(Tc=851.0, Vc=0.000308)6095016.233766234
thermo.critical.Li(zs, Tcs, Vcs)Calculates critical temperature of a mixture according to mixing rules in [R18]. Better than simple mixing rules.
𝑇𝑐𝑚 =
𝑛∑𝑖=1
Φ𝑖𝑇𝑐𝑖
Φ =𝑥𝑖𝑉𝑐𝑖∑𝑛
𝑗=1 𝑥𝑗𝑉𝑐𝑗
Parameters zs : array-like
Mole fractions of all components
Tcs : array-like
Critical temperatures of all components, [K]
Vcs : array-like
Critical volumes of all components, [m^3/mol]
Returns Tcm : float
Critical temperatures of the mixture, [K]
Notes
Reviewed in many papers on critical mixture temperature.
Second example is from Najafi (2015), for ethylene, Benzene, ethylbenzene. This is similar to but not identicalto the result from the article. The experimental point is 486.9 K.
2rd example is from Najafi (2015), for: butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K.Its result is identical to that calculated in the article.
1.1. thermo package 17
thermo Documentation, Release 0.1
References
[R18]
Examples
Nitrogen-Argon 50/50 mixture
>>> Li([0.5, 0.5], [126.2, 150.8], [8.95e-05, 7.49e-05])137.40766423357667
butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K.
>>> Li([0.6449, 0.2359, 0.1192], [425.12, 469.7, 507.6],... [0.000255, 0.000313, 0.000371])449.68261498555444
thermo.critical.Meissner(Tc=None, Pc=None, Vc=None)Old (1942) relationship for estimating critical properties from each other. Two of the three properties are re-quired. This model uses the “critical surface”, a general plot of Tc vs Pc vs Vc. The model used 42 organic andinorganic compounds to derive the equation. The general equation is in [R19]:
𝑃𝑐 =2.08𝑇𝑐𝑉𝑐 − 8
Parameters Tc : float, optional
Critical temperature of fluid [K]
Pc : float, optional
Critical pressure of fluid [Pa]
Vc : float, optional
Critical volume of fluid [m^3/mol]
Returns Tc, Pc or Vc : float
Critical property of fluid [K], [Pa], or [m^3/mol]
Notes
The prediction of Tc from Pc and Vc is not tested, as this is not necessary anywhere, but it is implemented.Internal units are atm, cm^3/mol, and K. A slight error occurs when Pa, cm^3/mol and K are used instead, onthe order of <0.2%. This equation is less accurate than that of Ihmels, but surprisingly close. The author alsoproposed means of estimated properties independently.
References
[R19]
Examples
Succinic acid [110-15-6]
18 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> Meissner(Tc=851.0, Vc=0.000308)5978445.199999999
thermo.critical.Pc(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMethods=[’CriticalSurface’])
This function handles the retrieval of a chemical’s critical pressure. Lookup is based on CASRNs. Will auto-matically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘IUPAC Organic Critical Properties’ for organic chemicals, and ‘Matthews Inorganic Crit-ical Properties’ for inorganic chemicals. Function has data for approximately 1000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Pc : float
Critical pressure, [Pa]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Pc with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Pc_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Pc for the desiredchemical, and will return methods instead of Pc
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of seven sources are available for this function. They are:
•‘IUPAC Organic Critical Properties’, a series of critically evaluated experimental datum for organic com-pounds in [R20], [R21], [R22], [R23], [R24], [R25], [R26], [R27], [R28], [10]_, [11]_, and [12]_.
•‘Matthews Inorganic Critical Properties’, a series of critically evaluated data for inorganic compounds in[13]_.
•‘CRC Organic Critical Properties’, a compillation of critically evaluated data by the TRC as published in[14]_.
•‘PSRK Revision 4 Appendix’, a compillation of experimental and estimated data published in [15]_.
•‘Passut Danner 1973 Critical Properties’, an older compillation of data published in [16]_
•‘Yaws Critical Properties’, a large compillation of data from a variety of sources; no data points are sourcedin the work of [17]_.
•Critical Surface’, an estimation method using a simple quadratic method for estimating Pc from Tc andVc. This is ignored and not returned as a method by default
1.1. thermo package 19
thermo Documentation, Release 0.1
References
[R20], [R21], [R22], [R23], [R24], [R25], [R26], [R27], [R28], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_,[17]_
Examples
>>> Pc(CASRN='64-17-5')6137000.0
thermo.critical.Pc_mixture(Pcs=None, zs=None, CASRNs=None, AvailableMethods=False,Method=None)
This function handles the retrival of a mixture’s critical temperature.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Pc_mixture([2.2E7, 1.1E7], [0.3, 0.7])14300000.0
thermo.critical.Tc(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMethods=[’CriticalSurface’])
This function handles the retrieval of a chemical’s critical temperature. Lookup is based on CASRNs. Willautomatically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘IUPAC Organic Critical Properties’ for organic chemicals, and ‘Matthews Inorganic Crit-ical Properties’ for inorganic chemicals. Function has data for approximately 1000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Tc : float
Critical temperature, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tc with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Tc_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Tc for the desiredchemical, and will return methods instead of Tc
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of seven sources are available for this function. They are:
•‘IUPAC Organic Critical Properties’, a series of critically evaluated experimental datum for organic com-pounds in [R29], [R30], [R31], [R32], [R33], [R34], [R35], [R36], [R37], [10]_, [11]_, and [12]_.
20 Chapter 1. thermo
thermo Documentation, Release 0.1
•‘Matthews Inorganic Critical Properties’, a series of critically evaluated data for inorganic compounds in[13]_.
•‘CRC Organic Critical Properties’, a compillation of critically evaluated data by the TRC as published in[14]_.
•‘PSRK Revision 4 Appendix’, a compillation of experimental and estimated data published in [15]_.
•‘Passut Danner 1973 Critical Properties’, an older compillation of data published in [16]_
•‘Yaws Critical Properties’, a large compillation of data from a variety of sources; no data points are sourcedin the work of [17]_.
•Critical Surface’, an estimation method using a simple quadratic method for estimating Tc from Pc andVc. This is ignored and not returned as a method by default, as no compounds have values of Pc and Vcbut not Tc currently.
References
[R29], [R30], [R31], [R32], [R33], [R34], [R35], [R36], [R37], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_,[17]_
Examples
>>> Tc(CASRN='64-17-5')514.0
thermo.critical.Tc_mixture(Tcs=None, zs=None, CASRNs=None, AvailableMethods=False,Method=None)
This function handles the retrival of a mixture’s critical temperature.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Tc_mixture([400, 550], [0.3, 0.7])505.0
thermo.critical.ThirdProperty(CASRN=None, T=False, P=False, V=False)Function for calculating a critical property of a substance from its other two critical properties, but retrievingthe actual other critical values for convenient calculation. Calls functions Ihmels, Meissner, and Grigoras, eachof which use a general ‘Critical surface’ type of equation. Limited accuracy is expected due to very limitedtheoretical backing.
Parameters CASRN : string
The CAS number of the desired chemical
T : bool
Estimate critical temperature
P : bool
Estimate critical pressure
V : bool
Estimate critical volume
Returns Tc, Pc or Vc : float
1.1. thermo package 21
thermo Documentation, Release 0.1
Critical property of fluid [K], [Pa], or [m^3/mol]
Notes
Avoids recursion only by eliminating the None and critical surface options for calculating each critical property.So long as it never calls itself. Note that when used by Tc, Pc or Vc, this function results in said function callingthe other functions (to determine methods) and (with method specified)
Examples
>>> # Decamethyltetrasiloxane [141-62-8]>>> ThirdProperty('141-62-8', V=True)0.0010920041152263375
>>> # Succinic acid 110-15-6>>> ThirdProperty('110-15-6', P=True)6095016.233766234
thermo.critical.Vc(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMethods=[’CriticalSurface’])
This function handles the retrieval of a chemical’s critical volume. Lookup is based on CASRNs. Will automat-ically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘IUPAC Organic Critical Properties’ for organic chemicals, and ‘Matthews Inorganic Crit-ical Properties’ for inorganic chemicals. Function has data for approximately 1000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Vc : float
Critical volume, [m^3/mol]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Vc with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Vc_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Vc for the desiredchemical, and will return methods instead of Vc
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of six sources are available for this function. They are:
•‘IUPAC Organic Critical Properties’, a series of critically evaluated experimental datum for organic com-pounds in [R38], [R39], [R40], [R41], [R42], [R43], [R44], [R45], [R46], [10]_, [11]_, and [12]_.
22 Chapter 1. thermo
thermo Documentation, Release 0.1
•‘Matthews Inorganic Critical Properties’, a series of critically evaluated data for inorganic compounds in[13]_.
•‘CRC Organic Critical Properties’, a compillation of critically evaluated data by the TRC as published in[14]_.
•‘PSRK Revision 4 Appendix’, a compillation of experimental and estimated data published in [15]_.
•‘Yaws Critical Properties’, a large compillation of data from a variety of sources; no data points are sourcedin the work of [16]_.
•Critical Surface’, an estimation method using a simple quadratic method for estimating Pc from Tc andVc. This is ignored and not returned as a method by default
References
[R38], [R39], [R40], [R41], [R42], [R43], [R44], [R45], [R46], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_
Examples
>>> Vc(CASRN='64-17-5')0.000168
thermo.critical.Vc_mixture(Vcs=None, zs=None, CASRNs=None, AvailableMethods=False,Method=None)
This function handles the retrival of a mixture’s critical temperature.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Vc_mixture([5.6E-5, 2E-4], [0.3, 0.7])0.0001568
thermo.critical.Zc(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMeth-ods=[’Combined’])
This function handles the retrieval of a chemical’s critical compressibility. Lookup is based on CASRNs. Willautomatically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘IUPAC Organic Critical Properties’ for organic chemicals, and ‘Matthews Inorganic Crit-ical Properties’ for inorganic chemicals. Function has data for approximately 1000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Zc : float
Critical compressibility, [-]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Vc with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Zc_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Zc for the desiredchemical, and will return methods instead of Zc
1.1. thermo package 23
thermo Documentation, Release 0.1
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of five sources are available for this function. They are:
•‘IUPAC Organic Critical Properties’, a series of critically evaluated experimental datum for organic com-pounds in [R47], [R48], [R49], [R50], [R51], [R52], [R53], [R54], [R55], [10]_, [11]_, and [12]_.
•‘Matthews Inorganic Critical Properties’, a series of critically evaluated data for inorganic compounds in[13]_.
•‘CRC Organic Critical Properties’, a compillation of critically evaluated data by the TRC as published in[14]_.
•‘PSRK Revision 4 Appendix’, a compillation of experimental and estimated data published in [15]_.
•‘Yaws Critical Properties’, a large compillation of data from a variety of sources; no data points are sourcedin the work of [16]_.
References
[R47], [R48], [R49], [R50], [R51], [R52], [R53], [R54], [R55], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_
Examples
>>> Zc(CASRN='64-17-5')0.24100000000000002
thermo.critical.critical_surface(Tc=None, Pc=None, Vc=None, AvailableMethods=False,Method=None)
Function for calculating a critical property of a substance from its other two critical properties. Calls func-tions Ihmels, Meissner, and Grigoras, each of which use a general ‘Critical surface’ type of equation. Limitedaccuracy is expected due to very limited theoretical backing.
Parameters Tc : float
Critical temperature of fluid (optional) [K]
Pc : float
Critical pressure of fluid (optional) [Pa]
Vc : float
Critical volume of fluid (optional) [m^3/mol]
AvailableMethods : bool
Request available methods for given parameters
Method : string
Request calculation uses the requested method
Returns Tc, Pc or Vc : float
Critical property of fluid [K], [Pa], or [m^3/mol]
24 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Decamethyltetrasiloxane [141-62-8]
>>> critical_surface(Tc=599.4, Pc=1.19E6, Method='Ihmels')0.0010927333333333334
thermo.critical.modified_Wilson_Tc(zs, Tcs, Aijs)Calculates critical temperature of a mixture according to mixing rules in [R56]. Equation
𝑇𝑐𝑚 =∑𝑖
𝑥𝑖𝑇𝑐𝑖 + 𝐶∑𝑖
𝑥𝑖 ln
⎛⎝𝑥𝑖 +∑𝑗
𝑥𝑗𝐴𝑖𝑗
⎞⎠𝑇𝑟𝑒𝑓
For a binary mxiture, this simplifies to:
𝑇𝑐𝑚 = 𝑥1𝑇𝑐1 + 𝑥2𝑇𝑐2 + 𝐶[𝑥1 ln(𝑥1 + 𝑥2𝐴12) + 𝑥2 ln(𝑥2 + 𝑥1𝐴21)]
Parameters zs : float
Mole fractions of all components
Tcs : float
Critical temperatures of all components, [K]
Aijs : matrix
Interaction parameters
Returns Tcm : float
Critical temperatures of the mixture, [K]
Notes
The equation and original article has been reviewed. [R56] has 75 binary systems, and additional multicompo-nent mixture parameters. All parameters, even if zero, must be given to this function.
2rd example is from [R57], for: butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K. Its resultis identical to that calculated in the article.
References
[R56], [R57]
Examples
>>> modified_Wilson_Tc([0.6449, 0.2359, 0.1192], [425.12, 469.7, 507.6],... [[0, 1.174450, 1.274390], [0.835914, 0, 1.21038],... [0.746878, 0.80677, 0]])450.0305966823031
thermo.critical.modified_Wilson_Vc(zs, Vcs, Aijs)Calculates critical volume of a mixture according to mixing rules in [R58] with parameters. Equation
𝑉𝑐𝑚 =∑𝑖
𝑥𝑖𝑉𝑐𝑖 + 𝐶∑𝑖
𝑥𝑖 ln
⎛⎝𝑥𝑖 +∑𝑗
𝑥𝑗𝐴𝑖𝑗
⎞⎠𝑉𝑟𝑒𝑓
1.1. thermo package 25
thermo Documentation, Release 0.1
For a binary mxiture, this simplifies to:
𝑉𝑐𝑚 = 𝑥1𝑉𝑐1 + 𝑥2𝑉𝑐2 + 𝐶[𝑥1 ln(𝑥1 + 𝑥2𝐴12) + 𝑥2 ln(𝑥2 + 𝑥1𝐴21)]
Parameters zs : float
Mole fractions of all components
Vcs : float
Critical volumes of all components, [m^3/mol]
Aijs : matrix
Interaction parameters, [cm^3/mol]
Returns Vcm : float
Critical volume of the mixture, [m^3/mol]
Notes
The equation and original article has been reviewed. All parameters, even if zero, must be given to this function.C = -2500
All parameters, even if zero, must be given to this function. nu parameters are in cm^3/mol, but are convertedto m^3/mol inside the function
References
[R58], [R59]
Examples
1-butanol/benzene 0.4271/0.5729 mixture, Vcm = 268.096 mL/mol.
>>> modified_Wilson_Vc([0.4271, 0.5729], [0.000273, 0.000256],... [[0, 0.6671250], [1.3939900, 0]])0.00026643350327068809
thermo.datasheet module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 Chapter 1. thermo
thermo Documentation, Release 0.1
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.datasheet.tabulate_constants(chemical, full=False, vertical=False)
thermo.datasheet.tabulate_gas(chemical, Tmin=None, Tmax=None, pts=10)
thermo.datasheet.tabulate_liq(chemical, Tmin=None, Tmax=None, pts=10)
thermo.datasheet.tabulate_solid(chemical, Tmin=None, Tmax=None, pts=10)
thermo.dipole module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.dipole.dipole(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s dipole moment. Lookup is based on CASRNs. Will automat-ically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered source is ‘CCCBDB’. Considerable variation in reported data has found.
Parameters CASRN : string
CASRN [-]
Returns _dipole : float
Dipole moment, [debye]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain dipole moment with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in dipole_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the dipole momentfor the desired chemical, and will return methods instead of the dipole moment
Notes
A total of three sources are available for this function. They are:
1.1. thermo package 27
thermo Documentation, Release 0.1
•‘CCCBDB’, a series of critically evaluated data for compounds in [R60], intended for use in predictivemodeling.
•‘Muller, Liudmila and Wolfgang (2012), a collection of data in a group-contribution scheme in [R61].
•‘Poling’, in the appendix in [3].
References
[R60], [R61], [R62]
Examples
>>> dipole(CASRN='64-17-5')1.44
thermo.dippr module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.dippr.EQ100(T, A=0, B=0, C=0, D=0, E=0, F=0, G=0)DIPPR Equation # 100. Used in calculating the molar heat capacities of liquids and solids, liquid thermalconductivity, and solid density. All parameters default to zero. As this is a straightforward polynomial, norestrictions on parameters apply. Note that high-order polynomials like this may need large numbers of decimalplaces to avoid unnecessary error.
𝑌 = 𝐴+𝐵𝑇 + 𝐶𝑇 2 +𝐷𝑇 3 + 𝐸𝑇 4 + 𝐹𝑇 5 +𝐺𝑇 6
Parameters T : float
Temperature, [K]
A-G : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
28 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R63]
Examples
Water liquid heat capacity; DIPPR coefficients normally listed in J/kmol/K.
>>> EQ100(300, 276370., -2090.1, 8.125, -0.014116, 0.0000093701)75355.81
thermo.dippr.EQ101(T, A, B, C, D, E)DIPPR Equation # 101. Used in calculating vapor pressure, sublimation pressure, and liquid viscosity. All 5parameters are required. E is often an integer. As the model is exponential, a sufficiently high temperature willcause an OverflowError. A negative temperature (or just low, if fit poorly) may cause a math domain error.
𝑌 = exp
(𝐴+
𝐵
𝑇+ 𝐶 · ln𝑇 +𝐷 · 𝑇𝐸
)Parameters T : float
Temperature, [K]
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R64]
Examples
Water vapor pressure; DIPPR coefficients normally listed in Pa.
>>> EQ101(300, 73.649, -7258.2, -7.3037, 4.1653E-6, 2)3537.44834545549
thermo.dippr.EQ102(T, A, B, C, D)DIPPR Equation # 102. Used in calculating vapor viscosity, vapor thermal conductivity, and sometimes solidheat capacity. High values of B raise an OverflowError. All 4 parameters are required. C and D are often 0.
𝑌 =𝐴 · 𝑇𝐵
1 + 𝐶𝑇 + 𝐷
𝑇 2
Parameters T : float
Temperature, [K]
A-D : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
1.1. thermo package 29
thermo Documentation, Release 0.1
References
[R65]
Examples
Water vapor viscosity; DIPPR coefficients normally listed in Pa*S.
>>> EQ102(300, 1.7096E-8, 1.1146, 0, 0)9.860384711890639e-06
thermo.dippr.EQ104(T, A, B, C, D, E)DIPPR Equation #104. Often used in calculating second virial coefficients of gases. All 5 parameters arerequired. C, D, and E are normally large values.
𝑌 = 𝐴+𝐵
𝑇+
𝐶
𝑇 3+𝐷
𝑇 8+
𝐸
𝑇 9
Parameters T : float
Temperature, [K]
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R66]
Examples
Water second virial coefficient; DIPPR coefficients normally dimensionless.
>>> EQ104(300, 0.02222, -26.38, -16750000, -3.894E19, 3.133E21)-1.1204179007265151
thermo.dippr.EQ105(T, A, B, C, D)DIPPR Equation #105. Often used in calculating liquid molar density. All 4 parameters are required. C issometimes the fluid’s critical temperature.
𝑌 =𝐴
𝐵1+(1− 𝑇𝐶 )𝐷
Parameters T : float
Temperature, [K]
A-D : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
30 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R67]
Examples
Hexane molar density; DIPPR coefficients normally in kmol/m^3.
>>> EQ105(300., 0.70824, 0.26411, 507.6, 0.27537)7.593170096339236
thermo.dippr.EQ106(T, Tc, A, B, C=0, D=0, E=0)DIPPR Equation #106. Often used in calculating liquid surface tension, and heat of vaporization. Only param-eters A and B parameters are required; many fits include no further parameters. Critical temperature is alsorequired.
𝑌 = 𝐴(1 − 𝑇𝑟)𝐵+𝐶𝑇𝑟+𝐷𝑇 2𝑟 +𝐸𝑇 3
𝑟
𝑇𝑟 =𝑇
𝑇𝑐
Parameters T : float
Temperature, [K]
Tc : float
Critical temperature, [K]
A-D : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R68]
Examples
Water surface tension; DIPPR coefficients normally in Pa*S.
>>> EQ106(300, 647.096, 0.17766, 2.567, -3.3377, 1.9699)0.07231499373541
thermo.dippr.EQ107(T, A=0, B=0, C=0, D=0, E=0)DIPPR Equation #107. Often used in calculating ideal-gas heat capacity. All 5 parameters are required. Alsocalled the Aly-Lee equation.
𝑌 = 𝐴+𝐵
[𝐶/𝑇
sinh(𝐶/𝑇 )
]2+𝐷
[𝐸/𝑇
cosh(𝐸/𝑇 )
]2Parameters T : float
Temperature, [K]
1.1. thermo package 31
thermo Documentation, Release 0.1
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R69], [R70]
Examples
Water ideal gas molar heat capacity; DIPPR coefficients normally in J/kmol/K
>>> EQ107(300., 33363., 26790., 2610.5, 8896., 1169.)33585.90452768923
thermo.dippr.EQ114(T, Tc, A, B, C, D)DIPPR Equation #114. Rarely used, normally as an alternate liquid heat capacity expression. All 4 parametersare required, as well as critical temperature.
𝑌 =𝐴2
𝜏+𝐵 − 2𝐴𝐶𝜏 −𝐴𝐷𝜏2 − 1
3𝐶2𝜏3 − 1
2𝐶𝐷𝜏4 − 1
5𝐷2𝜏5
𝜏 = 1 − 𝑇
𝑇𝑐
Parameters T : float
Temperature, [K]
Tc : float
Critical temperature, [K]
A-D : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R71]
Examples
Hydrogen liquid heat capacity; DIPPR coefficients normally in J/kmol/K.
>>> EQ114(20, 33.19, 66.653, 6765.9, -123.63, 478.27)19423.948911676463
32 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.dippr.EQ115(T, A, B, C=0, D=0, E=0)DIPPR Equation #115. No major uses; has been used as an alternate liquid viscosity expression, and as a modelfor vapor pressure. Only parameters A and B are required.
𝑌 = exp
(𝐴+
𝐵
𝑇+ 𝐶 log 𝑇 +𝐷𝑇 2 +
𝐸
𝑇 2
)Parameters T : float
Temperature, [K]
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R72]
Examples
No coefficients found for this expression.
thermo.dippr.EQ116(T, Tc, A, B, C, D, E)DIPPR Equation #116. Used to describe the molar density of water fairly precisely; no other uses listed. All 5parameters are needed, as well as the critical temperature.
𝑌 = 𝐴+𝐵𝜏0.35 + 𝐶𝜏2/3 +𝐷𝜏 + 𝐸𝜏4/3
𝜏 = 1 − 𝑇
𝑇𝑐
Parameters T : float
Temperature, [K]
Tc : float
Critical temperature, [K]
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R73]
1.1. thermo package 33
thermo Documentation, Release 0.1
Examples
Water liquid molar density; DIPPR coefficients normally in kmol/m^3.
>>> EQ116(300., 647.096, 17.863, 58.606, -95.396, 213.89, -141.26)55.17615446406527
thermo.dippr.EQ127(T, A, B, C, D, E, F, G)DIPPR Equation #127. Rarely used, and then only in calculating ideal-gas heat capacity. All 7 parameters arerequired.
𝑌 = 𝐴+𝐵
[(𝐶𝑇
)2exp
(𝐶𝑇
)(exp 𝐶
𝑇 − 1)2]
+𝐷
[(𝐸𝑇
)2exp
(𝐸𝑇
)(exp 𝐸
𝑇 − 1)2]
+ 𝐹
[(𝐺𝑇
)2exp
(𝐺𝑇
)(exp 𝐺
𝑇 − 1)2]
Parameters T : float
Temperature, [K]
A-G : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R74]
Examples
Ideal gas heat capacity of methanol; DIPPR coefficients normally in J/kmol/K
>>> EQ127(20., 3.3258E4, 3.6199E4, 1.2057E3, 1.5373E7, 3.2122E3, -1.5318E7, 3.2122E3)33258.0
thermo.electrochem module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.electrochem.Kweq_1981(T, rho_w)Calculates equilibrium constant for OH- and H+ in water, according to [R75]. Second most recent formulation.
log10𝐾𝑤 = 𝐴+𝐵/𝑇 + 𝐶/𝑇 2 +𝐷/𝑇 3 + (𝐸 + 𝐹/𝑇 +𝐺/𝑇 2) log10 𝜌𝑤
Parameters T : float
Temperature of fluid [K]
rho_w : float
Density of water, [kg/m^3]
Returns Kweq : float
Ionization constant of water, [-]
Notes
Density is internally converted to units of g/cm^3.
A = -4.098; B = -3245.2; C = 2.2362E5; D = -3.984E7; E = 13.957; F = -1262.3; G = 8.5641E5
References
[R75]
Examples
>>> -1*log10(Kweq_1981(600, 700))11.274522047458206
thermo.electrochem.Kweq_IAPWS(T, rho_w)Calculates equilibrium constant for OH- and H+ in water, according to [R76]. This is the most recent formula-tion available.
𝑄 = 𝜌 exp(𝛼0 + 𝛼1𝑇−1 + 𝛼2𝑇
−2𝜌2/3)
− log10𝐾𝑤 = −2𝑛
[log10(1 +𝑄) − 𝑄
𝑄+ 1𝜌(𝛽0 + 𝛽1𝑇
−1 + 𝛽2𝜌)
]− log10𝐾
𝐺𝑤 + 2 log10
18.015268
1000
Parameters T : float
Temperature of water [K]
rho_w : float
Density of water at temperature and pressure [kg/m^3]
Returns Kweq : float
Ionization constant of water, [-]
Notes
Formulation is in terms of density in g/cm^3; density is converted internally.
n = 6; alpha0 = -0.864671; alpha1 = 8659.19; alpha2 = -22786.2; beta0 = 0.642044; beta1 = -56.8534; beta2 =-0.375754
1.1. thermo package 35
thermo Documentation, Release 0.1
References
[R76]
Examples
Example from IAPWS check:
>>> -1*log10(Kweq_IAPWS(600, 700))11.203153057603775
thermo.electrochem.Kweq_IAPWS_gas(T)Calculates equilibrium constant for OH- and H+ in water vapor, according to [R77]. This is the most recentformulation available.
−𝑙𝑜𝑔10𝐾𝐺𝑤 = 𝛾0 + 𝛾1𝑇
−1 + 𝛾2𝑇−2 + 𝛾3𝑇
−3
Parameters T : float
Temperature of H2O [K]
Returns K_w_G : float
Notes
gamma0 = 6.141500E-1; gamma1 = 4.825133E4; gamma2 = -6.770793E4; gamma3 = 1.010210E7
References
[R77]
Examples
>>> Kweq_IAPWS_gas(800)1.4379721554798815e-61
thermo.electrochem.Laliberte_density(T, ws, CASRNs)Calculate the density of an aqueous electrolyte mixture using the form proposed by [R78]. Parameters areloaded by the function as needed. Units are Kelvin and Pa*s.
𝜌𝑚 =
(𝑤𝑤
𝜌𝑤+∑𝑖
𝑤𝑖
𝜌𝑎𝑝𝑝𝑖
)−1
Parameters T : float
Temperature of fluid [K]
ws : array
Weight fractions of fluid components other than water
CASRNs : array
CAS numbers of the fluid components other than water
36 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns rho_i : float
Solution density, [kg/m^3]
Notes
Temperature range check is not used here.
References
[R78]
Examples
>>> Laliberte_density(273.15, [0.0037838838], ['7647-14-5'])1002.6250120185854
thermo.electrochem.Laliberte_density_i(T, w_w, c0, c1, c2, c3, c4)Calculate the density of a solute using the form proposed by Laliberte [R79]. Parameters are needed, and atemperature, and water fraction. Units are Kelvin and Pa*s.
𝜌𝑎𝑝𝑝,𝑖 =(𝑐0[1 − 𝑤𝑤] + 𝑐1) exp(10−6[𝑡+ 𝑐4]2)
(1 − 𝑤𝑤) + 𝑐2 + 𝑐3𝑡
Parameters T : float
Temperature of fluid [K]
w_w : float
Weight fraction of water in the solution
c0-c4 : floats
Function fit parameters
Returns rho_i : float
Solute partial density, [kg/m^3]
Notes
Temperature range check is TODO
References
[R79]
Examples
>>> d = _Laliberte_Density_ParametersDict['7647-14-5']>>> Laliberte_density_i(273.15+0, 1-0.0037838838, d["C0"], d["C1"], d["C2"], d["C3"], d["C4"])3761.8917585699983
1.1. thermo package 37
thermo Documentation, Release 0.1
thermo.electrochem.Laliberte_density_w(T)Calculate the density of water using the form proposed by [R80]. No parameters are needed, just a temperature.Units are Kelvin and kg/m^3h.
𝜌𝑤 =
([(−2.8054253 × 10−10 · 𝑡+ 1.0556302 × 10−7)𝑡− 4.6170461 × 10−5]𝑡− 0.0079870401
)𝑡+ 16.945176
𝑡+ 999.83952
1 + 0.01687985 · 𝑡
Parameters T : float
Temperature of fluid [K]
Returns rho_w : float
Water density, [kg/m^3]
Notes
Original source not cited No temperature range is used.
References
[R80]
Examples
>>> Laliberte_density_w(298.15)997.0448954179155>>> Laliberte_density_w(273.15 + 50)988.0362916114763
thermo.electrochem.Laliberte_heat_capacity(T, ws, CASRNs)Calculate the heat capacity of an aqueous electrolyte mixture using the form proposed by [R81]. Parameters areloaded by the function as needed.
𝑇𝑂𝐷𝑂
Parameters T : float
Temperature of fluid [K]
ws : array
Weight fractions of fluid components other than water
CASRNs : array
CAS numbers of the fluid components other than water
Returns Cp : float
Solution heat capacity, [J/kg/K]
Notes
Temperature range check is not implemented. Units are Kelvin and J/kg/K.
38 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R81]
Examples
>>> Laliberte_heat_capacity(273.15+1.5, [0.00398447], ['7647-14-5']) #4186.09884186.566417712068
thermo.electrochem.Laliberte_heat_capacity_i(T, w_w, a1, a2, a3, a4, a5, a6)Calculate the heat capacity of a solute using the form proposed by [R82] Parameters are needed, and a temper-ature, and water fraction.
𝐶𝑝𝑖 = 𝑎1𝑒𝛼 + 𝑎5(1 − 𝑤𝑤)𝑎6𝛼 = 𝑎2𝑡+ 𝑎3 exp(0.01𝑡) + 𝑎4(1 − 𝑤𝑤)
Parameters T : float
Temperature of fluid [K]
w_w : float
Weight fraction of water in the solution
a1-a6 : floats
Function fit parameters
Returns Cp_i : float
Solute partial heat capacity, [J/kg/K]
Notes
Units are Kelvin and J/kg/K. Temperature range check is TODO
References
[R82]
Examples
>>> d = _Laliberte_Heat_Capacity_ParametersDict['7647-14-5']>>> Laliberte_heat_capacity_i(1.5+273.15, 1-0.00398447, d["A1"], d["A2"], d["A3"], d["A4"], d["A5"], d["A6"])-2930.7353945880477
thermo.electrochem.Laliberte_heat_capacity_w(T)Calculate the heat capacity of water using the interpolation proposed by [R83]. No parameters are needed, justa temperature.
𝐶𝑝𝑤 = 𝐶𝑝1 + (𝐶𝑝2 − 𝐶𝑝1)
(𝑡− 𝑡1𝑡2 − 𝑡1
)+
(𝐶𝑝3 − 2𝐶𝑝2 + 𝐶𝑝1)
2
(𝑡− 𝑡1𝑡2 − 𝑡1
)(𝑡− 𝑡1𝑡2 − 𝑡1
− 1
)Parameters T : float
Temperature of fluid [K]
1.1. thermo package 39
thermo Documentation, Release 0.1
Returns Cp_w : float
Water heat capacity, [J/kg/K]
Notes
Units are Kelvin and J/kg/K. Original source not cited No temperature range is used. The original equation isnot used, but rather a cubic scipy interpolation routine.
References
[R83]
Examples
>>> Laliberte_heat_capacity_w(273.15+3.56)4208.8759205525475
thermo.electrochem.Laliberte_viscosity(T, ws, CASRNs)Calculate the viscosity of an aqueous mixture using the form proposed by [R84]. Parameters are loaded by thefunction as needed. Units are Kelvin and Pa*s.
𝜇𝑚 = 𝜇𝑤𝑤𝑤 Π𝜇𝑤𝑖
𝑖
Parameters T : float
Temperature of fluid [K]
ws : array
Weight fractions of fluid components other than water
CASRNs : array
CAS numbers of the fluid components other than water
Returns mu_i : float
Solute partial viscosity, Pa*s
Notes
Temperature range check is not used here. Check is performed using NaCl at 5 degC from the first value in[R84]‘s spreadsheet.
References
[R84]
40 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Laliberte_viscosity(273.15+5, [0.005810], ['7647-14-5'])0.0015285828581961414
thermo.electrochem.Laliberte_viscosity_i(T, w_w, v1, v2, v3, v4, v5, v6)Calculate the viscosity of a solute using the form proposed by [R85] Parameters are needed, and a temperature.Units are Kelvin and Pa*s.
𝜇𝑖 =exp
(𝑣1(1−𝑤𝑤)𝑣2+𝑣3
𝑣4𝑡+1
)𝑣5(1 − 𝑤𝑤)𝑣6 + 1
Parameters T : float
Temperature of fluid [K]
w_w : float
Weight fraction of water in the solution
v1-v6 : floats
Function fit parameters
Returns mu_i : float
Solute partial viscosity, Pa*s
Notes
Temperature range check is outside of this function. Check is performed using NaCl at 5 degC from the firstvalue in [R85]‘s spreadsheet.
References
[R85]
Examples
>>> d = _Laliberte_Viscosity_ParametersDict['7647-14-5']>>> Laliberte_viscosity_i(273.15+5, 1-0.005810, d["V1"], d["V2"], d["V3"], d["V4"], d["V5"], d["V6"] )0.0042540255333087936
thermo.electrochem.Laliberte_viscosity_w(T)Calculate the viscosity of a water using the form proposed by [R86]. No parameters are needed, just a tempera-ture. Units are Kelvin and Pa*s. t is temperature in degrees Celcius.
𝜇𝑤 =𝑡+ 246
(0.05594𝑡+ 5.2842)𝑡+ 137.37
Parameters T : float
Temperature of fluid [K]
Returns mu_w : float
Water viscosity, Pa*s
1.1. thermo package 41
thermo Documentation, Release 0.1
Notes
Original source or pure water viscosity is not cited. No temperature range is given for this equation.
References
[R86]
Examples
>>> Laliberte_viscosity_w(298)0.0008932264487033279
thermo.electrochem.conductivity(CASRN=None, AvailableMethods=False, Method=None,full_info=True)
This function handles the retrieval of a chemical’s conductivity. Lookup is based on CASRNs. Will automati-cally select a data source to use if no Method is provided; returns None if the data is not available.
Function has data for approximately 100 chemicals.
Parameters CASRN : string
CASRN [-]
Returns kappa : float
Electrical conductivity of the fluid, [S/m]
T : float, only returned if full_info == True
Temperature at which conductivity measurement was made
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain RI with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in conductivity_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain conductivity forthe desired chemical, and will return methods instead of conductivity
full_info : bool, optional
If True, function will return the temperature at which the conductivity reading was made
Notes
Only one source is available in this function. It is:
•‘Lange’s Handbook, Table 8.34 Electrical Conductivity of Various Pure Liquids’,
a compillation of data in [R87].
42 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R87]
Examples
>>> conductivity('7732-18-5')(4e-06, 291.15)
thermo.electrochem.ionic_strength(mis, zis)Calculate the ionic strength of a solution in one of two ways, depending on the inputs only. For Pitzer andBromley models, mis should be molalities of each component. For eNRTL models, mis should be mole fractionsof each electrolyte in the solution. This will sum to be much less than 1.
𝐼 =1
2
∑𝑀𝑖𝑧
2𝑖
𝐼 =1
2
∑𝑥𝑖𝑧
2𝑖
Parameters mis : list
Molalities of each ion, or mole fractions of each ion [mol/kg or -]
zis : list
Charges of each ion [-]
Returns I : float
ionic strength, [?]
References
[R88], [R89]
Examples
>>> ionic_strength([0.1393, 0.1393], [1, -1])0.1393
thermo.electrochem.thermal_conductivity_Magomedov(T, P, ws, CASRNs, k_w=None)Calculate the thermal conductivity of an aqueous mixture of electrolytes using the form proposed by Magome-dov [R90]. Parameters are loaded by the function as needed. Function will fail if an electrolyte is not in thedatabase.
𝜆 = 𝜆𝑤
[1 −
𝑛∑𝑖=1
𝐴𝑖(𝑤𝑖 + 2 × 10−4𝑤3𝑖 )
]− 2 × 10−8𝑃𝑇
𝑛∑𝑖=1
𝑤𝑖
Parameters T : float
Temperature of liquid [K]
P : float
Pressure of the liquid [Pa]
ws : array
1.1. thermo package 43
thermo Documentation, Release 0.1
Weight fractions of liquid components other than water
CASRNs : array
CAS numbers of the liquid components other than water
k_w : float
Liquid thermal condiuctivity or pure water at T and P, [W/m/K]
Returns kl : float
Liquid thermal condiuctivity, [W/m/K]
Notes
Range from 273 K to 473 K, P from 0.1 MPa to 100 MPa. C from 0 to 25 mass%. Internal untis are MPa forpressure and weight percent.
An example is sought for this function. It is not possible to reproduce the author’s values consistently.
References
[R90]
Examples
>>> thermal_conductivity_Magomedov(293., 1E6, [.25], ['7758-94-3'], k_w=0.59827)0.548654049375
thermo.elements module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.elements.CAS_by_number = [‘1333-74-0’, ‘7440-59-7’, ‘7439-93-2’, ‘7440-41-7’, ‘7440-42-8’, ‘7440-44-0’, ‘7727-37-9’, ‘7782-44-7’, ‘7782-41-4’, ‘7440-01-9’, ‘7440-23-5’, ‘7439-95-4’, ‘7429-90-5’, ‘7440-21-3’, ‘7723-14-0’, ‘7704-34-9’, ‘7782-50-5’, ‘7440-37-1’, ‘7440-09-7’, ‘7440-70-2’, ‘7440-20-2’, ‘7440-32-6’, ‘7440-62-2’, ‘7440-47-3’, ‘7439-96-5’, ‘7439-89-6’, ‘7440-48-4’, ‘7440-02-0’, ‘7440-50-8’, ‘7440-66-6’, ‘7440-55-3’, ‘7440-56-4’, ‘7440-38-2’, ‘7782-49-2’, ‘7726-95-6’, ‘7439-90-9’, ‘7440-17-7’, ‘7440-24-6’, ‘7440-65-5’, ‘7440-67-7’, ‘7440-03-1’, ‘7439-98-7’, ‘7440-26-8’, ‘7440-18-8’, ‘7440-16-6’, ‘7440-05-3’, ‘7440-22-4’, ‘7440-43-9’, ‘7440-74-6’, ‘7440-31-5’, ‘7440-36-0’, ‘13494-80-9’, ‘7553-56-2’, ‘7440-63-3’, ‘7440-46-2’, ‘7440-39-3’, ‘7439-91-0’, ‘7440-45-1’, ‘7440-10-0’, ‘7440-00-8’, ‘7440-12-2’, ‘7440-19-9’, ‘7440-53-1’, ‘7440-54-2’, ‘7440-27-9’, ‘7429-91-6’, ‘7440-60-0’, ‘7440-52-0’, ‘7440-30-4’, ‘7440-64-4’, ‘7439-94-3’, ‘7440-58-6’, ‘7440-25-7’, ‘7440-33-7’, ‘7440-15-5’, ‘7440-04-2’, ‘7439-88-5’, ‘7440-06-4’, ‘7440-57-5’, ‘7439-97-6’, ‘7440-28-0’, ‘7439-92-1’, ‘7440-69-9’, ‘7440-08-6’, ‘7440-68-8’, ‘10043-92-2’, ‘7440-73-5’, ‘7440-14-4’, ‘7440-34-8’, ‘7440-29-1’, ‘7440-13-3’, ‘7440-61-1’, ‘7439-99-8’, ‘7440-07-5’, ‘7440-35-9’, ‘7440-51-9’, ‘7440-40-6’, ‘7440-71-3’, ‘7429-92-7’, ‘7440-72-4’, ‘7440-11-1’, ‘10028-14-5’, ‘22537-19-5’, ‘53850-36-5’, ‘53850-35-4’, ‘54038-81-2’, ‘54037-14-8’, ‘54037-57-9’, ‘54038-01-6’, ‘54083-77-1’, ‘54386-24-2’, ‘54084-26-3’, ‘54084-70-7’, ‘54085-16-4’, ‘54085-64-2’, ‘54100-71-9’, ‘54101-14-3’, ‘54144-19-3’]CAS numbers of the elements, indexed by atomic numbers off-by-one up to 118.
class thermo.elements.Element(number, symbol, name, MW, CAS, AReneg, rcov, rvdw, maxbonds,elneg, ionization, elaffinity, period, group, block)
Bases: object
44 Chapter 1. thermo
thermo Documentation, Release 0.1
Class for storing data on chemical elements. Supports most common properties. If a property is not available, itis set to None.
Attributes
number (int) Atomic numbername (str) namesymbol (str) Elemental symbolMW (float) Molecular weightCAS (str) CAS numberperiod (str) Period in the periodic tablegroup (str) Group in the periodic tableblock (str) Block in the periodic tableAReneg (float) Allred and Rochow electronegativityrcov (float) Covalent radius, [Angstrom]rvdw (float) Van der Waals radius, [Angstrom]maxbonds (float) Maximum valence of a bond with this elementelneg (float) Pauling electronegativityionization (float) Ionization potential, [eV]ionization (float) elaffinity affinity, [eV]protons (int) Number of protonselectrons (int) Number of electrons of the element in the ground state
AReneg
CAS
MW
block
elaffinity
electrons
elneg
group
ionization
maxbonds
name
number
period
protons
rcov
rvdw
symbol
class thermo.elements.PeriodicTable(elements)Bases: object
Periodic Table object for use in dealing with elements.
1.1. thermo package 45
thermo Documentation, Release 0.1
Parameters elements : list[Element]
List of Element objects
See also:
elements, Element
Notes
Can be checked to sese if an element in in this, can be iterated over, and as a current length of 118 elements.
References
[R91]
CAS_to_elements
name_to_elements
number_to_elements
symbol_to_elements
thermo.elements.atom_fractions(atoms)Calculates the atomic fractions of each element in a compound, given a dictionary of its atoms and their counts,in the format symbol: count.
𝑎𝑖 =𝑛𝑖∑𝑖 𝑛𝑖
Parameters atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
Returns afracs : dict
dictionary of atomic fractions of individual atoms, indexed by symbol with proper cap-italization, [-]
Notes
No actual data on the elements is used, so incorrect or custom compounds would not raise an error.
References
[R92]
Examples
>>> atom_fractions('H': 12, 'C': 20, 'O': 5)'H': 0.32432432432432434, 'C': 0.5405405405405406, 'O': 0.13513513513513514
46 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.elements.atoms_to_Hill(atoms)Determine the Hill formula of a compound, given a dictionary of its atoms and their counts, in the formatsymbol: count.
Parameters atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
Returns Hill_formula : str
Hill formula, [-]
Notes
The Hill system is as follows:
If the chemical has ‘C’ in it, this is listed first, and then if it has ‘H’ in it as well as ‘C’, then that goes next. Allelements are sorted alphabetically afterwards, including ‘H’ if ‘C’ is not present. All elements are followed bytheir count, unless it is 1.
References
[R93]
Examples
>>> atoms_to_Hill('H': 5, 'C': 2, 'Br': 1)'C2H5Br'
thermo.elements.blocks = ‘p’: [5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 31, 32, 33, 34, 35, 36, 49, 50, 51, 52, 53, 54, 81, 82, 83, 84, 85, 86, 113, 114, 115, 116, 117, 118], ‘s’: [1, 2, 3, 4, 11, 12, 19, 20, 37, 38, 55, 56, 87, 88], ‘d’: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], ‘f’: [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102]Blocks of the elements, stored in a dictionary with four keys and lists. Indexed by atomic numbers off-by-oneup to 118.
thermo.elements.elements = <thermo.elements.PeriodicTable object>Single instance of the PeriodicTable class
thermo.elements.groups = [1, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]Groups of the elements, indexed by atomic numbers off-by-one up to 118. Lanthanides and Actinides are set toNone.
thermo.elements.mass_fractions(atoms, MW=None)Calculates the mass fractions of each element in a compound, given a dictionary of its atoms and their counts,in the format symbol: count.
𝑤𝑖 =𝑛𝑖𝑀𝑊𝑖∑𝑖 𝑛𝑖𝑀𝑊𝑖
Parameters atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
MW : float, optional
Molecular weight, [g/mol]
Returns mfracs : dict
1.1. thermo package 47
thermo Documentation, Release 0.1
dictionary of mass fractions of individual atoms, indexed by symbol with proper capi-talization, [-]
Notes
Molecular weight is optional, but speeds up the calculation slightly. It is calculated using the function molecu-lar_weight if not specified.
Elemental data is from rdkit, with CAS numbers added. An exception is raised if an incorrect element symbolis given. Elements up to 118 are supported.
References
[R94]
Examples
>>> mass_fractions('H': 12, 'C': 20, 'O': 5)'H': 0.03639798802478244, 'C': 0.7228692758981262, 'O': 0.24073273607709128
thermo.elements.molecular_weight(atoms)Calculates molecular weight of a molecule given a dictionary of its atoms and their counts, in the format sym-bol: count.
𝑀𝑊 =∑𝑖
𝑛𝑖𝑀𝑊𝑖
Parameters atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
Returns MW : float
Calculated molecular weight [g/mol]
Notes
Elemental data is from rdkit, with CAS numbers added. An exception is raised if an incorrect element symbolis given. Elements up to 118 are supported.
References
[R95]
Examples
>>> molecular_weight('H': 12, 'C': 20, 'O': 5) # DNA332.30628
thermo.elements.periods = [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]Periods of the elements, indexed by atomic numbers off-by-one up to 118.
48 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.elements.similarity_variable(atoms, MW=None)Calculates the similarity variable of an compound, as defined in [R96]. Currently only applied for certain heatcapacity estimation routines.
𝛼 =𝑁
𝑀𝑊=
∑𝑖 𝑛𝑖∑
𝑖 𝑛𝑖𝑀𝑊𝑖
Parameters atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
MW : float, optional
Molecular weight, [g/mol]
Returns similarity_variable : float
similarity variable as defined in [R96], [mol/g]
Notes
Molecular weight is optional, but speeds up the calculation slightly. It is calculated using the function molecu-lar_weight if not specified.
References
[R96]
Examples
>>> similarity_variable('H': 32, 'C': 15)0.22125872677371825
thermo.elements.simple_formula_parser(formula)Basic formula parser, primarily for obtaining element counts from formulas as formated in PubChem. Handlesformulas with integer counts, but no brackets, no hydrates, no charges, no isotopes, and no group multipliers.
Strips charges from the end of a formula first. Accepts repeated chemical units. Performs no sanity checkingthat elements are actually elements. As it uses regular expressions for matching, errors are mostly just ignored.
Parameters formula : str
Formula string, very simply formats only.
Returns atoms : dict
dictionary of counts of individual atoms, indexed by symbol with proper capitalization,[-]
Notes
Inspiration taken from the thermopyl project, at https://github.com/choderalab/thermopyl.
1.1. thermo package 49
thermo Documentation, Release 0.1
Examples
>>> simple_formula_parser('CO2')'C': 1, 'O': 2
thermo.environment module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.environment.GWP(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s Global Warming Potential, relative to CO2. Lookup is basedon CASRNs. Will automatically select a data source to use if no Method is provided; returns None if the data isnot available.
Returns the GWP for the 100yr outlook by default.
Parameters CASRN : string
CASRN [-]
Returns _GWP : float
Global warming potential, [(impact/mass chemical)/(impact/mass CO2)]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain GWP with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in GWP_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the GWP for thedesired chemical, and will return methods instead of the GWP
Notes
All data is from [R97], the official source. Several chemicals are available in [R97] are not included here asthey do not have a CAS. Methods are ‘IPCC (2007) 100yr’, ‘IPCC (2007) 100yr-SAR’, ‘IPCC (2007) 20yr’,and ‘IPCC (2007) 500yr’.
50 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R97]
Examples
Methane, 100-yr outlook
>>> GWP(CASRN='74-82-8')25.0
thermo.environment.ODP(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s Ozone Depletion Potential, relative to CFC-11 (trichloroflu-oromethane). Lookup is based on CASRNs. Will automatically select a data source to use if no Method isprovided; returns None if the data is not available.
Returns the ODP of a chemical according to [R100] when a method is not specified. If a range is provided in[R100], the highest value is returned.
Parameters CASRN : string
CASRN [-]
Returns _ODP : float or str
Ozone Depletion potential, [(impact/mass chemical)/(impact/mass CFC-11)]; if methodselected has string in it, this will be returned as a string regardless of if a range is givenor a number
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain ODP with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in ODP_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the ODP for thedesired chemical, and will return methods instead of the ODP
Notes
Values are tabulated only for a small number of halogenated hydrocarbons, responsible for the largest impact.The original values of ODP as defined in the Montreal Protocol are also available, as methods with the ODP1prefix.
All values are somewhat emperical, as actual reaction rates of chemicals with ozone depend on temperaturewhich depends on latitude, longitude, time of day, weather, and the concentrations of other pollutants.
All data is from [R99]. Several mixtures listed in [R99] are not included here as they are not pure species.Methods for values in [R100] are ‘ODP2 Max’, ‘ODP2 Min’, ‘ODP2 string’, ‘ODP2 logarithmic average’, andmethods for older values are ‘ODP1 Max’, ‘ODP1 Min’, ‘ODP1 string’, and ‘ODP1 logarithmic average’.
References
[R99], [R100]
1.1. thermo package 51
thermo Documentation, Release 0.1
Examples
Dichlorotetrafluoroethane, according to [R100].
>>> ODP(CASRN='76-14-2')0.58
thermo.environment.logP(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s octanol-water partition coefficient. Lookup is based onCASRNs. Will automatically select a data source to use if no Method is provided; returns None if the data isnot available.
Parameters CASRN : string
CASRN [-]
Returns _logP : float
Octanol-water partition coefficient, [-]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain logP with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in logP_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the logP for thedesired chemical, and will return methods instead of the logP
Notes
log𝑃𝑜𝑐𝑡/𝑤𝑎𝑡 = log
([𝑠𝑜𝑙𝑢𝑡𝑒]
𝑢𝑛−𝑖𝑜𝑛𝑖𝑧𝑒𝑑𝑜𝑐𝑡𝑎𝑛𝑜𝑙
[𝑠𝑜𝑙𝑢𝑡𝑒]𝑢𝑛−𝑖𝑜𝑛𝑖𝑧𝑒𝑑𝑤𝑎𝑡𝑒𝑟
)
References
[R101], [R102]
Examples
>>> logP('67-56-1')-0.74
thermo.heat_capacity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,
52 Chapter 1. thermo
thermo Documentation, Release 0.1
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.heat_capacity.Cp_gas_mixture(zs=None, ws=None, Cps=None, CASRNs=None, Avail-ableMethods=False, Method=None)
This function handles the retrival of a mixture’s gas heat capacity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Cp_gas_mixture(ws=[0.6, 0.3, 0.1], Cps=[1864.17, 1375.76, 1654.71])1696.701
thermo.heat_capacity.Cp_liq_mixture(zs=None, ws=None, Cps=None, T=None, CAS-RNs=None, AvailableMethods=False, Method=None)
This function handles the retrival of a mixture’s liquid heat capacity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Cp_liq_mixture(ws=[0.6, 0.3, 0.1], Cps=[4180.59, 2532.45, 2268.80])3494.969
thermo.heat_capacity.Cv_gas_mixture(zs=None, ws=None, Cps=None, CASRNs=None, Avail-ableMethods=False, Method=None)
This function handles the retrival of a mixture’s gas constant volume heat capacity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Cv_gas_mixture(ws=[0.6, 0.3, 0.1], Cps=[1402.64, 1116.27, 1558.23])1332.2880000000002
thermo.heat_capacity.Dadgostar_Shaw(T, similarity_variable)Calculate liquid constant-pressure heat capacitiy with the similarity variable concept and method as shown in[R103].
𝐶𝑝 = 24.5(𝑎11𝛼+ 𝑎12𝛼2) + (𝑎21𝛼+ 𝑎22𝛼
2)𝑇 + (𝑎31𝛼+ 𝑎32𝛼2)𝑇 2
Parameters T : float
Temperature of liquid [K]
similarity_variable : float
similarity variable as defined in [R103], [mol/g]
Returns Cpl : float
Liquid constant-pressure heat capacitiy, [J/kg/K]
1.1. thermo package 53
thermo Documentation, Release 0.1
Notes
Many restrictions on its use.
Original model is in terms of J/g/K. Note that the model is for predicting mass heat capacity, not molar heatcapacity like most other methods!
a11 = -0.3416; a12 = 2.2671; a21 = 0.1064; a22 = -0.3874l; a31 = -9.8231E-05; a32 = 4.182E-04
References
[R103]
Examples
>>> Dadgostar_Shaw(355.6, 0.139)1802.5291501191516
class thermo.heat_capacity.HeatCapacityGas(CASRN=’‘, MW=None, similar-ity_variable=None)
Bases: thermo.utils.TDependentProperty
Class for dealing with gas heat capacity as a function of temperature. Consists of two coefficient-based methods,two constant methods, one tabular source, one simple estimator, and the external library CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
similarity_variable : float, optional
similarity variable, n_atoms/MW, [mol/g]
See also:
TRCCp, Lastovka_Shaw , Rowlinson_Poling, Rowlinson_Bondi
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored inheat_capacity_gas_methods.
TRCIG: A rigorous expression derived in [R104] for modeling gas heat capacity. Coefficients for 1961 chem-icals are available.
POLING: Simple polynomials in [R105] not suitable for extrapolation. Data is available for 308 chemicals.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R106]. Very slow.
LASTOVKA_SHAW: A basic estimation method using the similarity variable concept; requires only molec-ular structure, so is very convenient. See Lastovka_Shaw for details.
CRCSTD: Constant values tabulated in [R107] at 298.15 K; data is available for 533 gases.
54 Chapter 1. thermo
thermo Documentation, Release 0.1
POLING_CONST: Constant values in [R105] at 298.15 K; available for 348 gases.
VDI_TABULAR: Tabular data up to the critical point available in [R108]. Note that this data is along thesaturation curve.
References
[R104], [R105], [R106], [R107], [R108]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate surface tension of a liquid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to test the validity of a specified method for a given temperature.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the surface tension above.
Tmin = NoneMinimum temperature at which no method can calculate the surface tension under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)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 T : float
Temperature at which to calculate heat capacity, [K]
1.1. thermo package 55
thermo Documentation, Release 0.1
method : str
Method name to use
Returns Cp : float
Calculated heat capacity, [J/mol/K]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘gas heat capacity’
property_max = 10000.0Maximum valid of Heat capacity; arbitrarily set. For fluids very near the critical point, this value can beobscenely high.
property_min = 0Heat capacities have a minimum value of 0 at 0 K.
ranked_methods = [’TRC Thermodynamics of Organic Compounds in the Gas State (1994)’, ‘Poling et al. (2001)’, ‘CoolProp’, ‘Lastovka and Shaw (2013)’, ‘CRC Standard Thermodynamic Properties of Chemical Substances’, ‘Poling et al. (2001) constant’, ‘VDI Heat Atlas’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default; gases are fairly linear in heat capacity at high temperatures even ifnot low temperatures.
test_method_validity(T, method)Method to test the validity of a specified method for a given temperature.
‘TRC’ and ‘Poling’ both have minimum and maimum temperatures. The constant temperatures in POL-ING_CONST and CRCSTD are considered valid for 50 degrees around their specified temperatures.Lastovka_Shaw is considered valid for the whole range of temperatures.
56 Chapter 1. thermo
thermo Documentation, Release 0.1
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to determine the validity of the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a specifid method is valid
units = ‘J/mol/K’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
class thermo.heat_capacity.HeatCapacityLiquid(CASRN=’‘, MW=None, similar-ity_variable=None, Tc=None, omega=None,Cpgm=None)
Bases: thermo.utils.TDependentProperty
Class for dealing with liquid heat capacity as a function of temperature. Consists of six coefficient-based meth-ods, two constant methods, one tabular source, two CSP methods based on gas heat capacity, one simple esti-mator, and the external library CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
similarity_variable : float, optional
similarity variable, n_atoms/MW, [mol/g]
Tc : float, optional
Critical temperature, [K]
omega : float, optional
Acentric factor, [-]
Cpgm : float or callable, optional
Idea-gas molar heat capacity at T or callable for the same, [J/mol/K]
See also:
Zabransky_quasi_polynomial, Zabransky_cubic, Rowlinson_Poling,Rowlinson_Bondi, Dadgostar_Shaw
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored inheat_capacity_gas_methods.
1.1. thermo package 57
thermo Documentation, Release 0.1
ZABRANSKY_SPLINE, ZABRANSKY_QUASIPOLYNOMIAL, ZABRANSKY_SPLINE_C, andZABRANSKY_QUASIPOLYNOMIAL_C:
Rigorous expressions developed in [R109] following critical evaluation of the available data. Thespline methods use the form described in Zabransky_cubic over short ranges with varyingcoefficients to obtain a wider range. The quasi-polynomial methods use the form described inZabransky_quasi_polynomial, more suitable for extrapolation, and over then entire range.Respectively, there is data available for 588, 146, 51, and 26 chemicals.
ZABRANSKY_SPLINE_SAT and ZABRANSKY_QUASIPOLYNOMIAL_SAT: Rigorous expressionsdeveloped in [R109] following critical evaluation of the available data. The spline method use the formdescribed in Zabransky_cubic over short ranges with varying coefficients to obtain a wider range.The quasi-polynomial method use the form described in Zabransky_quasi_polynomial, moresuitable for extrapolation, and over then entire range. Respectively, there is data available for 203, and 16chemicals. Note that these methods are for the saturation curve!
VDI_TABULAR: Tabular data up to the critical point available in [R113]. Note that this data is along thesaturation curve.
ROWLINSON_POLING: CSP method described in Rowlinson_Poling. Requires a ideal gas heat ca-pacity value at the same temperature as it is to be calculated.
ROWLINSON_BONDI: CSP method described in Rowlinson_Bondi. Requires a ideal gas heat capacityvalue at the same temperature as it is to be calculated.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R111]. Very slow.
DADGOSTAR_SHAW: A basic estimation method using the similarity variable concept; requires only molec-ular structure, so is very convenient. See Dadgostar_Shaw for details.
POLING_CONST: Constant values in [R110] at 298.15 K; available for 245 liquids.
CRCSTD: Consta values tabulated in [R112] at 298.15 K; data is available for 433 liquids.
References
[R109], [R110], [R111], [R112], [R113]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate heat capacity of a liquid at temperature T with a given method.
Continued on next page
58 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.5 – continued from previous pagecalculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the heat capacity above.
Tmin = NoneMinimum temperature at which no method can calculate the heat capacity under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)Method to calculate heat capacity of a liquid at temperature T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at which to calculate heat capacity, [K]
method : str
Name of the method to use
Returns Cp : float
Heat capacity of the liquid at T, [J/mol/K]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Liquid heat capacity’
1.1. thermo package 59
thermo Documentation, Release 0.1
property_max = 10000.0Maximum valid of Heat capacity; arbitrarily set. For fluids very near the critical point, this value can beobscenely high.
property_min = 1Allow very low heat capacities; arbitrarily set; liquid heat capacity should always be somewhat substantial.
ranked_methods = [’Zabransky spline’, ‘Zabransky quasipolynomial’, ‘Zabransky spline, C’, ‘Zabransky quasipolynomial, C’, ‘Zabransky spline, saturation’, ‘Zabransky quasipolynomial, saturation’, ‘VDI Heat Atlas’, ‘Rowlinson and Poling (2001)’, ‘Rowlinson and Bondi (1969)’, ‘CoolProp’, ‘Dadgostar and Shaw (2011)’, ‘Poling et al. (2001) constant’, ‘CRC Standard Thermodynamic Properties of Chemical Substances’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = FalseDisallow tabular extrapolation by default; higher-temeprature behavior is not well predicted by most ex-trapolation.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. Forthe CSP method Rowlinson_Poling, the model is considered valid for all temperatures. The simplemethod Dadgostar_Shaw is considered valid for all temperatures. For tabular data, extrapolation out-side of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolationis considered valid for all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘J/mol/K’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
class thermo.heat_capacity.HeatCapacitySolid(CASRN=’‘, similarity_variable=None,MW=None)
Bases: thermo.utils.TDependentProperty
Class for dealing with solid heat capacity as a function of temperature. Consists of one temperature-dependentsimple expression, one constant value source, and one simple estimator.
Parameters similarity_variable : float, optional
60 Chapter 1. thermo
thermo Documentation, Release 0.1
similarity variable, n_atoms/MW, [mol/g]
MW : float, optional
Molecular weight, [g/mol]
CASRN : str, optional
The CAS number of the chemical
See also:
Lastovka_solid
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored inheat_capacity_solid_methods.
PERRY151: Simple polynomials with vaious exponents selected for each expression. Coefficients are in unitsof calories/mol/K. The full expression is:
𝐶𝑝 = 𝑎+ 𝑏𝑇 + 𝑐/𝑇 2 + 𝑑𝑇 2
Data is available for 284 solids, from [R115].
CRCSTD: Values tabulated in [R114] at 298.15 K; data is available for 529 solids.
LASTOVKA_S: A basic estimation method using the similarity variable concept; requires only molecularstructure, so is very convenient. See Lastovka_solid for details.
References
[R114], [R115]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate heat capacity of a solid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.
Continued on next page
1.1. thermo package 61
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pageinterpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the heat capacity above.
Tmin = NoneMinimum temperature at which no method can calculate the heat capacity under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)Method to calculate heat capacity of a solid at temperature T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at which to calculate heat capacity, [K]
method : str
Name of the method to use
Returns Cp : float
Heat capacity of the solid at T, [J/mol/K]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘solid heat capacity’
property_max = 10000.0Maximum value of Heat capacity; arbitrarily set.
property_min = 0Heat capacities have a minimum value of 0 at 0 K.
62 Chapter 1. thermo
thermo Documentation, Release 0.1
ranked_methods = [”Perry’s Table 2-151”, ‘CRC Standard Thermodynamic Properties of Chemical Substances’, ‘Lastovka, Fulem, Becerra and Shaw (2008)’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default; a theoretical solid phase exists for all chemicals at sufficiently highpressures, although few chemicals could stably exist in those conditions.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. Fortabular data, extrapolation outside of the range is used if tabular_extrapolation_permitted isset; if it is, the extrapolation is considered valid for all temperatures. For the Lastovka_solid method,it is considered valid under 10000K.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘J/mol/K’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.heat_capacity.Lastovka_Shaw(T, similarity_variable, cyclic_aliphatic=False)Calculate ideal-gas constant-pressure heat capacitiy with the similarity variable concept and method as shownin [R116].
𝐶0𝑝 =
(𝐴2 +
𝐴1 −𝐴2
1 + exp(𝛼−𝐴3/𝐴4)
)+ (𝐵11 +𝐵12𝛼)
(− (𝐶11 + 𝐶12𝛼)
𝑇
)2exp(−(𝐶11 + 𝐶12𝛼)/𝑇 )
[1 − exp(−(𝐶11 + 𝐶12𝛼)/𝑇 )]2
+(𝐵21 +𝐵22𝛼)
(− (𝐶21 + 𝐶22𝛼)
𝑇
)2exp(−(𝐶21 + 𝐶22𝛼)/𝑇 )
[1 − exp(−(𝐶21 + 𝐶22𝛼)/𝑇 )]2
Parameters T : float
Temperature of gas [K]
similarity_variable : float
similarity variable as defined in [R116], [mol/g]
1.1. thermo package 63
thermo Documentation, Release 0.1
Returns Cpg : float
Gas constant-pressure heat capacitiy, [J/kg/K]
Notes
Original model is in terms of J/g/K. Note that the model is for predicting mass heat capacity, not molar heatcapacity like most other methods!
A1 = 0.58, A2 = 1.25, A3 = 0.17338003, A4 = 0.014, B11 = 0.73917383, B12 = 8.88308889, C11 = 1188.28051,C12 = 1813.04613, B21 = 0.0483019, B22 = 4.35656721, C21 = 2897.01927, C22 = 5987.80407.
References
[R116]
Examples
>>> Lastovka_Shaw(1000.0, 0.1333)2467.113309084757
thermo.heat_capacity.Lastovka_solid(T, similarity_variable)Calculate solid constant-pressure heat capacitiy with the similarity variable concept and method as shown in[R117].
𝐶𝑝 = 3(𝐴1𝛼+𝐴2𝛼2)𝑅
(𝜃
𝑇
)2exp(𝜃/𝑇 )
[exp(𝜃/𝑇 ) − 1]2+ (𝐶1𝛼+ 𝐶2𝛼
2)𝑇 + (𝐷1𝛼+𝐷2𝛼2)𝑇 2
Parameters T : float
Temperature of solid [K]
similarity_variable : float
similarity variable as defined in [R117], [mol/g]
Returns Cps : float
Solid constant-pressure heat capacitiy, [J/kg/K]
Notes
Many restrictions on its use. Trained on data with MW from 12.24 g/mol to 402.4 g/mol, C mass fractions from61.3% to 95.2%, H mass fractions from 3.73% to 15.2%, N mass fractions from 0 to 15.4%, O mass fractionsfrom 0 to 18.8%, and S mass fractions from 0 to 29.6%. Recommended for organic compounds with low massfractions of hetero-atoms and especially when molar mass exceeds 200 g/mol. This model does not show andeffects of phase transition but should not be used passed the triple point.
Original model is in terms of J/g/K. Note that the model s for predicting mass heat capacity, not molar heatcapacity like most other methods!
A1 = 0.013183; A2 = 0.249381; theta = 151.8675; C1 = 0.026526; C2 = -0.024942; D1 = 0.000025; D2 =-0.000123.
64 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R117]
Examples
>>> Lastovka_solid(300, 0.2139)1682.063629222013
thermo.heat_capacity.Rowlinson_Bondi(T, Tc, omega, Cpgm)Calculate liquid constant-pressure heat capacitiy with the CSP method shown in [R118].
The heat capacity of a liquid is given by:
𝐶𝑝𝐿 − 𝐶𝑝𝑖𝑔
𝑅= 1.45 + 0.45(1 − 𝑇𝑟)−1 + 0.25𝜔[17.11 + 25.2(1 − 𝑇𝑟)1/3𝑇−1
𝑟 + 1.742(1 − 𝑇𝑟)−1]
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor for fluid, [-]
Cpgm : float
Constant-pressure gas heat capacity, [J/mol/K]
Returns Cplm : float
Liquid constant-pressure heat capacitiy, [J/mol/K]
Notes
Less accurate than Rowlinson_Poling.
References
[R118], [R119], [R120]
Examples
>>> Rowlinson_Bondi(T=373.28, Tc=535.55, omega=0.323, Cpgm=119.342)175.39760730048116
thermo.heat_capacity.Rowlinson_Poling(T, Tc, omega, Cpgm)Calculate liquid constant-pressure heat capacitiy with the [R121] CSP method.
This equation is not terrible accurate.
1.1. thermo package 65
thermo Documentation, Release 0.1
The heat capacity of a liquid is given by:
𝐶𝑝𝐿 − 𝐶𝑝𝑔
𝑅= 1.586 +
0.49
1 − 𝑇𝑟+ 𝜔
[4.2775 +
6.3(1 − 𝑇𝑟)1/3
𝑇𝑟+
0.4355
1 − 𝑇𝑟
]Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor for fluid, [-]
Cpgm : float
Constant-pressure gas heat capacity, [J/mol/K]
Returns Cplm : float
Liquid constant-pressure heat capacitiy, [J/mol/K]
Notes
Poling compared 212 substances, and found error at 298K larger than 10% for 18 of them, mostly associating.Of the other 194 compounds, AARD is 2.5%.
References
[R121]
Examples
>>> Rowlinson_Poling(350.0, 435.5, 0.203, 91.21)143.80194441498296
thermo.heat_capacity.TRCCp(T, a0, a1, a2, a3, a4, a5, a6, a7)Calculates ideal gas heat capacity using the model developed in [R122].
The ideal gas heat capacity is given by:
𝐶𝑝 = 𝑅(𝑎0 + (𝑎1/𝑇
2) exp(−𝑎2/𝑇 ) + 𝑎3𝑦2 + (𝑎4 − 𝑎5/(𝑇 − 𝑎7)2)𝑦𝑗
)𝑦 =
𝑇 − 𝑎7𝑇 + 𝑎6
for 𝑇 > 𝑎7 otherwise 0
Parameters T : float
Temperature [K]
a1-a7 : float
Coefficients
Returns Cp : float
Ideal gas heat capacity , [J/mol/K]
66 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
j is set to 8. Analytical integrals are available for this expression.
References
[R122]
Examples
>>> TRCCp(300, 4.0, 7.65E5, 720., 3.565, -0.052, -1.55E6, 52., 201.)42.06525682312236
thermo.heat_capacity.Zabransky_cubic(T, a1, a2, a3, a4)Calculates liquid heat capacity using the model developed in [R123].
𝐶
𝑅=
3∑𝑗=0
𝐴𝑗+1
(𝑇
100
)𝑗
Parameters T : float
Temperature [K]
a1-a4 : float
Coefficients
Returns Cp : float
Liquid heat capacity, [J/mol/K]
Notes
Most often form used in [R123]. Analytical integrals are available for this expression.
References
[R123]
Examples
>>> Zabransky_cubic(298.15, 20.9634, -10.1344, 2.8253, -0.256738)75.31462591538555
thermo.heat_capacity.Zabransky_quasi_polynomial(T, Tc, a1, a2, a3, a4, a5, a6)Calculates liquid heat capacity using the model developed in [R124].
𝐶
𝑅= 𝐴1 ln(1 − 𝑇𝑟) +
𝐴2
1 − 𝑇𝑟+
𝑚∑𝑗=0
𝐴𝑗+3𝑇𝑗𝑟
Parameters T : float
Temperature [K]
1.1. thermo package 67
thermo Documentation, Release 0.1
Tc : float
Critical temperature of fluid, [K]
a1-a6 : float
Coefficients
Returns Cp : float
Liquid heat capacity, [J/mol/K]
Notes
Used only for isobaric heat capacities, not saturation heat capacities. Designed for reasonable extrapolationbehavior caused by using the reduced critical temperature. Used by the authors of [R124] when critical temper-ature was available for the fluid. Analytical integrals are available for this expression.
References
[R124]
Examples
>>> Zabransky_quasi_polynomial(330, 591.79, -3.12743, 0.0857315, 13.7282, 1.28971, 6.42297, 4.10989)165.4728226923247
thermo.heat_capacity.heat_capacity_gas_methods = [’TRC Thermodynamics of Organic Compounds in the Gas State (1994)’, ‘Poling et al. (2001)’, ‘CoolProp’, ‘Lastovka and Shaw (2013)’, ‘CRC Standard Thermodynamic Properties of Chemical Substances’, ‘Poling et al. (2001) constant’, ‘VDI Heat Atlas’]Holds all methods available for the HeatCapacityGas class, for use in iterating over them.
thermo.heat_capacity.heat_capacity_liquid_methods = [’Zabransky spline’, ‘Zabransky quasipolynomial’, ‘Zabransky spline, C’, ‘Zabransky quasipolynomial, C’, ‘Zabransky spline, saturation’, ‘Zabransky quasipolynomial, saturation’, ‘VDI Heat Atlas’, ‘Rowlinson and Poling (2001)’, ‘Rowlinson and Bondi (1969)’, ‘CoolProp’, ‘Dadgostar and Shaw (2011)’, ‘Poling et al. (2001) constant’, ‘CRC Standard Thermodynamic Properties of Chemical Substances’]Holds all methods available for the HeatCapacityLiquid class, for use in iterating over them.
thermo.heat_capacity.heat_capacity_solid_methods = [”Perry’s Table 2-151”, ‘CRC Standard Thermodynamic Properties of Chemical Substances’, ‘Lastovka, Fulem, Becerra and Shaw (2008)’]Holds all methods available for the HeatCapacitySolid class, for use in iterating over them.
thermo.identifiers module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
68 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.identifiers.CASfromAny(ID)Input must be string First check if input is InChI, best defined format TODO: if int, format as rest-2digits-1digitand see if in dict. All CASs are in there.
thermo.identifiers.IUPAC_name(CASRN)
>>> IUPAC_name('7732-18-5')'oxidane'
thermo.identifiers.InChI(CASRN)
>>> InChI('7732-18-5')'H2O/h1H2'
thermo.identifiers.InChI_Key(CASRN)
>>> InChI_Key('7732-18-5')'XLYOFNOQVPJJNP-UHFFFAOYSA-N'
thermo.identifiers.MW(CASRN)Given a CASRN in the database, obtain the Molecular weight of the compound, if it is in the database.
Parameters CASRN : string
Valid CAS number in PubChem database
Returns MolecularWeight : float
Notes
CASRN must be an indexing key in the pubchem database. No MW Calculation is performed; nor are anyhistorical isotopic corrections applied.
References
[R125]
Examples
>>> MW('7732-18-5')18.01528
thermo.identifiers.PubChem(CASRN)Given a CASRN in the database, obtain the PubChem database number of the compound.
Parameters CASRN : string
Valid CAS number in PubChem database
Returns pubchem : int
PubChem database id, as an integer
1.1. thermo package 69
thermo Documentation, Release 0.1
Notes
CASRN must be an indexing key in the pubchem database.
References
[R126]
Examples
>>> PubChem('7732-18-5')962
thermo.identifiers.checkCAS(CASRN)Checks if a CAS number is valid. Crashes if not.
Parameters CASRN : string
A three-piece, dash-separated set of numbers
Returns result : bool
Boolean value if CASRN was valid. If parsing fails, return False also.
Notes
Check method is according to Chemical Abstract Society. However, no lookup to their service is performed;therefore, this function cannot detect false positives.
Function also does not support additional separators, apart from ‘-‘.
References
TODO
Examples
>>> checkCAS('7732-18-5')True>>> checkCAS('77332-18-5')False
thermo.identifiers.formula(CASRN)
>>> formula('7732-18-5')'H2O'
thermo.identifiers.mixture_from_any(ID)
thermo.identifiers.name(CASRN)
70 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> name('7732-18-5')'water'
thermo.identifiers.smiles(CASRN)
>>> smiles('7732-18-5')'O'
thermo.identifiers.synonyms(CASRN)
>>> synonyms('98-00-0')['furan-2-ylmethanol', 'furfuryl alcohol', '2-furanmethanol', '2-furancarbinol', '2-furylmethanol', '2-furylcarbinol', '98-00-0', '2-furanylmethanol', 'furfuranol', 'furan-2-ylmethanol', '2-furfuryl alcohol', '5-hydroxymethylfuran', 'furfural alcohol', 'alpha-furylcarbinol', '2-hydroxymethylfuran', 'furfuralcohol', 'furylcarbinol', 'furyl alcohol', '2-(hydroxymethyl)furan', 'furan-2-yl-methanol', 'furfurylalcohol', 'furfurylcarb', 'methanol, (2-furyl)-', '2-furfurylalkohol', 'furan-2-methanol', '2-furane-methanol', '2-furanmethanol, homopolymer', '(2-furyl)methanol', '2-hydroxymethylfurane', 'furylcarbinol (van)', '2-furylmethan-1-ol', '25212-86-6', '93793-62-5', 'furanmethanol', 'polyfurfuryl alcohol', 'pffa', 'poly(furfurylalcohol)', 'poly-furfuryl alcohol', '(fur-2-yl)methanol', '.alpha.-furylcarbinol', '2-hydroxymethyl-furan', 'poly(furfuryl alcohol)', '.alpha.-furfuryl alcohol', 'agn-pc-04y237', 'h159', 'omega-hydroxypoly(furan-2,5-diylmethylene)', '(2-furyl)-methanol (furfurylalcohol)', '40795-25-3', '88161-36-8']
thermo.interface module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.interface.Brock_Bird(T, Tb, Tc, Pc)Calculates air-water surface tension using the [R127] emperical method. Old and tested.
𝜎 = 𝑃 2/3𝑐 𝑇 1/3
𝑐 𝑄(1 − 𝑇𝑟)11/9
𝑄 = 0.1196
[1 +
𝑇𝑏𝑟 ln(𝑃𝑐/1.01325)
1 − 𝑇𝑏𝑟
]− 0.279
Parameters T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns sigma : float
Liquid surface tension, N/m
1.1. thermo package 71
thermo Documentation, Release 0.1
Notes
Numerous arrangements of this equation are available. This is DIPPR Procedure 7A: Method for the SurfaceTension of Pure, Nonpolar, Nonhydrocarbon Liquids The exact equation is not in the original paper. If theequation yields a negative result, return None.
References
[R127]
Examples
p-dichloribenzene at 412.15 K, from DIPPR; value differs due to a slight difference in method.
>>> Brock_Bird(412.15, 447.3, 685, 3.952E6)0.02208448325192495
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Brock_Bird(293.15, 404.75, 633.0, 4530000.0)0.032985686413713036
thermo.interface.Diguilio_Teja(T, xs, sigmas_Tb, Tbs, Tcs)Calculates surface tension of a liquid mixture according to mixing rules in [R128].
𝜎 = 1.002855(𝑇 *)1.118091𝑇
𝑇𝑏𝜎𝑟
𝑇 * =(𝑇𝑐/𝑇 ) − 1
(𝑇𝑐/𝑇𝑏) − 1
𝜎𝑟 =∑
𝑥𝑖𝜎𝑖
𝑇𝑏 =∑
𝑥𝑖𝑇𝑏,𝑖
𝑇𝑐 =∑
𝑥𝑖𝑇𝑐,𝑖
Parameters T : float
Temperature of fluid [K]
xs : array-like
Mole fractions of all components
sigmas_Tb : array-like
Surface tensions of all components at the boiling point, [N/m]
Tbs : array-like
Boiling temperatures of all components, [K]
Tcs : array-like
Critical temperatures of all components, [K]
Returns sigma : float
Air-liquid surface tension of mixture, [N/m]
72 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Simple model, however it has 0 citations. Gives similar results to the Winterfeld_Scriven_Davis model.
Raises a ValueError if temperature is greater than the mixture’s critical temperature or if the given temperatureis negative, or if the mixture’s boiling temperature is higher than its critical temperature.
References
[R128]
Examples
>>> Diguilio_Teja(T=298.15, xs=[0.1606, 0.8394],... sigmas_Tb=[0.01424, 0.02530], Tbs=[309.21, 312.95], Tcs=[469.7, 508.0])0.025716823875045505
thermo.interface.Hakim_Steinberg_Stiel(T, Tc, Pc, omega, StielPolar=0)Calculates air-water surface tension using the reference fluids methods of [R129].
𝜎 = 4.60104 × 10−7𝑃 2/3𝑐 𝑇 1/3
𝑐 𝑄𝑝
(1 − 𝑇𝑟
0.4
)𝑚
𝑄𝑝 = 0.1574 + 0.359𝜔 − 1.769𝜒− 13.69𝜒2 − 0.51𝜔2 + 1.298𝜔𝜒
𝑚 = 1.21 + 0.5385𝜔 − 14.61𝜒− 32.07𝜒2 − 1.65𝜔2 + 22.03𝜔𝜒
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
StielPolar : float, optional
Stiel Polar Factor, [-]
Returns sigma : float
Liquid surface tension, N/m
Notes
Original equation for m and Q are used. Internal units are atm and mN/m.
References
[R129]
1.1. thermo package 73
thermo Documentation, Release 0.1
Examples
1-butanol, as compared to value in CRC Handbook of 0.02493.
>>> Hakim_Steinberg_Stiel(298.15, 563.0, 4414000.0, 0.59, StielPolar=-0.07872)0.021907902575190447
thermo.interface.Jasper(T, a, b)Calculates surface tension of a fluid given two parameters, a linear fit in Celcius from [R131] with data reprintedin [R132].
𝜎 = 𝑎− 𝑏𝑇
Parameters T : float
Temperature of fluid, [K]
a : float
Parameter for equation. Chemical specific.
b : float
Parameter for equation. Chemical specific.
Returns sigma: float
Surface tension [N/m]
Notes
Internal units are mN/m, and degrees Celcius. This function has been checked against several references.
References
[R131], [R132]
Examples
>>> Jasper(298.15, 24, 0.0773)0.0220675
thermo.interface.Miqueu(T, Tc, Vc, omega)Calculates air-water surface tension using the methods of [R133].
𝜎 = 𝑘𝑇𝑐
(𝑁𝑎
𝑉𝑐
)2/3
(4.35 + 4.14𝜔)𝑡1.26(1 + 0.19𝑡0.5 − 0.487𝑡)
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]
74 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float
Acentric factor for fluid, [-]
Returns sigma : float
Liquid surface tension, N/m
Notes
Uses Avogadro’s constant and the Boltsman constant. Internal units of volume are mL/mol and mN/m. However,either a typo is in the article or author’s work, or my value of k is off by 10; this is corrected for nonetheless.Created with 31 normal fluids, none polar or hydrogen bonded. Has an AARD of 3.5%.
References
[R133]
Examples
Bromotrifluoromethane, 2.45 mN/m
>>> Miqueu(300., 340.1, 0.000199, 0.1687)0.003474099603581931
thermo.interface.Pitzer(T, Tc, Pc, omega)Calculates air-water surface tension using the correlation derived by [R134] from the works of [R135] and[R136]. Based on critical property CSP methods.
𝜎 = 𝑃 2/3𝑐 𝑇 1/3
𝑐
1.86 + 1.18𝜔
19.05
[3.75 + 0.91𝜔
0.291 − 0.08𝜔
]2/3(1 − 𝑇𝑟)11/9
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns sigma : float
Liquid surface tension, N/m
Notes
The source of this equation has not been reviewed. Internal units of presure are bar, surface tension of mN/m.
1.1. thermo package 75
thermo Documentation, Release 0.1
References
[R134], [R135], [R136]
Examples
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Pitzer(293., 633.0, 4530000.0, 0.249)0.03458453513446387
thermo.interface.REFPROP(T, Tc, sigma0, n0, sigma1=0, n1=0, sigma2=0, n2=0)Calculates air-liquid surface tension using the REFPROP [R138] regression-based method. Relatively recent,and most accurate.
𝜎(𝑇 ) = 𝜎0
(1 − 𝑇
𝑇𝑐
)𝑛0
+ 𝜎1
(1 − 𝑇
𝑇𝑐
)𝑛1
+ 𝜎2
(1 − 𝑇
𝑇𝑐
)𝑛2
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
sigma0 : float
First emperical coefficient of a fluid
n0 : float
First emperical exponent of a fluid
sigma1 : float, optional
Second emperical coefficient of a fluid.
n1 : float, optional
Second emperical exponent of a fluid.
sigma1 : float, optional
Third emperical coefficient of a fluid.
n2 : float, optional
Third emperical exponent of a fluid.
Returns sigma : float
Liquid surface tension, N/m
Notes
Function as implemented in [R138]. No example necessary; results match literature values perfectly. Form offunction returns imaginary results when T > Tc; None is returned if this is the case.
References
[R138]
76 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Parameters for water at 298.15 K
>>> REFPROP(298.15, 647.096, -0.1306, 2.471, 0.2151, 1.233)0.07205503890847453
thermo.interface.Sastri_Rao(T, Tb, Tc, Pc, chemicaltype=None)Calculates air-water surface tension using the correlation derived by [R139] based on critical property CSPmethods and chemical classes.
𝜎 = 𝐾𝑃 𝑥𝑐 𝑇
𝑦𝑏 𝑇
𝑧𝑐
[1 − 𝑇𝑟1 − 𝑇𝑏𝑟
]𝑚Parameters T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns sigma : float
Liquid surface tension, N/m
Notes
The source of this equation has not been reviewed. Internal units of presure are bar, surface tension of mN/m.
References
[R139]
Examples
Chlorobenzene from Poling, as compared with a % error value at 293 K.
>>> Sastri_Rao(293.15, 404.75, 633.0, 4530000.0)0.03234567739694441
thermo.interface.Somayajulu(T, Tc, A, B, C)Calculates air-water surface tension using the [R140] emperical (parameter-regressed) method. Well regressed,no recent data.
𝜎 = 𝑎𝑋5/4 + 𝑏𝑋9/4 + 𝑐𝑋13/4𝑋 = (𝑇𝑐 − 𝑇 )/𝑇𝑐
Parameters T : float
Temperature of fluid [K]
1.1. thermo package 77
thermo Documentation, Release 0.1
Tc : float
Critical temperature of fluid [K]
A : float
Regression parameter
B : float
Regression parameter
C : float
Regression parameter
Returns sigma : float
Liquid surface tension, N/m
Notes
Presently untested, but matches expected values. Internal units are mN/m. Form of function returns imaginaryresults when T > Tc; None is returned if this is the case. Function is claimed valid from the triple to the criticalpoint. Results can be evaluated beneath the triple point.
References
[R140]
Examples
Water at 300 K
>>> Somayajulu(300, 647.126, 232.713514, -140.18645, -4.890098)0.07166386387996757
class thermo.interface.SurfaceTension(Tb=None, Tc=None, Pc=None, Vc=None, Zc=None,omega=None, StielPolar=None, CASRN=’‘)
Bases: thermo.utils.TDependentProperty
Class for dealing with surface tension as a function of temperature. Consists of three coefficient-based methodsand four data sources, one source of tabular information, and five corresponding-states estimators.
Parameters Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
Zc : float, optional
78 Chapter 1. thermo
thermo Documentation, Release 0.1
Critical compressibility
omega : float, optional
Acentric factor, [-]
StielPolar : float, optional
Stiel polar factor
CASRN : str, optional
The CAS number of the chemical
See also:
REFPROP, Somayajulu, Jasper, Brock_Bird, Sastri_Rao, Pitzer, Zuo_Stenby , Miqueu
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored insurface_tension_methods.
STREFPROP: The REFPROP coefficient-based method, documented in the function REFPROP for 115 fluidsfrom [R145].
SOMAYAJULU and SOMAYAJULU2: The Somayajulu coefficient-based method, documented in the func-tion Somayajulu. Both methods have data for 64 fluids. The first data set if from [R141], and the secondfrom [R142].
JASPER: Fit with a single temperature coefficient, as documented in the function Jasper. Data for 522 fluidsis available, as shown in [R144] but originally in [R143].
BROCKBIRD: CSP method documented in Brock_Bird. Most popular estimation method.
SASTRIRAO: CSP method documented in Sastri_Rao. Second most popular estimation method.
PITZER: CSP method documented in Pitzer.
ZUOSTENBY: CSP method documented in Zuo_Stenby .
MIQUEU: CSP method documented in Miqueu.
VDI_TABULAR: Tabular data in [R146] along the saturation curve; interpolation is as set by the user or thedefault.
References
[R141], [R142], [R143], [R144], [R145], [R146]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
1.1. thermo package 79
thermo Documentation, Release 0.1
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate surface tension of a liquid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the surface tension above.
Tmin = NoneMinimum temperature at which no method can calculate the surface tension under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)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 T : float
Temperature at which to calculate surface tension, [K]
method : str
Name of the method to use
Returns sigma : float
Surface tension of the liquid at T, [N/m]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
80 Chapter 1. thermo
thermo Documentation, Release 0.1
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Surface tension’
property_max = 0.5Maximum valid value of surface tension. Set slightly above that of mercury.
property_min = 0Mimimum valid value of surface tension. This occurs at the critical point exactly.
ranked_methods = [’REFPROP’, ‘Somayajulu revised (1988)’, ‘Somayajulu (1988)’, ‘VDI Heat Atlas’, ‘Jasper (1972)’, ‘Miqueu (2000)’, ‘Brock and Bird (1955)’, ‘Sastri and Rao (1995)’, ‘Pitzer (1958)’, ‘Zuo and Stenby (1997)’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default; values below 0 will be obtained at high temperatures.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. ForCSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolationoutside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolationis considered valid for all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘N/m’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.interface.Winterfeld_Scriven_Davis(xs, sigmas, rhoms)Calculates surface tension of a liquid mixture according to mixing rules in [R147] and also in [R148].
𝜎𝑀 =∑𝑖
∑𝑗
1
𝑉 𝐿2𝐿
(𝑥𝑖𝑉𝑖) (𝑥𝑗𝑉𝑗)√𝜎𝑖 · 𝜎𝑗
1.1. thermo package 81
thermo Documentation, Release 0.1
Parameters xs : array-like
Mole fractions of all components, [-]
sigmas : array-like
Surface tensions of all components, [N/m]
rhoms : array-like
Molar densities of all components, [mol/m^3]
Returns sigma : float
Air-liquid surface tension of mixture, [N/m]
Notes
DIPPR Procedure 7C: Method for the Surface Tension of Nonaqueous Liquid Mixtures
Becomes less accurate as liquid-liquid critical solution temperature is approached. DIPPR Evaluation: 3-4%AARD, from 107 nonaqueous binary systems, 1284 points. Internally, densities are converted to kmol/m^3.The Amgat function is used to obtain liquid mixture density in this equation.
Raises a ZeroDivisionError if either molar volume are zero, and a ValueError if a surface tensions of a purecomponent is negative.
References
[R147], [R148]
Examples
>>> Winterfeld_Scriven_Davis([0.1606, 0.8394], [0.01547, 0.02877],... [8610., 15530.])0.024967388450439817
thermo.interface.Zuo_Stenby(T, Tc, Pc, omega)Calculates air-water surface tension using the reference fluids methods of [R149].
𝜎(1) = 40.520(1 − 𝑇𝑟)1.287𝜎(2) = 52.095(1 − 𝑇𝑟)1.21548𝜎𝑟 = 𝜎(1)𝑟 +
𝜔 − 𝜔(1)
𝜔(2) − 𝜔(1)(𝜎(2)
𝑟 − 𝜎(1)𝑟 )𝜎 = 𝑇 1/3
𝑐 𝑃 2/3𝑐 [exp (𝜎𝑟) − 1]
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns sigma : float
Liquid surface tension, N/m
82 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Presently untested. Have not personally checked the sources. I strongly believe it is broken. The referencevalues for methane and n-octane are from the DIPPR database.
References
[R149]
Examples
Chlorobenzene
>>> Zuo_Stenby(293., 633.0, 4530000.0, 0.249)0.03345569011871088
thermo.interface.surface_tension_methods = [’REFPROP’, ‘Somayajulu revised (1988)’, ‘Somayajulu (1988)’, ‘VDI Heat Atlas’, ‘Jasper (1972)’, ‘Miqueu (2000)’, ‘Brock and Bird (1955)’, ‘Sastri and Rao (1995)’, ‘Pitzer (1958)’, ‘Zuo and Stenby (1997)’]Holds all methods available for the SurfaceTension class, for use in iterating over them.
thermo.interface.surface_tension_mixture(T=None, xs=[], sigmas=[], rhoms=[], Tcs=[],Tbs=[], sigmas_Tb=[], CASRNs=None, Avail-ableMethods=False, Method=None)
This function handles the calculation of a mixture’s surface tension. Calculation is based on the surface tensionsprovided for each pure component. Will automatically select a method to use if no Method is provided; returnsNone if insufficient data is available.
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 ten-sions 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, Simple, is also available and is still relatively accurate.
Parameters T : float, optional
Temperature of fluid [K]
xs : array-like
Mole fractions of all components
sigmas : array-like, optional
Surface tensions of all components, [N/m]
rhoms : array-like, optional
Molar densities of all components, [mol/m^3]
Tcs : array-like, optional
Critical temperatures of all components, [K]
Tbs : array-like, optional
Boiling temperatures of all components, [K]
sigmas_Tb : array-like, optional
Surface tensions of all components at the boiling point, [N/m]
CASRNs : list of strings, optional
CASRNs, not currently used [-]
1.1. thermo package 83
thermo Documentation, Release 0.1
Returns sigma : float
Air-liquid surface tension of mixture, [N/m]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain sigma with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in sur-face_tension_mixture_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain sigma for thedesired chemical, and will return methods instead of sigma
References
[R150]
Examples
>>> surface_tension_mixture(xs=[0.1606, 0.8394], sigmas=[0.01547, 0.02877])0.02663402
thermo.law module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.law.economic_status(CASRN, Method=None, AvailableMethods=False)Look up the economic status of a chemical.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> economic_status(CASRN='98-00-0')["US public: 'Manufactured': 0.0, 'Imported': 10272711.0, 'Exported': 184127.0", '10,000 - 100,000 tonnes per annum', 'OECD HPV Chemicals']>>> economic_status(CASRN='13775-50-3') # SODIUM SESQUISULPHATE[]>>> economic_status(CASRN='98-00-0', Method='OECD HPV Chemicals')
84 Chapter 1. thermo
thermo Documentation, Release 0.1
'OECD HPV Chemicals'>>> economic_status(CASRN='98-01-1', Method='ECHA Tonnages')['10,000 - 100,000 tonnes per annum']
thermo.law.legal_status(CASRN, Method=None, AvailableMethods=False, CASi=None)Looks up the legal status of a chemical according to either a specifc method or with all methods.
Returns either the status as a string for a specified method, or the status of the chemical in all available datasources, in the format source: status.
Parameters CASRN : string
CASRN [-]
Returns status : str or dict
Legal status information [-]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain legal status with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in legal_status_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the legal statusfor the desired chemical, and will return methods instead of the status
CASi : int, optional
CASRN as an integer, used internally [-]
Notes
Supported methods are:
•Canada: Domestic Substance List, [R151]. As extracted on Feb 11, 2015 from a html list. This list isupdated continuously, so this version will always be somewhat old. Strictly speaking, there are multiplelists but they are all bundled together here. A chemical may be ‘Listed’, or be on the ‘Non-DomesticSubstances List (NDSL)’, or be on the list of substances with ‘Significant New Activity (SNAc)’, or be onthe DSL but with a ‘Ministerial Condition pertaining to this substance’, or have been removed from theDSL, or have had a Ministerial prohibition for the substance.
•USA EPA: Toxic Substances Control Act Chemical Inventory, [R152]. This list is as extracted on 2016-01. It is believed this list is updated on a periodic basis (> 6 month). A chemical may simply be ‘Listed’,or may have certain flags attached to it. All these flags are described in the dict TSCA_flags.
•EINECS: European INventory of Existing Commercial chemical Substances, [R153]. As extracted froma spreadsheet dynamically generated at [R151]. This list was obtained March 2015; a more recent revisionalready exists.
•NLP: No Longer Polymers, a list of chemicals with special regulatory exemptions in EINECS. Also de-scribed at [R153].
•SPIN: Substances Prepared in Nordic Countries. Also a boolean data type. Retrieved 2015-03 from[R154].
Other methods which could be added are:
•Australia: AICS Australian Inventory of Chemical Substances
1.1. thermo package 85
thermo Documentation, Release 0.1
•China: Inventory of Existing Chemical Substances Produced or Imported in China (IECSC)
•Europe: REACH List of Registered Substances
•India: List of Hazardous Chemicals
•Japan: ENCS: Inventory of existing and new chemical substances
•Korea: Existing Chemicals Inventory (KECI)
•Mexico: INSQ National Inventory of Chemical Substances in Mexico
•New Zealand: Inventory of Chemicals (NZIoC)
•Philippines: PICCS Philippines Inventory of Chemicals and Chemical Substances
References
[R151], [R152], [R153], [R154]
Examples
>>> legal_status('64-17-5')'Toxic Substances Control Act (Environmental Protection Agency)': 'Listed', 'Substances in Preparations In the Nordic countries': 'Listed', 'Domestic Substances List (Environment Canada)': 'Listed', 'European INventory of Existing Commercial chemical Substances': 'Listed', 'EINECS No-Longer Polymers': 'Unlisted'
thermo.lennard_jones module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.lennard_jones.Stockmayer(Tm=None, Tb=None, Tc=None, Zc=None, omega=None,CASRN=’‘, AvailableMethods=False, Method=None)
This function handles the retrieval or calculation a chemical’s Stockmayer parameter. Values are available fromone source with lookup based on CASRNs, or can be estimated from 7 CSP methods. Will automatically selecta data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘Magalhães, Lito, Da Silva, and Silva (2013)’ for common chemicals which had valieslisted in that source, and the CSP method Tee, Gotoh, and Stewart CSP with Tc, omega (1966) for chemicalswhich don’t.
Parameters Tm : float, optional
Melting temperature of fluid [K]
86 Chapter 1. thermo
thermo Documentation, Release 0.1
Tb : float, optional
Boiling temperature of fluid [K]
Tc : float, optional
Critical temperature, [K]
Zc : float, optional
Critical compressibility, [-]
omega : float, optional
Acentric factor of compound, [-]
CASRN : string, optional
CASRN [-]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain epsilon with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Stockmayer_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain epsilon for thedesired chemical, and will return methods instead of epsilon
Notes
These values are somewhat rough, as they attempt to pigeonhole a chemical into L-J behavior.
The tabulated data is from [R156], for 322 chemicals.
References
[R155], [R156]
Examples
>>> Stockmayer(CASRN='64-17-5')1291.41
thermo.lennard_jones.Tstar(T, epsilon_k=None, epsilon=None)This function calculates the parameter Tstar as needed in performing collision integral calculations.
𝑇 * =𝑘𝑇
𝜖
Parameters epsilon_k : float, optional
Lennard-Jones depth of potential-energy minimum over k, [K]
1.1. thermo package 87
thermo Documentation, Release 0.1
epsilon : float, optional
Lennard-Jones depth of potential-energy minimum [J]
Returns Tstar : float
Dimentionless temperature for calculating collision integral, [-]
Notes
Tabulated values are normally listed as epsilon/k. k is the Boltzman constant, with units of J/K.
References
[R157]
Examples
>>> Tstar(T=318.2, epsilon_k=308.43)1.0316765554582887
thermo.lennard_jones.collision_integral_Kim_Monroe(Tstar, l=1, s=1)Calculates Lennard-Jones collision integral for any of 16 values of (l,j) for the wide range of 0.3 < Tstar < 400.Values are accurate to 0.007 % of actual values, but the calculation of actual values is computationally intensiveand so these simplifications are used, developed in [R158].
Ω(𝑙,𝑠)* = 𝐴(𝑙,𝑠) +
6∑𝑘=1
[𝐵
(𝑙,𝑠)𝑘
(𝑇 *)𝑘+ 𝐶
(𝑙,𝑠)𝑘 (ln𝑇 *)𝑘
]Parameters Tstar : float
Reduced temperature of the fluid [-]
l : int
term
s : int
term
Returns Omega : float
Collision integral of A and B
Notes
Acceptable pairs of (l,s) are (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3,3), (3, 4), (3, 5), and (4, 4).
𝑇 * =𝑘𝑏𝑇
𝜖
References
[R158]
88 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> collision_integral_Kim_Monroe(400, 1, 1)0.4141818082392228
thermo.lennard_jones.collision_integral_Neufeld_Janzen_Aziz(Tstar, l=1, s=1)Calculates Lennard-Jones collision integral for any of 16 values of (l,j) for the wide range of 0.3 < Tstar < 100.Values are accurate to 0.1 % of actual values, but the calculation of actual values is computationally intensiveand so these simplifications are used, developed in [R160].
Ω𝐷 =𝐴
𝑇 *𝐵 +𝐶
exp(𝐷𝑇 *)+
𝐸
exp(𝐹𝑇 *)+
𝐺
exp(𝐻𝑇 *)+𝑅𝑇 *𝐵 sin(𝑆𝑇 *𝑊 − 𝑃 )
Parameters Tstar : float
Reduced temperature of the fluid [-]
l : int
term
s : int
term
Returns Omega : float
Collision integral of A and B
Notes
Acceptable pairs of (l,s) are (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3,3), (3, 4), (3, 5), and (4, 4).
𝑇 * =𝑘𝑏𝑇
𝜖
Results are very similar to those of the more modern formulation, collision_integral_Kim_Monroe.
Calculations begin to yield overflow errors in some values of (l, 2) after Tstar = 75, beginning with (1, 7). Alsosusceptible are (1, 5) and (1, 6).
References
[R160]
Examples
>>> collision_integral_Neufeld_Janzen_Aziz(100, 1, 1)0.516717697672334
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_boiling(Tb)Calculates Lennard-Jones depth of potential-energy minimum. Uses boiling temperature. CSP method by[R162].
𝜖/𝑘 = 1.15𝑇𝑏
Parameters Tb : float
1.1. thermo package 89
thermo Documentation, Release 0.1
Boiling temperature [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R162]
Examples
>>> epsilon_Bird_Stewart_Lightfoot_boiling(357.85)411.5275
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_critical(Tc)Calculates Lennard-Jones depth of potential-energy minimum. Uses critical temperature. CSP method by[R163].
𝜖/𝑘 = 0.77𝑇𝑐
Parameters Tc : float
Critical temperature of fluid [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R163]
Examples
>>> epsilon_Bird_Stewart_Lightfoot_critical(560.1)431.27700000000004
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_melting(Tm)Calculates Lennard-Jones depth of potential-energy minimum. Uses melting temperature. CSP method by[R164].
𝜖/𝑘 = 1.92𝑇𝑚
Parameters Tm : float
Melting temperature [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R164]
90 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> epsilon_Bird_Stewart_Lightfoot_melting(231.15)443.808
thermo.lennard_jones.epsilon_Flynn(Tc)Calculates Lennard-Jones depth of potential-energy minimum. Uses critical temperature. CSP method by[R165] as reported in [R166].
𝜖/𝑘 = 1.77𝑇 5/6𝑐
Parameters Tc : float
Critical temperature of fluid [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R165], [R166]
Examples
>>> epsilon_Flynn(560.1)345.2984087011443
thermo.lennard_jones.epsilon_Stiel_Thodos(Tc, Zc)Calculates Lennard-Jones depth of potential-energy minimum. Uses Critical temperature and critical compress-ibility. CSP method by [R167].
𝜖/𝑘 = 65.3𝑇𝑐𝑍3.6𝑐
Parameters Tc : float
Critical temperature of fluid [K]
Zc : float
Critical compressibility of fluid, [-]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R167]
Examples
Fluorobenzene
1.1. thermo package 91
thermo Documentation, Release 0.1
>>> epsilon_Stiel_Thodos(358.5, 0.265)196.3755830305783
thermo.lennard_jones.epsilon_Tee_Gotoh_Steward_1(Tc)Calculates Lennard-Jones depth of potential-energy minimum. Uses Critical temperature. CSP method by[R168].
𝜖/𝑘 = 0.7740𝑇𝑐
Parameters Tc : float
Critical temperature of fluid [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
Notes
Further regressions with other parameters were performed in [R168] but are not included here, except for ep-silon_Tee_Gotoh_Steward_2.
References
[R168]
Examples
>>> epsilon_Tee_Gotoh_Steward_1(560.1)433.5174
thermo.lennard_jones.epsilon_Tee_Gotoh_Steward_2(Tc, omega)Calculates Lennard-Jones depth of potential-energy minimum. Uses critical temperature and acentric factor.CSP method by [R169].
𝜖/𝑘 = (0.7915 + 0.1693𝜔)𝑇𝑐
Parameters Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor for fluid, [-]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
Notes
Further regressions with other parameters were performed in [R169] but are not included here, except for ep-silon_Tee_Gotoh_Steward_1.
92 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R169]
Examples
>>> epsilon_Tee_Gotoh_Steward_2(560.1, 0.245)466.55125785
thermo.lennard_jones.molecular_diameter(Tc=None, Pc=None, Vc=None, Zc=None,omega=None, Vm=None, Vb=None, CASRN=’‘,AvailableMethods=False, Method=None)
This function handles the retrieval or calculation a chemical’s L-J molecular diameter. Values are available fromone source with lookup based on CASRNs, or can be estimated from 9 CSP methods. Will automatically selecta data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘Magalhães, Lito, Da Silva, and Silva (2013)’ for common chemicals which had valieslisted in that source, and the CSP method Tee, Gotoh, and Stewart CSP with Tc, Pc, omega (1966) for chemicalswhich don’t.
Parameters Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
Zc : float, optional
Critical compressibility, [-]
omega : float, optional
Acentric factor of compound, [-]
Vm : float, optional
Molar volume of liquid at the melting point of the fluid [K]
Vb : float, optional
Molar volume of liquid at the boiling point of the fluid [K]
CASRN : string, optional
CASRN [-]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain epsilon with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in molecu-lar_diameter_methods
1.1. thermo package 93
thermo Documentation, Release 0.1
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain sigma for thedesired chemical, and will return methods instead of sigma
Notes
These values are somewhat rough, as they attempt to pigeonhole a chemical into L-J behavior.
The tabulated data is from [R171], for 322 chemicals.
References
[R170], [R171]
Examples
>>> molecular_diameter(CASRN='64-17-5')4.23738
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_boiling(Vb)Calculates Lennard-Jones molecular diameter. Uses molar volume of liquid at boiling. CSP method by [R172].
𝜎 = 1.166𝑉1/3𝑏,𝑙𝑖𝑞
Parameters Vb : float
Boiling molar volume of liquid [m^3/mol]
Returns sigma : float
Lennard-Jones collision integral, [Angstrom]
Notes
Original units of Vb are mL/mol.
References
[R172]
Examples
>>> sigma_Bird_Stewart_Lightfoot_boiling(0.0001015)5.439018856944655
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_critical_1(Vc)Calculates Lennard-Jones molecular diameter. Uses critical volume. CSP method by [R173].
𝜎 = 0.841𝑉 1/3𝑐
Parameters Vc : float
94 Chapter 1. thermo
thermo Documentation, Release 0.1
Critical volume of fluid [m^3/mol]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of Vc are mL/mol.
References
[R173]
Examples
>>> sigma_Bird_Stewart_Lightfoot_critical_1(0.000268)5.422184116631474
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_critical_2(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R174].
𝜎 = 2.44(𝑇𝑐/𝑃𝑐)1/3
Parameters Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of critical pressure are atmospheres.
References
[R174]
Examples
>>> sigma_Bird_Stewart_Lightfoot_critical_2(560.1, 4550000)5.658657684653222
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_melting(Vm)Calculates Lennard-Jones molecular diameter. Uses molar volume of a liquid at its melting point. CSP methodby [R175].
𝜎 = 1.222𝑉1/3𝑚,𝑠𝑜𝑙
1.1. thermo package 95
thermo Documentation, Release 0.1
Parameters Vm : float
Melting molar volume of a liquid at its melting point [m^3/mol]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of Vm are mL/mol.
References
[R175]
Examples
>>> sigma_Bird_Stewart_Lightfoot_melting(8.8e-05)5.435407341351406
thermo.lennard_jones.sigma_Flynn(Vc)Calculates Lennard-Jones molecular diameter. Uses critical volume. CSP method by [R176] as reported in[R177].
𝜎 = 0.561(𝑉 1/3𝑐 )5/4
Parameters Vc : float
Critical volume of fluid [m^3/mol]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Vc is originally in units of mL/mol.
References
[R176], [R177]
Examples
>>> sigma_Flynn(0.000268)5.2506948422196285
thermo.lennard_jones.sigma_Silva_Liu_Macedo(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R178].
𝜎3𝐿𝐽 = 0.17791 + 11.779
(𝑇𝑐𝑃𝑐
)− 0.049029
(𝑇𝑐𝑃𝑐
)2
96 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Pc is originally in bar. An excellent paper. None is returned if the polynomial returns a negative number, as inthe case of 1029.13 K and 3.83 bar.
References
[R178]
Examples
>>> sigma_Silva_Liu_Macedo(560.1, 4550000)5.164483998730177
thermo.lennard_jones.sigma_Stiel_Thodos(Vc, Zc)Calculates Lennard-Jones molecular diameter. Uses critical volume and compressibility. CSP method by[R179].
𝜎 = 0.1866𝑉 1/3𝑐 𝑍−6/5
𝑐
Parameters Vc : float
Critical volume of fluid [m^3/mol]
Zc : float
Critical compressibility of fluid, [-]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Vc is originally in units of mL/mol.
References
[R179]
1.1. thermo package 97
thermo Documentation, Release 0.1
Examples
Monofluorobenzene
>>> sigma_Stiel_Thodos(0.000271, 0.265)5.94300853971033
thermo.lennard_jones.sigma_Tee_Gotoh_Steward_1(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R180].
𝜎 = 2.3647
(𝑇𝑐𝑃𝑐
)1/3
Parameters Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of Pc are atm. Further regressions with other parameters were performed in [R180] but are notincluded here, except for sigma_Tee_Gotoh_Steward_2.
References
[R180]
Examples
>>> sigma_Tee_Gotoh_Steward_1(560.1, 4550000)5.48402779790962
thermo.lennard_jones.sigma_Tee_Gotoh_Steward_2(Tc, Pc, omega)Calculates Lennard-Jones molecular diameter. Uses critical temperature, pressure, and acentric factor. CSPmethod by [R181].
𝜎 = (2.3551 − 0.0874𝜔)
(𝑇𝑐𝑃𝑐
)1/3
Parameters Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
98 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of Pc are atm. Further regressions with other parameters were performed in [R181] but are notincluded here, except for sigma_Tee_Gotoh_Steward_1.
References
[R181]
Examples
>>> sigma_Tee_Gotoh_Steward_2(560.1, 4550000, 0.245)5.412104867264477
thermo.miscdata module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.miscdata.VDI_tabular_data(CASRN, prop)This function retrieves the tabular data available for a given chemical and a given property. Lookup is based onCASRNs. Length of data returned varies between chemicals. All data is at saturation condition from [R182].
Function has data for 58 chemicals.
Parameters CASRN : string
CASRN [-]
prop : string
Property [-]
Returns Ts : list
Temperatures where property data is available, [K]
props : list
1.1. thermo package 99
thermo Documentation, Release 0.1
Properties at each temperature, [various]
Notes
The available properties are ‘P’, ‘Density (l)’, ‘Density (g)’, ‘Hvap’, ‘Cp (l)’, ‘Cp (g)’, ‘Mu (l)’, ‘Mu (g)’, ‘K(l)’, ‘K (g)’, ‘Pr (l)’, ‘Pr (g)’, ‘sigma’, ‘Beta’, ‘Volume (l)’, and ‘Volume (g)’.
Data is available for all properties and all chemicals; surface tension data was missing for mercury, but added asestimated from the a/b coefficients listed in Jasper (1972) to simplify the function.
References
[R182]
Examples
>>> VDI_tabular_data('67-56-1', 'Mu (g)')([337.63, 360.0, 385.0, 410.0, 435.0, 460.0, 500.0], [1.11e-05, 1.18e-05, 1.27e-05, 1.36e-05, 1.46e-05, 1.59e-05, 2.04e-05])
thermo.permittivity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
class thermo.permittivity.Permittivity(CASRN=’‘)Bases: thermo.utils.TDependentProperty
Class for dealing with liquid permittivity as a function of temperature. Consists of one temperature-dependentsimple expression and one constant value source.
Parameters CASRN : str, optional
The CAS number of the chemical
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored inpermittivity_methods.
100 Chapter 1. thermo
thermo Documentation, Release 0.1
CRC: Simple polynomials for calculating permittivity over a specified temperature range only. The full ex-pression is:
𝜖𝑟 = 𝐴+𝐵𝑇 + 𝐶𝑇 2 +𝐷𝑇 3
Not all chemicals use all terms; in fact, few do. Data is available for 759 liquids, from [R183].
CRC_CONSTANT: Constant permittivity values at specified temperatures only. Data is from [R183], and isavailable for 1303 liquids.
References
[R183]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate permittivity of a liquid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the permittivity above.
Tmin = NoneMinimum temperature at which no method can calculate the permittivity under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)
1.1. thermo package 101
thermo Documentation, Release 0.1
Method to calculate permittivity of a liquid at temperature T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at which to calculate relative permittivity, [K]
method : str
Name of the method to use
Returns epsilon : float
Relative permittivity of the liquid at T, [-]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘relative permittivity’
property_max = 1000Maximum valid of permittivity; highest in the data available is ~240.
property_min = 1Relative permittivity must always be larger than 1; nothing is better than a vacuum.
ranked_methods = [’CRC Handbook polynomials’, ‘CRC Handbook constant’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. For
102 Chapter 1. thermo
thermo Documentation, Release 0.1
tabular data, extrapolation outside of the range is used if tabular_extrapolation_permitted isset; 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 methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘-‘
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.permittivity.permittivity_IAPWS(T, rho)Calculate the relative permittivity of pure water as a function of. temperature and density. Assumes the 1997IAPWS [R184] formulation.
𝜖(𝜌, 𝑇 ) =1 +𝐴+ 5𝐵 + (9 + 2𝐴+ 18𝐵 +𝐴2 + 10𝐴𝐵 + 9𝐵2)0.5
4(1 −𝐵)
𝐴(𝜌, 𝑇 ) =𝑁𝐴𝜇
2𝜌𝑔
𝑀𝜖0𝑘𝑇
𝐵(𝜌) =𝑁𝐴𝛼𝜌
3𝑀𝜖0
𝑔(𝛿, 𝜏) = 1 +
11∑𝑖=1
𝑛𝑖𝛿𝐼𝑖𝜏𝐽𝑖 + 𝑛12𝛿
(647.096
228𝜏−1 − 1
)−1.2
𝛿 = 𝜌/(322 kg/m3)
𝜏 = 𝑇/647.096K
Parameters T : float
Temperature of water [K]
rho : float
Mass density of water at T and P [kg/m^3]
Returns epsilon : float
Relative permittivity of water at T and rho, [-]
Notes
Validity:
273.15 < T < 323.15 K for 0 < P < iceVI melting pressure at T or 1000 MPa, whichever is smaller.
323.15 < T < 873.15 K 0 < p < 600 MPa.
Coefficients:
1.1. thermo package 103
thermo Documentation, Release 0.1
ih = [1, 1, 1, 2, 3, 3, 4, 5, 6, 7, 10]; jh = [0.25, 1, 2.5, 1.5, 1.5, 2.5, 2, 2, 5, 0.5, 10]; Nh = [0.978224486826,-0.957771379375, 0.237511794148, 0.714692244396,
-0.298217036956, -0.108863472196, 0.949327488264E-1, -.980469816509E-2, 0.165167634970E-4, 0.937359795772E-4, -0.12317921872E-9];
polarizability = 1.636E-40 dipole = 6.138E-30
References
[R184]
Examples
>>> permittivity_IAPWS(373., 958.46)55.56584297721836
thermo.permittivity.permittivity_methods = [’CRC Handbook polynomials’, ‘CRC Handbook constant’]Holds all methods available for the Permittivity class, for use in iterating over them.
thermo.phase_change module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.phase_change.Chen(Tb, Tc, Pc)Calculates enthalpy of vaporization using the Chen [R185] correlation and a chemical’s critical temperature,pressure and boiling point.
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑏 = 𝑅𝑇𝑏3.978𝑇𝑟 − 3.958 + 1.555 ln𝑃𝑐
1.07 − 𝑇𝑟
Parameters Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
104 Chapter 1. thermo
thermo Documentation, Release 0.1
Critical pressure of fluid [Pa]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
The formulation presented in the original article is similar, but uses units of atm and calorie instead. The formin [R186] has adjusted for this. A method for estimating enthalpy of vaporization at other conditions has alsobeen developed, but the article is unclear on its implementation. Based on the Pitzer correlation.
Internal units: bar and K
References
[R185], [R186]
Examples
Same problem as in Perry’s examples.
>>> Chen(294.0, 466.0, 5.55E6)26705.893506174052
thermo.phase_change.Clapeyron(T, Tc, Pc, dZ=1, Psat=101325)Calculates enthalpy of vaporization at arbitrary temperatures using the Clapeyron equation.
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝 = 𝑅𝑇∆𝑍ln(𝑃𝑐/𝑃𝑠𝑎𝑡)
(1 − 𝑇𝑟)
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
dZ : float
Change in compressibility factor between liquid and gas, []
Psat : float
Saturation pressure of fluid [Pa], optional
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
1.1. thermo package 105
thermo Documentation, Release 0.1
Notes
No original source is available for this equation. [R187] claims this equation overpredicts enthalpy by severalpercent. Under Tr = 0.8, dZ = 1 is a reasonable assumption. This equation is most accurate at the normal boilingpoint.
Internal units are bar.
WARNING: I believe it possible that the adjustment for pressure may be incorrect
References
[R187]
Examples
Problem from Perry’s examples.
>>> Clapeyron(T=294.0, Tc=466.0, Pc=5.55E6)26512.354585061985
class thermo.phase_change.EnthalpyVaporization(CASRN=’‘, Tb=None, Tc=None, Pc=None,omega=None, similarity_variable=None,Psat=None, Zl=None, Zg=None)
Bases: thermo.utils.TDependentProperty
Class for dealing with heat of vaporization as a function of temperature. Consists of three constant value datasources, one source of tabular information, nine corresponding-states estimators, and the external library Cool-Prop.
Parameters Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
omega : float, optional
Acentric factor, [-]
similarity_variable : float, optional
similarity variable, n_atoms/MW, [mol/g]
Psat : float or callable, optional
Vapor pressure at T or callable for the same, [Pa]
Zl : float or callable, optional
Compressibility of liquid at T or callable for the same, [-]
Zg : float or callable, optional
Compressibility of gas at T or callable for the same, [-]
CASRN : str, optional
106 Chapter 1. thermo
thermo Documentation, Release 0.1
The CAS number of the chemical
See also:
MK, SMK, Velasco, Clapeyron, Riedel, Chen, Vetere, Liu, Watson
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored inenthalpy_vaporization_methods.
CLAPEYRON: The Clapeyron fundamental model desecribed in Clapeyron. This is the model which usesZl, Zg, and Psat, all of which must be set at each temperature change to allow recalculation of the heat ofvaporization.
MORGAN_KOBAYASHI: The MK CSP model equation documented in MK.
SIVARAMAN_MAGEE_KOBAYASHI: The SMK CSP model equation documented in SMK.
VELASCO: The Velasco CSP model equation documented in Velasco.
PITZER: The Pitzer CSP model equation documented in Pitzer.
RIEDEL: The Riedel CSP model equation, valid at the boiling point only, documented in Riedel. This isadjusted with the Watson equation unless Tc is not available.
CHEN: The Chen CSP model equation, valid at the boiling point only, documented in Chen. This is adjustedwith the Watson equation unless Tc is not available.
VETERE: The Vetere CSP model equation, valid at the boiling point only, documented in Vetere. This isadjusted with the Watson equation unless Tc is not available.
LIU: The Liu CSP model equation, valid at the boiling point only, documented in Liu. This is adjusted withthe Watson equation unless Tc is not available.
CRC_HVAP_TB: The constant value available in [R191] at the normal boiling point. This is adusted with theWatson equation unless Tc is not available. Data is available for 707 chemicals.
CRC_HVAP_298: The constant value available in [R191] at 298.15 K. This is adusted with the Watsonequation unless Tc is not available. Data is available for 633 chemicals.
GHARAGHEIZI_HVAP_298: The constant value available in [R192] at 298.15 K. This is adusted with theWatson equation unless Tc is not available. Data is available for 2730 chemicals.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R190]. Very slow but accurate.
VDI_TABULAR: Tabular data in [R191] along the saturation curve; interpolation is as set by the user or thedefault.
References
[R188], [R189], [R190], [R191], [R192]
1.1. thermo package 107
thermo Documentation, Release 0.1
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate heat of vaporization of a liquid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
CSP_methods = [’MK’, ‘SMK’, ‘Velasco’, ‘Pitzer’]
Tmax = NoneMaximum temperature at which no method can calculate the heat of vaporization above.
Tmin = NoneMinimum temperature at which no method can calculate the heat of vaporization under.
Watson_exponent = 0.38Exponent used in the Watson equation
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
boiling_methods = [’Riedel’, ‘Chen’, ‘Vetere’, ‘Liu’]
calculate(T, method)Method to calculate heat of vaporization of a liquid at temperature T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at which to calculate heat of vaporization, [K]
method : str
Name of the method to use
108 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns Hvap : float
Heat of vaporization of the liquid at T, [J/mol]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Enthalpy of vaporization’
property_max = 1000000.0Maximum valid of heat of vaporization. Set to twice the value in the available data.
property_min = 0Mimimum valid value of heat of vaporization. This occurs at the critical point exactly.
ranked_methods = [’CoolProp’, ‘VDI Saturation’, ‘MK’, ‘SMK’, ‘Velasco’, ‘Pitzer’, ‘CRC Handbook at Tb’, ‘CRC Handbook at 298.15 K’, ‘Gharagheizi Appendix, at 298.15 K’, ‘Clapeyron’, ‘Riedel’, ‘Chen’, ‘Vetere’, ‘Liu’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default; values below 0 will be obtained at high temperatures.
test_method_validity(T, method)Method to check the validity of a method. For CSP methods, the models are considered validfrom 0 K to the critical point. For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered valid for alltemperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
The constant methods CRC_HVAP_TB, CRC_HVAP_298, and GHARAGHEIZI_HVAP are adjustedfor temperature dependence according to the Watson equation, with a temperature exponent as set inWatson_exponent, usually regarded as 0.38. However, if Tc is not set, then the adjustment cannot be
1.1. thermo package 109
thermo Documentation, Release 0.1
made. In that case the methods are considered valid for within 5 K of their boiling point or 298.15 K asappropriate.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘J/mol’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.phase_change.Hfus(T=298.15, P=101325, MW=None, AvailableMethods=False,Method=None, CASRN=’‘)
This function handles the calculation of a chemical’s enthalpy of fusion. Generally this, is used by the chemicalclass, as all parameters are passed. Calling the function directly works okay.
Enthalpy of fusion is a weak function of pressure, and its effects are neglected.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
thermo.phase_change.Hsub(T=298.15, P=101325, MW=None, AvailableMethods=False,Method=None, CASRN=’‘)
This function handles the calculation of a chemical’s enthalpy of sublimation. Generally this, is used by thechemical class, as all parameters are passed.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
thermo.phase_change.Liu(Tb, Tc, Pc)Calculates enthalpy of vaporization at the normal boiling point using the Liu [R193] correlation, and a chemi-cal’s critical temperature, pressure and boiling point.
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝 = 𝑅𝑇𝑏
[𝑇𝑏220
]0.0627(1 − 𝑇𝑏𝑟)0.38 ln(𝑃𝑐/𝑃𝐴)
1 − 𝑇𝑏𝑟 + 0.38𝑇𝑏𝑟 ln𝑇𝑏𝑟
Parameters Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
110 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
This formulation can be adjusted for lower boiling points, due to the use of a rationalized pressure relationship.The formulation is taken from the original article.
A correction for alcohols and organic acids based on carbon number, which only modifies the boiling point, isavailable but not implemented.
No sample calculations are available in the article.
Internal units: Pa and K
References
[R193]
Examples
Same problem as in Perry’s examples
>>> Liu(294.0, 466.0, 5.55E6)26378.566319606754
thermo.phase_change.MK(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R194]; requires a chemical’scritical temperature and acentric factor.
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝 = ∆𝐻(0)𝑣𝑎𝑝 + 𝜔∆𝐻(1)
𝑣𝑎𝑝 + 𝜔2∆𝐻(2)𝑣𝑎𝑝
∆𝐻(𝑖)𝑣𝑎𝑝
𝑅𝑇𝑐= 𝑏(𝑗)𝜏1/3 + 𝑏
(𝑗)2 𝜏5/6 + 𝑏
(𝑗)3 𝜏1.2083 + 𝑏
(𝑗)4 𝜏 + 𝑏
(𝑗)5 𝜏2 + 𝑏
(𝑗)6 𝜏3
𝜏 = 1 − 𝑇/𝑇𝑐
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor [-]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
The original article has been reviewed. A total of 18 coefficients are used:
WARNING: The correlation has been implemented as described in the article, but its results seem different andwith some error. Its results match with other functions however.
Has poor behavior for low-temperature use.
1.1. thermo package 111
thermo Documentation, Release 0.1
References
[R194]
Examples
Problem in article for SMK function.
>>> MK(553.15, 751.35, 0.302)38727.993546377205
thermo.phase_change.Pitzer(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a fit by [R196] to the work of Pitzer [R195];requires a chemical’s critical temperature and acentric factor.
The enthalpy of vaporization is given by:
∆𝑣𝑎𝑝𝐻
𝑅𝑇𝑐= 7.08(1 − 𝑇𝑟)0.354 + 10.95𝜔(1 − 𝑇𝑟)0.456
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor [-]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
This equation is listed in [R197], page 2-487 as method #2 for estimating Hvap. This cites [R196].
The recommended range is 0.6 to 1 Tr. Users should expect up to 5% error. T must be under Tc, or an exceptionis raised.
The original article has been reviewed and found to have a set of tabulated values which could be used insteadof the fit function to provide additional accuracy.
References
[R195], [R196], [R197]
Examples
Example as in [R197], p2-487; exp: 37.51 kJ/mol
>>> Pitzer(452, 645.6, 0.35017)36696.736640106414
112 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.phase_change.Riedel(Tb, Tc, Pc)Calculates enthalpy of vaporization at the boiling point, using the Ridel [R198] CSP method. Required infor-mation are critical temperature and pressure, and boiling point. Equation taken from [R199] and [R200].
The enthalpy of vaporization is given by:
∆𝑣𝑎𝑝𝐻 = 1.093𝑇𝑏𝑅ln𝑃𝑐 − 1.013
0.930 − 𝑇𝑏𝑟
Parameters Tb : float
Boiling temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns Hvap : float
Enthalpy of vaporization at the normal boiling point, [J/mol]
Notes
This equation has no example calculation in any source. The source has not been verified. It is equation 4-144in Perry’s. Perry’s also claims that errors seldom surpass 5%.
[R199] is the source of example work here, showing a calculation at 0.0% error.
Internal units of pressure are bar.
References
[R198], [R199], [R200]
Examples
Pyridine, 0.0% err vs. exp: 35090 J/mol; from Poling [R199].
>>> Riedel(388.4, 620.0, 56.3E5)35089.78989646058
thermo.phase_change.SMK(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R201]; requires a chemical’scritical temperature and acentric factor.
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐=
(∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅1)
+
(𝜔 − 𝜔(𝑅1)
𝜔(𝑅2) − 𝜔(𝑅1)
)[(∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅2)
−(
∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅1)]
(∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅1)
= 6.537𝜏1/3 − 2.467𝜏5/6 − 77.251𝜏1.208 + 59.634𝜏 + 36.009𝜏2 − 14.606𝜏3(∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅2)
−(
∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑐
)(𝑅1)
= −0.133𝜏1/3 − 28.215𝜏5/6 − 82.958𝜏1.208 + 99.00𝜏 + 19.105𝜏2 − 2.796𝜏3
𝜏 = 1 − 𝑇/𝑇𝑐
1.1. thermo package 113
thermo Documentation, Release 0.1
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
omega : float
Acentric factor [-]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
The original article has been reviewed and found to have coefficients with slightly more precision. Additionally,the form of the equation is slightly different, but numerically equivalent.
The refence fluids are:
𝜔0 = benzene = 0.212
𝜔1 = carbazole = 0.461
A sample problem in the article has been verified. The numerical result presented by the author requires highnumerical accuracy to obtain.
References
[R201]
Examples
Problem in [R201]:
>>> SMK(553.15, 751.35, 0.302)39866.17647797959
thermo.phase_change.Tb(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMeth-ods=[’Vapor pressure estimation’])
This function handles the retrieval of a chemical’s boiling point. Lookup is based on CASRNs. Will automati-cally select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘CRC Physical Constants, organic’ for organic chemicals, and ‘CRC Physical Constants,inorganic’ for inorganic chemicals. Function has data for approximately 13000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Tb : float
Boiling temperature, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tb with the given inputs
Other Parameters Method : string, optional
114 Chapter 1. thermo
thermo Documentation, Release 0.1
A string for the method name to use, as defined by constants in Tb_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Tb for the desiredchemical, and will return methods instead of Tb
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods, useful for for perfor-mance reasons and ignoring inaccurate methods
Notes
A total of four methods are available for this function. They are:
•‘CRC Physical Constants, organic’, a compillation of data on organics as published in [R202].
•‘CRC Physical Constants, inorganic’, a compillation of data on inorganic as published in [R202].
•‘Yaws’, a large compillation of data from a variety of sources; no data points are sourced in the work of[R203].
•‘Vapor pressure estimation’, calculation of boiling point from a vapor pressure calculation. This is nor-mally off by a fraction of a degree even in the best cases. Listed in IgnoreMethods by default for perfor-mance reasons.
References
[R202], [R203]
Examples
>>> Tb('7732-18-5')373.124
thermo.phase_change.Tliquidus(Tms=None, ws=None, xs=None, CASRNs=None, AvailableMeth-ods=False, Method=None)
This function handles the retrival of a mixtures’s liquidus point.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Tliquidus(Tms=[250.0, 350.0], xs=[0.5, 0.5])350.0>>> Tliquidus(Tms=[250, 350], xs=[0.5, 0.5], Method='Simple')300.0>>> Tliquidus(Tms=[250, 350], xs=[0.5, 0.5], AvailableMethods=True)['Maximum', 'Simple', 'None']
thermo.phase_change.Tm(CASRN=’‘, AvailableMethods=False, Method=None, IgnoreMethods=[])This function handles the retrieval of a chemical’s melting point. Lookup is based on CASRNs. Will automati-cally select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘Open Notebook Melting Points’, with backup sources ‘CRC Physical Constants, organic’for organic chemicals, and ‘CRC Physical Constants, inorganic’ for inorganic chemicals. Function has data forapproximately 14000 chemicals.
1.1. thermo package 115
thermo Documentation, Release 0.1
Parameters CASRN : string
CASRN [-]
Returns Tm : float
Melting temperature, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tm with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Tm_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Tm for the desiredchemical, and will return methods instead of Tm
IgnoreMethods : list, optional
A list of methods to ignore in obtaining the full list of methods
Notes
A total of three sources are available for this function. They are:
•‘Open Notebook Melting Points’, a compillation of data on organics as published in [R204]. Averaged(median) values were used when multiple points were available. For more information on this invaluableand excellent collection, see http://onswebservices.wikispaces.com/meltingpoint.
•‘CRC Physical Constants, organic’, a compillation of data on organics as published in [R205].
•‘CRC Physical Constants, inorganic’, a compillation of data on inorganic as published in [R205].
References
[R204], [R205]
Examples
>>> Tm(CASRN='7732-18-5')273.15
thermo.phase_change.Velasco(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R206]; requires a chemical’scritical temperature and acentric factor.
The enthalpy of vaporization is given by:
∆𝑣𝑎𝑝𝐻 = 𝑅𝑇𝑐(7.2729 + 10.4962𝜔 + 0.6061𝜔2)(1 − 𝑇𝑟)0.38
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
116 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float
Acentric factor [-]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
The original article has been reviewed. It is regressed from enthalpy of vaporization values at 0.7Tr, from 121fluids in REFPROP 9.1. A value in the article was read to be similar, but slightly too low from that calculatedhere.
References
[R206]
Examples
From graph, in [R206] for perfluoro-n-heptane.
>>> Velasco(333.2, 476.0, 0.5559)33299.41734936356
thermo.phase_change.Vetere(Tb, Tc, Pc, F=1)Calculates enthalpy of vaporization at the boiling point, using the Vetere [R207] CSP method. Required infor-mation are critical temperature and pressure, and boiling point. Equation taken from [R208].
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑏=𝜏0.38𝑏
[ln𝑃𝑐 − 0.513 + 0.5066
𝑃𝑐𝑇 2𝑏𝑟
]𝜏𝑏 + 𝐹 (1 − 𝜏0.38𝑏 ) ln𝑇𝑏𝑟
Parameters Tb : float
Boiling temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
F : float, optional
Constant for a fluid, [-]
Returns Hvap : float
Enthalpy of vaporization at the boiling point, [J/mol]
1.1. thermo package 117
thermo Documentation, Release 0.1
Notes
The equation cannot be found in the original source. It is believed that a second article is its source, or thatDIPPR staff have altered the formulation.
Internal units of pressure are bar.
References
[R207], [R208]
Examples
Example as in [R208], p2-487; exp: 25.73
>>> Vetere(294.0, 466.0, 5.55E6)26363.430021286465
thermo.phase_change.Watson(T, Hvap_ref, T_Ref, Tc, exponent=0.38)Adjusts enthalpy of vaporization of enthalpy for another temperature, for one temperature.
thermo.phase_change.enthalpy_vaporization_methods = [’CoolProp’, ‘VDI Saturation’, ‘MK’, ‘SMK’, ‘Velasco’, ‘Pitzer’, ‘CRC Handbook at Tb’, ‘CRC Handbook at 298.15 K’, ‘Gharagheizi Appendix, at 298.15 K’, ‘Clapeyron’, ‘Riedel’, ‘Chen’, ‘Vetere’, ‘Liu’]Holds all methods available for the EnthalpyVaporization class, for use in iterating over them.
thermo.pr module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.pr.A(T, P, Tc, Pc, omega)
thermo.pr.B(T, P, Tc, Pc)
thermo.pr.PR_Vm(T, P, Tc, Pc, omega, phase=’‘)
thermo.pr.a(Tc, Pc)
thermo.pr.a_alpha(T, Tc, Pc, omega)
thermo.pr.alpha(omega, Tr)
thermo.pr.b(Tc, Pc)
118 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.reaction module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.reaction.Hf(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s standard-phase heat of formation. The lookup is based onCASRNs. Selects the only data source available (‘API TDB’) if the chemical is in it. Returns None if the datais not available.
Function has data for 571 chemicals.
Parameters CASRN : string
CASRN [-]
Returns Hf : float
Standard-state heat of formation, [J/mol]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Hf with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Hf_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Hf for the desiredchemical, and will return methods instead of Hf
Notes
Only one source of information is available to this function. it is:
•‘API TDB’, a compilation of heats of formation of unspecified phase. Not the original data, but as repro-duced in [R209]. Some chemicals with duplicated CAS numbers were removed.
References
[R209]
1.1. thermo package 119
thermo Documentation, Release 0.1
Examples
>>> Hf(CASRN='7732-18-5')-241820.0
thermo.reaction.Hf_g(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s gas heat of formation. Lookup is based on CASRNs. Willautomatically select a data source to use if no Method is provided; returns None if the data is not available.
Prefered sources are ‘Active Thermochemical Tables (g)’ for high accuracy, and ‘TRC’ for less accuracy butmore chemicals. Function has data for approximately 2000 chemicals.
Parameters CASRN : string
CASRN [-]
Returns _Hfg : float
Gas phase heat of formation, [J/mol]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Hf(g) with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Hf_g_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Hf(g) for thedesired chemical, and will return methods instead of Hf(g)
Notes
Sources are:
•‘Active Thermochemical Tables (g)’, version 1.112 [R210].
•‘TRC’, from a 1994 compilation.
References
[R210], [R211]
Examples
>>> Hf_g('67-56-1')-200700.0
thermo.reaction.Hf_l(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s liquid standard phase heat of formation. The lookup is basedon CASRNs. Selects the only data source available, Active Thermochemical Tables (l), if the chemical is in it.Returns None if the data is not available.
Function has data for 34 chemicals.
Parameters CASRN : string
120 Chapter 1. thermo
thermo Documentation, Release 0.1
CASRN [-]
Returns _Hfl : float
Liquid standard-state heat of formation, [J/mol]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Hf(l) with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Hf_l_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Hf(l) for thedesired chemical, and will return methods instead of Hf(l)
Notes
Only one source of information is available to this function. It is:
•‘Active Thermochemical Tables (l)’, version 1.112.
References
[R212]
Examples
>>> Hf_l('67-56-1')-238400.0
thermo.refractivity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1.1. thermo package 121
thermo Documentation, Release 0.1
thermo.refractivity.RI_from_molar_refractivity(Rm, Vm)Returns the refractive index of a fluid given its molar volume and molar refractivity.
𝑅𝐼 =
√−2𝑅𝑚 − 𝑉𝑚𝑅𝑚 − 𝑉𝑚
Parameters Rm : float
Molar refractivity [m^3/mol]
Vm : float
Molar volume of fluid, [m^3/mol]
Returns RI : float
Refractive Index on Na D line, [-]
References
[R213]
Examples
>>> RI_from_molar_refractivity(1.2985e-5, 5.8676E-5)1.3610932757685672
thermo.refractivity.molar_refractivity_from_RI(RI, Vm)Returns the molar refractivity of a fluid given its molar volume and refractive index.
𝑅𝑚 =
(𝑛2 − 1
𝑛2 + 2
)𝑉𝑚
Parameters RI : float
Refractive Index on Na D line, [-]
Vm : float
Molar volume of fluid, [m^3/mol]
Returns Rm : float
Molar refractivity [m^3/mol]
References
[R214]
Examples
>>> molar_refractivity_from_RI(1.3611, 5.8676E-5)1.2985217089649597e-05
122 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.refractivity.polarizability_from_RI(RI, Vm)Returns the polarizability of a fluid given its molar volume and refractive index.
𝛼 =
(3
4𝜋𝑁𝐴
)(𝑛2 − 1
𝑛2 + 2
)𝑉𝑚
Parameters RI : float
Refractive Index on Na D line, [-]
Vm : float
Molar volume of fluid, [m^3/mol]
Returns alpha : float
Polarizability [m^3]
Notes
This Lorentz-Lorentz-expression is most correct when van der Waals interactions dominate. Alternate conver-sions have been suggested. This is often expressed in units of cm^3 or Angstrom^3. To convert to these units,multiply by 1E9 or 1E30 respectively.
References
[R215]
Examples
>>> polarizability_from_RI(1.3611, 5.8676E-5)5.147658123614415e-30
thermo.refractivity.refractive_index(CASRN=’‘, T=None, AvailableMethods=False,Method=None, full_info=True)
This function handles the retrieval of a chemical’s refractive index. Lookup is based on CASRNs. Will auto-matically select a data source to use if no Method is provided; returns None if the data is not available.
Function has data for approximately 4500 chemicals.
Parameters CASRN : string
CASRN [-]
Returns RI : float
Refractive Index on Na D line, [-]
T : float, only returned if full_info == True
Temperature at which refractive index reading was made
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain RI with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in RI_methods
AvailableMethods : bool, optional
1.1. thermo package 123
thermo Documentation, Release 0.1
If True, function will determine which methods can be used to obtain RI for the desiredchemical, and will return methods instead of RI
full_info : bool, optional
If True, function will return the temperature at which the refractive index reading wasmade
Notes
Only one source is available in this function. It is:
•‘CRC Organic RIs’, a compillation of data in [R216].
References
[R216]
Examples
>>> refractive_index(CASRN='64-17-5')(1.3611, 293.15)
thermo.safety module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.safety.Carcinogen(CASRN=’‘, AvailableMethods=False, Method=None)Looks up if a chemical is listed as a carcinogen or not according to either a specifc method or with all methods.
Returns either the status as a string for a specified method, or the status of the chemical in all available datasources, in the format source: status.
Parameters CASRN : string
CASRN [-]
Returns status : str or dict
Carcinogen status information [-]
124 Chapter 1. thermo
thermo Documentation, Release 0.1
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain carcinogen status with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Carcinogen_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain if a chemical islisted as carcinogenic, and will return methods instead of the status
Notes
Supported methods are:
•IARC: International Agency for Research on Cancer, [R217]. As extracted with a last update of February22, 2016. Has listing information of 843 chemicals with CAS numbers. Chemicals without CAS numbersnot included here. If two listings for the same CAS were available, that closest to the CAS number wasused. If two listings were available published at different times, the latest value was used. All else equal,the most pessimistic value was used.
•NTP: National Toxicology Program, [R218]. Has data on 226 chemicals.
References
[R217], [R218]
Examples
>>> Carcinogen('61-82-5')'National Toxicology Program 13th Report on Carcinogens': 'Reasonably Anticipated', 'International Agency for Research on Cancer': 'Not classifiable as to its carcinogenicity to humans (3)'
thermo.safety.Ceiling(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of Ceiling limits on worker exposure to dangerous chemicals.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Ceiling('75-07-0')(25.0, 'ppm')>>> Ceiling('1395-21-7')(6e-05, 'mg/m^3')>>> Ceiling('7572-29-4', AvailableMethods=True)['Ontario Limits', 'None']
thermo.safety.Crowl_Louvar_LFL(atoms)Calculates lower flammability limit, using the Crowl-Louvar [R219] correlation. Uses molecular formula only.
The lower flammability limit of a gas is air is:
𝐶𝑚𝐻𝑥𝑂𝑦 + 𝑧𝑂2 → 𝑚𝐶𝑂2 +𝑥
2𝐻2𝑂
LFL =0.55
4.76𝑚+ 1.19𝑥− 2.38𝑦 + 1
Parameters atoms : dict
1.1. thermo package 125
thermo Documentation, Release 0.1
Dictionary of atoms and atom counts
Returns LFL : float
Lower flammability limit, mole fraction
Notes
Coefficient of 0.55 taken from [R220]
References
[R219], [R220]
Examples
Hexane, example from [R219], lit. 1.2 %
>>> Crowl_Louvar_LFL('H': 14, 'C': 6)0.011899610558199915
thermo.safety.Crowl_Louvar_UFL(atoms)Calculates upper flammability limit, using the Crowl-Louvar [R221] correlation. Uses molecular formula only.
The upper flammability limit of a gas is air is:
𝐶𝑚𝐻𝑥𝑂𝑦 + 𝑧𝑂2 → 𝑚𝐶𝑂2 +𝑥
2𝐻2𝑂
UFL =3.5
4.76𝑚+ 1.19𝑥− 2.38𝑦 + 1
Parameters atoms : dict
Dictionary of atoms and atom counts
Returns UFL : float
Upper flammability limit, mole fraction
Notes
Coefficient of 3.5 taken from [R222]
References
[R221], [R222]
Examples
Hexane, example from [R221], lit. 7.5 %
>>> Crowl_Louvar_UFL('H': 14, 'C': 6)0.07572479446127219
126 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.safety.LFL(Hc=None, atoms=, CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval or calculation of a chemical’s Lower Flammability Limit. Lookup is basedon CASRNs. Two predictive methods are currently implemented. Will automatically select a data source to useif no Method is provided; returns None if the data is not available.
Prefered source is ‘IEC 60079-20-1 (2010)’ [R223], with the secondary source ‘NFPA 497 (2008)’ [R224]having very similar data. If the heat of combustion is provided, the estimation method Suzuki_LFL can be used.If the atoms of the molecule are available, the method Crowl_Louvar_LFL can be used.
Parameters Hc : float, optional
Heat of combustion of gas [J/mol]
atoms : dict, optional
Dictionary of atoms and atom counts
CASRN : string, optional
CASRN [-]
Returns _LFL : float
Lower flammability limit of the gas in an atmosphere at STP, [fraction]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain LFL with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in LFL_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the LowerFlammability Limit for the desired chemical, and will return methods instead of LowerFlammability Limit.
References
[R223], [R224]
Examples
>>> LFL(CASRN='71-43-2')0.012
thermo.safety.LFL_mixture(ys=None, LFLs=None, CASRNs=None, AvailableMethods=False,Method=None)
Inert gases are ignored.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> LFL_mixture(ys=normalize([0.0024, 0.0061, 0.0015]), LFLs=[.012, .053, .031])0.02751172136637643>>> LFL_mixture(LFLs=[None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0.025, 0.06, 0.073, 0.020039, 0.011316], ys=[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.10, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], CASRNs=['7440-37-1', '124-38-9', '7440-59-7', '7440-01-9', '7727-37-9', '7440-63-3', '10102-43-9', '7782-44-7', '132259-10-0', '7439-90-9', '10043-92-2', '7732-18-5', '7782-50-5', '7782-41-4', '67-64-1', '67-56-1', '75-52-5', '590-19-2', '277-10-1'])0.023964903630937385
1.1. thermo package 127
thermo Documentation, Release 0.1
thermo.safety.STEL(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of Short-term Exposure Limit on worker exposure to dangerous chemicals.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> STEL('67-64-1')(750.0, 'ppm')>>> STEL('7664-38-2')(0.7485061867633451, 'ppm')>>> STEL('55720-99-5')(2.0, 'mg/m^3')>>> STEL('86290-81-5', AvailableMethods=True)['Ontario Limits', 'None']
thermo.safety.Skin(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of whether or not a chemical can be absorbed through the skin, relevant tochemical safety calculations.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> Skin('108-94-1')True>>> Skin('1395-21-7')False>>> Skin('7572-29-4', AvailableMethods=True)['Ontario Limits', 'None']
thermo.safety.Suzuki_LFL(Hc=None)Calculates lower flammability limit, using the Suzuki [R225] correlation. Uses heat of combustion only.
The lower flammability limit of a gas is air is:
LFL =−3.42
∆𝐻∘𝑐
+ 0.569∆𝐻∘𝑐 + 0.0538∆𝐻∘2
𝑐 + 1.80
Parameters Hc : float
Heat of combustion of gas [J/mol]
Returns LFL : float
Lower flammability limit, mole fraction
Notes
Fit performed with 112 compounds, r^2 was 0.977. LFL in percent volume in air. Hc is at standard conditions,in MJ/mol. 11 compounds left out as they were outliers. Equation does not apply for molecules with halogenatoms, only hydrocarbons with oxygen or nitrogen or sulfur. No sample calculation provided with the article.However, the equation is straightforward.
Limits of equations’s validity are -6135596 J where it predicts a LFL of 0, and -48322129 J where it predicts aLFL of 1.
References
[R225]
128 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Pentane, 1.5 % LFL in literature
>>> Suzuki_LFL(-3536600)0.014276107095811811
thermo.safety.Suzuki_UFL(Hc=None)Calculates upper flammability limit, using the Suzuki [R226] correlation. Uses heat of combustion only.
The upper flammability limit of a gas is air is:
UFL = 6.3∆𝐻∘𝑐 + 0.567∆𝐻∘2
𝑐 + 23.5
Parameters Hc : float
Heat of combustion of gas [J/mol]
Returns UFL : float
Upper flammability limit, mole fraction
Notes
UFL in percent volume in air according to original equation. Hc is at standard conditions in the equation, inunits of MJ/mol. AAPD = 1.2% for 95 compounds used in fit. Somewhat better results than the High andDanner method. 4.9% < UFL < 23.0% -890.3 kJ/mol < dHc < -6380 kJ/mol r^2 = 0.989 Sample calculationsprovided for all chemicals, both this method and High and Danner. Examples are from the article.
Predicts a UFL of 1 at 7320190 J and a UFL of 0 at -5554160 J.
References
[R226]
Examples
Pentane, literature 7.8% UFL
>>> Suzuki_UFL(-3536600)0.0831119493052
thermo.safety.TWA(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval of Time-Weighted Average limits on worker exposure to dangerous chemi-cals.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> TWA('98-00-0')(10.0, 'ppm')>>> TWA('1303-00-0')(5.0710500080887915e-05, 'ppm')>>> TWA('7782-42-5', AvailableMethods=True)['Ontario Limits', 'None']
1.1. thermo package 129
thermo Documentation, Release 0.1
thermo.safety.Tautoignition(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval or calculation of a chemical’s autoifnition temperature. Lookup is based onCASRNs. No predictive methods are currently implemented. Will automatically select a data source to use ifno Method is provided; returns None if the data is not available.
Prefered source is ‘IEC 60079-20-1 (2010)’ [R227], with the secondary source ‘NFPA 497 (2008)’ [R228]having very similar data.
Parameters CASRN : string
CASRN [-]
Returns _Tautoignition : float
Autoignition point of the chemical, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tautoignition with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Tautoignition_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Tautoignition forthe desired chemical, and will return methods instead of Tautoignition
References
[R227], [R228]
Examples
>>> Tautoignition(CASRN='71-43-2')771.15
thermo.safety.Tflash(CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval or calculation of a chemical’s flash point. Lookup is based on CASRNs. Nopredictive methods are currently implemented. Will automatically select a data source to use if no Method isprovided; returns None if the data is not available.
Prefered source is ‘IEC 60079-20-1 (2010)’ [R229], with the secondary source ‘NFPA 497 (2008)’ [R230]having very similar data.
Parameters CASRN : string
CASRN [-]
Returns Tflash : float
Flash point of the chemical, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tflash with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Tflash_methods
AvailableMethods : bool, optional
130 Chapter 1. thermo
thermo Documentation, Release 0.1
If True, function will determine which methods can be used to obtain Tflash for thedesired chemical, and will return methods instead of Tflash
References
[R229], [R230]
Examples
>>> Tflash(CASRN='64-17-5')285.15
thermo.safety.UFL(Hc=None, atoms=, CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval or calculation of a chemical’s Upper Flammability Limit. Lookup is basedon CASRNs. Two predictive methods are currently implemented. Will automatically select a data source to useif no Method is provided; returns None if the data is not available.
Prefered source is ‘IEC 60079-20-1 (2010)’ [R231], with the secondary source ‘NFPA 497 (2008)’ [R232]having very similar data. If the heat of combustion is provided, the estimation method Suzuki_UFL can be used.If the atoms of the molecule are available, the method Crowl_Louvar_UFL can be used.
Parameters Hc : float, optional
Heat of combustion of gas [J/mol]
atoms : dict, optional
Dictionary of atoms and atom counts
CASRN : string, optional
CASRN [-]
Returns _UFL : float
Upper flammability limit of the gas in an atmosphere at STP, [fraction]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain UFL with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in UFL_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the UpperFlammability Limit for the desired chemical, and will return methods instead of Up-per Flammability Limit.
References
[R231], [R232]
1.1. thermo package 131
thermo Documentation, Release 0.1
Examples
>>> UFL(CASRN='71-43-2')0.086
thermo.safety.UFL_mixture(ys=None, UFLs=None, CASRNs=None, AvailableMethods=False,Method=None)
Inert gases are ignored.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> UFL_mixture(ys=normalize([0.0024, 0.0061, 0.0015]), UFLs=[.075, .15, .32])0.12927551844869378>>> LFL_mixture(LFLs=[None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0.143, 0.36, 0.63, 0.1097, 0.072], ys=[0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.10, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05], CASRNs=['7440-37-1', '124-38-9', '7440-59-7', '7440-01-9', '7727-37-9', '7440-63-3', '10102-43-9', '7782-44-7', '132259-10-0', '7439-90-9', '10043-92-2', '7732-18-5', '7782-50-5', '7782-41-4', '67-64-1', '67-56-1', '75-52-5', '590-19-2', '277-10-1'])0.14550641757359664
thermo.safety.fire_mixing(ys=None, FLs=None)Crowl, Daniel A., and Joseph F. Louvar. Chemical Process Safety: Fundamentals with Applications. 2E. UpperSaddle River, N.J: Prentice Hall, 2001.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> fire_mixing(ys=normalize([0.0024, 0.0061, 0.0015]), FLs=[.012, .053, .031])0.02751172136637643>>> fire_mixing(ys=normalize([0.0024, 0.0061, 0.0015]), FLs=[.075, .15, .32])0.12927551844869378
thermo.safety.mgm3_to_ppmv(mgm3, MW, T=298.15, P=101325.0)Converts a concentration in mg/m^3 to units of ppmv. Used in industrial toxicology.
𝑝𝑝𝑚𝑣 =1000𝑅𝑇
𝑀𝑊 · 𝑃· 𝑚𝑔𝑚3
Parameters mgm3 : float
Concentration of a substance in an ideal gas mixture [mg/m^3]
MW : float
Molecular weight of the trace gas [g/mol]
T : float, optional
Temperature of the gas at which the ppmv is reported
P : float, optional
Pressure of the gas at which the ppmv is reported
Returns ppmv : float
Concentration of a component in a gas mixure [parts per million, volumetric]
Notes
The term P/(RT)/1000 converts to 0.040874 at STP. Its inverse is reported as 24.45 in [R233].
References
[R233]
132 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> mgm3_to_ppmv(1.635, 40)1.0000230371625833
thermo.safety.ppmv_to_mgm3(ppmv, MW, T=298.15, P=101325.0)Converts a concentration in ppmv to units of mg/m^3. Used in industrial toxicology.
𝑚𝑔
𝑚3=𝑝𝑝𝑚𝑣 · 𝑃𝑅𝑇
· 𝑀𝑊
1000
Parameters ppmv : float
Concentratoin of a component in a gas mixure [parts per million, volumetric]
MW : float
Molecular weight of the trace gas [g/mol]
T : float, optional
Temperature of the gas at which the ppmv is reported
P : float, optional
Pressure of the gas at which the ppmv is reported
Returns mgm3 : float
Concentration of a substance in an ideal gas mixture [mg/m^3]
Notes
The term P/(RT)/1000 converts to 0.040874 at STP. Its inverse is reported as 24.45 in [R234].
References
[R234]
Examples
>>> ppmv_to_mgm3(1, 40)1.6349623351068687
thermo.safety.str_to_ppm_mgm3(line, CAS)
thermo.solubility module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
1.1. thermo package 133
thermo Documentation, Release 0.1
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.solubility.Tm_depression_eutectic(Tm, Hm, x=None, M=None, MW=None)Returns the freezing point depression caused by a solute in a solvent. Can use either the mole fraction of thesolute or its molality and the molecular weight of the solvent. Assumes ideal system behavior.
∆𝑇𝑚 =𝑅𝑇 2
𝑚𝑥
∆𝐻𝑚
∆𝑇𝑚 =𝑅𝑇 2
𝑚(𝑀𝑊 )𝑀
1000∆𝐻𝑚
Parameters Tm : float
Melting temperature of the solute [K]
Hm : float
Heat of melting at the melting temperature of the solute [J/mol]
x : float, optional
Mole fraction of the solute [-]
M : float, optional
Molality [mol/kg]
MW: float, optional
Molecular weight of the solvent [g/mol]
Returns dTm : float
Freezing point depression [K]
Notes
MW is the molecular weight of the solvent. M is the molality of the solute.
References
[R235]
Examples
From [R235], matching example.
>>> Tm_depression_eutectic(353.35, 19110, .02)1.0864594900639515
134 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.solubility.solubility_eutectic(T, Tm, Hm, Cpl=0, Cps=0, gamma=1)Returns the maximum solubility of a solute in a solvent.
ln𝑥𝐿𝑖 𝛾𝐿𝑖 =
∆𝐻𝑚,𝑖
𝑅𝑇
(1 − 𝑇
𝑇𝑚,𝑖
)− ∆𝐶𝑝,𝑖(𝑇𝑚,𝑖 − 𝑇 )
𝑅𝑇+
∆𝐶𝑝,𝑖
𝑅ln𝑇𝑚𝑇
∆𝐶𝑝,𝑖 = 𝐶𝐿𝑝,𝑖 − 𝐶𝑆
𝑝,𝑖
Parameters T : float
Temperature of the system [K]
Tm : float
Melting temperature of the solute [K]
Hm : float
Heat of melting at the melting temperature of the solute [J/mol]
Cpl : float, optional
Molar heat capacity of the solute as a liquid [J/mol/K]
Cpls: float, optional
Molar heat capacity of the solute as a solid [J/mol/K]
gamma : float, optional
Activity coefficient of the solute as a liquid [-]
Returns x : float
Mole fraction of solute at maximum solubility [-]
Notes
gamma is of the solute in liquid phase
References
[R236]
Examples
From [R236], matching example
>>> solubility_eutectic(T=260., Tm=278.68, Hm=9952., Cpl=0, Cps=0, gamma=3.0176)0.24340068761677464
thermo.solubility.solubility_parameter(T=298.15, Hvapm=None, Vml=None, CASRN=’‘,AvailableMethods=False, Method=None)
This function handles the calculation of a chemical’s solubility parameter. Calculation is a function of tempera-ture, but is not always presented as such. No lookup values are available; either Hvapm, Vml, and T are providedor the calculation cannot be performed.
𝛿 =
√∆𝐻𝑣𝑎𝑝 −𝑅𝑇
𝑉𝑚
1.1. thermo package 135
thermo Documentation, Release 0.1
Parameters T : float
Temperature of the fluid [k]
Hvapm : float
Heat of vaporization [J/mol/K]
Vml : float
Specific volume of the liquid [m^3/mol]
CASRN : str, optional
CASRN of the fluid, not currently used [-]
Returns delta : float
Solubility parameter, [Pa^0.5]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain the solubility parameter with the giveninputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in solubil-ity_parameter_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the solubilityparameter for the desired chemical, and will return methods instead of the solubilityparameter
Notes
Undefined past the critical point. For convenience, if Hvap is not defined, an error is not raised; None is returnedinstead. Also for convenience, if Hvapm is less than RT, None is returned to avoid taking the root of a negativenumber.
This parameter is often given in units of cal/ml, which is 2045.48 times smaller than the value returned here.
References
[R237]
Examples
Pentane at STP
>>> solubility_parameter(T=298.2, Hvapm=26403.3, Vml=0.000116055)14357.681538173534
136 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.temperature module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.temperature.ITS90_68_difference(T)Calculates the difference between ITS-90 and ITS-68 scales using a series of models listed in [R238], [R239],and [R240].
The temperature difference is given by the following equations:
From 13.8 K to 73.15 K:
𝑇90 − 𝑇68 = 𝑎0 +
12∑𝑖=1
𝑎𝑖[(𝑇90/𝐾 − 40)/40]𝑖
From 83.8 K to 903.75 K:
𝑇90 − 𝑇68 =
8∑𝑖=1
𝑏𝑖[(𝑇90/𝐾 − 273.15)/630]𝑖
From 903.75 K to 1337.33 K:
𝑇90 − 𝑇68 =
5∑𝑖=0
𝑐𝑖[𝑇90/∘𝐶]𝑖
Above 1337.33 K:
𝑇90 − 𝑇68 = −1.398 · 10−7
(𝑇90𝐾
)2
Parameters T : float
Temperature, ITS-90, or approximately ITS-68 [K]
Returns dT : float
Temperature, difference between ITS-90 and ITS-68 at T [K]
Notes
The conversion is straightforward when T90 is known. Theoretically, the model should be solved numericallyto convert the reverse way. However, according to [R241], the difference is under 0.05 mK from 73.15 K to903.15 K, and under 0.26 mK up to 1337.33 K.
1.1. thermo package 137
thermo Documentation, Release 0.1
For temperatures under 13.8 K, no conversion is performed.
The first set of coefficients are: -0.005903, 0.008174, -0.061924, -0.193388, 1.490793, 1.252347, -9.835868,1.411912, 25.277595, -19.183815, -18.437089, 27.000895, -8.716324.
The second set of coefficients are: 0, -0.148759, -0.267408, 1.08076, 1.269056, -4.089591, -1.871251,7.438081, -3.536296.
The third set of coefficients are: 7.8687209E1, -4.7135991E-1, 1.0954715E-3, -1.2357884E-6, 6.7736583E-10,-1.4458081E-13. These last coefficients use the temperature in degrees Celcius. A slightly older model usedthe following coefficients but a different equation over the same range: -0.00317, -0.97737, 1.2559, 2.03295,-5.91887, -3.23561, 7.23364, 5.04151. The model for these coefficients was:
𝑇90 − 𝑇68 = 𝑐0 +
7∑𝑖=1
𝑐𝑖[(𝑇90/𝐾 − 1173.15)/300]𝑖
For temperatures larger than several thousand K, the differences have no meaning and grows quadratically.
References
[R238], [R239], [R240], [R241]
Examples
>>> ITS90_68_difference(1000.)0.01231818956580355
thermo.temperature.T_converter(T, current, desired)Converts the a temperature reading made in any of the scales ‘ITS-90’, ‘ITS-68’,’ITS-48’, ‘ITS-76’, or ‘ITS-27’to any of the other scales. Not all temperature ranges can be converted to other ranges; for instance, ‘ITS-76’ ispurely for low temperatures, and 5 K on it has no conversion to ‘ITS-90’ or any other scale. Both a conversionto ITS-90 and to the desired scale must be possible for the conversion to occur. The conversion uses cubic splineinterpolation.
ITS-68 conversion is valid from 14 K to 4300 K. ITS-48 conversion is valid from 93.15 K to 4273.15 K ITS-76conversion is valid from 5 K to 27 K. ITS-27 is valid from 903.15 K to 4273.15 k.
Parameters T : float
Temperature, on current scale [K]
current [str] String representing the scale T is in, ‘ITS-90’, ‘ITS-68’, ‘ITS-48’, ‘ITS-76’, or ‘ITS-27’.
desired [str] String representing the scale T will be returned in, ‘ITS-90’, ‘ITS-68’,‘ITS-48’, ‘ITS-76’, or ‘ITS-27’.
Returns T : float
Temperature, on scale desired [K]
Notes
Because the conversion is performed by spline functions, a re-conversion of a value will not yield exactly theoriginal value. However, it is quite close.
138 Chapter 1. thermo
thermo Documentation, Release 0.1
The use of splines is quite quick (20 micro seconds/calculation). While just a spline for one-way conversioncould be used, a numerical solver would have to be used to obtain an exact result for the reverse conversion.This was found to take approximately 1 ms/calculation, depending on the region.
References
[R242], [R243]
Examples
>>> T_converter(500, 'ITS-68', 'ITS-48')499.9470092992346
thermo.thermal_conductivity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.thermal_conductivity.Bahadori_gas(T, MW)Estimates the thermal conductivity of hydrocarbons gases at low P. Fits their data well, and is useful as onlyMW is required. Y is the Molecular weight, and X the temperature.
𝐾 = 𝑎+ 𝑏𝑌 + 𝐶𝑌 2 + 𝑑𝑌 3
𝑎 = 𝐴1 +𝐵1𝑋 + 𝐶1𝑋2 +𝐷1𝑋
3
𝑏 = 𝐴2 +𝐵2𝑋 + 𝐶2𝑋2 +𝐷2𝑋
3
𝑐 = 𝐴3 +𝐵3𝑋 + 𝐶3𝑋2 +𝐷3𝑋
3
𝑑 = 𝐴4 +𝐵4𝑋 + 𝐶4𝑋2 +𝐷4𝑋
3
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
1.1. thermo package 139
thermo Documentation, Release 0.1
Notes
The accuracy of this equation has not been reviewed.
References
[R244]
Examples
>>> Bahadori_gas(40+273.15, 20) # Point from article0.031968165337873326
thermo.thermal_conductivity.Bahadori_liquid(T, M)Estimates the thermal conductivity of parafin liquid hydrocarbons. Fits their data well, and is useful as onlyMW is required. X is the Molecular weight, and Y the temperature.
𝐾 = 𝑎+ 𝑏𝑌 + 𝐶𝑌 2 + 𝑑𝑌 3
𝑎 = 𝐴1 +𝐵1𝑋 + 𝐶1𝑋2 +𝐷1𝑋
3
𝑏 = 𝐴2 +𝐵2𝑋 + 𝐶2𝑋2 +𝐷2𝑋
3
𝑐 = 𝐴3 +𝐵3𝑋 + 𝐶3𝑋2 +𝐷3𝑋
3
𝑑 = 𝐴4 +𝐵4𝑋 + 𝐶4𝑋2 +𝐷4𝑋
3
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
The accuracy of this equation has not been reviewed.
References
[R245]
Examples
Data point from [R245].
>>> Bahadori_liquid(273.15, 170)0.14274278108272603
140 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.thermal_conductivity.Chung(T, MW, Tc, omega, Cvm, mu)Estimates the thermal conductivity of a gas as a function of temperature using the CSP method of Chung [R246].
𝜆𝑀
𝜂𝐶𝑣=
3.75Ψ
𝐶𝑣/𝑅
Ψ = 1 + 𝛼 [0.215 + 0.28288𝛼− 1.061𝛽 + 0.26665𝑍]/[0.6366 + 𝛽𝑍 + 1.061𝛼𝛽]
𝛼 =𝐶𝑣
𝑅− 1.5
𝛽 = 0.7862 − 0.7109𝜔 + 1.3168𝜔2
𝑍 = 2 + 10.5𝑇 2𝑟
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
Tc : float
Critical temperature of the gas [K]
omega : float
Acentric factor of the gas [-]
Cvm : float
Molar contant volume heat capacity of the gas [J/mol/K]
mu : float
Gas viscosity [Pa*S]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
Notes
MW internally converted to kg/g-mol.
References
[R246], [R247]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R247].
>>> Chung(T=373.15, MW=72.151, Tc=460.4, omega=0.227, Cvm=135.9, mu=8.77E-6)0.023015653729496946
thermo.thermal_conductivity.DIPPR9B(T, MW, Cvm, mu, Tc=None, chemtype=None)Calculates the thermal conductivity of a gas using one of several emperical equations developed in [R248],[R249], and presented in [R250].
1.1. thermo package 141
thermo Documentation, Release 0.1
For monoatomic gases:
𝑘 = 2.5𝜂𝐶𝑣
𝑀𝑊
For linear molecules:
𝑘 =𝜂
𝑀𝑊
(1.30𝐶𝑣 + 14644.00 − 2928.80
𝑇𝑟
)For nonlinear molecules:
𝑘 =𝜂
𝑀𝑊(1.15𝐶𝑣 + 16903.36)
Parameters T : float
Temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
MW : float
Molwcular weight of fluid [g/mol]
Cvm : float
Molar heat capacity at constant volume of fluid, [J/mol/K]
mu : float
Viscosity of gas, [Pa*S]
Returns k_g : float
Thermal conductivity of gas, [W/m/k]
Notes
Tested with DIPPR values. Cvm is internally converted to J/kmol/K.
References
[R248], [R249], [R250]
Examples
CO:
>>> DIPPR9B(200., 28.01, 20.826, 1.277E-5, 132.92, chemtype='linear')0.01813208676438415
thermo.thermal_conductivity.DIPPR9G(T, P, Tc, Pc, kl)Adjustes for pressure the thermal conductivity of a liquid using an emperical formula based on [R251], but asgiven in [R252].
𝑘 = 𝑘*[0.98 + 0.0079𝑃𝑟𝑇
1.4𝑟 + 0.63𝑇 1.2
𝑟
(𝑃𝑟
30 + 𝑃𝑟
)]
142 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of fluid [K]
P : float
Pressure of fluid [Pa]
Tc: float
Critical point of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
kl : float
Thermal conductivity of liquid at 1 atm or saturation, [W/m/K]
Returns kl_dense : float
Thermal conductivity of liquid at P, [W/m/K]
Notes
This equation is entrely dimensionless; all dimensions cancel. The original source has not been reviewed.
This is DIPPR Procedure 9G: Method for the Thermal Conductivity of Pure Nonhydrocarbon Liquids at HighPressures
References
[R251], [R252]
Examples
From [R252], for butyl acetate.
>>> DIPPR9G(515.05, 3.92E7, 579.15, 3.212E6, 7.085E-2)0.0864419738671184
thermo.thermal_conductivity.DIPPR9I(ws, ks)Calculates thermal conductivity of a liquid mixture according to mixing rules in [R253] and also in [R254].
𝜆𝑚 =
(∑𝑖
𝑤𝑖𝜆−2𝑖
)−1/2
Parameters ws : float
Mass fractions of components
ks : float
Liquid thermal conductivites of all components, [W/m/K]
Returns kl : float
Thermal conductivity of liquid mixture, [W/m/K]
1.1. thermo package 143
thermo Documentation, Release 0.1
Notes
This equation is entirely dimensionless; all dimensions cancel. The example is from [R254]; all results agree.The original source has not been reviewed.
DIPPR Procedure 9H: Method for the Thermal Conductivity of Nonaqueous Liquid Mixtures
Average deviations of 3%. for 118 nonaqueous systems with 817 data points. Max deviation 20%. Accordingto DIPPR.
References
[R253], [R254]
Examples
>>> DIPPR9I([0.258, 0.742], [0.1692, 0.1528])0.15657104706719646
thermo.thermal_conductivity.Eucken(MW, Cvm, mu)Estimates the thermal conductivity of a gas as a function of temperature using the CSP method of Eucken[R255].
𝜆𝑀
𝜂𝐶𝑣= 1 +
9/4
𝐶𝑣/𝑅
Parameters MW : float
Molecular weight of the gas [g/mol]
Cvm : float
Molar contant volume heat capacity of the gas [J/mol/K]
mu : float
Gas viscosity [Pa*S]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
Notes
Temperature dependence is introduced via heat capacity and viscosity. A theoretical equation. No originalauthor located. MW internally converted to kg/g-mol.
References
[R255]
144 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R255].
>>> Eucken(MW=72.151, Cvm=135.9, mu=8.77E-6)0.018792644287722975
thermo.thermal_conductivity.Eucken_modified(MW, Cvm, mu)Estimates the thermal conductivity of a gas as a function of temperature using the Modified CSP method ofEucken [R256].
𝜆𝑀
𝜂𝐶𝑣= 1.32 +
1.77
𝐶𝑣/𝑅
Parameters MW : float
Molecular weight of the gas [g/mol]
Cvm : float
Molar contant volume heat capacity of the gas [J/mol/K]
mu : float
Gas viscosity [Pa*S]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
Notes
Temperature dependence is introduced via heat capacity and viscosity. A theoretical equation. No originalauthor located. MW internally converted to kg/g-mol.
References
[R256]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R256].
>>> Eucken_modified(MW=72.151, Cvm=135.9, mu=8.77E-6)0.023593536999201956
thermo.thermal_conductivity.Filippov(ws, ks)Calculates thermal conductivity of a binary liquid mixture according to mixing rules in [R258] as found in[R257].
𝜆𝑚 = 𝑤1𝜆1 + 𝑤2𝜆2 − 0.72𝑤1𝑤2(𝜆2 − 𝜆1)
Parameters ws : float
Mass fractions of components
ks : float
Liquid thermal conductivites of all components, [W/m/K]
1.1. thermo package 145
thermo Documentation, Release 0.1
Returns kl : float
Thermal conductivity of liquid mixture, [W/m/K]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed. Onlyuseful for binary mixtures.
References
[R257], [R258]
Examples
>>> Filippov([0.258, 0.742], [0.1692, 0.1528])0.15929167628799998
thermo.thermal_conductivity.Gharagheizi_gas(T, MW, Tb, Pc, omega)Estimates the thermal conductivity of a gas as a function of temperature using the CSP method of Gharagheizi[R259]. A convoluted method claiming high-accuracy and using only statistically significant variable followinganalalysis.
Requires temperature, molecular weight, boiling temperature and critical pressure and acentric factor.
𝑘 = 7.9505 × 10−4 + 3.989 × 10−5𝑇 − 5.419 × 10−5𝑀 + 3.989 × 10−5𝐴
𝐴 =
(2𝜔 + 𝑇 − (2𝜔+3.2825)𝑇
𝑇𝑏+ 3.2825
)0.1𝑀𝑃𝑐𝑇
× (3.9752𝜔 + 0.1𝑃𝑐 + 1.9876𝐵 + 6.5243)2
Parameters T : float
Temperature of the fluid [K]
MW: float
Molecular weight of the fluid [g/mol]
Tb : float
Boiling temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor of the fluid [-]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
146 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Pressure is internally converted into 10*kPa but author used correlation with kPa; overall, errors have beencorrected in the presentation of the formula.
This equation was derived with 15927 points and 1574 compounds. Example value from [R259] is the firstpoint in the supportinf info, for CH4.
References
[R259]
Examples
>>> Gharagheizi_gas(580., 16.04246, 111.66, 4599000.0, 0.0115478000)0.09594861261873211
thermo.thermal_conductivity.Gharagheizi_liquid(T, M, Tb, Pc, omega)Estimates the thermal conductivity of a liquid as a function of temperature using the CSP method of Gharagheizi[R260]. A convoluted method claiming high-accuracy and using only statistically significant variable followinganalalysis.
Requires temperature, molecular weight, boiling temperature and critical pressure and acentric factor.
𝑘 = 10−4
[10𝜔 + 2𝑃𝑐 − 2𝑇 + 4 + 1.908(𝑇𝑏 +
1.009𝐵2
𝑀𝑊 2) +
3.9287𝑀𝑊 4
𝐵4+
𝐴
𝐵8
]𝐴 = 3.8588𝑀𝑊 8(1.0045𝐵 + 6.5152𝑀𝑊 − 8.9756)
𝐵 = 16.0407𝑀𝑊 + 2𝑇𝑏 − 27.9074
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tb : float
Boiling temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor of the fluid [-]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
Pressure is internally converted into bar, as used in the original equation.
This equation was derived with 19000 points representing 1640 unique compounds.
1.1. thermo package 147
thermo Documentation, Release 0.1
References
[R260]
Examples
>>> Gharagheizi_liquid(300, 40, 350, 1E6, 0.27)0.2171113029534838
thermo.thermal_conductivity.Lakshmi_Prasad(T, M)Estimates thermal conductivity of pure liquids as a function of temperature using a reference fluid approach.Low accuracy but quick. Developed using several organic fluids.
𝜆 = 0.0655 − 0.0005𝑇 +1.3855 − 0.00197𝑇
𝑀0.5
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
This equation returns negative numbers at high T sometimes. This equation is one of those implemented byDDBST. If this results in a negative thermal conductivity, no value is returned.
References
[R261]
Examples
>>> Lakshmi_Prasad(273.15, 100)0.013664450000000009
thermo.thermal_conductivity.Lindsay_Bromley(T, ys, ks, mus, Tbs, MWs)Calculates thermal conductivity of a gas mixture according to mixing rules in [R262] and also in [R263].
𝑘 =∑ 𝑦𝑖𝑘𝑖∑
𝑦𝑖𝐴𝑖𝑗
𝐴𝑖𝑗 =1
4
⎧⎨⎩1 +
[𝜂𝑖𝜂𝑗
(𝑀𝑊𝑗
𝑀𝑊𝑖
)0.75(𝑇 + 𝑆𝑖
𝑇 + 𝑆𝑗
)]0.5⎫⎬⎭2(
𝑇 + 𝑆𝑖𝑗
𝑇 + 𝑆𝑖
)𝑆𝑖𝑗 = 𝑆𝑗𝑖 = (𝑆𝑖𝑆𝑗)
0.5
Parameters T : float
148 Chapter 1. thermo
thermo Documentation, Release 0.1
Temperature of gas [K]
ys : float
Mole fractions of gas components
ks : float
Liquid thermal conductivites of all components, [W/m/K]
mus : float
Gas viscosities of all components, [Pa*S]
Tbs : float
Boiling points of all components, [K]
MWs : float
Molecular weights of all components, [g/mol]
Returns kg : float
Thermal conductivity of gas mixture, [W/m/K]
Notes
This equation is entirely dimensionless; all dimensions cancel. The example is from [R263]; all results agree.The original source has not been reviewed.
DIPPR Procedure 9D: Method for the Thermal Conductivity of Gas Mixtures
Average deviations of 4-5% for 77 binary mixtures reviewed in [R263], from 1342 points; also six ternarymixtures (70 points); max deviation observed was 40%. (DIPPR)
TODO: Finish documenting this.
References
[R262], [R263]
Examples
>>> Lindsay_Bromley(323.15, [0.23, 0.77], [1.939E-2, 1.231E-2], [1.002E-5, 1.015E-5], [248.31, 248.93], [46.07, 50.49])0.01390264417969313
thermo.thermal_conductivity.Missenard(T, P, Tc, Pc, kl)Adjustes for pressure the thermal conductivity of a liquid using an emperical formula based on [R264], but asgiven in [R265].
𝑘
𝑘*= 1 +𝑄𝑃 0.7
𝑟
Parameters T : float
Temperature of fluid [K]
P : float
Pressure of fluid [Pa]
1.1. thermo package 149
thermo Documentation, Release 0.1
Tc: float
Critical point of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
kl : float
Thermal conductivity of liquid at 1 atm or saturation, [W/m/K]
Returns kl_dense : float
Thermal conductivity of liquid at P, [W/m/K]
Notes
This equation is entirely dimensionless; all dimensions cancel. An interpolation routine is used here fromtabulated values of Q. The original source has not been reviewed.
References
[R264], [R265]
Examples
Example from [R265], toluene; matches.
>>> Missenard(304., 6330E5, 591.8, 41E5, 0.129)0.21983757770696569
thermo.thermal_conductivity.Nicola(T, M, Tc, Pc, omega)Estimates the thermal conductivity of a liquid as a function of temperature using the CSP method of [R266]. Astatistically derived equation using any correlated terms.
Requires temperature, molecular weight, critical temperature and pressure, and acentric factor.
𝜆
0.5147𝑊/𝑚/𝐾= −0.2537𝑇𝑟 +
0.0017𝑃𝑐
bar+ 0.1501𝜔 +
(1
𝑀𝑊
)−0.2999
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor of the fluid [-]
150 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
A statistical correlation. A revision of an original correlation.
References
[R266]
Examples
>>> Nicola(300, 142.3, 611.7, 2110000.0, 0.49)0.10863821554584034
thermo.thermal_conductivity.Nicola_original(T, M, Tc, omega, Hfus)Estimates the thermal conductivity of a liquid as a function of temperature using the CSP method of Nicola[R267]. A simpler but long method claiming high-accuracy and using only statistically significant variablefollowing analalysis.
Requires temperature, molecular weight, critical temperature, acentric factor and the heat of vaporization.
𝜆
1Wm/K= −0.5694 − 0.1436𝑇𝑟 + 5.4893 × 10−10 ∆𝑓𝑢𝑠𝐻
kmol/J+ 0.0508𝜔 +
(1kg/kmol𝑀𝑊
)0.0622
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tc : float
Critical temperature of the fluid [K]
omega : float
Acentric factor of the fluid [-]
Hfus : float
Heat of fusion of the fluid [J/mol]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
A weird statistical correlation. Recent and yet to be reviewed. This correlation has been superceded by theauthor’s later work. Hfus is internally converted to be in J/kmol.
1.1. thermo package 151
thermo Documentation, Release 0.1
References
[R267]
Examples
>>> Nicola_original(300, 142.3, 611.7, 0.49, 201853)0.2305018632230984
thermo.thermal_conductivity.Sato_Riedel(T, M, Tb, Tc)Calculate the thermal conductivity of a liquid as a function of temperature using the CSP method of Sato-Riedel[R268], [R269], published in Reid [R270]. Requires temperature, molecular weight, and boiling and criticaltemperatures.
𝑘 =1.1053√𝑀𝑊
3 + 20(1 − 𝑇𝑟)2/3
3 + 20(1 − 𝑇𝑏𝑟)2/3
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
This equation has a complicated history. It is proposed by Reid [R270]. Limited accuracy should be expected.Uncheecked.
References
[R268], [R269], [R270]
Examples
>>> Sato_Riedel(300, 47, 390, 520)0.2103769246133769
thermo.thermal_conductivity.Sheffy_Johnson(T, M, Tm)Calculate the thermal conductivity of a liquid as a function of temperature using the Sheffy-Johnson (1961)method. Requires Temperature, molecular weight, and melting point.
𝑘 = 1.9511 − 0.00126(𝑇 − 𝑇𝑚)
𝑇 0.216𝑚 𝑀𝑊 0.3
152 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tm : float
Melting point of the fluid [K]
Returns kl : float
Thermal conductivity of the fluid, W/m/k
Notes
The origin of this equation has been challenging to trace. It is presently unknown, and untested.
References
[R271]
Examples
>>> Sheffy_Johnson(300, 47, 280)0.17740150413112196
class thermo.thermal_conductivity.ThermalConductivityGas(CASRN=’‘, MW=None,Tb=None, Tc=None,Pc=None, Vc=None,Zc=None, omega=None,dipole=None, Vmg=None,Cvgm=None, mug=None)
Bases: thermo.utils.TPDependentProperty
Class for dealing with gas thermal conductivity as a function of temperature and pressure.
For gases at atmospheric pressure, there are 7 corresponding-states estimators, one source of tabular information,and the external library CoolProp.
For gases under the fluid’s boiling point (at sub-atmospheric pressures), and high-pressure gases above theboiling point, there are three corresponding-states estimators, and the external library CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
1.1. thermo package 153
thermo Documentation, Release 0.1
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
Zc : float, optional
Critical compressibility, [-]
omega : float, optional
Acentric factor, [-]
dipole : float, optional
Dipole moment of the fluid, [debye]
Vmg : float or callable, optional
Molar volume of the fluid at a pressure and temperature or callable for the same,[m^3/mol]
Cvgm : float or callable, optional
Molar heat capacity of the fluid at a pressure and temperature or or callable for the same,[J/mol/K]
mug : float or callable, optional
Gas viscosity of the fluid at a pressure and temperature or callable for the same, [Pa*S]
See also:
Bahadori_gas, Gharagheizi_gas, eli_hanley , Chung, DIPPR9B, Eucken_modified,Eucken, stiel_thodos_dense, eli_hanley_dense, chung_dense
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the lists storedin thermal_conductivity_gas_methods and thermal_conductivity_gas_methods_P forlow and high pressure methods respectively.
Low pressure methods:
GHARAGHEIZI_G: CSP method, described in Gharagheizi_gas.
DIPPR_9B: CSP method, described in DIPPR9B.
CHUNG: CSP method, described in Chung.
ELI_HANLEY: CSP method, described in eli_hanley .
EUCKEN_MOD: CSP method, described in Eucken_modified.
EUCKEN: CSP method, described in Eucken.
BAHADORI_G: CSP method, described in Bahadori_gas.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R272]. Very slow.
154 Chapter 1. thermo
thermo Documentation, Release 0.1
VDI_TABULAR: Tabular data in [R273] along the saturation curve; interpolation is as set by the user or thedefault.
High pressure methods:
STIEL_THODOS_DENSE: CSP method, described in stiel_thodos_dense. Calculates a low-pressurethermal conductivity first, using T_dependent_property.
ELI_HANLEY_DENSE: CSP method, described in eli_hanley_dense. Calculates a low-pressure ther-mal conductivity first, using T_dependent_property.
CHUNG_DENSE: CSP method, described in chung_dense. Calculates a low-pressure thermal conductiv-ity first, using T_dependent_property.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R272]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R272], [R273]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate low-pressure gas thermal conductivity at tempearture T with a given method.calculate_P(T, P, method) Method to calculate pressure-dependent gas thermal conductivity at temperature T and pressure P with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.
Continued on next page
1.1. thermo package 155
thermo Documentation, Release 0.1
Table 1.10 – continued from previous pageplot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a temperature-dependent low-pressure method.test_method_validity_P(T, P, method) Method to check the validity of a high-pressure method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the property above.
Tmin = NoneMinimum temperature at which no method can calculate the property under.
all_methods = NoneSet of all low-pressure methods available for a given CASRN and properties; filled byload_all_methods.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate(T, method)Method to calculate low-pressure gas thermal conductivity at tempearture T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature of the gas, [K]
method : str
Name of the method to use
Returns kg : float
Thermal conductivity of the gas at T and a low pressure, [W/m/K]
calculate_P(T, P, method)Method to calculate pressure-dependent gas thermal conductivity at temperature T and pressure P with agiven method.
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
Temperature at which to calculate gas thermal conductivity, [K]
P : float
Pressure at which to calculate gas thermal conductivity, [K]
method : str
Name of the method to use
156 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns kg : float
Thermal conductivity of the gas at T and P, [W/m/K]
interpolation_P = NoneNo interpolation transformation by default.
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, all_methodsand obj:all_methods_P as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘gas thermal conductivity’
property_max = 10Maximum valid value of gas thermal conductivity. Generous limit.
property_min = 0Mimimum valid value of gas thermal conductivity.
ranked_methods = [’CoolProp’, ‘VDI Saturation’, ‘Gharagheizi gas’, ‘DIPPR 9B’, ‘Chung’, ‘Eli-Hanley’, ‘Eucken modified’, ‘Eucken’, ‘Bahadori’]Default rankings of the low-pressure methods.
ranked_methods_P = [’CoolProp’, ‘Eli-Hanley dense’, ‘Chung dense’, ‘Stiel-Thodos’]Default rankings of the high-pressure methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instances
1.1. thermo package 157
thermo Documentation, Release 0.1
for each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a temperature-dependent low-pressure method. For CSP methods, the allmethods are considered valid from 0 K and up.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid. GHARAGHEIZI_G and BAHADORI_G are known to sometimes producenegative results.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
test_method_validity_P(T, P, method)Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both agas and under the maximum pressure of the fluid’s EOS. The CSP method ELI_HANLEY_DENSE,CHUNG_DENSE, and STIEL_THODOS_DENSE are considered valid for all temperatures and pres-sures.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures and pressures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
P : float
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘W/m/K’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
158 Chapter 1. thermo
thermo Documentation, Release 0.1
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
class thermo.thermal_conductivity.ThermalConductivityLiquid(CASRN=’‘, MW=None,Tm=None, Tb=None,Tc=None, Pc=None,omega=None,Hfus=None)
Bases: thermo.utils.TPDependentProperty
Class for dealing with liquid thermal conductivity 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 isone source of tabular information, 7 corresponding-states estimators, and the external library CoolProp.
For high-pressure liquids (also, <1 atm liquids), there are two corresponding-states estimator, and the externallibrary CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
Tm : float, optional
Melting point, [K]
Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
omega : float, optional
Acentric factor, [-]
Hfus : float, optional
Heat of fusion, [J/mol]
See also:
Sheffy_Johnson, Sato_Riedel, Lakshmi_Prasad, Gharagheizi_liquid,Nicola_original, Nicola, Bahadori_liquid, DIPPR9G, Missenard
Notes
A string holding each method’s name is assigned to the following variables in this mod-ule, intended as the most convenient way to refer to a method. To iterate over allmethods, use the lists stored in thermal_conductivity_liquid_methods andthermal_conductivity_liquid_methods_P for low and high pressure methods respectively.
Low pressure methods:
1.1. thermo package 159
thermo Documentation, Release 0.1
GHARAGHEIZI_L: CSP method, described in Gharagheizi_liquid.
SATO_RIEDEL: CSP method, described in Sato_Riedel.
NICOLA: CSP method, described in Nicola.
NICOLA_ORIGINAL: CSP method, described in Nicola_original.
SHEFFY_JOHNSON: CSP method, described in Sheffy_Johnson.
BAHADORI_L: CSP method, described in Bahadori_liquid.
LAKSHMI_PRASAD: CSP method, described in Lakshmi_Prasad.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R274]. Very slow.
VDI_TABULAR: Tabular data in [R275] along the saturation curve; interpolation is as set by the user or thedefault.
High pressure methods:
DIPPR_9G: CSP method, described in DIPPR9G. Calculates a low-pressure thermal conductivity first, usingT_dependent_property.
MISSENARD: CSP method, described in Missenard. Calculates a low-pressure thermal conductivity first,using T_dependent_property.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R274]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R274], [R275]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate low-pressure liquid thermal conductivity at tempearture T with a given method.
Continued on next page
160 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.11 – continued from previous pagecalculate_P(T, P, method) Method to calculate pressure-dependent liquid thermal conductivity at temperature T and pressure P with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a temperature-dependent low-pressure method.test_method_validity_P(T, P, method) Method to check the validity of a high-pressure method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the property above.
Tmin = NoneMinimum temperature at which no method can calculate the property under.
all_methods = NoneSet of all low-pressure methods available for a given CASRN and properties; filled byload_all_methods.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate(T, method)Method to calculate low-pressure liquid thermal conductivity at tempearture T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature of the liquid, [K]
method : str
Name of the method to use
Returns kl : float
Thermal conductivity of the liquid at T and a low pressure, [W/m/K]
calculate_P(T, P, method)Method to calculate pressure-dependent liquid thermal conductivity at temperature T and pressure P witha given method.
1.1. thermo package 161
thermo Documentation, Release 0.1
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
Temperature at which to calculate liquid thermal conductivity, [K]
P : float
Pressure at which to calculate liquid thermal conductivity, [K]
method : str
Name of the method to use
Returns kl : float
Thermal conductivity of the liquid at T and P, [W/m/K]
interpolation_P = NoneNo interpolation transformation by default.
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, all_methodsand obj:all_methods_P as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘liquid thermal conductivity’
property_max = 10Maximum valid value of liquid thermal conductivity. Generous limit.
property_min = 0Mimimum valid value of liquid thermal conductivity.
ranked_methods = [’CoolProp’, ‘VDI Saturation’, ‘Gharagheizi liquid’, ‘Sato Riedel’, ‘Nicola’, ‘Nicola original’, ‘Sheffy Johnson’, ‘Bahadori liquid’, ‘Lakshmi Prasad’]Default rankings of the low-pressure methods.
ranked_methods_P = [’CoolProp’, ‘DIPPR9G’, ‘Missenard’]Default rankings of the high-pressure methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
162 Chapter 1. thermo
thermo Documentation, Release 0.1
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instancesfor each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a temperature-dependent low-pressure method. For CSP methods, themodels BAHADORI_L, LAKSHMI_PRASAD, and SHEFFY_JOHNSON are considered valid for alltemperatures. For methods GHARAGHEIZI_L, NICOLA, and NICOLA_ORIGINAL, the methods areconsidered valid up to 1.5Tc and down to 0 K. Method SATO_RIEDEL does not work above the criticalpoint, so it is valid from 0 K to the critical point.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
test_method_validity_P(T, P, method)Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both a liquidand under the maximum pressure of the fluid’s EOS. MISSENARD has defined limits; between 0.5Tcand 0.8Tc, and below 200Pc. The CSP method DIPPR_9G is considered valid for all temperatures andpressures.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures and pressures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
P : float
1.1. thermo package 163
thermo Documentation, Release 0.1
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘W/m/K’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
thermo.thermal_conductivity.chung_dense(T, MW, Tc, Vc, omega, Cvm, Vm, mu, dipole, asso-ciation=0)
Estimates the thermal conductivity of a gas at high pressure as a function of temperature using the referencefluid method of Chung [R276] as shown in [R277].
𝜆 =31.2𝜂∘Ψ
𝑀 ′ (𝐺−12 +𝐵6𝑦) + 𝑞𝐵7𝑦
2𝑇 1/2𝑟 𝐺2
Ψ = 1 + 𝛼 [0.215 + 0.28288𝛼− 1.061𝛽 + 0.26665𝑍]/[0.6366 + 𝛽𝑍 + 1.061𝛼𝛽]
𝛼 =𝐶𝑣
𝑅− 1.5
𝛽 = 0.7862 − 0.7109𝜔 + 1.3168𝜔2
𝑍 = 2 + 10.5𝑇 2𝑟
𝑞 = 3.586 × 10−3(𝑇𝑐/𝑀′)1/2/𝑉 2/3
𝑐
𝑦 =𝑉𝑐6𝑉
𝐺1 =1 − 0.5𝑦
(1 − 𝑦)3
𝐺2 =(𝐵1/𝑦)[1 − exp(−𝐵4𝑦)] +𝐵2𝐺1 exp(𝐵5𝑦) +𝐵3𝐺1
𝐵1𝐵4 +𝐵2 +𝐵3
𝐵𝑖 = 𝑎𝑖 + 𝑏𝑖𝜔 + 𝑐𝑖𝜇4𝑟 + 𝑑𝑖𝜅
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
Tc : float
Critical temperature of the gas [K]
Vc : float
Critical volume of the gas [m^3/mol]
omega : float
Acentric factor of the gas [-]
Cvm : float
164 Chapter 1. thermo
thermo Documentation, Release 0.1
Molar contant volume heat capacity of the gas [J/mol/K]
Vm : float
Molar volume of the gas at T and P [m^3/mol]
mu : float
Low-pressure gas viscosity [Pa*S]
dipole : float
Dipole moment [debye]
association : float, optional
Association factor [-]
Returns kg : float
Estimated dense gas thermal conductivity [W/m/k]
Notes
MW internally converted to kg/g-mol. Vm internally converted to mL/mol. [R276] is not the latest form aspresented in [R276]. Association factor is assumed 0. Relates to the polarity of the gas.
Coefficients as follows: ais = [2.4166E+0, -5.0924E-1, 6.6107E+0, 1.4543E+1, 7.9274E-1, -5.8634E+0,9.1089E+1]
bis = [7.4824E-1, -1.5094E+0, 5.6207E+0, -8.9139E+0, 8.2019E-1, 1.2801E+1, 1.2811E+2]
cis = [-9.1858E-1, -4.9991E+1, 6.4760E+1, -5.6379E+0, -6.9369E-1, 9.5893E+0, -5.4217E+1]
dis = [1.2172E+2, 6.9983E+1, 2.7039E+1, 7.4344E+1, 6.3173E+0, 6.5529E+1, 5.2381E+2]
References
[R276], [R277]
Examples
>>> chung_dense(T=473., MW=42.081, Tc=364.9, Vc=184.6E-6, omega=0.142,... Cvm=82.67, Vm=172.1E-6, mu=134E-7, dipole=0.4)0.06160570379787278
thermo.thermal_conductivity.eli_hanley(T, MW, Tc, Vc, Zc, omega, Cvm)Estimates the thermal conductivity of a gas as a function of temperature using the reference fluid method of Eli
1.1. thermo package 165
thermo Documentation, Release 0.1
and Hanley [R278] as shown in [R279].
𝜆 = 𝜆* +𝜂*
𝑀𝑊(1.32)
(𝐶𝑣 −
3𝑅
2
)𝑇𝑟 = min(𝑇𝑟, 2)
𝜃 = 1 + (𝜔 − 0.011)
(0.56553 − 0.86276 ln𝑇𝑟 − 0.69852
𝑇𝑟
)𝜓 = [1 + (𝜔 − 0.011)(0.38560 − 1.1617 ln𝑇𝑟)]
0.288
𝑍𝑐
𝑓 =𝑇𝑐
190.4𝜃
ℎ =𝑉𝑐
9.92𝐸 − 5𝜓
𝑇0 = 𝑇/𝑓
𝜂*0(𝑇0) =
9∑𝑛=1
𝐶𝑛𝑇(𝑛−4)/30
𝜃0 = 1944𝜂0
𝜆* = 𝜆0𝐻
𝜂* = 𝜂*0𝐻𝑀𝑊
16.04
𝐻 =
(16.04
𝑀𝑊
)0.5
𝑓0.5/ℎ2/3
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
Tc : float
Critical temperature of the gas [K]
Vc : float
Critical volume of the gas [m^3/mol]
Zc : float
Critical compressibility of the gas []
omega : float
Acentric factor of the gas [-]
Cvm : float
Molar contant volume heat capacity of the gas [J/mol/K]
Returns kg : float
Estimated gas thermal conductivity [W/m/k]
Notes
Reference fluid is Methane. MW internally converted to kg/g-mol.
166 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R278], [R279]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R279].
>>> eli_hanley(T=373.15, MW=72.151, Tc=460.4, Vc=3.06E-4, Zc=0.267,... omega=0.227, Cvm=135.9)0.022479517891353377
thermo.thermal_conductivity.eli_hanley_dense(T, MW, Tc, Vc, Zc, omega, Cvm, Vm)Estimates the thermal conductivity of a gas at high pressure as a function of temperature using the referencefluid method of Eli and Hanley [R280] as shown in [R281].
𝑇𝑟 = 𝑚𝑖𝑛(𝑇𝑟, 2)
𝑉 𝑟 = 𝑚𝑖𝑛(𝑉 𝑟, 2)
𝑓 =𝑇𝑐
190.4𝜃
ℎ =𝑉𝑐
9.92𝐸 − 5𝜓
𝑇0 = 𝑇/𝑓
𝜌0 =16.04
𝑉ℎ
𝜃 = 1 + (𝜔 − 0.011)
(0.09057 − 0.86276 ln𝑇𝑟 +
(0.31664 − 0.46568
𝑇𝑟
)(𝑉𝑟 − 0.5)
)𝜓 = [1 + (𝜔 − 0.011)(0.39490(𝑉𝑟 − 1.02355) − 0.93281(𝑉𝑟 − 0.75464) ln𝑇𝑟]
0.288
𝑍𝑐
𝜆1 = 1944𝜂0
𝜆2 =
𝑏1 + 𝑏2
[𝑏3 − ln
(𝑇0𝑏4
)]2𝜌0
𝜆3 = exp
(𝑎1 +
𝑎2𝑇0
)exp[(𝑎3 +
𝑎4𝑇 1.50
)𝜌0.10 + (𝜌0
0.1617− 1)𝜌0.50 (𝑎5 +
𝑎6𝑇0
+𝑎7𝑇 20
)] − 1
𝜆** = [𝜆1 + 𝜆2 + 𝜆3]𝐻
𝐻 =
(16.04
𝑀𝑊
)0.5
𝑓0.5/ℎ2/3
𝑋 =
[1 − 𝑇
𝑓
(𝑑𝑓
𝑑𝑇
)𝑣
]0.288
𝑍𝑐
1.5
(𝑑𝑓
𝑑𝑇
)𝑣
=𝑇𝑐
190.4
(𝑑𝜃
𝑑𝑇
)𝑣(
𝑑𝜃
𝑑𝑇
)𝑣
= (𝜔 − 0.011)
[−0.86276
𝑇+ (𝑉𝑟 − 0.5)
0.46568𝑇𝑐𝑇 2
]Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
1.1. thermo package 167
thermo Documentation, Release 0.1
Tc : float
Critical temperature of the gas [K]
Vc : float
Critical volume of the gas [m^3/mol]
Zc : float
Critical compressibility of the gas []
omega : float
Acentric factor of the gas [-]
Cvm : float
Molar contant volume heat capacity of the gas [J/mol/K]
Vm : float
Volume of the gas at T and P [m^3/mol]
Returns kg : float
Estimated dense gas thermal conductivity [W/m/k]
Notes
Reference fluid is Methane. MW internally converted to kg/g-mol.
References
[R280], [R281]
Examples
>>> eli_hanley_dense(T=473., MW=42.081, Tc=364.9, Vc=1.81E-4, Zc=0.274,... omega=0.144, Cvm=82.70, Vm=1.721E-4)0.06038475936515042
thermo.thermal_conductivity.stiel_thodos_dense(T, MW, Tc, Pc, Vc, Zc, Vm, kg)Estimates the thermal conductivity of a gas at high pressure as a function of temperature using difference methodof Stiel and Thodos [R282] as shown in [R283].
if rho_r < 0.5:
(𝜆− 𝜆∘)Γ𝑍5𝑐 = 1.22 × 10−2[exp(0.535𝜌𝑟) − 1]
if 0.5 < rho_r < 2.0:
(𝜆− 𝜆∘)Γ𝑍5𝑐 = 1.22 × 10−2[exp(0.535𝜌𝑟) − 1]
if 2 < rho_r < 2.8:
(𝜆− 𝜆∘)Γ𝑍5𝑐 = 1.22 × 10−2[exp(0.535𝜌𝑟) − 1]
Γ = 210
(𝑇𝑐𝑀𝑊 3
𝑃 4𝑐
)1/6
168 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
Tc : float
Critical temperature of the gas [K]
Pc : float
Critical pressure of the gas [Pa]
Vc : float
Critical volume of the gas [m^3/mol]
Zc : float
Critical compressibility of the gas [-]
Vm : float
Molar volume of the gas at T and P [m^3/mol]
kg : float
Low-pressure gas thermal conductivity [W/m/k]
Returns kg : float
Estimated dense gas thermal conductivity [W/m/k]
Notes
Pc is internally converted to bar.
References
[R282], [R283]
Examples
>>> stiel_thodos_dense(T=378.15, MW=44.013, Tc=309.6, Pc=72.4E5,... Vc=97.4E-6, Zc=0.274, Vm=144E-6, kg=2.34E-2)0.041245574404863684
thermo.thermal_conductivity.thermal_conductivity_gas_methods = [’CoolProp’, ‘VDI Saturation’, ‘Gharagheizi gas’, ‘DIPPR 9B’, ‘Chung’, ‘Eli-Hanley’, ‘Eucken modified’, ‘Eucken’, ‘Bahadori’]Holds all low-pressure methods available for the ThermalConductivityGas class, for use in iterating over them.
thermo.thermal_conductivity.thermal_conductivity_gas_methods_P = [’CoolProp’, ‘Eli-Hanley dense’, ‘Chung dense’, ‘Stiel-Thodos’]Holds all high-pressure methods available for the ThermalConductivityGas class, for use in iterating over them.
1.1. thermo package 169
thermo Documentation, Release 0.1
thermo.thermal_conductivity.thermal_conductivity_gas_mixture(T=None, ys=None,ws=None,ks=None,mus=None,Tbs=None,MWs=None,CASRNs=None,AvailableMeth-ods=False,Method=None)
This function handles the retrival of a mixture’s gas thermal conductivity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> thermal_conductivity_gas_mixture(T=323.15, ys=[0.23, 0.77],... ks=[1.939E-2, 1.231E-2], mus=[1.002E-5, 1.015E-5], Tbs=[248.31,... 248.93], MWs=[46.07, 50.49])0.01390264417969313
thermo.thermal_conductivity.thermal_conductivity_liquid_methods = [’CoolProp’, ‘VDI Saturation’, ‘Gharagheizi liquid’, ‘Sato Riedel’, ‘Nicola’, ‘Nicola original’, ‘Sheffy Johnson’, ‘Bahadori liquid’, ‘Lakshmi Prasad’]Holds all low-pressure methods available for the ThermalConductivityLiquid class, for use in iterating overthem.
thermo.thermal_conductivity.thermal_conductivity_liquid_methods_P = [’CoolProp’, ‘DIPPR9G’, ‘Missenard’]Holds all high-pressure methods available for the ThermalConductivityLiquid class, for use in iterating overthem.
thermo.thermal_conductivity.thermal_conductivity_liquid_mixture(T=None,P=None,zs=None,ws=None,ks=None,CAS-RNs=None,Avail-ableMeth-ods=False,Method=None)
This function handles the retrival of a mixture’s liquid thermal conductivity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> thermal_conductivity_liquid_mixture(ws=[0.258, 0.742], ks=[0.1692,... 0.1528], Method='DIPPR9I')0.15657104706719646
>>> thermal_conductivity_liquid_mixture(ws=[0.258, 0.742], ks=[0.1692,... 0.1528], Method='Filippov')0.15929167628799998
thermo.triple module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
170 Chapter 1. thermo
thermo Documentation, Release 0.1
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.triple.Pt(CASRN, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s triple pressure. Lookup is based on CASRNs. Will automat-ically select a data source to use if no Method is provided; returns None if the data is not available.
Returns data from [R284], or attempts to calculate the vapor pressure at the triple temperature, if data is avail-able.
Parameters CASRN : string
CASRN [-]
Returns _Pt : float
Triple point pressure, [Pa]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Pt with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Pt_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the Pt for thedesired chemical, and will return methods instead of the Pt
References
[R284]
Examples
Ammonia
>>> Pt('7664-41-7')6079.5
thermo.triple.Tt(CASRN, AvailableMethods=False, Method=None)This function handles the retrieval of a chemical’s triple temperature. Lookup is based on CASRNs. Willautomatically select a data source to use if no Method is provided; returns None if the data is not available.
Returns data from [R285], or a chemical’s melting point if available.
Parameters CASRN : string
1.1. thermo package 171
thermo Documentation, Release 0.1
CASRN [-]
Returns _Tt : float
Triple point temperature, [K]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain Tt with the given inputs
Other Parameters Method : string, optional
A string for the method name to use, as defined by constants in Tt_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain the Tt for thedesired chemical, and will return methods instead of the Tt
Notes
Median difference between melting points and triple points is 0.02 K. Accordingly, this should be more thangood enough for engineering applications.
Temperatures are on the ITS-68 scale.
References
[R285]
Examples
Ammonia
>>> Tt('7664-41-7')195.48
thermo.utils module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
172 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.utils.B_To_Z(B, T, P)Calculates the compressibility factor of a gas, given its second virial coefficient.
𝑍 = 1 +𝐵𝑃
𝑅𝑇
Parameters B : float
Second virial coefficient, [m^3/mol]
T : float
Temperature, [K]
P : float
Pressure [Pa]
Returns Z : float
Compressibility factor, [-]
Notes
Other forms of the virial coefficient exist.
References
[R286]
Examples
>>> B_To_Z(-0.0015, 300, 1E5)0.9398638020957176
thermo.utils.B_from_Z(Z, T, P)Calculates the second virial coefficient of a pure species, given the compressibility factor of the gas.
𝐵 =𝑅𝑇 (𝑍 − 1)
𝑃
Parameters Z : float
Compressibility factor, [-]
T : float
Temperature, [K]
P : float
Pressure [Pa]
Returns B : float
Second virial coefficient, [m^3/mol]
Notes
Other forms of the virial coefficient exist.
1.1. thermo package 173
thermo Documentation, Release 0.1
References
[R287]
Examples
>>> B_from_Z(0.94, 300, 1E5)-0.0014966027640000014
thermo.utils.CAS2int(i)Converts CAS number of a compounds from a string to an int. This is helpful when storing large amounts ofCAS numbers, as their strings take up more memory than their numerical representational. All CAS numbers fitinto 64 bit ints.
Parameters CASRN : string
CASRN [-]
Returns CASRN : int
CASRN [-]
Notes
Accomplishes conversion by removing dashes only, and then converting to an int. An incorrect CAS numberwill change without exception.
Examples
>>> CAS2int('7704-34-9')7704349
thermo.utils.JT(T=None, V=None, Cp=None, isobaric_expansion=None)
thermo.utils.Parachor(sigma, MW, rhol, rhog)Calculates a Chemical’s Parachor according to DIPPR Method.
>>> Parachor(0.02117, 114.22852, 700.03, 5.2609) # Octane; DIPPR: 350.6352.66655018657565
class thermo.utils.TDependentProperty(CASRN=’‘)Bases: object
Class for calculating temperature-dependent chemical properties. Should load all data about a given chemicalon creation. As data is often stored in pandas DataFrames, this means that creation is slow. However, thecalculation of a property at a given temperature is very fast. As coefficients are stored in every instance, a usercould alter them from those loaded by default.
Designed to intelligently select which method to use at a given temperature, according to (1) selections made bythe user specifying a list of ordered method preferences and (2) by using a default list of prefered methods.
All methods should have defined criteria for determining if they are valid before calculation, i.e. a mini-mum and maximum temperature for coefficients to be valid. For constant property values used due to lackof temperature-dependent data, a short range is normally specified as valid. It is not assumed that any givenmethod will succeed; for example many expressions are not mathematically valid past the critical point. Ifthe method raises an exception, the next method is tried until either one method works or all the supposedly
174 Chapter 1. thermo
thermo Documentation, Release 0.1
valid have been exhausted. Furthermore, all properties returned by the method are checked by a sanity functiontest_property_validity , which has sanity checks for all properties.
Works nicely with tabular data, which is interpolated from if specified. Interpolation is cubic-spline basedif 5 or more points are given, and linearly interpolated with if few points are given. Extrapolation is per-mitted if tabular_extrapolation_permitted is set to True. For both interpolation and extrap-olation, a transform may be applied so that a property such as vapor pressure can be interpolated non-linearly. These are functions or lambda expressions which must be set for the variables interpolation_T,interpolation_property , and interpolation_property_inv .
Attributes
name (str) The name of the property being calculatedunits (str) The units of the propertymethod (str) The method was which was last used successfully to calculate a property; set only
after the first property calculation.forced (bool) If True, only user specified methods will be considered; otherwise all methods
will be considered if none of the user specified methods succeedinterpolation_T (function) A function or lambda expression to transform the temperatures of tabular
data for interpolation; e.g. ‘lambda self, T: 1./T’interpola-tion_property
(function) A function or lambda expression to transform tabular property values prior tointerpolation; e.g. ‘lambda self, P: log(P)’
interpola-tion_property_inv
(function) A function or property expression to transform interpolated property valuesfrom the transform performed by interpolation_property back to their actual form, e.g.‘lambda self, P: exp(P)’
tabu-lar_extrapolation_permitted
(bool) Whether or not to allow extrapolation from tabulated data for a property
Tmin (float) Maximum temperature at which no method can calculate the property above; setbased on rough rules for some methods. Used to solve for a particular property value,and as a default minimum for plotting. Often higher than where the property istheoretically higher, i.e. liquid density above the triple point, but this information maystill be needed for liquid mixtures with elevated critical points.
Tmax (float) Minimum temperature at which no method can calculate the property under; setbased on rough rules for some methods. Used to solve for a particular property value,and as a default minimum for plotting. Often lower than where the property istheoretically higher, i.e. liquid density beneath the triple point, but this information maystill be needed for subcooled liquids or mixtures with depressed freezing points.
property_min (float) Lowest value expected for a property while still being valid; this is a criteria usedby test_method_validity.
property_max (float) Highest value expected for a property while still being valid; this is a criteriaused by test_method_validity.
ranked_methods (list) Constant list of ranked methods by defaulttabular_data (dict) Stores all user-supplied property data for interpolation in format name: (Ts,
properties)tabu-lar_data_interpolators
(dict) Stores all interpolation objects, idexed by name and property transform methodswith the format (name, interpolation_T, interpolation_property,interpolation_property_inv): (extrapolator, spline)
sorted_valid_methods(list) Sorted and valid methods stored from the last T_dependent_property calluser_methods (list) Sorted methods as specified by the user
Methods
1.1. thermo package 175
thermo Documentation, Release 0.1
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate a property with a specified method, with no validity checking or error handling.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method to load all data, and set all_methods based on the available data and properties.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to test the validity of a specified method for a given temperature.test_property_validity(prop) Method to test the validity of a calculated property.
T_dependent_property(T)Method to calculate the property with sanity checking and without specifying a specific method. se-lect_valid_methods is used to obtain a sorted list of methods to try. Methods are then tried in order untilone succeeds. The methods are allowed to fail, and their results are checked with test_property_validity.On success, the used method is stored in the variable method.
If method is set, this method is first checked for validity with test_method_validity for the specified tem-perature, and if it is valid, it is then used to calculate the property. The result is checked for validity, andreturned if it is valid. If either of th checks fail, the function retrieves a full list of valid methods withselect_valid_methods and attempts them as described above.
If no methods are found which succeed, returns None.
Parameters T : float
Temperature at which to calculate the property, [K]
Returns prop : float
Calculated property, [units]
T_dependent_property_derivative(T, order=1)Method to obtain a derivative of a property with respect to temperature, of a given order. Methods foundvalid by select_valid_methods are attempted until a method succeeds. If no methods are valid and succeed,None is returned.
Calls calculate_derivative internally to perform the actual calculation.
derivative =𝑑(property)
𝑑𝑇
Parameters T : float
Temperature at which to calculate the derivative, [K]
order : int
Order of the derivative, >= 1
Returns derivative : float
176 Chapter 1. thermo
thermo Documentation, Release 0.1
Calculated derivative property, [units/K^order]
T_dependent_property_integral(T1, T2)Method to calculate the integral of a property with respect to temperature, using a specified method. Meth-ods found valid by select_valid_methods are attempted until a method succeeds. If no methods are validand succeed, None is returned.
Calls calculate_integral internally to perform the actual calculation.
integral =
∫ 𝑇2
𝑇1
property 𝑑𝑇
Parameters T1 : float
Lower limit of integration, [K]
T2 : float
Upper limit of integration, [K]
method : str
Method for which to find the integral
Returns integral : float
Calculated integral of the property over the given range, [units*K]
T_dependent_property_integral_over_T(T1, T2)Method to calculate the integral of a property over temperature with respect to temperature, using a spec-ified method. Methods found valid by select_valid_methods are attempted until a method succeeds. If nomethods are valid and succeed, None is returned.
Calls calculate_integral_over_T internally to perform the actual calculation.
integral =
∫ 𝑇2
𝑇1
property𝑇
𝑑𝑇
Parameters T1 : float
Lower limit of integration, [K]
T2 : float
Upper limit of integration, [K]
method : str
Method for which to find the integral
Returns integral : float
Calculated integral of the property over the given range, [units]
calculate(T, method)Method to calculate a property with a specified method, with no validity checking or error handling. Demofunction for testing only; must be implemented according to the methods available for each individualmethod. Include the interpolation call here.
Parameters T : float
Temperature at which to calculate the property, [K]
method : str
Method name to use
1.1. thermo package 177
thermo Documentation, Release 0.1
Returns prop : float
Calculated property, [units]
calculate_derivative(T, method, order=1)Method to calculate a derivative of a property with respect to temperature, of a given order using a specifiedmethod. Uses SciPy’s derivative function, with a delta of 1E-6 K and a number of points equal to 2*order+ 1.
This method can be overwritten by subclasses who may perfer to add analytical methods for some or allmethods as this is much faster.
If the calculation does not succeed, returns the actual error encountered.
Parameters T : float
Temperature at which to calculate the derivative, [K]
order : int
Order of the derivative, >= 1
method : str
Method for which to find the derivative
Returns derivative : float
Calculated derivative property, [units/K^order]
calculate_integral(T1, T2, method)Method to calculate the integral of a property with respect to temperature, using a specified method. UsesSciPy’s quad function to perform the integral, with no options.
This method can be overwritten by subclasses who may perfer to add analytical methods for some or allmethods as this is much faster.
If the calculation does not succeed, returns the actual error encountered.
Parameters T1 : float
Lower limit of integration, [K]
T2 : float
Upper limit of integration, [K]
method : str
Method for which to find the integral
Returns integral : float
Calculated integral of the property over the given range, [units*K]
calculate_integral_over_T(T1, T2, method)Method to calculate the integral of a property over temperature with respect to temperature, using a speci-fied method. Uses SciPy’s quad function to perform the integral, with no options.
This method can be overwritten by subclasses who may perfer to add analytical methods for some or allmethods as this is much faster.
If the calculation does not succeed, returns the actual error encountered.
Parameters T1 : float
Lower limit of integration, [K]
178 Chapter 1. thermo
thermo Documentation, Release 0.1
T2 : float
Upper limit of integration, [K]
method : str
Method for which to find the integral
Returns integral : float
Calculated integral of the property over the given range, [units]
forced = False
interpolate(T, name)Method to perform interpolation on a given tabular data set previously added via set_tabular_data.This method will create the interpolators the first time it is used on a property set, and store them for quickfuture use.
Interpolation is cubic-spline based if 5 or more points are available, and linearly interpolated if not. Ex-trapolation is always performed linearly. This function uses the transforms interpolation_T, interpola-tion_property, and interpolation_property_inv if set. If any of these are changed after the interpolatorswere first created, new interpolators are created with the new transforms. All interpolation is performedvia the interp1d function.
Parameters T : float
Temperature at which to interpolate the property, [K]
name : str
The name assigned to the tabular data set
Returns prop : float
Calculated property, [units]
interpolation_T = None
interpolation_property = None
interpolation_property_inv = None
load_all_methods()Method to load all data, and set all_methods based on the available data and properties. Demo function fortesting only; must be implemented according to the methods available for each individual method.
method = None
name = ‘Property name’
plot_T_dependent_property(Tmin=None, Tmax=None, methods=[], pts=50, only_valid=True,order=0)
Method to create a plot of the property vs temperature according to either a specified list of methods,or user methods (if set), or all methods. User-selectable number of points, and temperature range. Ifonly_valid is set,‘test_method_validity‘ will be used to check if each temperature in the specified range isvalid, and test_property_validity will be used to test the answer, and the method is allowed to fail; onlythe valid points will be plotted. Otherwise, the result will be calculated and displayed as-is. This will notsuceed if the method fails.
Parameters Tmin : float
Minimum temperature, to begin calculating the property, [K]
Tmax : float
Maximum temperature, to stop calculating the property, [K]
1.1. thermo package 179
thermo Documentation, Release 0.1
methods : list, optional
List of methods to consider
pts : int, optional
A list of points to calculate the property at; if Tmin to Tmax covers a wide range ofmethod validities, only a few points may end up calculated for a given method so thismay need to be large
only_valid : bool
If True, only plot successful methods and calculated properties, and handle errors; ifFalse, attempt calculation without any checking and use methods outside their bounds
property_max = 10000.0
property_min = 0
ranked_methods = []
select_valid_methods(T)Method to obtain a sorted list methods which are valid at T according to test_method_validity. Consid-ers either only user methods if forced is True, or all methods. User methods are first tested accordingto their listed order, and unless forced is True, then all methods are tested and sorted by their order inranked_methods.
Parameters T : float
Temperature at which to test methods, [K]
Returns sorted_valid_methods : list
Sorted lists of methods valid at T according to test_method_validity
set_tabular_data(Ts, properties, name=None, check_properties=True)Method to set tabular data to be used for interpolation. Ts must be in increasing order. If no name is given,data will be assigned the name ‘Tabular data series #x’, where x is the number of previously added tabulardata series. The name is added to all methods and iserted at the start of user methods,
Parameters Ts : array-like
Increasing array of temperatures at which properties are specified, [K]
properties : array-like
List of properties at Ts, [units]
name : str, optional
Name assigned to the data
check_properties : bool
If True, the properties will be checked for validity with test_property_validity and raisean exception if any are not valid
set_user_methods(user_methods, forced=False)Method used to select certain property methods as having a higher priority than were set by default. Ifforced is true, then methods which were not specified are excluded from consideration.
As a side effect, method is removed to ensure than the new methods will be used in calculations afterwards.
An exception is raised if any of the methods specified aren’t available for the chemical. An exception israised if no methods are provided.
Parameters user_methods : str or list
180 Chapter 1. thermo
thermo Documentation, Release 0.1
Methods by name to be considered or prefered
forced : bool, optional
If True, only the user specified methods will ever be considered; if False other methodswill be considered if no user methods suceed
solve_prop(goal, reset_method=True)Method to solve for the temperature at which a property is at a specified value. T_dependent_property isused to calculate the value of the property as a function of temperature; if reset_method is True, the bestmethod is used at each temperature as the solver seeks a solution. This slows the solution moderately.
Checks the given property value with test_property_validity first and raises an exception if it is not valid.Requires that Tmin and Tmax have been set to know what range to search within.
Search is performed with the brenth solver from SciPy.
Parameters goal : float
Propoerty value desired, [units]
reset_method : bool
Whether or not to reset the method as the solver searches
Returns T : float
Temperature at which the property is the specified value [K]
tabular_extrapolation_permitted = True
test_method_validity(T, method)Method to test the validity of a specified method for a given temperature. Demo function for testingonly; must be implemented according to the methods available for each individual method. Include theinterpolation check here.
Parameters T : float
Temperature at which to determine the validity of the method, [K]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid method is valid
classmethod test_property_validity(prop)Method to test the validity of a calculated property. Normally, this method is used by a given propertyclass, and has maximum and minimum limits controlled by the variables property_min and property_max.
Parameters prop : float
property to be tested, [units]
Returns validity : bool
Whether or not a specifid method is valid
units = ‘Property units’
class thermo.utils.TPDependentProperty(CASRN=’‘)Bases: thermo.utils.TDependentProperty
Class for calculating temperature and pressure dependent chemical properties.
1.1. thermo package 181
thermo Documentation, Release 0.1
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate a property with a specified method, with no validity checking or error handling.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method to load all data, and set all_methods based on the available data and properties.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to test the validity of a specified method for a given temperature.test_property_validity(prop) Method to test the validity of a calculated property.
TP_dependent_property(T, P)Method to calculate the property with sanity checking and without specifying a specific method. se-lect_valid_methods_P is used to obtain a sorted list of methods to try. Methods are then tried in order untilone succeeds. The methods are allowed to fail, and their results are checked with test_property_validity.On success, the used method is stored in the variable method_P.
If method_P is set, this method is first checked for validity with test_method_validity_P for the specifiedtemperature, and if it is valid, it is then used to calculate the property. The result is checked for validity,and returned if it is valid. If either of the checks fail, the function retrieves a full list of valid methods withselect_valid_methods_P and attempts them as described above.
182 Chapter 1. thermo
thermo Documentation, Release 0.1
If no methods are found which succeed, returns None.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Oa]
Returns prop : float
Calculated property, [units]
TP_dependent_property_derivative_P(T, P, order=1)Method to calculate a derivative of a temperature and pressure dependent property with respect to pressureat constant temperature, of a given order. Methods found valid by select_valid_methods_P are attempteduntil a method succeeds. If no methods are valid and succeed, None is returned.
Calls calculate_derivative_P internally to perform the actual calculation.
derivative =𝑑(property)
𝑑𝑃|𝑇
Parameters T : float
Temperature at which to calculate the derivative, [K]
P : float
Pressure at which to calculate the derivative, [Pa]
order : int
Order of the derivative, >= 1
Returns d_prop_d_P_at_T : float
Calculated derivative property, [units/Pa^order]
TP_dependent_property_derivative_T(T, P, order=1)Method to calculate a derivative of a temperature and pressure dependent property with respect to temper-ature at constant pressure, of a given order. Methods found valid by select_valid_methods_P are attempteduntil a method succeeds. If no methods are valid and succeed, None is returned.
Calls calculate_derivative_T internally to perform the actual calculation.
derivative =𝑑(property)
𝑑𝑇|𝑃
Parameters T : float
Temperature at which to calculate the derivative, [K]
P : float
Pressure at which to calculate the derivative, [Pa]
order : int
Order of the derivative, >= 1
Returns d_prop_d_T_at_P : float
Calculated derivative property, [units/K^order]
1.1. thermo package 183
thermo Documentation, Release 0.1
calculate_derivative_P(P, T, method, order=1)Method to calculate a derivative of a temperature and pressure dependent property with respect to pressureat constant temperature, of a given order using a specified method. Uses SciPy’s derivative function, witha delta of 0.01 Pa and a number of points equal to 2*order + 1.
This method can be overwritten by subclasses who may perfer to add analytical methods for some or allmethods as this is much faster.
If the calculation does not succeed, returns the actual error encountered.
Parameters P : float
Pressure at which to calculate the derivative, [Pa]
T : float
Temperature at which to calculate the derivative, [K]
order : int
Order of the derivative, >= 1
method : str
Method for which to find the derivative
Returns d_prop_d_P_at_T : float
Calculated derivative property at constant temperature, [units/Pa^order]
calculate_derivative_T(T, P, method, order=1)Method to calculate a derivative of a temperature and pressure dependent property with respect to tem-perature at constant pressure, of a given order using a specified method. Uses SciPy’s derivative function,with a delta of 1E-6 K and a number of points equal to 2*order + 1.
This method can be overwritten by subclasses who may perfer to add analytical methods for some or allmethods as this is much faster.
If the calculation does not succeed, returns the actual error encountered.
Parameters T : float
Temperature at which to calculate the derivative, [K]
P : float
Pressure at which to calculate the derivative, [Pa]
order : int
Order of the derivative, >= 1
method : str
Method for which to find the derivative
Returns d_prop_d_T_at_P : float
Calculated derivative property at constant pressure, [units/K^order]
forced_P = False
interpolate_P(T, P, name)Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P. Thismethod will create the interpolators the first time it is used on a property set, and store them for quickfuture use.
184 Chapter 1. thermo
thermo Documentation, Release 0.1
Interpolation is cubic-spline based if 5 or more points are available, and linearly interpolated if not. Extrap-olation is always performed linearly. This function uses the transforms interpolation_T, interpolation_P,interpolation_property, and interpolation_property_inv if set. If any of these are changed after the in-terpolators were first created, new interpolators are created with the new transforms. All interpolation isperformed via the interp2d function.
Parameters T : float
Temperature at which to interpolate the property, [K]
T : float
Pressure at which to interpolate the property, [Pa]
name : str
The name assigned to the tabular data set
Returns prop : float
Calculated property, [units]
interpolation_P = None
method_P = None
plot_isobar(P, Tmin=None, Tmax=None, methods_P=[], pts=50, only_valid=True)Method to create a plot of the property vs temperature at a specific pressure according to either a specifiedlist of methods, or user methods (if set), or all methods. User-selectable number of points, and temperaturerange. If only_valid is set,‘test_method_validity_P‘ will be used to check if each temperature in the speci-fied range is valid, and test_property_validity will be used to test the answer, and the method is allowed tofail; only the valid points will be plotted. Otherwise, the result will be calculated and displayed as-is. Thiswill not suceed if the method fails.
Parameters P : float
Pressure for the isobar, [Pa]
Tmin : float
Minimum temperature, to begin calculating the property, [K]
Tmax : float
Maximum temperature, to stop calculating the property, [K]
methods : list, optional
List of methods to consider
pts : int, optional
A list of points to calculate the property at; if Tmin to Tmax covers a wide range ofmethod validities, only a few points may end up calculated for a given method so thismay need to be large
only_valid : bool
If True, only plot successful methods and calculated properties, and handle errors; ifFalse, attempt calculation without any checking and use methods outside their bounds
plot_isotherm(T, Pmin=None, Pmax=None, methods_P=[], pts=50, only_valid=True)Method to create a plot of the property vs pressure at a specified temperature according to either a specifiedlist of methods, or the user methods (if set), or all methods. User-selectable number of points, and pressurerange. If only_valid is set, test_method_validity_P will be used to check if each temperature in the specifiedrange is valid, and test_property_validity will be used to test the answer, and the method is allowed to fail;
1.1. thermo package 185
thermo Documentation, Release 0.1
only the valid points will be plotted. Otherwise, the result will be calculated and displayed as-is. This willnot suceed if the method fails.
Parameters Pmin : float
Minimum pressure, to begin calculating the property, [Pa]
Pmax : float
Maximum pressure, to stop calculating the property, [Pa]
methods : list, optional
List of methods to consider
pts : int, optional
A list of points to calculate the property at; if Pmin to Pmax covers a wide range ofmethod validities, only a few points may end up calculated for a given method so thismay need to be large
only_valid : bool
If True, only plot successful methods and calculated properties, and handle errors; ifFalse, attempt calculation without any checking and use methods outside their bounds
select_valid_methods_P(T, P)Method to obtain a sorted list methods which are valid at T according to test_method_validity. Consid-ers either only user methods if forced is True, or all methods. User methods are first tested accordingto their listed order, and unless forced is True, then all methods are tested and sorted by their order inranked_methods.
Parameters T : float
Temperature at which to test methods, [K]
P : float
Pressure at which to test methods, [Pa]
Returns sorted_valid_methods_P : list
Sorted lists of methods valid at T and P according to test_method_validity
set_tabular_data_P(Ts, Ps, properties, name=None, check_properties=True)Method to set tabular data to be used for interpolation. Ts and Psmust be in increasing order. If no name isgiven, data will be assigned the name ‘Tabular data series #x’, where x is the number of previously addedtabular data series. The name is added to all methods and is inserted at the start of user methods,
Parameters Ts : array-like
Increasing array of temperatures at which properties are specified, [K]
Ps : array-like
Increasing array of pressures at which properties are specified, [Pa]
properties : array-like
List of properties at Ts, [units]
name : str, optional
Name assigned to the data
check_properties : bool
186 Chapter 1. thermo
thermo Documentation, Release 0.1
If True, the properties will be checked for validity with test_property_validity and raisean exception if any are not valid
set_user_methods_P(user_methods_P, forced_P=False)Method to set the pressure-dependent property methods desired for consideration by the user. Can be usedto exclude certain methods which might have unacceptable accuracy.
As a side effect, the previously selected method is removed when this method is called to ensure usermethods are tried in the desired order.
Parameters user_methods_P : str or list
Methods by name to be considered or prefered for pressure effect
forced : bool, optional
If True, only the user specified methods will ever be considered; if False other methodswill be considered if no user methods suceed
thermo.utils.Vfs_to_zs(Vfs, Vms)Converts a list of mass fractions to mole fractions. Requires molecular weights for all species.
𝑧𝑖 =
Vf𝑖𝑉𝑚,𝑖∑𝑖
Vf𝑖𝑉𝑚,𝑖
Parameters Vfs : iterable
Molar volume fractions [-]
VMs : iterable
Molar volumes of species [m^3/mol]
Returns zs : list
Mole fractions [-]
Notes
Does not check that the sums add to one. Does not check that inputs are of the same length.
Molar volumes are specified in terms of pure components only. Function works with any phase.
Examples
Acetone and benzene example
>>> Vfs_to_zs([0.596, 0.404], [8.0234e-05, 9.543e-05])[0.6369779395901142, 0.3630220604098858]
thermo.utils.Vm_to_rho(Vm, MW)Calculate the density of a chemical, given its molar volume and molecular weight.
𝜌 =𝑀𝑊
1000 · 𝑉𝑀
Parameters Vm : float
Molar volume, [m^3/mol]
MW : float
1.1. thermo package 187
thermo Documentation, Release 0.1
Molecular weight, [g/mol]
Returns rho : float
Density, [kg/m^3]
References
[R288]
Examples
>>> Vm_to_rho(0.000132, 86.18)652.8787878787879
thermo.utils.Z(T, P, V)Calculates the compressibility factor of a gas, given its temperature, pressure, and molar volume.
𝑍 =𝑃𝑉
𝑅𝑇
Parameters T : float
Temperature, [K]
P : float
Pressure [Pa]
V : float
Molar volume, [m^3/mol]
Returns Z : float
Compressibility factor, [-]
References
[R289]
Examples
>>> Z(600, P=1E6, V=0.00463)0.9281019876560912
thermo.utils.int2CAS(i)Converts CAS number of a compounds from an int to an string. This is helpful when dealing with int CASnumbers.
Parameters CASRN : int
CASRN [-]
Returns CASRN : string
CASRN [-]
188 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Handles CAS numbers with an unspecified number of digits. Does not work on floats.
Examples
>>> int2CAS(7704349)'7704-34-9'
thermo.utils.isentropic_exponent(Cp, Cv)Calculate the isentropic coefficient of a gas, given its constant- pressure and constant-volume heat capacity.
𝑘 =𝐶𝑝
𝐶𝑣
Parameters Cp : float
Gas heat capacity at constant pressure, [J/mol/K]
Cv : float
Gas heat capacity at constant volume, [J/mol/K]
Returns k : float
Isentropic exponent, [-]
References
[R290]
Examples
>>> isentropic_exponent(33.6, 25.27)1.329639889196676
thermo.utils.isobaric_expansion(V1=None, V2=None, dT=0.01)
thermo.utils.mixing_logarithmic(fracs, props)Simple function calculates a property based on weighted averages of logarithmic properties.
𝑦 =∑𝑖
frac𝑖 · log(prop𝑖)
Parameters fracs : array-like
Fractions of a mixture
props: array-like
Properties
Returns prop : value
Calculated property
1.1. thermo package 189
thermo Documentation, Release 0.1
Notes
Does not work on negative values. Returns None if any fractions or properties are missing or are not of the samelength.
Examples
>>> mixing_logarithmic([0.1, 0.9], [0.01, 0.02])0.01866065983073615
thermo.utils.mixing_simple(fracs, props)Simple function calculates a property based on weighted averages of properties. Weights could be mole frac-tions, volume fractions, mass fractions, or anything else.
𝑦 =∑𝑖
frac𝑖 · prop𝑖
Parameters fracs : array-like
Fractions of a mixture
props: array-like
Properties
Returns prop : value
Calculated property
Notes
Returns None if any fractions or properties are missing or are not of the same length.
Examples
>>> mixing_simple([0.1, 0.9], [0.01, 0.02])0.019
thermo.utils.none_and_length_check(all_inputs, length=None)Checks inputs for suitability of use by a mixing rule which requires all inputs to be of the same length andnon-None. A number of variations were attempted for this function; this was found to be the quickest.
Parameters all_inputs : array-like of array-like
list of all the lists of inputs, [-]
length : int, optional
Length of the desired inputs, [-]
Returns False/True : bool
Returns True only if all inputs are the same length (or length length) and none of theinputs contain None [-]
190 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Does not check for nan values.
Examples
>>> none_and_length_check(([1, 1], [1, 1], [1, 30], [10,0]), length=2)True
thermo.utils.normalize(values)Simple function which normalizes a series of values to be from 0 to 1, and for their sum to add to 1.
𝑥 =𝑥
𝑠𝑢𝑚𝑖𝑥𝑖
Parameters values : array-like
array of values
Returns fractions : array-like
Array of values from 0 to 1
Notes
Does not work on negative values.
Examples
>>> normalize([3, 2, 1])[0.5, 0.3333333333333333, 0.16666666666666666]
thermo.utils.phase_set_property(phase=None, s=None, l=None, g=None, V_over_F=None)Determines which phase’s property should be set as a default, given the phase a chemical is, and the propertyvalues of various phases. For the case of liquid-gas phase, returns None. If the property is not available for thecurrent phase, or if the current phase is not known, returns None.
Parameters phase : str
One of ‘s’, ‘l’, ‘g’, ‘two-phase’
s : float
Solid-phase property
l : float
Liquid-phase property
g : float
Gas-phase property
V_over_F : float
Vapor phase fraction
Returns prop : float
The selected/calculated property for the relevant phase
1.1. thermo package 191
thermo Documentation, Release 0.1
Notes
Could calculate mole-fraction weighted properties for the two phase regime. Could also implement equilibriawith solid phases.
Examples
>>> phase_set_property(phase='g', l=1560.14, g=3312.)3312.0
thermo.utils.property_mass_to_molar(A_mass, MW)
thermo.utils.property_molar_to_mass(A_molar, MW)
thermo.utils.rho_to_Vm(rho, MW)Calculate the molar volume of a chemical, given its density and molecular weight.
𝑉𝑚 =
(1000𝜌
𝑀𝑊
)−1
Parameters rho : float
Density, [kg/m^3]
MW : float
Molecular weight, [g/mol]
Returns Vm : float
Molar volume, [m^3/mol]
References
[R291]
Examples
>>> rho_to_Vm(652.9, 86.18)0.00013199571144126206
thermo.utils.to_num(values)Legacy function to turn a list of strings into either floats (if numeric), stripped strings (if not) or None if thestring is empty. Accepts any numeric formatting the float function does.
Parameters values : list
list of strings
Returns values : list
list of floats, strings, and None values [-]
Examples
192 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> to_num(['1', '1.1', '1E5', '0xB4', ''])[1.0, 1.1, 100000.0, '0xB4', None]
thermo.utils.ws_to_zs(ws, MWs)Converts a list of mass fractions to mole fractions. Requires molecular weights for all species.
𝑧𝑖 =𝑤𝑖
𝑀𝑊𝑖∑𝑖
𝑤𝑖
𝑀𝑊𝑖
Parameters ws : iterable
Mass fractions [-]
MWs : iterable
Molecular weights [g/mol]
Returns zs : iterable
Mole fractions [-]
Notes
Does not check that the sums add to one. Does not check that inputs are of the same length.
Examples
>>> ws_to_zs([0.3333333333333333, 0.6666666666666666], [10, 20])[0.5, 0.5]
thermo.utils.zs_to_Vfs(zs, Vms)Converts a list of mole fractions to volume fractions. Requires molar volumes for all species.
Vf𝑖 =𝑧𝑖𝑉𝑚,𝑖∑𝑖 𝑧𝑖𝑉𝑚,𝑖
Parameters zs : iterable
Mole fractions [-]
VMs : iterable
Molar volumes of species [m^3/mol]
Returns Vfs : list
Molar volume fractions [-]
Notes
Does not check that the sums add to one. Does not check that inputs are of the same length.
Molar volumes are specified in terms of pure components only. Function works with any phase.
1.1. thermo package 193
thermo Documentation, Release 0.1
Examples
Acetone and benzene example
>>> zs_to_Vfs([0.637, 0.363], [8.0234e-05, 9.543e-05])[0.5960229712956298, 0.4039770287043703]
thermo.utils.zs_to_ws(zs, MWs)Converts a list of mole fractions to mass fractions. Requires molecular weights for all species.
𝑤𝑖 =𝑧𝑖𝑀𝑊𝑖
𝑀𝑊𝑎𝑣𝑔
𝑀𝑊𝑎𝑣𝑔 =∑𝑖
𝑧𝑖𝑀𝑊𝑖
Parameters zs : iterable
Mole fractions [-]
MWs : iterable
Molecular weights [g/mol]
Returns ws : iterable
Mass fractions [-]
Notes
Does not check that the sums add to one. Does not check that inputs are of the same length.
Examples
>>> zs_to_ws([0.5, 0.5], [10, 20])[0.3333333333333333, 0.6666666666666666]
thermo.vapor_pressure module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
194 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.vapor_pressure.Ambrose_Walton(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R292]; requires achemical’s critical temperature and acentric factor.
The vapor pressure is given by:
ln𝑃𝑟 = 𝑓 (0) + 𝜔𝑓 (1) + 𝜔2𝑓 (2)
𝜏 = 1 − 𝑇𝑟
𝑓 (0) =−5.97616𝜏 + 1.29874𝜏1.5 − 0.60394𝜏2.5 − 1.06841𝜏5
𝑇𝑟
𝑓 (1) =−5.03365𝜏 + 1.11505𝜏1.5 − 5.41217𝜏2.5 − 7.46628𝜏5
𝑇𝑟
𝑓 (2) =−0.64771𝜏 + 2.41539𝜏1.5 − 4.26979𝜏2.5 + 3.25259𝜏5
𝑇𝑟
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor [-]
Returns Psat : float
Vapor pressure, [Pa]
References
[R292], [R293]
Examples
>>> Ambrose_Walton(347.2, 617.1, 36E5, 0.299)13558.913459865389
thermo.vapor_pressure.Antoine(T, A, B, C, Base=10.0)Base 10 assumed; Coefficients type Pascal assumed; Coefficients type Kelvin or Celcius assumed. Alter Baseto be the desired numerical base.
>>> Antoine(100.0, 8.7687, 395.744, -6.469) # methane34478.367349639906>>> Antoine(180.0, 8.95894, 510.595, -15.95) # CF4702271.0518579542
thermo.vapor_pressure.Lee_Kesler(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R294]; requires achemical’s critical temperature and acentric factor.
1.1. thermo package 195
thermo Documentation, Release 0.1
The vapor pressure is given by:
ln𝑃 𝑠𝑎𝑡𝑟 = 𝑓 (0) + 𝜔𝑓 (1)
𝑓 (0) = 5.92714 − 6.09648
𝑇𝑟− 1.28862 ln𝑇𝑟 + 0.169347𝑇 6
𝑟
𝑓 (1) = 15.2518 − 15.6875
𝑇𝑟− 13.4721 ln𝑇𝑟 + 0.43577𝑇 6
𝑟
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor [-]
Returns Psat : float
Vapor pressure, [Pa]
Notes
This equation appears in [R294] in expanded form. It has been verified. The reduced pressure form of theequation ensures
References
[R294], [R295]
Examples
Example as in [R295]; Tr rounding source of tiny deviation
>>> Lee_Kesler(347.2, 617.1, 36E5, 0.299)13078.694162949312
thermo.vapor_pressure.Sanjari(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R296]. Requires achemical’s critical temperature, pressure, and acentric factor. Although developed for refrigerants, should havesome generality.
The vapor pressure is given by:
𝑃 𝑠𝑎𝑡 = 𝑃𝑐 exp(𝑓 (0) + 𝜔𝑓 (1) + 𝜔2𝑓 (2))
𝑓 (0) = 𝑎1 +𝑎2𝑇𝑟
+ 𝑎3 ln𝑇𝑟 + 𝑎4𝑇1.9𝑟
𝑓 (1) = 𝑎5 +𝑎6𝑇𝑟
+ 𝑎7 ln𝑇𝑟 + 𝑎8𝑇1.9𝑟
𝑓 (2) = 𝑎9 +𝑎10𝑇𝑟
+ 𝑎11 ln𝑇𝑟 + 𝑎12𝑇1.9𝑟
196 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor [-]
Returns Psat : float
Vapor pressure, [Pa]
Notes
a 1-12 are as follows: 6.83377, -5.76051, 0.90654, -1.16906, 5.32034, -28.1460, -58.0352, 23.57466, 18.19967,16.33839, 65.6995, -35.9739.
For a claimed fluid not included in the regression, R128, the claimed AARD was 0.428%. A re-calculation using200 data points from 125.45 K to 343.90225 K evenly spaced by 1.09775 K as generated by NIST WebbookApril 2016 produced an AARD of 0.644%. It is likely that the author’s regression used more precision in itscoefficients than was shown here. Nevertheless, the function is reproduced as shown in [R296].
For Tc=808 K, Pc=1100000 Pa, omega=1.1571, this function actually declines after 770 K.
References
[R296]
Examples
>>> Sanjari(347.2, 617.1, 36E5, 0.299)13651.916109552498
thermo.vapor_pressure.TRC_Antoine_extended(T, Tc, to, A, B, C, n, E, F)
>>> TRC_Antoine_extended(180.0, 227.51, -120., 8.95894, 510.595, -15.95, 2.41377, -93.74, 7425.9) # CF4706317.0898414153
class thermo.vapor_pressure.VaporPressure(Tb=None, Tc=None, Pc=None, omega=None,CASRN=’‘)
Bases: thermo.utils.TDependentProperty
Class for dealing with vapor pressure as a function of temperature. Consists of four coefficient-based methodsand four data sources, one source of tabular information, four corresponding-states estimators, and the externallibrary CoolProp.
Parameters Tb : float, optional
Boiling point, [K]
Tc : float, optional
1.1. thermo package 197
thermo Documentation, Release 0.1
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
omega : float, optional
Acentric factor, [-]
CASRN : str, optional
The CAS number of the chemical
See also:
Wagner_original, Wagner, TRC_Antoine_extended, Antoine,boiling_critical_relation, Lee_Kesler, Ambrose_Walton, Sanjari
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored invapor_pressure_methods.
WAGNER_MCGARRY: The Wagner 3,6 original model equation documented in Wagner_original, withdata for 245 chemicals, from [R297],
WAGNER_POLING: The Wagner 2.5, 5 model equation documented in Wagner in [R298], with data for104 chemicals.
ANTOINE_EXTENDED_POLING: The TRC extended Antoine model equation documented inTRC_Antoine_extended with data for 97 chemicals in [R298].
ANTOINE_POLING: Standard Antoine equation, as documented in the function Antoine and with data for325 fluids from [R298]. Coefficients were altered to be in units of Pa and Celcius.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R299]. Very slow.
BOILING_CRITICAL: Fundamental relationship in thermodynamics making several approximations; seeboiling_critical_relation for details. Least accurate method in most circumstances.
LEE_KESLER_PSAT: CSP method documented in Lee_Kesler. Widely used.
AMBROSE_WALTON: CSP method documented in Ambrose_Walton.
SANJARI: CSP method documented in Sanjari.
VDI_TABULAR: Tabular data in [R300] along the saturation curve; interpolation is as set by the user or thedefault.
References
[R297], [R298], [R299], [R300]
Attributes
method
198 Chapter 1. thermo
thermo Documentation, Release 0.1
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate vapor pressure of a fluid at temperature T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolation_T(T) 1/T interpolation transformation by default.interpolation_property(P) log(P) interpolation transformation by default.interpolation_property_inv(P) exp(P) interpolation transformation by default; reversesload_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate vapor pressure above; by definition the criticalpoint.
Tmin = NoneMinimum temperature at which no method can calculate vapor pressure under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)Method to calculate vapor pressure of a fluid at temperature T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at calculate vapor pressure, [K]
method : str
Name of the method to use
Returns Psat : float
Vapor pressure at T, [pa]
interpolation_T(T)1/T interpolation transformation by default.
interpolation_property(P)log(P) interpolation transformation by default.
interpolation_property_inv(P)exp(P) interpolation transformation by default; reverses interpolation_property_inv .
1.1. thermo package 199
thermo Documentation, Release 0.1
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
method = NoneThe method was which was last used successfully to calculate a property; set only after the first propertycalculation.
name = ‘Vapor pressure’
property_max = 10000000000.0Maximum valid value of vapor pressure. Set slightly above the critical point estimated for Iridium; Mer-cury’s 160 MPa critical point is the highest known.
property_min = 0Mimimum valid value of vapor pressure.
ranked_methods = [’Wagner Original (McGarry)’, ‘Wagner (Poling)’, ‘Antoine TRC Extended (Poling)’, ‘CoolProp’, ‘Antoine (Poling)’, ‘VDI Saturation’, ‘Ambrose and Walton (1989)’, ‘Lee-Kesler (1975)’, ‘Boiling-critical point relationship’, ‘Sanjari (2013)’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = FalseDisallow tabular extrapolation by default; CSP methods prefered normally.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. ForCSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolationoutside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolationis considered valid for all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘Pa’
200 Chapter 1. thermo
thermo Documentation, Release 0.1
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.vapor_pressure.Wagner(T, Tc, Pc, a, b, c, d)Calculates vapor pressure using the Wagner equation 2.5, 5 form.
Parameters are specific to a chemical, and form of Wagner equation.
ln𝑃 𝑠𝑎𝑡 = ln𝑃𝑐 +𝑎𝜏 + 𝑏𝜏1.5 + 𝑐𝜏2.5 + 𝑑𝜏5
𝑇𝑟
Parameters T : float
Temperature of fluid, [K]
Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
a, b, c, d : floats
Parameters for wagner equation. Specific to a chemical.
Trange : array_like
Two temperatures, Tmin and Tmax, in which equation is appropriate.
Returns Psat: float
Vapor pressure [Pa]
Notes
Warning: Pc is often treated as adjustable constant.
References
[R301]
Examples
>>> Wagner(100., 190.551, 4599200, -6.02242, 1.26652, -0.5707, -1.366) # CH434415.00476263708
thermo.vapor_pressure.Wagner_original(T, Tc, Pc, a, b, c, d)Calculates vapor pressure using theooriginal Wagner equation 3,6 form.
Parameters are specific to a chemical, and form of Wagner equation.
ln𝑃 𝑠𝑎𝑡 = ln𝑃𝑐 +𝑎𝜏 + 𝑏𝜏1.5 + 𝑐𝜏3 + 𝑑𝜏6
𝑇𝑟
Parameters T : float
Temperature of fluid, [K]
1.1. thermo package 201
thermo Documentation, Release 0.1
Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
a, b, c, d : floats
Parameters for wagner equation. Specific to a chemical.
Returns Psat: float
Vapor pressure [Pa]
Notes
Warning: Pc is often treated as adjustable constant.
Examples
>>> Wagner_original(100.0, 190.53, 4596420., -6.00435, 1.1885, -0.834082, -1.22833) # CH434520.44601450496
thermo.vapor_pressure.boiling_critical_relation(T, Tb, Tc, Pc)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship as in [R302]; requires achemical’s critical temperature and pressure as well as boiling point.
The vapor pressure is given by:
ln𝑃 𝑠𝑎𝑡𝑟 = ℎ
(1 − 1
𝑇𝑟
)ℎ = 𝑇𝑏𝑟
ln(𝑃𝑐/101325)
1 − 𝑇𝑏𝑟
Parameters T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Returns Psat : float
Vapor pressure, [Pa]
Notes
Units are Pa. Formulation makes intuitive sense; a logarithmic form of interpolation.
202 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R302]
Examples
Example as in [R302] for ethylbenzene
>>> boiling_critical_relation(347.2, 409.3, 617.1, 36E5)15209.467273093938
thermo.vapor_pressure.vapor_pressure_methods = [’Wagner Original (McGarry)’, ‘Wagner (Poling)’, ‘Antoine TRC Extended (Poling)’, ‘CoolProp’, ‘Antoine (Poling)’, ‘VDI Saturation’, ‘Ambrose and Walton (1989)’, ‘Lee-Kesler (1975)’, ‘Boiling-critical point relationship’, ‘Sanjari (2013)’]Holds all methods available for the VaporPressure class, for use in iterating over them.
thermo.virial module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.virial.BVirial_Pitzer_Curl(T, Tc, Pc, omega)Calculates the second virial coefficient using the model in [R303]. Designed for simple calculations.
𝐵𝑟 = 𝐵(0) + 𝜔𝐵(1)
𝐵(0) = 0.1445 − 0.33/𝑇𝑟 − 0.1385/𝑇 2𝑟 − 0.0121/𝑇 3
𝑟
𝐵(1) = 0.073 + 0.46/𝑇𝑟 − 0.5/𝑇 2𝑟 − 0.097/𝑇 3
𝑟 − 0.0073/𝑇 8𝑟
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns BVirial : float
Second virial coefficient, [m^3/mol]
1.1. thermo package 203
thermo Documentation, Release 0.1
References
[R303]
Examples
Example matching that in BVirial_Abbott, for isobutane.
>>> BVirial_Pitzer_Curl(510., 425.2, 38E5, 0.193)-0.0002084535541385102
thermo.virial.BVirial_Abbott(T, Tc, Pc, omega)Calculates the second virial coefficient using the model in [R304]. Simple fit to the Lee-Kesler equation.
𝐵𝑟 = 𝐵(0) + 𝜔𝐵(1)
𝐵(0) = 0.083 +0.422
𝑇 1.6𝑟
𝐵(1) = 0.139 − 0.172
𝑇 4.2𝑟
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns BVirial : float
Second virial coefficient, [m^3/mol]
References
[R304]
Examples
Ecample is from [R304], p. 93, and matches the result exactly, for Isobutane.
>>> BVirial_Abbott(510., 425.2, 38E5, 0.193)-0.00020570178037383633
thermo.virial.BVirial_Tsonopoulos(T, Tc, Pc, omega)Calculates the second virial coefficient using the model in [R305].
𝐵𝑟 = 𝐵(0) + 𝜔𝐵(1)
𝐵(0) = 0.1445 − 0.33/𝑇𝑟 − 0.1385/𝑇 2𝑟 − 0.0121/𝑇 3
𝑟
𝐵(1) = 0.0637 + 0.331/𝑇 2𝑟 − 0.423/𝑇 3
𝑟 − 0.423/𝑇 3𝑟 − 0.008/𝑇 8
𝑟
204 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns BVirial : float
Second virial coefficient, [m^3/mol]
Notes
A more complete expression is also available, in BVirial_Tsonopoulos_Extended.
References
[R305]
Examples
Example matching that in BVirial_Abbott, for isobutane.
>>> BVirial_Tsonopoulos(510., 425.2, 38E5, 0.193)-0.00020935288308483694
thermo.virial.BVirial_Tsonopoulos_Extended(T, Tc, Pc, omega, a=0, b=0, speciestype=’‘,dipole=0)
Calculates the second virial coefficient using the comprehensive model in [R306].
𝑇𝑂𝐷𝑂
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor for fluid, [-]
a : float
Fit parameter, optional
b : float
1.1. thermo package 205
thermo Documentation, Release 0.1
Fit parameter, optional
Dipole : float
dipole moment, optional, [Debye]
Returns BVirial : float
Second virial coefficient, [m^3/mol]
References
[R306], [R307]
Examples
Example from Perry’s Handbook, 8E, p2-499. Matches to a decimal place.
>>> BVirial_Tsonopoulos_Extended(430., 405.65, 11.28E6, 0.252608, a=0, b=0, speciestype='ketone', dipole=1.469)-9.679715056695323e-05
thermo.viscosity module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.viscosity.Brokaw(T, ys, mus, MWs, molecular_diameters, Stockmayers)
206 Chapter 1. thermo
thermo Documentation, Release 0.1
Calculates viscosity of a gas mixture according to mixing rules in [R308].
𝜂𝑚𝑖𝑥 =
𝑛∑𝑖=1
𝑦𝑖𝜂𝑖∑𝑛𝑗=1 𝑦𝑗𝜑𝑖𝑗
𝜑𝑖𝑗 =
(𝜂𝑖𝜂𝑗
)0.5
𝑆𝑖𝑗𝐴𝑖𝑗
𝐴𝑖𝑗 = 𝑚𝑖𝑗𝑀−0.5𝑖𝑗
⎡⎣1 +𝑀𝑖𝑗 −𝑀0.45
𝑖𝑗
2(1 +𝑀𝑖𝑗) +(1+𝑀0.45
𝑖𝑗 )𝑚−0.5𝑖𝑗
1+𝑚𝑖𝑗
⎤⎦𝑚𝑖𝑗 =
[4
(1 +𝑀−1𝑖𝑗 )(1 +𝑀𝑖𝑗)
]0.25𝑀𝑖𝑗 =
𝑀𝑖
𝑀𝑗
𝑆𝑖𝑗 =1 + (𝑇 *
𝑖 𝑇*𝑗 )0.5 + (𝛿𝑖𝛿𝑗/4)
[1 + 𝑇 *𝑖 + (𝛿2𝑖 /4)]0.5[1 + 𝑇 *
𝑗 + (𝛿2𝑗 /4)]0.5
𝑇 * = 𝑘𝑇/𝜖
Parameters T : float
Temperature of fluid, [K]
ys : float
Mole fractions of gas components
mus : float
Gas viscosities of all components, [Pa*S]
MWs : float
Molecular weights of all components, [g/mol]
molecular_diameters : float
L-J molecular diameter of all components, [angstroms]
Stockmayers : float
L-J Stockmayer energy parameters of all components, []
Returns mug : float
Viscosity of gas mixture, [Pa*S]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed.
This is DIPPR Procedure 8D: Method for the Viscosity of Nonhydrocarbon Vapor Mixtures at Low Pressure(Polar and Nonpolar)
References
[R308], [R309], [R310]
1.1. thermo package 207
thermo Documentation, Release 0.1
Examples
>>> Brokaw(308.2, [0.05, 0.95], [1.34E-5, 9.5029E-6], [64.06, 46.07], [0.42, 0.19], [347, 432])9.699085099801568e-06
thermo.viscosity.Gharagheizi_gas(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R311].
𝜇 = 10−7|10−5𝑃𝑐𝑇𝑟 +
(0.091 − 0.477
𝑀
)𝑇 +𝑀
(10−5𝑃𝑐 −
8𝑀2
𝑇 2
)(10.7639
𝑇𝑐− 4.1929
𝑇
)|
Parameters T : float
Temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
MW : float
Molwcular weight of fluid [g/mol]
Returns mu_g : float
Viscosity of gas, [Pa*S]
Notes
Example is first point in supporting information of article, for methane. This is the prefered function for gasviscosity. 7% average relative deviation. Deviation should never be above 30%. Developed with the DIPPRdatabase. It is believed theoretically predicted values are included in the correlation.
References
[R311]
Examples
>>> Gharagheizi_gas(120., 190.564, 45.99E5, 16.04246)5.215761625399613e-06
thermo.viscosity.Herning_Zipperer(zs, mus, MWs)Calculates viscosity of a gas mixture according to mixing rules in [R312].
𝑇𝑂𝐷𝑂
Parameters zs : float
Mole fractions of components
mus : float
Gas viscosities of all components, [Pa*S]
208 Chapter 1. thermo
thermo Documentation, Release 0.1
MWs : float
Molecular weights of all components, [g/mol]
Returns mug : float
Viscosity of gas mixture, Pa*S]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed.
References
[R312]
thermo.viscosity.Letsou_Stiel(T, MW, Tc, Pc, omega)Calculates the viscosity of a liquid using an emperical model developed in [R313]. However. the fitting param-eters for tabulated values in the original article are found in ChemSep.
𝜉 =2173.424𝑇
1/6𝑐√
𝑀𝑊𝑃2/3𝑐
𝜉(0) = (1.5174 − 2.135𝑇𝑟 + 0.75𝑇 2𝑟 ) · 10−5
𝜉(1) = (4.2552 − 7.674𝑇𝑟 + 3.4𝑇 2𝑟 ) · 10−5
𝜇 = (𝜉(0) + 𝜔𝜉(1))/𝜉
Parameters T : float
Temperature of fluid [K]
MW : float
Molwcular weight of fluid [g/mol]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor of compound
Returns mu_l : float
Viscosity of liquid, [Pa*S]
Notes
The form of this equation is a polynomial fit to tabulated data. The fitting was performed by the DIPPR. This isDIPPR Procedure 8G: Method for the viscosity of pure, nonhydrocarbon liquids at high temperatures internalunits are SI standard. [R313]‘s units were different. DIPPR test value for ethanol is used.
Average error 34%. Range of applicability is 0.76 < Tr < 0.98.
1.1. thermo package 209
thermo Documentation, Release 0.1
References
[R313]
Examples
>>> Letsou_Stiel(400., 46.07, 516.25, 6.383E6, 0.6371)0.0002036150875308151
thermo.viscosity.Lucas(T, P, Tc, Pc, omega, P_sat, mu_l)Adjustes for pressure the viscosity of a liquid using an emperical formula developed in [R314], but as discussedin [R315] as the original source is in German.
𝜇
𝜇𝑠𝑎𝑡=
1 +𝐷(∆𝑃𝑟/2.118)𝐴
1 + 𝐶𝜔∆𝑃𝑟
∆𝑃𝑟 =𝑃 − 𝑃 𝑠𝑎𝑡
𝑃𝑐
𝐴 = 0.9991 − 4.674 × 10−4
1.0523𝑇−0.03877𝑟 − 1.0513
𝐷 =0.3257
(1.0039 − 𝑇 2.573𝑟 )0.2906
− 0.2086
𝐶 = −0.07921 + 2.1616𝑇𝑟 − 13.4040𝑇 2𝑟 + 44.1706𝑇 3
𝑟 − 84.8291𝑇 4𝑟 + 96.1209𝑇 5
𝑟 − 59.8127𝑇 6𝑟 + 15.6719𝑇 7
𝑟
Parameters T : float
Temperature of fluid [K]
P : float
Pressure of fluid [Pa]
Tc: float
Critical point of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor of compound
P_sat : float
Saturation pressure of the fluid [Pa]
mu_l : float
Viscosity of liquid at 1 atm or saturation, [Pa*S]
Returns mu_l_dense : float
Viscosity of liquid, [Pa*s]
Notes
This equation is entirely dimensionless; all dimensions cancel. The example is from Reid (1987); all resultsagree. Above several thousand bar, this equation does not represent true behavior. If Psat is larger than P, thefluid may not be liquid; dPr is set to 0.
210 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R314], [R315]
Examples
>>> Lucas(300., 500E5, 572.2, 34.7E5, 0.236, 0, 0.00068) # methylcyclohexane0.0010683738499316518
thermo.viscosity.Przedziecki_Sridhar(T, Tm, Tc, Pc, Vc, Vm, omega, MW)Calculates the viscosity of a liquid using an emperical formula developed in [R316].
𝜇 =𝑉𝑜
𝐸(𝑉 − 𝑉𝑜)
𝐸 = −1.12 +𝑉𝑐
12.94 + 0.10𝑀𝑊 − 0.23𝑃𝑐 + 0.0424𝑇𝑚 − 11.58(𝑇𝑚/𝑇𝑐)
𝑉𝑜 = 0.0085𝜔𝑇𝑐 − 2.02 +𝑉𝑚
0.342(𝑇𝑚/𝑇𝑐) + 0.894
Parameters T : float
Temperature of the fluid [K]
Tm : float
Melting point of fluid [K]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
Vc : float
Critical volume of the fluid [m^3/mol]
Vm : float
Molar volume of the fluid at temperature [K]
omega : float
Acentric factor of compound
MW : float
Molwcular weight of fluid [g/mol]
Returns mu_l : float
Viscosity of liquid, [Pa*S]
Notes
A test by Reid (1983) is used, but only mostly correct. This function is not recommended. Its use has beenremoved from the Liquid Viscosity function. Internal units are bar and mL/mol. TODO: Test again with datafrom 5th ed table.
1.1. thermo package 211
thermo Documentation, Release 0.1
References
[R316]
Examples
>>> Przedziecki_Sridhar(383., 178., 591.8, 41E5, 316E-6, 95E-6, .263, 92.14)0.0002198147995603383
thermo.viscosity.Stiel_Thodos(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R317].
𝑇𝑂𝐷𝑂
Parameters T : float
Temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
MW : float
Molwcular weight of fluid [g/mol]
Returns mu_g : float
Viscosity of gas, [Pa*S]
Notes
Untested. Claimed applicability from 0.2 to 5 atm. Developed with data from 52 nonpolar, and 53 polar gases.internal units are poise and atm. Seems to give reasonable results.
References
[R317]
Examples
>>> Stiel_Thodos(300., 556.35, 4.5596E6, 153.8) #CCl41.0408926223608723e-05
class thermo.viscosity.ViscosityGas(CASRN=’‘, MW=None, Tc=None, Pc=None, Zc=None,dipole=None, Vmg=None)
Bases: thermo.utils.TPDependentProperty
Class for dealing with gas viscosity as a function of temperature and pressure.
For gases at atmospheric pressure, there are 4 corresponding-states estimators, one source of tabular information,and the external library CoolProp.
212 Chapter 1. thermo
thermo Documentation, Release 0.1
For gases under the fluid’s boiling point (at sub-atmospheric pressures), and high-pressure gases above theboiling point, there are zero corresponding-states estimators, and the external library CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Zc : float, optional
Critical compressibility, [-]
dipole : float, optional
Dipole moment of the fluid, [debye]
Vmg : float, optional
Molar volume of the fluid at a pressure and temperature, [m^3/mol]
See also:
Gharagheizi_gas, Yoon_Thodos, Stiel_Thodos, lucas_gas
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the lists stored inviscosity_gas_methods and viscosity_gas_methods_P for low and high pressure methods re-spectively.
Low pressure methods:
GHARAGHEIZI: CSP method, described in Gharagheizi_gas.
YOON_THODOS: CSP method, described in Yoon_Thodos.
STIEL_THODOS: CSP method, described in Stiel_Thodos.
LUCAS_GAS: CSP method, described in lucas_gas.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R318]. Very slow.
VDI_TABULAR: Tabular data in [R319] along the saturation curve; interpolation is as set by the user or thedefault.
High pressure methods:
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R318]. Very slow, but unparalled in accuracy for pressuredependence.
1.1. thermo package 213
thermo Documentation, Release 0.1
References
[R318], [R319]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate low-pressure gas viscosity at tempearture T with a given method.calculate_P(T, P, method) Method to calculate pressure-dependent gas viscosity at temperature T and pressure P with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a temperature-dependent low-pressure method.test_method_validity_P(T, P, method) Method to check the validity of a high-pressure method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the property above.
Tmin = None
214 Chapter 1. thermo
thermo Documentation, Release 0.1
Minimum temperature at which no method can calculate the property under.
all_methods = NoneSet of all low-pressure methods available for a given CASRN and properties; filled byload_all_methods.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate(T, method)Method to calculate low-pressure gas viscosity at tempearture T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature of the gas, [K]
method : str
Name of the method to use
Returns mu : float
Viscosity of the gas at T and a low pressure, [Pa*S]
calculate_P(T, P, method)Method to calculate pressure-dependent gas viscosity at temperature T and pressure P with a given method.
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
Temperature at which to calculate gas viscosity, [K]
P : float
Pressure at which to calculate gas viscosity, [K]
method : str
Name of the method to use
Returns mu : float
Viscosity of the gas at T and P, [Pa*]
interpolation_P = NoneNo interpolation transformation by default.
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, all_methodsand obj:all_methods_P as a set of methods for which the data exists for.
1.1. thermo package 215
thermo Documentation, Release 0.1
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Gas viscosity’
property_max = 0.001Maximum valid value of gas viscosity. Might be too high, or too low.
property_min = 0Mimimum valid value of gas viscosity; limiting condition at low pressure is 0.
ranked_methods = [’CoolProp’, ‘VDI Saturation’, ‘Gharagheizi’, ‘Yoon-Thodos’, ‘Stiel-Thodos’, ‘Lucas’]Default rankings of the low-pressure methods.
ranked_methods_P = [’CoolProp’]Default rankings of the high-pressure methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instancesfor each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a temperature-dependent low-pressure method. For CSP most methods,the all methods are considered valid from 0 K up to 5000 K. For method GHARAGHEIZI, the method isconsidered valud from 20 K to 2000 K.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
216 Chapter 1. thermo
thermo Documentation, Release 0.1
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
test_method_validity_P(T, P, method)Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both a gasand under the maximum pressure of the fluid’s EOS. No other methods are implemented.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures and pressures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
P : float
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘Pa*S’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
class thermo.viscosity.ViscosityLiquid(CASRN=’‘, MW=None, Tm=None, Tc=None,Pc=None, Vc=None, omega=None, Psat=None,Vml=None)
Bases: thermo.utils.TPDependentProperty
Class for dealing with liquid viscosity as a function of temperature and pressure.
For low-pressure (at 1 atm while under the vapor pressure; along the saturation line otherwise) liquids, thereare four coefficient-based methods from one data source, one source of tabular information, two corresponding-states estimators, and the external library CoolProp.
For high-pressure liquids (also, <1 atm liquids), there is one corresponding-states estimator, and the externallibrary CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
1.1. thermo package 217
thermo Documentation, Release 0.1
Molecular weight, [g/mol]
Tm : float, optional
Melting point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
omega : float, optional
Acentric factor, [-]
Psat : float or callable, optional
Vapor pressure at a given temperature or callable for the same, [Pa]
Vml : float or callable, optional
Liquid molar volume at a given temperature and pressure or callable for the same,[m^3/mol]
See also:
ViswanathNatarajan3, ViswanathNatarajan2, ViswanathNatarajan2Exponential,Letsou_Stiel, Przedziecki_Sridhar, Lucas
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the lists stored involume_liquid_methods and volume_liquid_methods_P for low and high pressure methods re-spectively.
Low pressure methods:
DUTT_PRASAD: A simple function as expressed in [R320], with data available for 100 fluids. Temperaturelimits are available for all fluids. See ViswanathNatarajan3 for details.
VISWANATH_NATARAJAN_3: A simple function as expressed in [R320], with data available for 432 fluids.Temperature limits are available for all fluids. See ViswanathNatarajan3 for details.
VN2_data: A simple function as expressed in [R320], with data available for 135 fluids. Temperature limitsare available for all fluids. See ViswanathNatarajan2 for details.
VISWANATH_NATARAJAN_2E: A simple function as expressed in [R320], with data available for 14 fluids.Temperature limits are available for all fluids. See ViswanathNatarajan2Exponential for details.
LETSOU_STIEL: CSP method, described in Letsou_Stiel.
PRZEDZIECKI_SRIDHAR: CSP method, described in Przedziecki_Sridhar.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R321]. Very slow.
218 Chapter 1. thermo
thermo Documentation, Release 0.1
VDI_TABULAR: Tabular data in [R322] along the saturation curve; interpolation is as set by the user or thedefault.
High pressure methods:
LUCAS: CSP method, described in Lucas. Calculates a low-pressure liquid viscosity first, usingT_dependent_property.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [5]_. Very slow, but unparalled in accuracy for pressure depen-dence.
References
[R320], [R321], [R322]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate low-pressure liquid viscosity at tempearture T with a given method.calculate_P(T, P, method) Method to calculate pressure-dependent liquid viscosity at temperature T and pressure P with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.
Continued on next page
1.1. thermo package 219
thermo Documentation, Release 0.1
Table 1.16 – continued from previous pageset_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.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.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the viscosity volume above.
Tmin = NoneMinimum temperature at which no method can calculate the liquid viscosity under.
all_methods = NoneSet of all low-pressure methods available for a given CASRN and properties; filled byload_all_methods.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate(T, method)Method to calculate low-pressure liquid viscosity at tempearture T with a given method.
This method has no exception handling; see T_dependent_property for that.
Parameters T : float
Temperature at which to calculate viscosity, [K]
method : str
Name of the method to use
Returns mu : float
Viscosity of the liquid at T and a low pressure, [Pa*S]
calculate_P(T, P, method)Method to calculate pressure-dependent liquid viscosity at temperature T and pressure P with a givenmethod.
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
Temperature at which to calculate viscosity, [K]
P : float
Pressure at which to calculate viscosity, [K]
method : str
Name of the method to use
Returns mu : float
Viscosity of the liquid at T and P, [Pa*S]
interpolation_P = NoneNo interpolation transformation by default.
220 Chapter 1. thermo
thermo Documentation, Release 0.1
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, all_methodsand obj:all_methods_P as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘liquid viscosity’
property_max = 200000000.0Maximum valid value of liquid viscosity. Generous limit, as the value is that of bitumen in a Pitch dropexperiment.
property_min = 0Mimimum valid value of liquid viscosity.
ranked_methods = [’CoolProp’, ‘Dutt and Prasad’, ‘Viswanath and Natarajan Dynamic 3-term’, ‘Viswanath and Natarajan Dynamic 2-term’, ‘Viswanath and Natarajan Dynamic 2-term exponential’, ‘VDI Saturation’, ‘Letsou and Stiel (1973)’, ‘Przedziecki-Sridhar (1985)’]Default rankings of the low-pressure methods.
ranked_methods_P = [’CoolProp’, ‘Lucas (1974)’]Default rankings of the high-pressure methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instancesfor each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
1.1. thermo package 221
thermo Documentation, Release 0.1
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. ForCSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolationoutside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolationis considered valid for all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
test_method_validity_P(T, P, method)Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both a liquidand under the maximum pressure of the fluid’s EOS. LUCAS doesn’t work on some occasions, due tosomething related to Tr and negative powers - but is otherwise considered correct for all circumstances.
For tabular data, extrapolation outside of the range is used iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures and pressures.
Parameters T : float
Temperature at which to test the method, [K]
P : float
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘Pa*S’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
thermo.viscosity.ViswanathNatarajan2(T, A, B)This function is known to produce values 10 times too low. The author’s data must have an error. I have adjustedit to fix this.
# DDBST has 0.0004580 as a value at this temperature >>> ViswanathNatarajan2(348.15, -5.9719, 1007.0)0.00045983686956829517
thermo.viscosity.ViswanathNatarajan2Exponential(T, C, D)This function is genuinely bad at what it does.
222 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> ViswanathNatarajan2Exponential(298.15, 4900800, -3.8075)0.0018571903840928496
thermo.viscosity.ViswanathNatarajan3(T, A, B, C)Calculate the viscosity of a liquid using the 3-term Antoine form representation developed in [R323]. Requiresinput coefficients. These are assumed to be in cP, as all coefficients found so far are.
log10 𝜇 = 𝐴+𝐵/(𝑇 + 𝐶)
Parameters T : float
Temperature of fluid [K]
Returns mu : float
Liquid viscosity, Pa*s
Notes
More coefficients wanted.
References
[R323]
Examples
>>> ViswanathNatarajan3(298.15, -2.7173, -1071.18, -129.51)0.0006129806445142112
thermo.viscosity.Wilke(ys, mus, MWs)Calculates viscosity of a gas mixture according to mixing rules in [R324].
𝜂𝑚𝑖𝑥 =
𝑛∑𝑖=1
𝑦𝑖𝜂𝑖∑𝑛𝑗=1 𝑦𝑗𝜑𝑖𝑗
𝜑𝑖𝑗 =(1 +
√𝜂𝑖/𝜂𝑗(𝑀𝑊𝑗/𝑀𝑊𝑖)
0.25)2√8(1 +𝑀𝑊𝑖/𝑀𝑊𝑗)
Parameters ys : float
Mole fractions of gas components
mus : float
Gas viscosities of all components, [Pa*S]
MWs : float
Molecular weights of all components, [g/mol]
Returns mug : float
Viscosity of gas mixture, Pa*S]
1.1. thermo package 223
thermo Documentation, Release 0.1
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed orfound.
References
[R324]
Examples
>>> Wilke([0.05, 0.95], [1.34E-5, 9.5029E-6], [64.06, 46.07])9.701614885866193e-06
thermo.viscosity.Yoon_Thodos(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R325].
𝜂𝜉 × 108 = 46.10𝑇 0.618𝑟 − 20.40 exp(−0.449𝑇𝑟) + 19.40 exp(−4.058𝑇𝑟) + 1
𝜉 = 2173.424𝑇 1/6𝑐 𝑀𝑊−1/2𝑃−2/3
𝑐
Parameters T : float
Temperature of the fluid [K]
Tc : float
Critical temperature of the fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
MW : float
Molwcular weight of fluid [g/mol]
Returns mu_g : float
Viscosity of gas, [Pa*S]
Notes
This equation has been tested. The equation uses SI units only internally. The constant 2173.424 is an adjustmentfactor for units. Average deviation within 3% for most compounds. Greatest accuracy with dipole moments closeto 0. Hydrogen and helium have different coefficients, not implemented. This is DIPPR Procedure 8B: Methodfor the Viscosity of Pure, non hydrocarbon, nonpolar gases at low pressures
References
[R325]
224 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Yoon_Thodos(300., 556.35, 4.5596E6, 153.8)1.0194885727776819e-05
thermo.viscosity.lucas_gas(T, Tc, Pc, Zc, MW, dipole=0, CASRN=None)Estimate the viscosity of a gas using an emperical formula developed in several sources, but as discussed in[R326] as the original sources are in German or merely personal communications with the authors of [R326].
𝜂 =[0.807𝑇 0.618
𝑟 − 0.357 exp(−0.449𝑇𝑟) + 0.340 exp(−4.058𝑇𝑟) + 0.018]𝐹 ∘𝑝𝐹
∘𝑄/𝜉
𝐹 ∘𝑝 = 1, 0 ≤ 𝜇𝑟 < 0.022
𝐹 ∘𝑝 = 1 + 30.55(0.292 − 𝑍𝑐)
1.72, 0.022 ≤ 𝜇𝑟 < 0.075
𝐹 ∘𝑝 = 1 + 30.55(0.292 − 𝑍𝑐)
1.72|0.96 + 0.1(𝑇𝑟 − 0.7)|0.075 < 𝜇𝑟
𝐹 ∘𝑄 = 1.22𝑄0.15
1 + 0.00385[(𝑇𝑟 − 12)2]1/𝑀 sign(𝑇𝑟 − 12)
𝜇𝑟 = 52.46
𝜇2𝑃𝑐
𝑇 2𝑐
𝜉 = 0.176
(𝑇𝑐
𝑀𝑊 3𝑃 4𝑐
)1/6
Parameters T : float
Temperature of fluid [K]
Tc: float
Critical point of fluid [K]
Pc : float
Critical pressure of the fluid [Pa]
Zc : float
Critical compressibility of the fluid [Pa]
dipole : float
Dipole moment of fluid [debye]
CASRN : str, optional
CAS of the fluid
Returns mu_g : float
Viscosity of gas, [Pa*s]
Notes
The example is from [R326]; all results agree. Viscosity is calculated in micropoise, and converted to SIinternally (1E-7). Q for He = 1.38; Q for H2 = 0.76; Q for D2 = 0.52.
References
[R326]
1.1. thermo package 225
thermo Documentation, Release 0.1
Examples
>>> lucas_gas(T=550., Tc=512.6, Pc=80.9E5, Zc=0.224, MW=32.042, dipole=1.7)1.7822676912698928e-05
thermo.viscosity.viscosity_gas_methods = [’Gharagheizi’, ‘Yoon-Thodos’, ‘Stiel-Thodos’, ‘Lucas’]Holds all low-pressure methods available for the ViscosityGas class, for use in iterating over them.
thermo.viscosity.viscosity_gas_methods_P = [’CoolProp’]Holds all high-pressure methods available for the ViscosityGas class, for use in iterating over them.
thermo.viscosity.viscosity_gas_mixture(T=None, ys=None, ws=None, mus=None,MWs=None, molecular_diameters=None, Stock-mayers=None, CASRNs=None, AvailableMeth-ods=False, Method=None)
This function handles the retrival of a mixture’s gas viscosity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> viscosity_gas_mixture(T=308.2, ys=[0.05, 0.95], mus=[1.34E-5, 9.5029E-6], MWs=[64.06, 46.07], molecular_diameters=[0.42, 0.19], Stockmayers=[347, 432])9.699085099801568e-06>>> viscosity_gas_mixture(ys=[0.05, 0.95], mus=[1.34E-5, 9.5029E-6], MWs=[64.06, 46.07], Method='Herning-Zipperer')9.730630997268096e-06>>> viscosity_gas_mixture(ys=[0.05, 0.95], mus=[1.34E-5, 9.5029E-6], Method='Simple')9.697755e-06>>> viscosity_gas_mixture(ys=[0.05, 0.95], mus=[1.34E-5, 9.5029E-6], MWs=[64.06, 46.07], Method='Wilke')9.701614885866193e-06
thermo.viscosity.viscosity_index(nu_40, nu_100, rounding=False)Calculates the viscosity index of a liquid. Requires dynamic viscosity of a liquid at 40°C and 100°C. Value mayeither be returned with or without rounding. Rounding is performed per the standard.
if nu_100 < 70:
𝐿,𝐻 = 𝑖𝑛𝑡𝑒𝑟𝑝(𝑛𝑢100)
else:
𝐿 = 0.8353𝜈2100 + 14.67𝜈100 − 216
𝐻 = 0.1684𝜈2100 + 11.85𝜈100 − 97
if nu_40 > H:
𝑉 𝐼 =𝐿− 𝑛𝑢40𝐿−𝐻
· 100
else:
𝑁 =log(𝐻) − log(𝜈40)
log(𝜈100)
𝑉 𝐼 =10𝑁 − 1
0.00715+ 100
Parameters nu_40 : float
Dynamic viscosity of fluid at 40°C, [m^2/s]
nu_100 : float
Dynamic viscosity of fluid at 100°C, [m^2/s]
226 Chapter 1. thermo
thermo Documentation, Release 0.1
rounding : bool, optional
Whether to round the value or not.
Returns VI: float
Viscosity index [-]
Notes
VI is undefined for nu_100 under 2 mm^2/s. None is returned if this is the case. Internal units are mm^2/s.Higher values of viscosity index suggest a lesser decrease in kinematic viscosity as temperature increases.
References
[R327]
Examples
>>> viscosity_index(73.3E-6, 8.86E-6, rounding=True)92
thermo.viscosity.viscosity_liquid_mixture(T=None, MW=None, zs=None, ws=None,mus=None, CASRNs=None, AvailableMeth-ods=False, Method=None)
This function handles the retrival of a mixture’s liquid viscosity.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
>>> viscosity_liquid_mixture(zs=[0.5, 0.5], mus=[7.413E-4, 1.3388E-3],... Method='Logarithmic mixing, molar')0.0009962190722928369>>> viscosity_liquid_mixture(T=278.15, ws=[0.99419, 0.005810],... CASRNs=['7732-18-5', '7647-14-5'])0.0015285828581961414
thermo.viscosity.volume_liquid_methods = [’CoolProp’, ‘Dutt and Prasad’, ‘Viswanath and Natarajan Dynamic 3-term’, ‘Viswanath and Natarajan Dynamic 2-term’, ‘Viswanath and Natarajan Dynamic 2-term exponential’, ‘VDI Saturation’, ‘Letsou and Stiel (1973)’, ‘Przedziecki-Sridhar (1985)’]Holds all low-pressure methods available for the ViscosityLiquid class, for use in iterating over them.
thermo.viscosity.volume_liquid_methods_P = [’CoolProp’, ‘Lucas (1974)’]Holds all high-pressure methods available for the ViscosityLiquid class, for use in iterating over them.
thermo.volume module
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
1.1. thermo package 227
thermo Documentation, Release 0.1
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
thermo.volume.Amgat(xs, Vms)Calculate mixture liquid density using the Amgat mixing rule. Highly inacurate, but easy to use. Assumes idealiquids with no excess volume. Average molecular weight should be used with it to obtain density.
𝑉𝑚𝑖𝑥 =∑𝑖
𝑥𝑖𝑉𝑖
or in terms of density:
𝜌𝑚𝑖𝑥 =∑ 𝑥𝑖
𝜌𝑖
Parameters xs: array
Mole fractions of each component, []
Vms : array
Molar volumes of each fluids at conditions [m^3/mol]
Returns Vm : float
Mixture liquid volume [m^3/mol]
Notes
Units are that of the given volumes. It has been suggested to use this equation with weight fractions, but theresults have been less accurate.
Examples
>>> Amgat([0.5, 0.5], [4.057e-05, 5.861e-05])4.9590000000000005e-05
thermo.volume.Bhirud_normal(T, Tc, Pc, omega)Calculates saturation liquid density using the Bhirud [R328] CSP method. Uses Critical temperature and pres-sure and acentric factor.
The density of a liquid is given by:
ln𝑃𝑐
𝜌𝑅𝑇= ln𝑈 (0) + 𝜔 ln𝑈 (1)
ln𝑈 (0) = 1.39644 − 24.076𝑇𝑟 + 102.615𝑇 2𝑟 − 255.719𝑇 3
𝑟 + 355.805𝑇 4𝑟 − 256.671𝑇 5
𝑟 + 75.1088𝑇 6𝑟
ln𝑈 (1) = 13.4412 − 135.7437𝑇𝑟 + 533.380𝑇 2𝑟 − 1091.453𝑇 3
𝑟 + 1231.43𝑇 4𝑟 − 728.227𝑇 5
𝑟 + 176.737𝑇 6𝑟
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
228 Chapter 1. thermo
thermo Documentation, Release 0.1
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns Vm : float
Saturated liquid molar volume, [mol/m^3]
Notes
Claimed inadequate by others.
An interpolation table for ln U values are used from Tr = 0.98 - 1.000. Has terrible behavior at low reducedtemperatures.
References
[R328]
Examples
Pentane
>>> Bhirud_normal(280.0, 469.7, 33.7E5, 0.252)0.00011249654029488583
thermo.volume.COSTALD(T, Tc, Vc, omega)Calculate saturation liquid density using the COSTALD CSP method.
A popular and accurate estimation method. If possible, fit parameters are used; alternatively critical propertieswork well.
The density of a liquid is given by:
𝑉𝑠 = 𝑉 *𝑉 (0)[1 − 𝜔𝑆𝑅𝐾𝑉(𝛿)]
𝑉 (0) = 1 − 1.52816(1 − 𝑇𝑟)1/3 + 1.43907(1 − 𝑇𝑟)2/3 − 0.81446(1 − 𝑇𝑟) + 0.190454(1 − 𝑇𝑟)4/3
𝑉 (𝛿) =−0.296123 + 0.386914𝑇𝑟 − 0.0427258𝑇 2
𝑟 − 0.0480645𝑇 3𝑟
𝑇𝑟 − 1.00001
Units are that of critical or fit constant volume.
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]. This parameter is alternatively a fit parameter
omega : float
(ideally SRK) Acentric factor for fluid, [-] This parameter is alternatively a fit parameter.
1.1. thermo package 229
thermo Documentation, Release 0.1
Returns Vs : float
Saturation liquid volume
Notes
196 constants are fit to this function in [R329]. Range: 0.25 < Tr < 0.95, often said to be to 1.0
This function has been checked with the API handbook example problem.
References
[R329]
Examples
Propane, from an example in the API Handbook
>>> Vm_to_rho(COSTALD(272.03889, 369.83333, 0.20008161E-3, 0.1532), 44.097)530.3009967969841
thermo.volume.COSTALD_compressed(T, P, Psat, Tc, Pc, omega, Vs)Calculates compressed-liquid volume, using the COSTALD [R330] CSP method and a chemical’s critical prop-erties.
The molar volume of a liquid is given by:
𝑉 = 𝑉𝑠
(1 − 𝐶 ln
𝐵 + 𝑃
𝐵 + 𝑃 𝑠𝑎𝑡
)𝐵
𝑃𝑐= −1 + 𝑎𝜏1/3 + 𝑏𝜏2/3 + 𝑑𝜏 + 𝑒𝜏4/3
𝑒 = exp(𝑓 + 𝑔𝜔𝑆𝑅𝐾 + ℎ𝜔2𝑆𝑅𝐾)
𝐶 = 𝑗 + 𝑘𝜔𝑆𝑅𝐾
Parameters T : float
Temperature of fluid [K]
P : float
Pressure of fluid [Pa]
Psat : float
Saturation pressure of the fluid [Pa]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
(ideally SRK) Acentric factor for fluid, [-] This parameter is alternatively a fit parameter.
Vs : float
230 Chapter 1. thermo
thermo Documentation, Release 0.1
Saturation liquid volume, [m^3/mol]
Returns V_dense : float
High-pressure liquid volume, [m^3/mol]
Notes
Original equation was in terms of density, but it is converted here.
The example is from DIPPR, and exactly correct. This is DIPPR Procedure 4C: Method for Estimating theDensity of Pure Organic Liquids under Pressure.
References
[R330]
Examples
>>> COSTALD_compressed(303., 9.8E7, 85857.9, 466.7, 3640000.0, 0.281, 0.000105047)9.287482879788506e-05
thermo.volume.COSTALD_mixture(xs, T, Tcs, Vcs, omegas)Calculate mixture liquid density using the COSTALD CSP method.
A popular and accurate estimation method. If possible, fit parameters are used; alternatively critical propertieswork well.
The mixing rules giving parameters for the pure component COSTALD equation are:
𝑇𝑐𝑚 =
∑𝑖
∑𝑗 𝑥𝑖𝑥𝑗(𝑉𝑖𝑗𝑇𝑐𝑖𝑗)
𝑉𝑚
𝑉𝑚 = 0.25
[∑𝑥𝑖𝑉𝑖 + 3(
∑𝑥𝑖𝑉
2/3𝑖 )(
∑𝑖
𝑥𝑖𝑉1/3𝑖 )
]𝑉𝑖𝑗𝑇𝑐𝑖𝑗 = (𝑉𝑖𝑇𝑐𝑖𝑉𝑗𝑇𝑐𝑗)
0.5
𝜔 =∑𝑖
𝑧𝑖𝜔𝑖
Parameters xs: list
Mole fractions of each component
T : float
Temperature of fluid [K]
Tcs : list
Critical temperature of fluids [K]
Vcs : list
Critical volumes of fluids [m^3/mol]. This parameter is alternatively a fit parameter
omegas : list
(ideally SRK) Acentric factor of all fluids, [-] This parameter is alternatively a fit pa-rameter.
1.1. thermo package 231
thermo Documentation, Release 0.1
Returns Vs : float
Saturation liquid mixture volume
Notes
Range: 0.25 < Tr < 0.95, often said to be to 1.0 No example has been found. Units are that of critical or fitconstant volume.
References
[R331]
Examples
>>> COSTALD_mixture([0.4576, 0.5424], 298., [512.58, 647.29],[0.000117, 5.6e-05], [0.559,0.344] )2.706588773271354e-05
thermo.volume.CRC_inorganic(T, rho0, k, Tm)Calculates liquid density of a molten element or salt at temperature above the melting point. Some coefficientsare given nearly up to the boiling point.
The mass density of the inorganic liquid is given by:
𝜌 = 𝜌0 − 𝑘(𝑇 − 𝑇𝑚)
Parameters T : float
Temperature of the liquid, [K]
rho0 : float
Mass density of the liquid at Tm, [kg/m^3]
k : float
Linear temperature dependence of the mass density, [kg/m^3/K]
Tm : float
The normal melting point, used in the correlation [K]
Returns rho : float
Mass density of molten metal or salt, [kg/m^3]
Notes
[R332] has units of g/mL. While the individual densities could have been converted to molar units, the tempera-ture coefficient could only be converted by refitting to calculated data. To maintain compatibility with the formof the equations, this was not performed.
This linear form is useful only in small temperature ranges. Coefficients for one compound could be used topredict the temperature dependence of density of a similar compound.
232 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R332]
Examples
>>> CRC_inorganic(300, 2370.0, 2.687, 239.08)2206.30796
thermo.volume.Campbell_Thodos(T, Tb, Tc, Pc, M, dipole=None, hydroxyl=False)Calculate saturation liquid density using the Campbell-Thodos [R333] CSP method.
An old and uncommon estimation method.
𝑉𝑠 =𝑅𝑇𝑐𝑃𝑐
𝑍𝑅𝐴[1+(1−𝑇𝑟)
2/7]
𝑍𝑅𝐴 = 𝛼+ 𝛽(1 − 𝑇𝑟)
𝛼 = 0.3883 − 0.0179𝑠
𝑠 = 𝑇𝑏𝑟ln𝑃𝑐
(1 − 𝑇𝑏𝑟)
𝛽 = 0.00318𝑠− 0.0211 + 0.625Λ1.35
Λ =𝑃
1/3𝑐
𝑀1/2𝑇5/6𝑐
For polar compounds:
𝜃 = 𝑃𝑐𝜇2/𝑇 2
𝑐
𝛼 = 0.3883 − 0.0179𝑠− 130540𝜃2.41
𝛽 = 0.00318𝑠− 0.0211 + 0.625Λ1.35 + 9.74 × 106𝜃3.38
Polar Combounds with hydroxyl groups (water, alcohols)
𝛼 =
[0.690𝑇𝑏𝑟 − 0.3342 +
5.79 × 10−10
𝑇 32.75𝑏𝑟
]𝑃 0.145𝑐
𝛽 = 0.00318𝑠− 0.0211 + 0.625Λ1.35 + 5.90Θ0.835
Parameters T : float
Temperature of fluid [K]
Tb : float
Boiling temperature of the fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
M : float
Molecular weight of the fluid [g/mol]
dipole : float, optional
1.1. thermo package 233
thermo Documentation, Release 0.1
Dipole moment of the fluid [debye]
hydroxyl : bool, optional
Swith to use the hydroxyl variant for polar fluids
Returns Vs : float
Saturation liquid volume
Notes
If a dipole is provided, the polar chemical method is used. The paper is an excellent read. Pc is internallyconverted to atm.
References
[R333]
Examples
Ammonia, from [R333].
>>> Campbell_Thodos(T=405.45, Tb=239.82, Tc=405.45, Pc=111.7*101325, M=17.03, dipole=1.47)7.347363635885525e-05
thermo.volume.Goodman(T, Tt, rhol)Calculates solid density at T using the simple relationship by a member of the DIPPR.
The molar volume of a solid is given by:
1
𝑉𝑚=
(1.28 − 0.16
𝑇
𝑇𝑡
)1
𝑉 𝑚𝐿(𝑇𝑡)
Parameters T : float
Temperature of fluid [K]
Tt : float
Triple temperature of fluid [K]
rhol : float
Liquid density, [m^3/mol]
Returns rhos : float
Solid volume, [m^3/mol]
Notes
Works to the next solid transition temperature or to approximately 0.3Tt.
References
[R334]
234 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Goodman(281.46, 353.43, 7.6326)8.797191839062899
thermo.volume.Rackett(T, Tc, Pc, Zc)Calculates saturation liquid volume, using Rackett CSP method and critical properties.
The molar volume of a liquid is given by:
𝑉𝑠 =𝑅𝑇𝑐𝑃𝑐
𝑍𝑐[1+(1−𝑇/𝑇𝑐)
2/7]
Units are all currently in m^3/mol - this can be changed to kg/m^3
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
Zc : float
Critical compressibility of fluid, [-]
Returns Vs : float
Saturation liquid volume, [m^3/mol]
Notes
Units are dependent on gas constant R, imported from scipy According to Reid et. al, underpredicts volume forcompounds with Zc < 0.22
References
[R335]
Examples
Propane, example from the API Handbook
>>> Vm_to_rho(Rackett(272.03889, 369.83, 4248000.0, 0.2763), 44.09562)531.3223212651092
thermo.volume.Rackett_mixture(T, xs, MWs, Tcs, Pcs, Zrs)Calculate mixture liquid density using the Rackett-derived mixing rule as shown in [R337].
𝑉𝑚 =∑𝑖
𝑥𝑖𝑇𝑐𝑖𝑀𝑊𝑖𝑃𝑐𝑖
𝑍(1+(1−𝑇𝑟)
2/7)𝑅,𝑚 𝑅
∑𝑖
𝑥𝑖𝑀𝑊𝑖
Parameters T : float
1.1. thermo package 235
thermo Documentation, Release 0.1
Temperature of liquid [K]
xs: list
Mole fractions of each component, []
MWs : list
Molecular weights of each component [g/mol]
Tcs : list
Critical temperatures of each component [K]
Pcs : list
Critical pressures of each component [Pa]
Zrs : list
Rackett parameters of each component []
Returns Vm : float
Mixture liquid volume [m^3/mol]
Notes
Model for pure compounds in [R336] forms the basis for this model, shown in [R337]. Molecular weights areused as weighing by such has been found to provide higher accuracy in [R337]. The model can also be usedwithout molecular weights, but results are somewhat different.
As with the Rackett model, critical compressibilities may be used if Rackett parameters have not been regressed.
Critical mixture temperature, and compressibility are all obtained with simple mixing rules.
References
[R336], [R337]
Examples
Calculation in [R337] for methanol and water mixture. Result matches example.
>>> Rackett_mixture(T=298., xs=[0.4576, 0.5424], MWs=[32.04, 18.01], Tcs=[512.58, 647.29], Pcs=[8.096E6, 2.209E7], Zrs=[0.2332, 0.2374])2.625288603174508e-05
thermo.volume.SNM0(T, Tc, Vc, omega, delta_SRK=None)Calculates saturated liquid density using the Mchaweh, Moshfeghian model [R338]. Designed for simple cal-culations.
𝑉𝑠 = 𝑉𝑐/(1 + 1.169𝜏1/3 + 1.818𝜏2/3 − 2.658𝜏 + 2.161𝜏4/3
𝜏 = 1 − (𝑇/𝑇𝑐)
𝛼𝑆𝑅𝐾
𝛼𝑆𝑅𝐾 = [1 +𝑚(1 −√𝑇/𝑇𝐶 ]2
𝑚 = 0.480 + 1.574𝜔 − 0.176𝜔2
236 Chapter 1. thermo
thermo Documentation, Release 0.1
If the fit parameter delta_SRK is provided, the following is used:
𝑉𝑠 = 𝑉𝐶/(1 + 1.169𝜏1/3 + 1.818𝜏2/3 − 2.658𝜏 + 2.161𝜏4/3)/[1 + 𝛿𝑆𝑅𝐾(𝛼𝑆𝑅𝐾 − 1)1/3
]Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]
omega : float
Acentric factor for fluid, [-]
delta_SRK : float, optional
Fitting parameter [-]
Returns Vs : float
Saturation liquid volume, [m^3/mol]
Notes
73 fit parameters have been gathered from the article.
References
[R338]
Examples
Argon, without the fit parameter and with it. Tabulated result in Perry’s is 3.4613e-05. The fit increases the erroron this occasion.
>>> SNM0(121, 150.8, 7.49e-05, -0.004)3.4402256402733416e-05>>> SNM0(121, 150.8, 7.49e-05, -0.004, -0.03259620)3.493288100008123e-05
thermo.volume.Townsend_Hales(T, Tc, Vc, omega)Calculates saturation liquid density, using the Townsend and Hales CSP method as modified from the originalRiedel equation. Uses chemical critical volume and temperature, as well as acentric factor
The density of a liquid is given by:
𝑉 𝑠 = 𝑉𝑐/(
1 + 0.85(1 − 𝑇𝑟) + (1.692 + 0.986𝜔)(1 − 𝑇𝑟)1/3)
Parameters T : float
Temperature of fluid [K]
Tc : float
1.1. thermo package 237
thermo Documentation, Release 0.1
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]
omega : float
Acentric factor for fluid, [-]
Returns Vs : float
Saturation liquid volume, [m^3/mol]
Notes
The requirement for critical volume and acentric factor requires all data.
References
[R339]
Examples
>>> Townsend_Hales(300, 647.14, 55.95E-6, 0.3449)1.8007361992619923e-05
class thermo.volume.VolumeGas(CASRN=’‘, MW=None, Tc=None, Pc=None, omega=None,dipole=None)
Bases: thermo.utils.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 forcalculating second virial coefficients, one source of polynomials for calculating second virial coefficients, oneequation of state (Peng-Robinson), and the ideal gas law.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
omega : float, optional
Acentric factor, [-]
dipole : float, optional
Dipole, [debye]
238 Chapter 1. thermo
thermo Documentation, Release 0.1
See also:
thermo.virial.BVirial_Pitzer_Curl, thermo.virial.BVirial_Abbott,thermo.virial.BVirial_Tsonopoulos, thermo.virial.BVirial_Tsonopoulos_Extended
Notes
A string holding each method’s name is assigned to the following variables in this module, intended as the mostconvenient 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 [R340]. The full expression is:
𝐵 =
4∑1
𝑎𝑖 [𝑇0/298.15 − 1]𝑖−1
TSONOPOULOS_EXTENDED: CSP method for second virial coefficients, described inthermo.virial.BVirial_Tsonopoulos_Extended
TSONOPOULOS: CSP method for second virial coefficients, described inthermo.virial.BVirial_Tsonopoulos
ABBOTT: CSP method for second virial coefficients, described in thermo.virial.BVirial_Abbott.This method is the simplest CSP method implemented.
PITZER_CURL: CSP method for second virial coefficients, described inthermo.virial.BVirial_Pitzer_Curl.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R341]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R340], [R341]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.
Continued on next page
1.1. thermo package 239
thermo Documentation, Release 0.1
Table 1.17 – continued from previous pageT_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.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.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.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.test_property_validity(prop) Method to test the validity of a calculated property.
Pmax = 1000000000.0Maximum pressure at which no method can calculate gas molar volume above.
Pmin = 0Minimum pressure at which no method can calculate gas molar volume under.
Tmax = NoneMaximum temperature at which no method can calculate the gas molar volume above.
Tmin = NoneMinimum temperature at which no method can calculate the gas molar volume under.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate_P(T, P, method)Method to calculate pressure-dependent gas molar volume at temperature T and pressure P with a givenmethod.
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
Temperature at which to calculate molar volume, [K]
P : float
240 Chapter 1. thermo
thermo Documentation, Release 0.1
Pressure at which to calculate molar volume, [K]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the gas at T and P, [m^3/mol]
interpolation_P = NoneNo interpolation transformation by default.
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets obj:all_methods_P as aset of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Gas molar volume’
property_max = 10000000000.0Maximum valid value of gas molar volume. Set roughly at an ideal gas at 1 Pa and 2 billion K.
property_min = 0Mimimum 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 = [’PR’, ‘Tsonopoulos extended’, ‘Tsonopoulos’, ‘Abbott’, ‘Pitzer-Curl’, ‘CRC virial polynomials’, ‘CoolProp’, ‘Ideal gas’]Default rankings of the pressure-dependent methods.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instances
1.1. thermo package 241
thermo Documentation, Release 0.1
for each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity_P(T, P, method)Method to check the validity of a pressure and temperature dependent gas molar volume method. For thefour CSP methods that calculate second virial coefficient, the method is considered valid for all tempera-tures and pressures, with validity checking based on the result only. For CRC_VIRIAL, there is no limitbut there should be one; at some conditions, a negative volume will result! For COOLPROP, the fluidmust 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 iftabular_extrapolation_permitted is set; if it is, the extrapolation is considered validfor all temperatures and pressures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
P : float
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘mol/m^3’
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
class thermo.volume.VolumeLiquid(MW=None, Tb=None, Tc=None, Pc=None, Vc=None,Zc=None, omega=None, dipole=None, Psat=None, CASRN=’‘)
Bases: thermo.utils.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 arefive coefficient-based methods from five data sources, one source of tabular information, one source of constantvalues, eight corresponding-states estimators, and the external library CoolProp.
For high-pressure liquids (also, <1 atm liquids), there is one corresponding-states estimator, and the externallibrary CoolProp.
Parameters CASRN : str, optional
The CAS number of the chemical
MW : float, optional
Molecular weight, [g/mol]
242 Chapter 1. thermo
thermo Documentation, Release 0.1
Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
Vc : float, optional
Critical volume, [m^3/mol]
Zc : float, optional
Critical compressibility
omega : float, optional
Acentric factor, [-]
dipole : float, optional
Dipole, [debye]
Psat : float or callable, optional
Vapor pressure at a given temperature, or callable for the same [Pa]
See also:
Yen_Woods_saturation, Rackett, Yamada_Gunn, Townsend_Hales, Bhirud_normal,COSTALD, Campbell_Thodos, SNM0, CRC_inorganic, COSTALD_compressed
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the lists stored insurface_tension_methods and volume_liquid_methods_P for low and high pressure methodsrespectively.
Low pressure methods:
PERRYDIPPR: A simple polynomial as expressed in [R342], with data available for 344 fluids. Temperaturelimits are available for all fluids. Believed very accurate.
MMSNM0FIT: Uses a fit coefficient for better accuracy in the SNM0 method, Coefficients available for 73fluids from [R343]. Valid to the critical point.
HTCOSTALDFIT: A method with two fit coefficients to the COSTALD method. Coefficients available for192 fluids, from [R344]. Valid to the critical point.
RACKETTFIT: The Racket method, with a fit coefficient Z_RA. Data is available for 186 fluids, from[R344]. Valid to the critical point.
CRC_INORG_L: Single-temperature coefficient linear model in terms of mass density for the density of in-organic liquids; converted to molar units internally. Data is available for 177 fluids normally valid over anarrow range above the melting point, from [R345]; described in CRC_inorganic.
MMSNM0: CSP method, described in SNM0.
HTCOSTALD: CSP method, described in COSTALD.
1.1. thermo package 243
thermo Documentation, Release 0.1
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 theequations of state it uses, as described in [R346]. Very slow.
CRC_INORG_L_CONST: Constant inorganic liquid densities, in [R345].
VDI_TABULAR: Tabular data in [R347] along the saturation curve; interpolation is as set by the user or thedefault.
High pressure methods:
COSTALD_COMPRESSED: CSP method, described in COSTALD_compressed. Calculates a low-pressure molar volume first, using T_dependent_property.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R346]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R342], [R343], [R344], [R345], [R346], [R347]
Attributes
interpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checking and without specifying a specific method.TP_dependent_property_derivative_P(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order.TP_dependent_property_derivative_T(T, P[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order.T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.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.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.
Continued on next page
244 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.18 – continued from previous pagecalculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to pressure at constant temperature, of a given order using a specified method.calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and pressure dependent property with respect to temperature at constant pressure, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.interpolate_P(T, P, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data_P.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperature at a specific pressure according to either a specified list of methods, or user methods (if set), or all methods.plot_isotherm(T[, Pmin, Pmax, methods_P, ...]) Method to create a plot of the property vs pressure at a specified temperature according to either a specified list of methods, or the user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.select_valid_methods_P(T, P) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_tabular_data_P(Ts, Ps, properties[, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.set_user_methods_P(user_methods_P[, forced_P]) Method to set the pressure-dependent property methods desired for consideration by the user.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.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.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the liquid molar volume above.
Tmin = NoneMinimum temperature at which no method can calculate the liquid molar volume under.
all_methods = NoneSet of all low-pressure methods available for a given CASRN and properties; filled byload_all_methods.
all_methods_P = NoneSet of all high-pressure methods available for a given CASRN and properties; filled byload_all_methods.
calculate(T, method)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 T : float
Temperature at which to calculate molar volume, [K]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the liquid at T and a low pressure, [m^3/mol]
calculate_P(T, P, method)Method to calculate pressure-dependent liquid molar volume at temperature T and pressure P with a givenmethod.
This method has no exception handling; see TP_dependent_property for that.
Parameters T : float
1.1. thermo package 245
thermo Documentation, Release 0.1
Temperature at which to calculate molar volume, [K]
P : float
Pressure at which to calculate molar volume, [K]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the liquid at T and P, [m^3/mol]
interpolation_P = NoneNo interpolation transformation by default.
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries andDataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, all_methodsand obj:all_methods_P as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Liquid molar volume’
property_max = 0.002Maximum valid value of liquid molar volume. Generous limit.
property_min = 0Mimimum valid value of liquid molar volume. It should normally occur at the triple point, and be wellabove this.
ranked_methods = [”Perry’s Handbook Table 2-32 DIPPR”, ‘CoolProp’, ‘Mchaweh and Moshfeghian SNM0 (2004) fitted’, ‘VDI Saturation’, ‘Hankinson and Thomson COSTALD (1979) fitted’, ‘Rackett (1970) fitted’, ‘CRC Handbook, Density of Molten Elements and Representative Salts’, ‘CRC Handbook, Physical Constants of Inorganic Compounds, liquid densities’, ‘Mchaweh and Moshfeghian SNM0 (2004)’, ‘Hankinson and Thomson COSTALD (1979)’, ‘Yen Woods saturation’, ‘Rackett (1970)’, ‘Yamada Gunn’, ‘Bhirud normal’, ‘Townsend Hales’, ‘Campbell Thodos’]Default rankings of the low-pressure methods.
ranked_methods_P = [’CoolProp’, ‘Hankinson and Thomson COSTALD (1982) compressed’]Default rankings of the high-pressure methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
sorted_valid_methods_P = Nonesorted_valid_methods_P, list: Stored methods which were found valid at a specific temperature; set byTP_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_P = Nonetabular_data_P, dict: Stored (Ts, Ps, properties) for any tabular data; indexed by provided or autogeneratedname.
246 Chapter 1. thermo
thermo Documentation, Release 0.1
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_data_interpolators_P = Nonetabular_data_interpolators_P, dict: Stored (extrapolator, spline) tuples which are interp2d instancesfor each set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_P, interpola-tion_property, interpolation_property_inv) to ensure that if an interpolation transform is altered, the oldinterpolator which had been created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. ForCSP methods, the models are considered valid from 0 K to the critical point. For tabular data, extrapolationoutside of the range is used if tabular_extrapolation_permitted is set; if it is, the extrapolationis considered valid for all temperatures.
It is not guaranteed that a method will work or give an accurate prediction simply because this methodconsiders the method valid.
BHIRUD_NORMAL behaves poorly at low temperatures and is not used under 0.35Tc. The constantvalue available for inorganic chemicals, from method CRC_INORG_L_CONST, is considered valid forall temperatures.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
test_method_validity_P(T, P, method)Method to check the validity of a high-pressure method. For COOLPROP, the fluid must be both aliquid and under the maximum pressure of the fluid’s EOS. COSTALD_COMPRESSED is consideredvalid for all values of temperature and pressure. However, it very often will not actually work, due to theform 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 methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
P : float
Pressure at which to test the method, [Pa]
method : str
Name of the method to test
Returns validity : bool
1.1. thermo package 247
thermo Documentation, Release 0.1
Whether or not a method is valid
units = ‘mol/m^3’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
user_methods_P = Noneuser_methods_P, list: Stored methods which were specified by the user in a ranked order of preference; setby TP_dependent_property.
class thermo.volume.VolumeSolid(CASRN=’‘, MW=None, Tt=None, Vml_Tt=None)Bases: thermo.utils.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 CASRN : str, optional
CAS number
MW : float, optional
Molecular weight, [g/mol]
Tt : float, optional
Triple temperature
Vml_Tt : float, optional
Liquid molar volume at the triple point
See also:
Goodman
Notes
A string holding each method’s name is assigned to the following variables in this module, intendedas the most convenient way to refer to a method. To iterate over all methods, use the list stored involume_solid_methods.
CRC_INORG_S: Constant values in [R348], for 1872 chemicals.
GOODMAN: Simple method using the liquid molar volume. Good up to 0.3*Tt. See Goodman for details.
References
[R348]
Attributes
interpolation_Tinterpolation_propertyinterpolation_property_invmethod
248 Chapter 1. thermo
thermo Documentation, Release 0.1
Methods
T_dependent_property(T) Method to calculate the property with sanity checking and without specifying a specific method.T_dependent_property_derivative(T[, order]) Method to obtain a derivative of a property with respect to temperature, of a given order.T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with respect to temperature, using a specified method.T_dependent_property_integral_over_T(T1, T2) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.calculate(T, method) Method to calculate the molar volume of a solid at tempearture T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with respect to temperature, of a given order using a specified method.calculate_integral(T1, T2, method) Method to calculate the integral of a property with respect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over temperature with respect to temperature, using a specified method.interpolate(T, name) Method to perform interpolation on a given tabular data set previously added via set_tabular_data.load_all_methods() Method which picks out coefficients for the specified chemical from the various dictionaries and DataFrames storing it.plot_T_dependent_property([Tmin, Tmax, ...]) Method to create a plot of the property vs temperature according to either a specified list of methods, or user methods (if set), or all methods.select_valid_methods(T) Method to obtain a sorted list methods which are valid at T according to test_method_validity.set_tabular_data(Ts, properties[, name, ...]) Method to set tabular data to be used for interpolation.set_user_methods(user_methods[, forced]) Method used to select certain property methods as having a higher priority than were set by default.solve_prop(goal[, reset_method]) Method to solve for the temperature at which a property is at a specified value.test_method_validity(T, method) Method to check the validity of a method.test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the solid molar volume above; assumed 10 000K even under ultra-high pressure.
Tmin = NoneMinimum temperature at which no method can calculate the solid molar volume under.
all_methods = NoneSet of all methods available for a given CASRN and properties; filled by load_all_methods.
calculate(T, method)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 T : float
Temperature at which to calculate molar volume, [K]
method : str
Name of the method to use
Returns Vms : float
Molar volume of the solid at T, [m^3/mol]
interpolation_T = NoneNo interpolation transformation by default.
interpolation_property = NoneNo interpolation transformation by default.
interpolation_property_inv = NoneNo interpolation transformation by default.
load_all_methods()Method which picks out coefficients for the specified chemical from the various dictionaries and
1.1. thermo package 249
thermo Documentation, Release 0.1
DataFrames storing it. All data is stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods for which the data exists for.
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘Solid molar volume’
property_max = 0.002Maximum value of Heat capacity; arbitrarily set to 0.002, as the largest in the data is 0.00136.
property_min = 0Molar volume cannot be under 0.
ranked_methods = [’CRC Inorganic solid constants’]Default rankings of the available methods.
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set byT_dependent_property.
tabular_data = Nonetabular_data, dict: Stored (Ts, properties) for any tabular data; indexed by provided or autogenerated name.
tabular_data_interpolators = Nonetabular_data_interpolators, dict: Stored (extrapolator, spline) tuples which are interp1d instances foreach set of tabular data; indexed by tuple of (name, interpolation_T, interpolation_property, interpola-tion_property_inv) to ensure that if an interpolation transform is altered, the old interpolator which hadbeen created is no longer used.
tabular_extrapolation_permitted = TrueAllow tabular extrapolation by default.
test_method_validity(T, method)Method to check the validity of a method. Follows the given ranges for all coefficient-based methods. Fortabular data, extrapolation outside of the range is used if tabular_extrapolation_permitted isset; 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 methodconsiders the method valid.
Parameters T : float
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
units = ‘mol/m^3’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby T_dependent_property.
thermo.volume.Yamada_Gunn(T, Tc, Pc, omega)Calculates saturation liquid volume, using Yamada and Gunn CSP method and a chemical’s critical propertiesand acentric factor.
250 Chapter 1. thermo
thermo Documentation, Release 0.1
The molar volume of a liquid is given by:
𝑉𝑠 =𝑅𝑇𝑐𝑃𝑐
(0.29056 − 0.08775𝜔)[1+(1−𝑇/𝑇𝑐)
2/7]
Units are in m^3/mol.
Parameters T : float
Temperature of fluid [K]
Tc : float
Critical temperature of fluid [K]
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns Vs : float
saturation liquid volume, [m^3/mol]
Notes
This equation is an improvement on the Rackett equation. This is often presented as the Rackett equation. Theacentric factor is used here, instead of the critical compressibility A variant using a reference fluid also exists
References
[R349], [R350]
Examples
>>> Yamada_Gunn(300, 647.14, 22048320.0, 0.245)2.1882836429895796e-05
thermo.volume.Yen_Woods_saturation(T, Tc, Vc, Zc)Calculates saturation liquid volume, using the Yen and Woods [R351] CSP method and a chemical’s criticalproperties.
The molar volume of a liquid is given by:
𝑉 𝑐/𝑉 𝑠 = 1 +𝐴(1 − 𝑇𝑟)1/3 +𝐵(1 − 𝑇𝑟)2/3 +𝐷(1 − 𝑇𝑟)4/3
𝐷 = 0.93 −𝐵
𝐴 = 17.4425 − 214.578𝑍𝑐 + 989.625𝑍2𝑐 − 1522.06𝑍3
𝑐
𝐵 = −3.28257 + 13.6377𝑍𝑐 + 107.4844𝑍2𝑐 − 384.211𝑍3
𝑐 if 𝑍𝑐 ≤ 0.26
𝐵 = 60.2091 − 402.063𝑍𝑐 + 501.0𝑍2𝑐 + 641.0𝑍3
𝑐 if 𝑍𝑐 ≥ 0.26
Parameters T : float
Temperature of fluid [K]
Tc : float
1.1. thermo package 251
thermo Documentation, Release 0.1
Critical temperature of fluid [K]
Vc : float
Critical volume of fluid [m^3/mol]
Zc : float
Critical compressibility of fluid, [-]
Returns Vs : float
Saturation liquid volume, [m^3/mol]
Notes
Original equation was in terms of density, but it is converted here.
No example has been found, nor are there points in the article. However, it is believed correct. For compressedliquids with the Yen-Woods method, see the YenWoods_compressed function.
References
[R351]
Examples
>>> Yen_Woods_saturation(300, 647.14, 55.45E-6, 0.245)1.7695330765295693e-05
thermo.volume.ideal_gas(T, P)Calculates ideal gas molar volume. The molar volume of an ideal gas is given by:
𝑉 =𝑅𝑇
𝑃
Parameters T : float
Temperature of fluid [K]
P : float
Pressure of fluid [Pa]
Returns V : float
Gas volume, [m^3/mol]
References
[R352]
252 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> ideal_gas(298.15, 101325.)0.02446539540458919
thermo.volume.volume_gas_methods = [’PR’, ‘CRC virial polynomials’, ‘Tsonopoulos extended’, ‘Tsonopoulos’, ‘Abbott’, ‘Pitzer-Curl’, ‘Ideal gas’]Holds all methods available for the VolumeGas class, for use in iterating over them.
thermo.volume.volume_gas_mixture(ys=None, Vms=None, T=None, P=None, Tc=None,Pc=None, omega=None, MW=None, CASRNs=None,AvailableMethods=False, Method=None)
This function handles the retrival of a gas mixture’s density.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
thermo.volume.volume_liquid_methods = [”Perry’s Handbook Table 2-32 DIPPR”, ‘CoolProp’, ‘Mchaweh and Moshfeghian SNM0 (2004) fitted’, ‘VDI Saturation’, ‘Hankinson and Thomson COSTALD (1979) fitted’, ‘Rackett (1970) fitted’, ‘CRC Handbook, Density of Molten Elements and Representative Salts’, ‘CRC Handbook, Physical Constants of Inorganic Compounds, liquid densities’, ‘Mchaweh and Moshfeghian SNM0 (2004)’, ‘Hankinson and Thomson COSTALD (1979)’, ‘Yen Woods saturation’, ‘Rackett (1970)’, ‘Yamada Gunn’, ‘Bhirud normal’, ‘Townsend Hales’, ‘Campbell Thodos’]Holds all low-pressure methods available for the VolumeLiquid class, for use in iterating over them.
thermo.volume.volume_liquid_methods_P = [’CoolProp’, ‘Hankinson and Thomson COSTALD (1982) compressed’]Holds all high-pressure methods available for the VolumeLiquid class, for use in iterating over them.
thermo.volume.volume_liquid_mixture(xs=None, ws=None, Vms=None, T=None, MWs=None,MW=None, Tcs=None, Pcs=None, Vcs=None,Zcs=None, omegas=None, Tc=None, Pc=None,Vc=None, Zc=None, omega=None, CASRNs=None,AvailableMethods=False, Method=None, Molar=False)
This function handles the retrival of a liquid mixture’s density.
This API is considered experimental, and is expected to be removed in a future release in favor of a morecomplete object-oriented interface.
thermo.volume.volume_solid_methods = [’Goodman (2004)’, ‘CRC Inorganic solid constants’]Holds all methods available for the VolumeSolid class, for use in iterating over them.
1.1.2 Module contents
Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell<[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen-tation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whomthe Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PAR-TICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHTHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT-WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1.1. thermo package 253
thermo Documentation, Release 0.1
254 Chapter 1. thermo
CHAPTER 2
Indices and tables
• genindex
• modindex
• search
255
thermo Documentation, Release 0.1
256 Chapter 2. Indices and tables
Bibliography
[R1] Pitzer, K. S., D. Z. Lippmann, R. F. Curl, C. M. Huggins, and D. E. Petersen: The Volumetric and Thermody-namic Properties of Fluids. II. Compressibility Factor, Vapor Pressure and Entropy of Vaporization. J. Am. Chem.Soc., 77: 3433 (1955).
[R2] Horstmann, Sven, Anna Jabłoniec, Jörg Krafczyk, Kai Fischer, and Jürgen Gmehling. “PSRK Group Con-tribution Equation of State: Comprehensive Revision and Extension IV, Including Critical Constants and A-Function Parameters for 1000 Components.” Fluid Phase Equilibria 227, no. 2 (January 25, 2005): 157-64.doi:10.1016/j.fluid.2004.11.002.
[R3] Passut, Charles A., and Ronald P. Danner. “Acentric Factor. A Valuable Correlating Parameter for the Propertiesof Hydrocarbons.” Industrial & Engineering Chemistry Process Design and Development 12, no. 3 (July 1, 1973):365-68. doi:10.1021/i260047a026.
[R4] Yaws, Carl L. Thermophysical Properties of Chemicals and Hydrocarbons, Second Edition. Amsterdam Boston:Gulf Professional Publishing, 2014.
[R5] Lee, Byung Ik, and Michael G. Kesler. “A Generalized Thermodynamic Correlation Based on Three-ParameterCorresponding States.” AIChE Journal 21, no. 3 (1975): 510-527. doi:10.1002/aic.690210313.
[R6] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
[R7] Halm, Roland L., and Leonard I. Stiel. “A Fourth Parameter for the Vapor Pressure and Entropy of Vaporizationof Polar Fluids.” AIChE Journal 13, no. 2 (1967): 351-355. doi:10.1002/aic.690130228.
[R8] D, Kukoljac Miloš, and Grozdanic Dušan K. “New Values of the Polarity Factor.” Journal of the Serbian Chem-ical Society 65, no. 12 (January 1, 2000). http://www.shd.org.rs/JSCS/Vol65/No12-Pdf/JSCS12-07.pdf
[R9] Definition of heat of combustion.
[R10] Chueh, P. L., and J. M. Prausnitz. “Vapor-Liquid Equilibria at High Pressures: Calculation of Critical Temper-atures, Volumes, and Pressures of Nonpolar Mixtures.” AIChE Journal 13, no. 6 (November 1, 1967): 1107-13.doi:10.1002/aic.690130613.
[R11] Najafi, Hamidreza, Babak Maghbooli, and Mohammad Amin Sobati. “Prediction of True Critical Temperatureof Multi-Component Mixtures: Extending Fast Estimation Methods.” Fluid Phase Equilibria 392 (April 25, 2015):104-26. doi:10.1016/j.fluid.2015.02.001.
[R12] Chueh, P. L., and J. M. Prausnitz. “Vapor-Liquid Equilibria at High Pressures: Calculation of Critical Temper-atures, Volumes, and Pressures of Nonpolar Mixtures.” AIChE Journal 13, no. 6 (November 1, 1967): 1107-13.doi:10.1002/aic.690130613.
257
thermo Documentation, Release 0.1
[R13] Najafi, Hamidreza, Babak Maghbooli, and Mohammad Amin Sobati. “Prediction of True Critical Volume ofMulti-Component Mixtures: Extending Fast Estimation Methods.” Fluid Phase Equilibria 386 (January 25, 2015):13-29. doi:10.1016/j.fluid.2014.11.008.
[R14] Grieves, Robert B., and George Thodos. “The Critical Temperatures of Multicomponent Hydrocarbon Sys-tems.” AIChE Journal 8, no. 4 (September 1, 1962): 550-53. doi:10.1002/aic.690080426.
[R15] Najafi, Hamidreza, Babak Maghbooli, and Mohammad Amin Sobati. “Prediction of True Critical Temperatureof Multi-Component Mixtures: Extending Fast Estimation Methods.” Fluid Phase Equilibria 392 (April 25, 2015):104-26. doi:10.1016/j.fluid.2015.02.001.
[R16] Grigoras, Stelian. “A Structural Approach to Calculate Physical Properties of Pure Organic Substances: TheCritical Temperature, Critical Volume and Related Properties.” Journal of Computational Chemistry 11, no. 4(May 1, 1990): 493-510. doi:10.1002/jcc.540110408
[R17] Ihmels, E. Christian. “The Critical Surface.” Journal of Chemical & Engineering Data 55, no. 9 (September 9,2010): 3474-80. doi:10.1021/je100167w.
[R18] Li, C. C. “Critical Temperature Estimation for Simple Mixtures.” The Canadian Journal of Chemical Engineer-ing 49, no. 5 (October 1, 1971): 709-10. doi:10.1002/cjce.5450490529.
[R19] Meissner, H. P., and E. M. Redding. “Prediction of Critical Constants.” Industrial & Engineering Chemistry 34,no. 5 (May 1, 1942): 521-26. doi:10.1021/ie50389a003.
[R20] Ambrose, Douglas, and Colin L. Young. “Vapor-Liquid Critical Properties of Elements and Compounds.1. An Introductory Survey.” Journal of Chemical & Engineering Data 41, no. 1 (January 1, 1996): 154-154.doi:10.1021/je950378q.
[R21] Ambrose, Douglas, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 2. Normal Alkanes.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 531-46.doi:10.1021/je00019a001.
[R22] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 3. Aromatic Hydrocarbons.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 547-58.doi:10.1021/je00019a002.
[R23] Gude, Michael, and Amyn S. Teja. “Vapor-Liquid Critical Properties of Elements and Compounds. 4.Aliphatic Alkanols.” Journal of Chemical & Engineering Data 40, no. 5 (September 1, 1995): 1025-36.doi:10.1021/je00021a001.
[R24] Daubert, Thomas E. “Vapor-Liquid Critical Properties of Elements and Compounds. 5. Branched Alka-nes and Cycloalkanes.” Journal of Chemical & Engineering Data 41, no. 3 (January 1, 1996): 365-72.doi:10.1021/je9501548.
[R25] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 6. Unsaturated Aliphatic Hydrocarbons.” Journal of Chemical & Engineering Data 41, no. 4 (January 1,1996): 645-56. doi:10.1021/je9501999.
[R26] Kudchadker, Arvind P., Douglas Ambrose, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties ofElements and Compounds. 7. Oxygen Compounds Other Than Alkanols and Cycloalkanols.” Journal of Chemical& Engineering Data 46, no. 3 (May 1, 2001): 457-79. doi:10.1021/je0001680.
[R27] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 8. Organic Sulfur, Silicon, and Tin Compounds (C + H + S, Si, and Sn).” Journal of Chemical & Engi-neering Data 46, no. 3 (May 1, 2001): 480-85. doi:10.1021/je000210r.
[R28] Marsh, Kenneth N., Colin L. Young, David W. Morton, Douglas Ambrose, and Constantine Tsonopoulos.“Vapor-Liquid Critical Properties of Elements and Compounds. 9. Organic Compounds Containing Nitrogen.”Journal of Chemical & Engineering Data 51, no. 2 (March 1, 2006): 305-14. doi:10.1021/je050221q.
258 Bibliography
thermo Documentation, Release 0.1
[R29] Ambrose, Douglas, and Colin L. Young. “Vapor-Liquid Critical Properties of Elements and Compounds.1. An Introductory Survey.” Journal of Chemical & Engineering Data 41, no. 1 (January 1, 1996): 154-154.doi:10.1021/je950378q.
[R30] Ambrose, Douglas, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 2. Normal Alkanes.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 531-46.doi:10.1021/je00019a001.
[R31] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 3. Aromatic Hydrocarbons.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 547-58.doi:10.1021/je00019a002.
[R32] Gude, Michael, and Amyn S. Teja. “Vapor-Liquid Critical Properties of Elements and Compounds. 4.Aliphatic Alkanols.” Journal of Chemical & Engineering Data 40, no. 5 (September 1, 1995): 1025-36.doi:10.1021/je00021a001.
[R33] Daubert, Thomas E. “Vapor-Liquid Critical Properties of Elements and Compounds. 5. Branched Alka-nes and Cycloalkanes.” Journal of Chemical & Engineering Data 41, no. 3 (January 1, 1996): 365-72.doi:10.1021/je9501548.
[R34] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 6. Unsaturated Aliphatic Hydrocarbons.” Journal of Chemical & Engineering Data 41, no. 4 (January 1,1996): 645-56. doi:10.1021/je9501999.
[R35] Kudchadker, Arvind P., Douglas Ambrose, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties ofElements and Compounds. 7. Oxygen Compounds Other Than Alkanols and Cycloalkanols.” Journal of Chemical& Engineering Data 46, no. 3 (May 1, 2001): 457-79. doi:10.1021/je0001680.
[R36] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 8. Organic Sulfur, Silicon, and Tin Compounds (C + H + S, Si, and Sn).” Journal of Chemical & Engi-neering Data 46, no. 3 (May 1, 2001): 480-85. doi:10.1021/je000210r.
[R37] Marsh, Kenneth N., Colin L. Young, David W. Morton, Douglas Ambrose, and Constantine Tsonopoulos.“Vapor-Liquid Critical Properties of Elements and Compounds. 9. Organic Compounds Containing Nitrogen.”Journal of Chemical & Engineering Data 51, no. 2 (March 1, 2006): 305-14. doi:10.1021/je050221q.
[R38] Ambrose, Douglas, and Colin L. Young. “Vapor-Liquid Critical Properties of Elements and Compounds.1. An Introductory Survey.” Journal of Chemical & Engineering Data 41, no. 1 (January 1, 1996): 154-154.doi:10.1021/je950378q.
[R39] Ambrose, Douglas, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 2. Normal Alkanes.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 531-46.doi:10.1021/je00019a001.
[R40] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 3. Aromatic Hydrocarbons.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 547-58.doi:10.1021/je00019a002.
[R41] Gude, Michael, and Amyn S. Teja. “Vapor-Liquid Critical Properties of Elements and Compounds. 4.Aliphatic Alkanols.” Journal of Chemical & Engineering Data 40, no. 5 (September 1, 1995): 1025-36.doi:10.1021/je00021a001.
[R42] Daubert, Thomas E. “Vapor-Liquid Critical Properties of Elements and Compounds. 5. Branched Alka-nes and Cycloalkanes.” Journal of Chemical & Engineering Data 41, no. 3 (January 1, 1996): 365-72.doi:10.1021/je9501548.
[R43] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 6. Unsaturated Aliphatic Hydrocarbons.” Journal of Chemical & Engineering Data 41, no. 4 (January 1,1996): 645-56. doi:10.1021/je9501999.
Bibliography 259
thermo Documentation, Release 0.1
[R44] Kudchadker, Arvind P., Douglas Ambrose, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties ofElements and Compounds. 7. Oxygen Compounds Other Than Alkanols and Cycloalkanols.” Journal of Chemical& Engineering Data 46, no. 3 (May 1, 2001): 457-79. doi:10.1021/je0001680.
[R45] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 8. Organic Sulfur, Silicon, and Tin Compounds (C + H + S, Si, and Sn).” Journal of Chemical & Engi-neering Data 46, no. 3 (May 1, 2001): 480-85. doi:10.1021/je000210r.
[R46] Marsh, Kenneth N., Colin L. Young, David W. Morton, Douglas Ambrose, and Constantine Tsonopoulos.“Vapor-Liquid Critical Properties of Elements and Compounds. 9. Organic Compounds Containing Nitrogen.”Journal of Chemical & Engineering Data 51, no. 2 (March 1, 2006): 305-14. doi:10.1021/je050221q.
[R47] Ambrose, Douglas, and Colin L. Young. “Vapor-Liquid Critical Properties of Elements and Compounds.1. An Introductory Survey.” Journal of Chemical & Engineering Data 41, no. 1 (January 1, 1996): 154-154.doi:10.1021/je950378q.
[R48] Ambrose, Douglas, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 2. Normal Alkanes.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 531-46.doi:10.1021/je00019a001.
[R49] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 3. Aromatic Hydrocarbons.” Journal of Chemical & Engineering Data 40, no. 3 (May 1, 1995): 547-58.doi:10.1021/je00019a002.
[R50] Gude, Michael, and Amyn S. Teja. “Vapor-Liquid Critical Properties of Elements and Compounds. 4.Aliphatic Alkanols.” Journal of Chemical & Engineering Data 40, no. 5 (September 1, 1995): 1025-36.doi:10.1021/je00021a001.
[R51] Daubert, Thomas E. “Vapor-Liquid Critical Properties of Elements and Compounds. 5. Branched Alka-nes and Cycloalkanes.” Journal of Chemical & Engineering Data 41, no. 3 (January 1, 1996): 365-72.doi:10.1021/je9501548.
[R52] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 6. Unsaturated Aliphatic Hydrocarbons.” Journal of Chemical & Engineering Data 41, no. 4 (January 1,1996): 645-56. doi:10.1021/je9501999.
[R53] Kudchadker, Arvind P., Douglas Ambrose, and Constantine Tsonopoulos. “Vapor-Liquid Critical Properties ofElements and Compounds. 7. Oxygen Compounds Other Than Alkanols and Cycloalkanols.” Journal of Chemical& Engineering Data 46, no. 3 (May 1, 2001): 457-79. doi:10.1021/je0001680.
[R54] Tsonopoulos, Constantine, and Douglas Ambrose. “Vapor-Liquid Critical Properties of Elements and Com-pounds. 8. Organic Sulfur, Silicon, and Tin Compounds (C + H + S, Si, and Sn).” Journal of Chemical & Engi-neering Data 46, no. 3 (May 1, 2001): 480-85. doi:10.1021/je000210r.
[R55] Marsh, Kenneth N., Colin L. Young, David W. Morton, Douglas Ambrose, and Constantine Tsonopoulos.“Vapor-Liquid Critical Properties of Elements and Compounds. 9. Organic Compounds Containing Nitrogen.”Journal of Chemical & Engineering Data 51, no. 2 (March 1, 2006): 305-14. doi:10.1021/je050221q.
[R56] Teja, Amyn S., Kul B. Garg, and Richard L. Smith. “A Method for the Calculation of Gas-Liquid CriticalTemperatures and Pressures of Multicomponent Mixtures.” Industrial & Engineering Chemistry Process Designand Development 22, no. 4 (1983): 672-76.
[R57] Najafi, Hamidreza, Babak Maghbooli, and Mohammad Amin Sobati. “Prediction of True Critical Temperatureof Multi-Component Mixtures: Extending Fast Estimation Methods.” Fluid Phase Equilibria 392 (April 25, 2015):104-26. doi:10.1016/j.fluid.2015.02.001.
[R58] Teja, Amyn S., Kul B. Garg, and Richard L. Smith. “A Method for the Calculation of Gas-Liquid CriticalTemperatures and Pressures of Multicomponent Mixtures.” Industrial & Engineering Chemistry Process Designand Development 22, no. 4 (1983): 672-76.
260 Bibliography
thermo Documentation, Release 0.1
[R59] Najafi, Hamidreza, Babak Maghbooli, and Mohammad Amin Sobati. “Prediction of True Critical Temperatureof Multi-Component Mixtures: Extending Fast Estimation Methods.” Fluid Phase Equilibria 392 (April 25, 2015):104-26. doi:10.1016/j.fluid.2015.02.001.
[R60] NIST Computational Chemistry Comparison and Benchmark Database NIST Standard Reference DatabaseNumber 101 Release 17b, September 2015, Editor: Russell D. Johnson III http://cccbdb.nist.gov/
[R61] Muller, Karsten, Liudmila Mokrushina, and Wolfgang Arlt. “Second- Order Group Contribution Method forthe Determination of the Dipole Moment.” Journal of Chemical & Engineering Data 57, no. 4 (April 12, 2012):1231-36. doi:10.1021/je2013395.
[R62] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
[R63] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R64] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R65] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R66] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R67] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R68] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R69] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R70] Aly, Fouad A., and Lloyd L. Lee. “Self-Consistent Equations for Calculating the Ideal Gas Heat Capacity, En-thalpy, and Entropy.” Fluid Phase Equilibria 6, no. 3 (January 1, 1981): 169-79. doi:10.1016/0378-3812(81)85002-9.
[R71] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R72] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R73] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R74] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R75] Marshall, William L., and E. U. Franck. “Ion Product of Water Substance, 0-1000 degree C, 1010,000 BarsNew International Formulation and Its Background.” Journal of Physical and Chemical Reference Data 10, no. 2(April 1, 1981): 295-304. doi:10.1063/1.555643.
[R76] Bandura, Andrei V., and Serguei N. Lvov. “The Ionization Constant of Water over Wide Ranges of Tem-perature and Density.” Journal of Physical and Chemical Reference Data 35, no. 1 (March 1, 2006): 15-30.doi:10.1063/1.1928231
[R77] Bandura, Andrei V., and Serguei N. Lvov. “The Ionization Constant of Water over Wide Ranges of Tem-perature and Density.” Journal of Physical and Chemical Reference Data 35, no. 1 (March 1, 2006): 15-30.doi:10.1063/1.1928231
[R78] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R79] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R80] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
Bibliography 261
thermo Documentation, Release 0.1
[R81] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R82] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R83] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R84] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R85] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R86] Laliberte, Marc. “A Model for Calculating the Heat Capacity of Aqueous Solutions, with Updated Den-sity and Viscosity Data.” Journal of Chemical & Engineering Data 54, no. 6 (June 11, 2009): 1725-60.doi:10.1021/je8008123
[R87] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
[R88] Chen, Chau-Chyun, H. I. Britt, J. F. Boston, and L. B. Evans. “Local Composition Model for Excess GibbsEnergy of Electrolyte Systems. Part I: Single Solvent, Single Completely Dissociated Electrolyte Systems.” AIChEJournal 28, no. 4 (July 1, 1982): 588-96. doi:10.1002/aic.690280410
[R89] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R90] Magomedov, U. B. “The Thermal Conductivity of Binary and Multicomponent Aqueous Solutions of In-organic Substances at High Parameters of State.” High Temperature 39, no. 2 (March 1, 2001): 221-26.doi:10.1023/A:1017518731726.
[R91] N M O’Boyle, M Banck, C A James, C Morley, T Vandermeersch, and G R Hutchison. “Open Babel: An openchemical toolbox.” J. Cheminf. (2011), 3, 33. DOI:10.1186/1758-2946-3-33
[R92] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R93] Hill, Edwin A. “ON A SYSTEM OF INDEXING CHEMICAL LITERATURE; ADOPTED BY THE CLAS-SIFICATION DIVISION OF THE U. S. PATENT OFFICE.1.” Journal of the American Chemical Society 22, no.8 (August 1, 1900): 478-94. doi:10.1021/ja02046a005.
[R94] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R95] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R96] Laštovka, Václav, Nasser Sallamie, and John M. Shaw. “A Similarity Variable for Estimating the Heat Capacityof Solid Organic Compounds: Part I. Fundamentals.” Fluid Phase Equilibria 268, no. 1-2 (June 25, 2008): 51-60.doi:10.1016/j.fluid.2008.03.019.
[R97] IPCC. “2.10.2 Direct Global Warming Potentials - AR4 WGI Chapter 2: Changes in Atmospheric Constituentsand in Radiative Forcing.” 2007. https://www.ipcc.ch/publications_and_data/ar4/wg1/en/ch2s2-10-2.html.
[R99] US EPA, OAR. “Ozone-Depleting Substances.” Accessed April 26, 2016. https://www.epa.gov/ozone-layer-protection/ozone-depleting-substances.
[R100] WMO (World Meteorological Organization), 2011: Scientific Assessment of Ozone Depletion:2010. Global Ozone Research and Monitoring Project-Report No. 52, Geneva, Switzerland, 516 p.https://www.wmo.int/pages/prog/arep/gaw/ozone_2010/documents/Ozone-Assessment-2010-complete.pdf
262 Bibliography
thermo Documentation, Release 0.1
[R101] Syrres. 2006. KOWWIN Data, SrcKowData2.zip. http://esc.syrres.com/interkow/Download/SrcKowData2.zip
[R102] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R103] Dadgostar, Nafiseh, and John M. Shaw. “A Predictive Correlation for the Constant-Pressure Specific HeatCapacity of Pure and Ill-Defined Liquid Hydrocarbons.” Fluid Phase Equilibria 313 (January 15, 2012): 211-226.doi:10.1016/j.fluid.2011.09.015.
[R104] Kabo, G. J., and G. N. Roganov. Thermodynamics of Organic Compounds in the Gas State, Volume II: V. 2.College Station, Tex: CRC Press, 1994.
[R105] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R106] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R107] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R108] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R109] Zabransky, M., V. Ruzicka Jr, V. Majer, and Eugene S. Domalski. Heat Capacity of Liquids: Critical Reviewand Recommended Values. 2 Volume Set. Washington, D.C.: Amer Inst of Physics, 1996.
[R110] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R111] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R112] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R113] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R114] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R115] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R116] Lastovka, Vaclav, and John M. Shaw. “Predictive Correlations for Ideal Gas Heat Capacities ofPure Hydrocarbons and Petroleum Fractions.” Fluid Phase Equilibria 356 (October 25, 2013): 338-370.doi:10.1016/j.fluid.2013.07.023.
[R117] Laštovka, Václav, Michal Fulem, Mildred Becerra, and John M. Shaw. “A Similarity Variable for Estimatingthe Heat Capacity of Solid Organic Compounds: Part II. Application: Heat Capacity Calculation for Ill-DefinedOrganic Solids.” Fluid Phase Equilibria 268, no. 1-2 (June 25, 2008): 134-41. doi:10.1016/j.fluid.2008.03.018.
[R118] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R119] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R120] J.S. Rowlinson, Liquids and Liquid Mixtures, 2nd Ed., Butterworth, London (1969).
[R121] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
Bibliography 263
thermo Documentation, Release 0.1
[R122] Kabo, G. J., and G. N. Roganov. Thermodynamics of Organic Compounds in the Gas State, Volume II: V. 2.College Station, Tex: CRC Press, 1994.
[R123] Zabransky, M., V. Ruzicka Jr, V. Majer, and Eugene S. Domalski. Heat Capacity of Liquids: Critical Reviewand Recommended Values. 2 Volume Set. Washington, D.C.: Amer Inst of Physics, 1996.
[R124] Zabransky, M., V. Ruzicka Jr, V. Majer, and Eugene S. Domalski. Heat Capacity of Liquids: Critical Reviewand Recommended Values. 2 Volume Set. Washington, D.C.: Amer Inst of Physics, 1996.
[R125] Pubchem.
[R126] Pubchem.
[R127] Brock, James R., and R. Byron Bird. “Surface Tension and the Principle of Corresponding States.” AIChEJournal 1, no. 2 (June 1, 1955): 174-77. doi:10.1002/aic.690010208
[R128] Diguilio, Ralph, and Amyn S. Teja. “Correlation and Prediction of the Surface Tensions of Mixtures.” TheChemical Engineering Journal 38, no. 3 (July 1988): 205-8. doi:10.1016/0300-9467(88)80079-0.
[R129] Hakim, D. I., David Steinberg, and L. I. Stiel. “Generalized Relationship for the Surface Tension ofPolar Fluids.” Industrial & Engineering Chemistry Fundamentals 10, no. 1 (February 1, 1971): 174-75.doi:10.1021/i160037a032.
[R131] Jasper, Joseph J. “The Surface Tension of Pure Liquid Compounds.” Journal of Physical and Chemical Refer-ence Data 1, no. 4 (October 1, 1972): 841-1010. doi:10.1063/1.3253106.
[R132] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
[R133] Miqueu, C, D Broseta, J Satherley, B Mendiboure, J Lachaise, and A Graciaa. “An Extended Scaled Equationfor the Temperature Dependence of the Surface Tension of Pure Compounds Inferred from an Analysis of Exper-imental Data.” Fluid Phase Equilibria 172, no. 2 (July 5, 2000): 169-82. doi:10.1016/S0378-3812(00)00384-8.
[R134] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R135] Curl, R. F., and Kenneth Pitzer. “Volumetric and Thermodynamic Properties of Fluids-Enthalpy, Free Energy,and Entropy.” Industrial & Engineering Chemistry 50, no. 2 (February 1, 1958): 265-74. doi:10.1021/ie50578a047
[R136] Pitzer, K. S.: Thermodynamics, 3d ed., New York, McGraw-Hill, 1995, p. 521.
[R138] Diky, Vladimir, Robert D. Chirico, Chris D. Muzny, Andrei F. Kazakov, Kenneth Kroenlein, Joseph W. Magee,Ilmutdin Abdulagatov, and Michael Frenkel. “ThermoData Engine (TDE): Software Implementation of the Dy-namic Data Evaluation Concept.” Journal of Chemical Information and Modeling 53, no. 12 (2013): 3418-30.doi:10.1021/ci4005699.
[R139] Sastri, S. R. S., and K. K. Rao. “A Simple Method to Predict Surface Tension of Organic Liquids.” TheChemical Engineering Journal and the Biochemical Engineering Journal 59, no. 2 (October 1995): 181-86.doi:10.1016/0923-0467(94)02946-6.
[R140] 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.
[R141] 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.
[R142] 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.
[R143] Jasper, Joseph J. “The Surface Tension of Pure Liquid Compounds.” Journal of Physical and Chemical Refer-ence Data 1, no. 4 (October 1, 1972): 841-1010. doi:10.1063/1.3253106.
[R144] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
264 Bibliography
thermo Documentation, Release 0.1
[R145] Mulero, A., I. Cachadiña, and M. I. Parra. “Recommended Correlations for the Surface Tension of Com-mon Fluids.” Journal of Physical and Chemical Reference Data 41, no. 4 (December 1, 2012): 043105.doi:10.1063/1.4768782.
[R146] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R147] Winterfeld, P. H., L. E. Scriven, and H. T. Davis. “An Approximate Theory of Interfacial Tensions of Mul-ticomponent Systems: Applications to Binary Liquid-Vapor Tensions.” AIChE Journal 24, no. 6 (November 1,1978): 1010-14. doi:10.1002/aic.690240610.
[R148] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R149] Zuo, You-Xiang, and Erling H. Stenby. “Corresponding-States and Parachor Models for the Calculation ofInterfacial Tensions.” The Canadian Journal of Chemical Engineering 75, no. 6 (December 1, 1997): 1130-37.doi:10.1002/cjce.5450750617
[R150] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R151] Government of Canada.. “Substances Lists” Feb 11, 2015. https://www.ec.gc.ca/subsnouvelles-newsubs/default.asp?n=47F768FE-1.
[R152] US EPA. “TSCA Chemical Substance Inventory.” Accessed April 2016. https://www.epa.gov/tsca-inventory.
[R153] ECHA. “EC Inventory”. Accessed March 2015. http://echa.europa.eu/information-on-chemicals/ec-inventory.
[R154] SPIN. “SPIN Substances in Products In Nordic Countries.” Accessed March 2015.http://195.215.202.233/DotNetNuke/default.aspx.
[R155] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R156] Magalhães, Ana L., Patrícia F. Lito, Francisco A. Da Silva, and Carlos M. Silva. “Simple and Accurate Corre-lations for Diffusion Coefficients of Solutes in Liquids and Supercritical Fluids over Wide Ranges of Temperatureand Density.” The Journal of Supercritical Fluids 76 (April 2013): 94-114. doi:10.1016/j.supflu.2013.02.002.
[R157] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R158] Kim, Sun Ung, and Charles W. Monroe. “High-Accuracy Calculations of Sixteen Collision Integrals forLennard-Jones (12-6) Gases and Their Interpolation to Parameterize Neon, Argon, and Krypton.” Journal of Com-putational Physics 273 (September 15, 2014): 358-73. doi:10.1016/j.jcp.2014.05.018.
[R160] Neufeld, Philip D., A. R. Janzen, and R. A. Aziz. “Empirical Equations to Calculate 16 of the TransportCollision Integrals Omega(l, S)* for the Lennard-Jones (12-6) Potential.” The Journal of Chemical Physics 57, no.3 (August 1, 1972): 1100-1102. doi:10.1063/1.1678363
[R162] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R163] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R164] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R165] Flynn, L.W., M.S. thesis, Northwestern Univ., Evanston, Ill. (1960).
[R166] Stiel, L. I., and George Thodos. “Lennard-Jones Force Constants Predicted from Critical Properties.” Journalof Chemical & Engineering Data 7, no. 2 (April 1, 1962): 234-36. doi:10.1021/je60013a023
[R167] Stiel, L. I., and George Thodos. “Lennard-Jones Force Constants Predicted from Critical Properties.” Journalof Chemical & Engineering Data 7, no. 2 (April 1, 1962): 234-36. doi:10.1021/je60013a023
Bibliography 265
thermo Documentation, Release 0.1
[R168] Tee, L. S., Sukehiro Gotoh, and W. E. Stewart. “Molecular Parameters for Normal Fluids. Lennard-Jones 12-6 Potential.” Industrial & Engineering Chemistry Fundamentals 5, no. 3 (August 1, 1966): 356-63.doi:10.1021/i160019a011
[R169] Tee, L. S., Sukehiro Gotoh, and W. E. Stewart. “Molecular Parameters for Normal Fluids. Lennard-Jones 12-6 Potential.” Industrial & Engineering Chemistry Fundamentals 5, no. 3 (August 1, 1966): 356-63.doi:10.1021/i160019a011
[R170] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R171] Magalhães, Ana L., Patrícia F. Lito, Francisco A. Da Silva, and Carlos M. Silva. “Simple and Accurate Corre-lations for Diffusion Coefficients of Solutes in Liquids and Supercritical Fluids over Wide Ranges of Temperatureand Density.” The Journal of Supercritical Fluids 76 (April 2013): 94-114. doi:10.1016/j.supflu.2013.02.002.
[R172] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R173] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R174] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R175] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R176] Flynn, L.W., M.S. thesis, Northwestern Univ., Evanston, Ill. (1960).
[R177] Stiel, L. I., and George Thodos. “Lennard-Jones Force Constants Predicted from Critical Properties.” Journalof Chemical & Engineering Data 7, no. 2 (April 1, 1962): 234-36. doi:10.1021/je60013a023
[R178] Silva, Carlos M., Hongqin Liu, and Eugenia A. Macedo. “Models for Self-Diffusion Coefficients of DenseFluids, Including Hydrogen-Bonding Substances.” Chemical Engineering Science 53, no. 13 (July 1, 1998): 2423-29. doi:10.1016/S0009-2509(98)00037-2
[R179] Stiel, L. I., and George Thodos. “Lennard-Jones Force Constants Predicted from Critical Properties.” Journalof Chemical & Engineering Data 7, no. 2 (April 1, 1962): 234-36. doi:10.1021/je60013a023
[R180] Tee, L. S., Sukehiro Gotoh, and W. E. Stewart. “Molecular Parameters for Normal Fluids. Lennard-Jones 12-6 Potential.” Industrial & Engineering Chemistry Fundamentals 5, no. 3 (August 1, 1966): 356-63.doi:10.1021/i160019a011
[R181] Tee, L. S., Sukehiro Gotoh, and W. E. Stewart. “Molecular Parameters for Normal Fluids. Lennard-Jones 12-6 Potential.” Industrial & Engineering Chemistry Fundamentals 5, no. 3 (August 1, 1966): 356-63.doi:10.1021/i160019a011
[R182] Gesellschaft, VDI, ed. VDI Heat Atlas. 2E. Berlin: Springer, 2010.
[R183] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R184] IAPWS. 1997. Release on the Static Dielectric Constant of Ordinary Water Substance for Temperatures from238 K to 873 K and Pressures up to 1000 MPa.
[R185] Chen, N. H. “Generalized Correlation for Latent Heat of Vaporization.” Journal of Chemical & EngineeringData 10, no. 2 (April 1, 1965): 207-10. doi:10.1021/je60025a047
[R186] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R187] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
266 Bibliography
thermo Documentation, Release 0.1
[R188] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R189] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R190] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R191] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R192] Gharagheizi, Farhad, Poorandokht Ilani-Kashkouli, William E. Acree Jr., Amir H. Mohammadi, and DereshRamjugernath. “A Group Contribution Model for Determining the Vaporization Enthalpy of Organic Compoundsat the Standard Reference Temperature of 298 K.” Fluid Phase Equilibria 360 (December 25, 2013): 279-92.doi:10.1016/j.fluid.2013.09.021.
[R193] LIU, ZHI-YONG. “Estimation of Heat of Vaporization of Pure Liquid at Its Normal Boiling Temperature.”Chemical Engineering Communications 184, no. 1 (February 1, 2001): 221-28. doi:10.1080/00986440108912849.
[R194] Morgan, David L., and Riki Kobayashi. “Extension of Pitzer CSP Models for Vapor Pressures and Heats of Va-porization to Long-Chain Hydrocarbons.” Fluid Phase Equilibria 94 (March 15, 1994): 51-87. doi:10.1016/0378-3812(94)87051-9.
[R195] Pitzer, Kenneth S. “The Volumetric and Thermodynamic Properties of Fluids. I. Theoretical Basisand Virial Coefficients.” Journal of the American Chemical Society 77, no. 13 (July 1, 1955): 3427-33.doi:10.1021/ja01618a001
[R196] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R197] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R198] Riedel, L. “Eine Neue Universelle Dampfdruckformel Untersuchungen Uber Eine Erweiterung Des Theo-rems Der Ubereinstimmenden Zustande. Teil I.” Chemie Ingenieur Technik 26, no. 2 (February 1, 1954): 83-89.doi:10.1002/cite.330260206.
[R199] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R200] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R201] Sivaraman, Alwarappa, Joe W. Magee, and Riki Kobayashi. “Generalized Correlation of Latent Heats ofVaporization of Coal-Liquid Model Compounds between Their Freezing Points and Critical Points.” Industrial &Engineering Chemistry Fundamentals 23, no. 1 (February 1, 1984): 97-100. doi:10.1021/i100013a017.
[R202] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R203] Yaws, Carl L. Thermophysical Properties of Chemicals and Hydrocarbons, Second Edition. AmsterdamBoston: Gulf Professional Publishing, 2014.
[R204] Bradley, Jean-Claude, Antony Williams, and Andrew Lang. “Jean-Claude Bradley Open Melting PointDataset”, May 20, 2014. https://figshare.com/articles/Jean_Claude_Bradley_Open_Melting_Point_Datset/1031637.
[R205] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
Bibliography 267
thermo Documentation, Release 0.1
[R206] Velasco, S., M. J. Santos, and J. A. White. “Extended Corresponding States Expressions for the Changes inEnthalpy, Compressibility Factor and Constant-Volume Heat Capacity at Vaporization.” The Journal of ChemicalThermodynamics 85 (June 2015): 68-76. doi:10.1016/j.jct.2015.01.011.
[R207] Vetere, Alessandro. “Methods to Predict the Vaporization Enthalpies at the Normal Boiling Temperatureof Pure Compounds Revisited.” Fluid Phase Equilibria 106, no. 1-2 (May 1, 1995): 1–10. doi:10.1016/0378-3812(94)02627-D.
[R208] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R209] Albahri, Tareq A., and Abdulla F. Aljasmi. “SGC Method for Predicting the Standard Enthalpy of Formationof Pure Compounds from Their Molecular Structures.” Thermochimica Acta 568 (September 20, 2013): 46-60.doi:10.1016/j.tca.2013.06.020.
[R210] Ruscic, Branko, Reinhardt E. Pinzon, Gregor von Laszewski, Deepti Kodeboyina, Alexander Burcat, DavidLeahy, David Montoy, and Albert F. Wagner. “Active Thermochemical Tables: Thermochemistry for the 21st Cen-tury.” Journal of Physics: Conference Series 16, no. 1 (January 1, 2005): 561. doi:10.1088/1742-6596/16/1/078.
[R211] Frenkel, M. L, Texas Engineering Experiment Station, and Thermodynamics Research Center. Thermody-namics of Organic Compounds in the Gas State. College Station, Tex.: Thermodynamics Research Center, 1994.
[R212] Ruscic, Branko, Reinhardt E. Pinzon, Gregor von Laszewski, Deepti Kodeboyina, Alexander Burcat, DavidLeahy, David Montoy, and Albert F. Wagner. “Active Thermochemical Tables: Thermochemistry for the 21st Cen-tury.” Journal of Physics: Conference Series 16, no. 1 (January 1, 2005): 561. doi:10.1088/1742-6596/16/1/078.
[R213] Panuganti, Sai R., Fei Wang, Walter G. Chapman, and Francisco M. Vargas. “A Simple Method for Estimationof Dielectric Constants and Polarizabilities of Nonpolar and Slightly Polar Hydrocarbons.” International Journalof Thermophysics 37, no. 7 (June 6, 2016): 1-24. doi:10.1007/s10765-016-2075-8.
[R214] Panuganti, Sai R., Fei Wang, Walter G. Chapman, and Francisco M. Vargas. “A Simple Method for Estimationof Dielectric Constants and Polarizabilities of Nonpolar and Slightly Polar Hydrocarbons.” International Journalof Thermophysics 37, no. 7 (June 6, 2016): 1-24. doi:10.1007/s10765-016-2075-8.
[R215] Panuganti, Sai R., Fei Wang, Walter G. Chapman, and Francisco M. Vargas. “A Simple Method for Estimationof Dielectric Constants and Polarizabilities of Nonpolar and Slightly Polar Hydrocarbons.” International Journalof Thermophysics 37, no. 7 (June 6, 2016): 1-24. doi:10.1007/s10765-016-2075-8.
[R216] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R217] International Agency for Research on Cancer. Agents Classified by the IARC Monographs, Volumes 1-115.Lyon, France: IARC; 2016 Available from: http://monographs.iarc.fr/ENG/Classification/
[R218] NTP (National Toxicology Program). 2014. Report on Carcinogens, Thirteenth Edition. Re-search Triangle Park, NC: U.S. Department of Health and Human Services, Public Health Service.http://ntp.niehs.nih.gov/pubhealth/roc/roc13/
[R219] Crowl, Daniel A., and Joseph F. Louvar. Chemical Process Safety: Fundamentals with Applications. 2E.Upper Saddle River, N.J: Prentice Hall, 2001.
[R220] Jones, G. W. “Inflammation Limits and Their Practical Application in Hazardous Industrial Operations.”Chemical Reviews 22, no. 1 (February 1, 1938): 1-26. doi:10.1021/cr60071a001
[R221] Crowl, Daniel A., and Joseph F. Louvar. Chemical Process Safety: Fundamentals with Applications. 2E.Upper Saddle River, N.J: Prentice Hall, 2001.
[R222] Jones, G. W. “Inflammation Limits and Their Practical Application in Hazardous Industrial Operations.”Chemical Reviews 22, no. 1 (February 1, 1938): 1-26. doi:10.1021/cr60071a001
268 Bibliography
thermo Documentation, Release 0.1
[R223] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gasand vapour classification - Test methods and data.” https://webstore.iec.ch/publication/635. See alsohttps://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R224] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R225] Suzuki, Takahiro. “Note: Empirical Relationship between Lower Flammability Limits and Standard En-thalpies of Combustion of Organic Compounds.” Fire and Materials 18, no. 5 (September 1, 1994): 333-36.doi:10.1002/fam.810180509.
[R226] Suzuki, Takahiro, and Kozo Koide. “Short Communication: Correlation between Upper Flammability Limitsand Thermochemical Properties of Organic Compounds.” Fire and Materials 18, no. 6 (November 1, 1994): 393-97. doi:10.1002/fam.810180608.
[R227] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gasand vapour classification - Test methods and data.” https://webstore.iec.ch/publication/635. See alsohttps://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R228] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R229] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gasand vapour classification - Test methods and data.” https://webstore.iec.ch/publication/635. See alsohttps://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R230] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R231] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gasand vapour classification - Test methods and data.” https://webstore.iec.ch/publication/635. See alsohttps://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R232] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R233] ACGIH. Industrial Ventilation: A Manual of Recommended Practice, 23rd Edition. American Conference ofGovernmental and Industrial Hygenists, 2004.
[R234] ACGIH. Industrial Ventilation: A Manual of Recommended Practice, 23rd Edition. American Conference ofGovernmental and Industrial Hygenists, 2004.
[R235] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R236] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R237] Barton, Allan F. M. CRC Handbook of Solubility Parameters and Other Cohesion Parameters, Second Edition.CRC Press, 1991.
[R238] Bedford, R. E., G. Bonnier, H. Maas, and F. Pavese. “Techniques for Approximating the International Tem-perature Scale of 1990.” Bureau International Des Poids et Mesures, Sfievres, 1990.
[R239] Wier, Ron D., and Robert N. Goldberg. “On the Conversion of Thermodynamic Properties to the Basis ofthe International Temperature Scale of 1990.” The Journal of Chemical Thermodynamics 28, no. 3 (March 1996):261-76. doi:10.1006/jcht.1996.0026.
[R240] Goldberg, Robert N., and R. D. Weir. “Conversion of Temperatures and Thermodynamic Properties to theBasis of the International Temperature Scale of 1990 (Technical Report).” Pure and Applied Chemistry 64, no. 10(1992): 1545-1562. doi:10.1351/pac199264101545.
Bibliography 269
thermo Documentation, Release 0.1
[R241] Code10.info. “Conversions among International Temperature Scales.” Accessed May 22, 2016.http://www.code10.info/index.php%3Foption%3Dcom_content%26view%3Darticle%26id%3D83:conversions-among-international-temperature-scales%26catid%3D60:temperature%26Itemid%3D83.
[R242] Wier, Ron D., and Robert N. Goldberg. “On the Conversion of Thermodynamic Properties to the Basis ofthe International Temperature Scale of 1990.” The Journal of Chemical Thermodynamics 28, no. 3 (March 1996):261-76. doi:10.1006/jcht.1996.0026.
[R243] Goldberg, Robert N., and R. D. Weir. “Conversion of Temperatures and Thermodynamic Properties to theBasis of the International Temperature Scale of 1990 (Technical Report).” Pure and Applied Chemistry 64, no. 10(1992): 1545-1562. doi:10.1351/pac199264101545.
[R244] Bahadori, Alireza, and Saeid Mokhatab. “Estimating Thermal Conductivity of Hydrocarbons.” Chemical En-gineering 115, no. 13 (December 2008): 52-54
[R245] Bahadori, Alireza, and Saeid Mokhatab. “Estimating Thermal Conductivity of Hydrocarbons.” Chemical En-gineering 115, no. 13 (December 2008): 52-54
[R246] Chung, Ting Horng, Lloyd L. Lee, and Kenneth E. Starling. “Applications of Kinetic Gas Theories and Multi-parameter Correlation for Prediction of Dilute Gas Viscosity and Thermal Conductivity.” Industrial & EngineeringChemistry Fundamentals 23, no. 1 (February 1, 1984): 8-13. doi:10.1021/i100013a002
[R247] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R248] Bromley, LeRoy A., Berkeley. University of California, and U.S. Atomic Energy Commission. Thermal Con-ductivity of Gases at Moderate Pressures. UCRL;1852. Berkeley, CA: University of California Radiation Labora-tory, 1952.
[R249] Stiel, Leonard I., and George Thodos. “The Thermal Conductivity of Nonpolar Substances in the DenseGaseous and Liquid Regions.” AIChE Journal 10, no. 1 (January 1, 1964): 26-30. doi:10.1002/aic.690100114
[R250] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R251] Missenard, F. A., Thermal Conductivity of Organic Liquids of a Series or a Group of Liquids , Rev.Gen.Thermodyn., 101 649 (1970).
[R252] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R253] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R254] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R255] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R256] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R257] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R258] Filippov, L. P.: Vest. Mosk. Univ., Ser. Fiz. Mat. Estestv. Nauk, (8I0E): 67-69A955); Chem. Abstr., 50:8276 A956). Filippov, L. P., and N. S. Novoselova: Vestn. Mosk. Univ., Ser. F iz. Mat. Estestv.Nauk, CI0B):37-40A955); Chem. Abstr., 49: 11366 A955).
[R259] Gharagheizi, Farhad, Poorandokht Ilani-Kashkouli, Mehdi Sattari, Amir H. Mohammadi, Deresh Ramjuger-nath, and Dominique Richon. “Development of a General Model for Determination of Thermal Conductivity
270 Bibliography
thermo Documentation, Release 0.1
of Liquid Chemical Compounds at Atmospheric Pressure.” AIChE Journal 59, no. 5 (May 1, 2013): 1702-8.doi:10.1002/aic.13938
[R260] Gharagheizi, Farhad, Poorandokht Ilani-Kashkouli, Mehdi Sattari, Amir H. Mohammadi, Deresh Ramjuger-nath, and Dominique Richon. “Development of a General Model for Determination of Thermal Conductivityof Liquid Chemical Compounds at Atmospheric Pressure.” AIChE Journal 59, no. 5 (May 1, 2013): 1702-8.doi:10.1002/aic.13938
[R261] Lakshmi, D. S., and D. H. L. Prasad. “A Rapid Estimation Method for Thermal Conductivity of Pure Liquids.”The Chemical Engineering Journal 48, no. 3 (April 1992): 211-14. doi:10.1016/0300-9467(92)80037-B
[R262] Lindsay, Alexander L., and LeRoy A. Bromley. “Thermal Conductivity of Gas Mixtures.” Industrial & Engi-neering Chemistry 42, no. 8 (August 1, 1950): 1508-11. doi:10.1021/ie50488a017.
[R263] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R264] Missenard, F. A., Thermal Conductivity of Organic Liquids of a Series or a Group of Liquids , Rev.Gen.Thermodyn., 101 649 (1970).
[R265] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R266] Di Nicola, Giovanni, Eleonora Ciarrocchi, Gianluca Coccia, and Mariano Pierantozzi. “Correlations of Ther-mal Conductivity for Liquid Refrigerants at Atmospheric Pressure or near Saturation.” International Journal ofRefrigeration. 2014. doi:10.1016/j.ijrefrig.2014.06.003
[R267] Nicola, Giovanni Di, Eleonora Ciarrocchi, Mariano Pierantozzi, and Roman Stryjek. “A New Equation for theThermal Conductivity of Organic Compounds.” Journal of Thermal Analysis and Calorimetry 116, no. 1 (April 1,2014): 135-40. doi:10.1007/s10973-013-3422-7
[R268] Riedel, L.: Chem. Ing. Tech., 21, 349 (1949); 23: 59, 321, 465 (1951)
[R269] Maejima, T., private communication, 1973
[R270] Properties of Gases and Liquids”, 3rd Ed., McGraw-Hill, 1977
[R271] Scheffy, W. J., and E. F. Johnson. “Thermal Conductivities of Liquids at High Temperatures.” Journal ofChemical & Engineering Data 6, no. 2 (April 1, 1961): 245-49. doi:10.1021/je60010a019
[R272] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R273] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R274] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R275] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R276] Chung, Ting Horng, Mohammad Ajlan, Lloyd L. Lee, and Kenneth E. Starling. “Generalized MultiparameterCorrelation for Nonpolar and Polar Fluid Transport Properties.” Industrial & Engineering Chemistry Research 27,no. 4 (April 1, 1988): 671-79. doi:10.1021/ie00076a024.
[R277] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
Bibliography 271
thermo Documentation, Release 0.1
[R278] Ely, James F., and H. J. M. Hanley. “Prediction of Transport Properties. 2. Thermal Conductivity of PureFluids and Mixtures.” Industrial & Engineering Chemistry Fundamentals 22, no. 1 (February 1, 1983): 90-97.doi:10.1021/i100009a016.
[R279] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R280] Ely, James F., and H. J. M. Hanley. “Prediction of Transport Properties. 2. Thermal Conductivity of PureFluids and Mixtures.” Industrial & Engineering Chemistry Fundamentals 22, no. 1 (February 1, 1983): 90-97.doi:10.1021/i100009a016.
[R281] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R282] Stiel, Leonard I., and George Thodos. “The Thermal Conductivity of Nonpolar Substances in the DenseGaseous and Liquid Regions.” AIChE Journal 10, no. 1 (January 1, 1964): 26-30. doi:10.1002/aic.690100114.
[R283] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R284] Staveley, L. A. K., L. Q. Lobo, and J. C. G. Calado. “Triple-Points of Low Melting Substances and Their Usein Cryogenic Work.” Cryogenics 21, no. 3 (March 1981): 131-144. doi:10.1016/0011-2275(81)90264-2.
[R285] Staveley, L. A. K., L. Q. Lobo, and J. C. G. Calado. “Triple-Points of Low Melting Substances and Their Usein Cryogenic Work.” Cryogenics 21, no. 3 (March 1981): 131-144. doi:10.1016/0011-2275(81)90264-2.
[R286] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R287] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R288] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R289] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R290] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R291] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R292] Ambrose, D., and J. Walton. “Vapour Pressures up to Their Critical Temperatures of Normal Alkanes and1-Alkanols.” Pure and Applied Chemistry 61, no. 8 (1989): 1395-1403. doi:10.1351/pac198961081395.
[R293] Reid, Robert C..; Prausnitz, John M.; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R294] Lee, Byung Ik, and Michael G. Kesler. “A Generalized Thermodynamic Correlation Based on Three-Parameter Corresponding States.” AIChE Journal 21, no. 3 (1975): 510-527. doi:10.1002/aic.690210313.
[R295] Reid, Robert C..; Prausnitz, John M.;; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R296] Sanjari, Ehsan, Mehrdad Honarmand, Hamidreza Badihi, and Ali Ghaheri. “An Accurate Generalized Modelfor Predict Vapor Pressure of Refrigerants.” International Journal of Refrigeration 36, no. 4 (June 2013): 1327-32.doi:10.1016/j.ijrefrig.2013.01.007.
[R297] McGarry, Jack. “Correlation and Prediction of the Vapor Pressures of Pure Liquids over Large PressureRanges.” Industrial & Engineering Chemistry Process Design and Development 22, no. 2 (April 1, 1983): 313-22.doi:10.1021/i200021a023.
272 Bibliography
thermo Documentation, Release 0.1
[R298] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R299] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R300] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R301] Wagner, W. “New Vapour Pressure Measurements for Argon and Nitrogen and a New Method for Estab-lishing Rational Vapour Pressure Equations.” Cryogenics 13, no. 8 (August 1973): 470-82. doi:10.1016/0011-2275(73)90003-9
[R302] Reid, Robert C..; Prausnitz, John M.;; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R303] Pitzer, Kenneth S., and R. F. Curl. “The Volumetric and Thermodynamic Properties of Fluids. III. EmpiricalEquation for the Second Virial Coefficient1.” Journal of the American Chemical Society 79, no. 10 (May 1, 1957):2369-70. doi:10.1021/ja01567a007.
[R304] Smith, H. C. Van Ness Joseph M. Introduction to Chemical Engineering Thermodynamics 4E 1987.
[R305] Tsonopoulos, Constantine. “An Empirical Correlation of Second Virial Coefficients.” AIChE Journal 20, no.2 (March 1, 1974): 263-72. doi:10.1002/aic.690200209.
[R306] Tsonopoulos, C., and J. L. Heidman. “From the Virial to the Cubic Equation of State.” Fluid Phase Equilibria57, no. 3 (1990): 261-76. doi:10.1016/0378-3812(90)85126-U
[R307] Tsonopoulos, Constantine, and John H. Dymond. “Second Virial Coefficients of Normal Alkanes, Linear1-Alkanols (and Water), Alkyl Ethers, and Their Mixtures.” Fluid Phase Equilibria, International Workshop onVapour-Liquid Equilibria and Related Properties in Binary and Ternary Mixtures of Ethers, Alkanes and Alkanols,133, no. 1-2 (June 1997): 11-34. doi:10.1016/S0378-3812(97)00058-7.
[R308] Brokaw, R. S. “Predicting Transport Properties of Dilute Gases.” Industrial & Engineering Chemistry ProcessDesign and Development 8, no. 2 (April 1, 1969): 240-53. doi:10.1021/i260030a015.
[R309] Brokaw, R. S. Viscosity of Gas Mixtures, NASA-TN-D-4496, 1968.
[R310] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R311] Gharagheizi, Farhad, Ali Eslamimanesh, Mehdi Sattari, Amir H. Mohammadi, and Dominique Richon. “Cor-responding States Method for Determination of the Viscosity of Gases at Atmospheric Pressure.” Industrial &Engineering Chemistry Research 51, no. 7 (February 22, 2012): 3179-85. doi:10.1021/ie202591f.
[R312] Herning, F. and Zipperer, L,: “Calculation of the Viscosity of Technical Gas Mixtures from the Viscosity ofIndividual Gases, german”, Gas u. Wasserfach (1936) 79, No. 49, 69.
[R313] Letsou, Athena, and Leonard I. Stiel. “Viscosity of Saturated Nonpolar Liquids at Elevated Pressures.” AIChEJournal 19, no. 2 (1973): 409-11. doi:10.1002/aic.690190241.
[R314] Lucas, Klaus. “Ein Einfaches Verfahren Zur Berechnung Der Viskositat von Gasen Und Gasgemischen.”Chemie Ingenieur Technik 46, no. 4 (February 1, 1974): 157-157. doi:10.1002/cite.330460413.
[R315] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R316] Przedziecki, J. W., and T. Sridhar. “Prediction of Liquid Viscosities.” AIChE Journal 31, no. 2 (February 1,1985): 333-35. doi:10.1002/aic.690310225.
[R317] Stiel, Leonard I., and George Thodos. “The Viscosity of Nonpolar Gases at Normal Pressures.” AIChE Journal7, no. 4 (1961): 611-15. doi:10.1002/aic.690070416.
Bibliography 273
thermo Documentation, Release 0.1
[R318] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R319] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R320] Viswanath, Dabir S., and G. Natarajan. Databook On The Viscosity Of Liquids. New York: Taylor & Francis,1989
[R321] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R322] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R323] Viswanath, Dabir S., and G. Natarajan. Databook On The Viscosity Of Liquids. New York: Taylor & Francis,1989
[R324] TODO
[R325] Yoon, Poong, and George Thodos. “Viscosity of Nonpolar Gaseous Mixtures at Normal Pressures.” AIChEJournal 16, no. 2 (1970): 300-304. doi:10.1002/aic.690160225.
[R326] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R327] ASTM D2270-10(2016) Standard Practice for Calculating Viscosity Index from Kinematic Viscosity at 40°Cand 100°C, ASTM International, West Conshohocken, PA, 2016, http://dx.doi.org/10.1520/D2270-10R16
[R328] Bhirud, Vasant L. “Saturated Liquid Densities of Normal Fluids.” AIChE Journal 24, no. 6 (November 1,1978): 1127-31. doi:10.1002/aic.690240630
[R329] Hankinson, Risdon W., and George H. Thomson. “A New Correlation for Saturated Densities of Liquids andTheir Mixtures.” AIChE Journal 25, no. 4 (1979): 653-663. doi:10.1002/aic.690250412
[R330] Thomson, G. H., K. R. Brobst, and R. W. Hankinson. “An Improved Correlation for Densities of CompressedLiquids and Liquid Mixtures.” AIChE Journal 28, no. 4 (July 1, 1982): 671-76. doi:10.1002/aic.690280420
[R331] Hankinson, Risdon W., and George H. Thomson. “A New Correlation for Saturated Densities of Liquids andTheir Mixtures.” AIChE Journal 25, no. 4 (1979): 653-663. doi:10.1002/aic.690250412
[R332] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. [BocaRaton, FL]: CRC press, 2014.
[R333] Campbell, Scott W., and George Thodos. “Prediction of Saturated Liquid Densities and Critical Volumes forPolar and Nonpolar Substances.” Journal of Chemical & Engineering Data 30, no. 1 (January 1, 1985): 102-11.doi:10.1021/je00039a032.
[R334] Goodman, Benjamin T., W. Vincent Wilding, John L. Oscarson, and Richard L. Rowley. “A Note on theRelationship between Organic Solid Density and Liquid Density at the Triple Point.” Journal of Chemical &Engineering Data 49, no. 6 (2004): 1512-14. doi:10.1021/je034220e.
[R335] Rackett, Harold G. “Equation of State for Saturated Liquids.” Journal of Chemical & Engineering Data 15,no. 4 (1970): 514-517. doi:10.1021/je60047a012
[R336] Rackett, Harold G. “Equation of State for Saturated Liquids.” Journal of Chemical & Engineering Data 15,no. 4 (1970): 514-517. doi:10.1021/je60047a012
[R337] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
274 Bibliography
thermo Documentation, Release 0.1
[R338] Mchaweh, A., A. Alsaygh, Kh. Nasrifar, and M. Moshfeghian. “A Simplified Method for Calculating SaturatedLiquid Densities.” Fluid Phase Equilibria 224, no. 2 (October 1, 2004): 157-67. doi:10.1016/j.fluid.2004.06.054
[R339] Hales, J. L, and R Townsend. “Liquid Densities from 293 to 490 K of Nine Aromatic Hydrocarbons.” TheJournal of Chemical Thermodynamics 4, no. 5 (1972): 763-72. doi:10.1016/0021-9614(72)90050-X
[R340] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R341] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R342] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, 8E. McGraw-Hill Professional, 2007.
[R343] Mchaweh, A., A. Alsaygh, Kh. Nasrifar, and M. Moshfeghian. “A Simplified Method for Calculating SaturatedLiquid Densities.” Fluid Phase Equilibria 224, no. 2 (October 1, 2004): 157-67. doi:10.1016/j.fluid.2004.06.054
[R344] Hankinson, Risdon W., and George H. Thomson. “A New Correlation for Saturated Densities of Liquids andTheir Mixtures.” AIChE Journal 25, no. 4 (1979): 653-663. doi:10.1002/aic.690250412
[R345] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R346] Bell, Ian H., Jorrit Wronski, Sylvain Quoilin, and Vincent Lemort. “Pure and Pseudo-Pure Fluid Ther-mophysical Property Evaluation and the Open-Source Thermophysical Property Library CoolProp.” Indus-trial & Engineering Chemistry Research 53, no. 6 (February 12, 2014): 2498-2508. doi:10.1021/ie4033999.http://www.coolprop.org/
[R347] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R348] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R349] Gunn, R. D., and Tomoyoshi Yamada. “A Corresponding States Correlation of Saturated Liquid Volumes.”AIChE Journal 17, no. 6 (1971): 1341-45. doi:10.1002/aic.690170613
[R350] Yamada, Tomoyoshi, and Robert D. Gunn. “Saturated Liquid Molar Volumes. Rackett Equation.” Journal ofChemical & Engineering Data 18, no. 2 (1973): 234-36. doi:10.1021/je60057a006
[R351] Yen, Lewis C., and S. S. Woods. “A Generalized Equation for Computer Calculation of Liquid Densities.”AIChE Journal 12, no. 1 (1966): 95-99. doi:10.1002/aic.690120119
[R352] Literally anything
Bibliography 275
thermo Documentation, Release 0.1
276 Bibliography
Python Module Index
tthermo, 253thermo.acentric, 3thermo.activity, 7thermo.chemical, 8thermo.combustion, 11thermo.critical, 13thermo.datasheet, 26thermo.dipole, 27thermo.dippr, 28thermo.electrochem, 34thermo.elements, 44thermo.environment, 50thermo.heat_capacity, 52thermo.identifiers, 68thermo.interface, 71thermo.law, 84thermo.lennard_jones, 86thermo.miscdata, 99thermo.permittivity, 100thermo.phase_change, 104thermo.pr, 118thermo.reaction, 119thermo.refractivity, 121thermo.safety, 124thermo.solubility, 133thermo.temperature, 137thermo.thermal_conductivity, 139thermo.triple, 170thermo.utils, 172thermo.vapor_pressure, 194thermo.virial, 203thermo.viscosity, 206thermo.volume, 227
277
thermo Documentation, Release 0.1
278 Python Module Index
Index
AA() (in module thermo.pr), 118a() (in module thermo.pr), 118a_alpha() (in module thermo.pr), 118all_methods (thermo.heat_capacity.HeatCapacityGas at-
tribute), 55all_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 59all_methods (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 62all_methods (thermo.interface.SurfaceTension attribute),
80all_methods (thermo.permittivity.Permittivity attribute),
101all_methods (thermo.phase_change.EnthalpyVaporization
attribute), 108all_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 156all_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 161all_methods (thermo.vapor_pressure.VaporPressure at-
tribute), 199all_methods (thermo.viscosity.ViscosityGas attribute),
215all_methods (thermo.viscosity.ViscosityLiquid attribute),
220all_methods (thermo.volume.VolumeLiquid attribute),
245all_methods (thermo.volume.VolumeSolid attribute), 249all_methods_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 156all_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 161all_methods_P (thermo.viscosity.ViscosityGas attribute),
215all_methods_P (thermo.viscosity.ViscosityLiquid at-
tribute), 220all_methods_P (thermo.volume.VolumeGas attribute),
240all_methods_P (thermo.volume.VolumeLiquid attribute),
245alpha() (in module thermo.pr), 118Ambrose_Walton() (in module thermo.vapor_pressure),
194Amgat() (in module thermo.volume), 228Antoine() (in module thermo.vapor_pressure), 195AReneg (thermo.elements.Element attribute), 45atom_fractions() (in module thermo.elements), 46atoms_to_Hill() (in module thermo.elements), 46
BB() (in module thermo.pr), 118b() (in module thermo.pr), 118B_from_Z() (in module thermo.utils), 173B_To_Z() (in module thermo.utils), 172Bahadori_gas() (in module
thermo.thermal_conductivity), 139Bahadori_liquid() (in module
thermo.thermal_conductivity), 140Bhirud_normal() (in module thermo.volume), 228block (thermo.elements.Element attribute), 45blocks (in module thermo.elements), 47boiling_critical_relation() (in module
thermo.vapor_pressure), 202boiling_methods (thermo.phase_change.EnthalpyVaporization
attribute), 108Bond() (thermo.chemical.Chemical method), 9Bond() (thermo.chemical.Mixture method), 11Brock_Bird() (in module thermo.interface), 71Brokaw() (in module thermo.viscosity), 206bubble_at_T() (in module thermo.activity), 8BVirial_Abbott() (in module thermo.virial), 204BVirial_Pitzer_Curl() (in module thermo.virial), 203BVirial_Tsonopoulos() (in module thermo.virial), 204BVirial_Tsonopoulos_Extended() (in module
thermo.virial), 205
Ccalc_H() (thermo.chemical.Chemical method), 10calc_S() (thermo.chemical.Chemical method), 10
279
thermo Documentation, Release 0.1
calculate() (thermo.chemical.Chemical method), 10calculate() (thermo.heat_capacity.HeatCapacityGas
method), 55calculate() (thermo.heat_capacity.HeatCapacityLiquid
method), 59calculate() (thermo.heat_capacity.HeatCapacitySolid
method), 62calculate() (thermo.interface.SurfaceTension method), 80calculate() (thermo.permittivity.Permittivity method), 101calculate() (thermo.phase_change.EnthalpyVaporization
method), 108calculate() (thermo.thermal_conductivity.ThermalConductivityGas
method), 156calculate() (thermo.thermal_conductivity.ThermalConductivityLiquid
method), 161calculate() (thermo.utils.TDependentProperty method),
177calculate() (thermo.vapor_pressure.VaporPressure
method), 199calculate() (thermo.viscosity.ViscosityGas method), 215calculate() (thermo.viscosity.ViscosityLiquid method),
220calculate() (thermo.volume.VolumeLiquid method), 245calculate() (thermo.volume.VolumeSolid method), 249calculate_derivative() (thermo.utils.TDependentProperty
method), 178calculate_derivative_P() (thermo.utils.TPDependentProperty
method), 183calculate_derivative_T() (thermo.utils.TPDependentProperty
method), 184calculate_integral() (thermo.utils.TDependentProperty
method), 178calculate_integral_over_T()
(thermo.utils.TDependentProperty method),178
calculate_P() (thermo.thermal_conductivity.ThermalConductivityGasmethod), 156
calculate_P() (thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 161
calculate_P() (thermo.viscosity.ViscosityGas method),215
calculate_P() (thermo.viscosity.ViscosityLiquid method),220
calculate_P() (thermo.volume.VolumeGas method), 240calculate_P() (thermo.volume.VolumeLiquid method),
245Campbell_Thodos() (in module thermo.volume), 233Capillary() (thermo.chemical.Chemical method), 9Capillary() (thermo.chemical.Mixture method), 11Carcinogen() (in module thermo.safety), 124CAS (thermo.elements.Element attribute), 45CAS2int() (in module thermo.utils), 174CAS_by_number (in module thermo.elements), 44CAS_to_elements (thermo.elements.PeriodicTable
attribute), 46CASfromAny() (in module thermo.identifiers), 68Ceiling() (in module thermo.safety), 125checkCAS() (in module thermo.identifiers), 70Chemical (class in thermo.chemical), 9Chen() (in module thermo.phase_change), 104Chueh_Prausnitz_Tc() (in module thermo.critical), 13Chueh_Prausnitz_Vc() (in module thermo.critical), 14Chung() (in module thermo.thermal_conductivity), 140chung_dense() (in module thermo.thermal_conductivity),
164Clapeyron() (in module thermo.phase_change), 105collision_integral_Kim_Monroe() (in module
thermo.lennard_jones), 88collision_integral_Neufeld_Janzen_Aziz() (in module
thermo.lennard_jones), 89conductivity() (in module thermo.electrochem), 42COSTALD() (in module thermo.volume), 229COSTALD_compressed() (in module thermo.volume),
230COSTALD_mixture() (in module thermo.volume), 231Cp_gas_mixture() (in module thermo.heat_capacity), 53Cp_liq_mixture() (in module thermo.heat_capacity), 53CRC_inorganic() (in module thermo.volume), 232critical_surface() (in module thermo.critical), 24Crowl_Louvar_LFL() (in module thermo.safety), 125Crowl_Louvar_UFL() (in module thermo.safety), 126CSP_methods (thermo.phase_change.EnthalpyVaporization
attribute), 108Cv_gas_mixture() (in module thermo.heat_capacity), 53
DDadgostar_Shaw() (in module thermo.heat_capacity), 53dew_at_T() (in module thermo.activity), 8Diguilio_Teja() (in module thermo.interface), 72dipole() (in module thermo.dipole), 27DIPPR9B() (in module thermo.thermal_conductivity),
141DIPPR9G() (in module thermo.thermal_conductivity),
142DIPPR9I() (in module thermo.thermal_conductivity), 143draw_2d() (thermo.chemical.Chemical method), 10draw_3d() (thermo.chemical.Chemical method), 10
Eeconomic_status() (in module thermo.law), 84elaffinity (thermo.elements.Element attribute), 45electrons (thermo.elements.Element attribute), 45Element (class in thermo.elements), 44elements (in module thermo.elements), 47eli_hanley() (in module thermo.thermal_conductivity),
165eli_hanley_dense() (in module
thermo.thermal_conductivity), 167
280 Index
thermo Documentation, Release 0.1
elneg (thermo.elements.Element attribute), 45enthalpy_vaporization_methods (in module
thermo.phase_change), 118EnthalpyVaporization (class in thermo.phase_change),
106epsilon_Bird_Stewart_Lightfoot_boiling() (in module
thermo.lennard_jones), 89epsilon_Bird_Stewart_Lightfoot_critical() (in module
thermo.lennard_jones), 90epsilon_Bird_Stewart_Lightfoot_melting() (in module
thermo.lennard_jones), 90epsilon_Flynn() (in module thermo.lennard_jones), 91epsilon_Stiel_Thodos() (in module
thermo.lennard_jones), 91epsilon_Tee_Gotoh_Steward_1() (in module
thermo.lennard_jones), 92epsilon_Tee_Gotoh_Steward_2() (in module
thermo.lennard_jones), 92EQ100() (in module thermo.dippr), 28EQ101() (in module thermo.dippr), 29EQ102() (in module thermo.dippr), 29EQ104() (in module thermo.dippr), 30EQ105() (in module thermo.dippr), 30EQ106() (in module thermo.dippr), 31EQ107() (in module thermo.dippr), 31EQ114() (in module thermo.dippr), 32EQ115() (in module thermo.dippr), 32EQ116() (in module thermo.dippr), 33EQ127() (in module thermo.dippr), 34Eucken() (in module thermo.thermal_conductivity), 144Eucken_modified() (in module
thermo.thermal_conductivity), 145
FFilippov() (in module thermo.thermal_conductivity), 145fire_mixing() (in module thermo.safety), 132flash() (in module thermo.activity), 8forced (thermo.utils.TDependentProperty attribute), 179forced_P (thermo.utils.TPDependentProperty attribute),
184formula() (in module thermo.identifiers), 70
GGharagheizi_gas() (in module
thermo.thermal_conductivity), 146Gharagheizi_gas() (in module thermo.viscosity), 208Gharagheizi_liquid() (in module
thermo.thermal_conductivity), 147Goodman() (in module thermo.volume), 234Grashof() (thermo.chemical.Chemical method), 9Grashof() (thermo.chemical.Mixture method), 11Grieves_Thodos() (in module thermo.critical), 15Grigoras() (in module thermo.critical), 15group (thermo.elements.Element attribute), 45
groups (in module thermo.elements), 47GWP() (in module thermo.environment), 50
HHakim_Steinberg_Stiel() (in module thermo.interface),
73Hcombustion() (in module thermo.combustion), 12heat_capacity_gas_methods (in module
thermo.heat_capacity), 68heat_capacity_liquid_methods (in module
thermo.heat_capacity), 68heat_capacity_solid_methods (in module
thermo.heat_capacity), 68HeatCapacityGas (class in thermo.heat_capacity), 54HeatCapacityLiquid (class in thermo.heat_capacity), 57HeatCapacitySolid (class in thermo.heat_capacity), 60Herning_Zipperer() (in module thermo.viscosity), 208Hf() (in module thermo.reaction), 119Hf_g() (in module thermo.reaction), 120Hf_l() (in module thermo.reaction), 120Hfus() (in module thermo.phase_change), 110Hsub() (in module thermo.phase_change), 110
Iideal_gas() (in module thermo.volume), 252identify_phase() (in module thermo.activity), 8identify_phase_mixture() (in module thermo.activity), 8Ihmels() (in module thermo.critical), 16InChI() (in module thermo.identifiers), 69InChI_Key() (in module thermo.identifiers), 69int2CAS() (in module thermo.utils), 188interpolate() (thermo.utils.TDependentProperty method),
179interpolate_P() (thermo.utils.TPDependentProperty
method), 184interpolation_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 157interpolation_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 162interpolation_P (thermo.utils.TPDependentProperty at-
tribute), 185interpolation_P (thermo.viscosity.ViscosityGas attribute),
215interpolation_P (thermo.viscosity.ViscosityLiquid at-
tribute), 220interpolation_P (thermo.volume.VolumeGas attribute),
241interpolation_P (thermo.volume.VolumeLiquid attribute),
246interpolation_property (thermo.heat_capacity.HeatCapacityGas
attribute), 56interpolation_property (thermo.heat_capacity.HeatCapacityLiquid
attribute), 59
Index 281
thermo Documentation, Release 0.1
interpolation_property (thermo.heat_capacity.HeatCapacitySolidattribute), 62
interpolation_property (thermo.interface.SurfaceTensionattribute), 80
interpolation_property (thermo.permittivity.Permittivityattribute), 102
interpolation_property (thermo.phase_change.EnthalpyVaporizationattribute), 109
interpolation_property (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
interpolation_property (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
interpolation_property (thermo.utils.TDependentPropertyattribute), 179
interpolation_property (thermo.viscosity.ViscosityGas at-tribute), 215
interpolation_property (thermo.viscosity.ViscosityLiquidattribute), 221
interpolation_property (thermo.volume.VolumeGas at-tribute), 241
interpolation_property (thermo.volume.VolumeLiquid at-tribute), 246
interpolation_property (thermo.volume.VolumeSolid at-tribute), 249
interpolation_property() (thermo.vapor_pressure.VaporPressuremethod), 199
interpolation_property_inv(thermo.heat_capacity.HeatCapacityGas at-tribute), 56
interpolation_property_inv(thermo.heat_capacity.HeatCapacityLiquidattribute), 59
interpolation_property_inv(thermo.heat_capacity.HeatCapacitySolidattribute), 62
interpolation_property_inv(thermo.interface.SurfaceTension attribute), 80
interpolation_property_inv(thermo.permittivity.Permittivity attribute),102
interpolation_property_inv(thermo.phase_change.EnthalpyVaporizationattribute), 109
interpolation_property_inv(thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
interpolation_property_inv(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
interpolation_property_inv(thermo.utils.TDependentProperty attribute),179
interpolation_property_inv(thermo.viscosity.ViscosityGas attribute),
215interpolation_property_inv
(thermo.viscosity.ViscosityLiquid attribute),221
interpolation_property_inv (thermo.volume.VolumeGasattribute), 241
interpolation_property_inv(thermo.volume.VolumeLiquid attribute),246
interpolation_property_inv (thermo.volume.VolumeSolidattribute), 249
interpolation_property_inv()(thermo.vapor_pressure.VaporPressuremethod), 199
interpolation_T (thermo.heat_capacity.HeatCapacityGasattribute), 56
interpolation_T (thermo.heat_capacity.HeatCapacityLiquidattribute), 59
interpolation_T (thermo.heat_capacity.HeatCapacitySolidattribute), 62
interpolation_T (thermo.interface.SurfaceTension at-tribute), 80
interpolation_T (thermo.permittivity.Permittivity at-tribute), 102
interpolation_T (thermo.phase_change.EnthalpyVaporizationattribute), 109
interpolation_T (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
interpolation_T (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
interpolation_T (thermo.utils.TDependentPropertyattribute), 179
interpolation_T (thermo.viscosity.ViscosityGas attribute),215
interpolation_T (thermo.viscosity.ViscosityLiquid at-tribute), 220
interpolation_T (thermo.volume.VolumeGas attribute),241
interpolation_T (thermo.volume.VolumeLiquid attribute),246
interpolation_T (thermo.volume.VolumeSolid attribute),249
interpolation_T() (thermo.vapor_pressure.VaporPressuremethod), 199
ionic_strength() (in module thermo.electrochem), 43ionization (thermo.elements.Element attribute), 45isentropic_exponent() (in module thermo.utils), 189isobaric_expansion() (in module thermo.utils), 189ITS90_68_difference() (in module thermo.temperature),
137IUPAC_name() (in module thermo.identifiers), 69
JJakob() (thermo.chemical.Chemical method), 9
282 Index
thermo Documentation, Release 0.1
Jakob() (thermo.chemical.Mixture method), 11Jasper() (in module thermo.interface), 74JT() (in module thermo.utils), 174
KK() (in module thermo.activity), 7Kweq_1981() (in module thermo.electrochem), 34Kweq_IAPWS() (in module thermo.electrochem), 35Kweq_IAPWS_gas() (in module thermo.electrochem), 36
LLakshmi_Prasad() (in module
thermo.thermal_conductivity), 148Laliberte_density() (in module thermo.electrochem), 36Laliberte_density_i() (in module thermo.electrochem), 37Laliberte_density_w() (in module thermo.electrochem),
37Laliberte_heat_capacity() (in module
thermo.electrochem), 38Laliberte_heat_capacity_i() (in module
thermo.electrochem), 39Laliberte_heat_capacity_w() (in module
thermo.electrochem), 39Laliberte_viscosity() (in module thermo.electrochem), 40Laliberte_viscosity_i() (in module thermo.electrochem),
41Laliberte_viscosity_w() (in module thermo.electrochem),
41Lastovka_Shaw() (in module thermo.heat_capacity), 63Lastovka_solid() (in module thermo.heat_capacity), 64Lee_Kesler() (in module thermo.vapor_pressure), 195legal_status() (in module thermo.law), 85Letsou_Stiel() (in module thermo.viscosity), 209LFL() (in module thermo.safety), 126LFL_mixture() (in module thermo.safety), 127Li() (in module thermo.critical), 17Lindsay_Bromley() (in module
thermo.thermal_conductivity), 148Liu() (in module thermo.phase_change), 110LK_omega() (in module thermo.acentric), 4load_all_methods() (thermo.heat_capacity.HeatCapacityGas
method), 56load_all_methods() (thermo.heat_capacity.HeatCapacityLiquid
method), 59load_all_methods() (thermo.heat_capacity.HeatCapacitySolid
method), 62load_all_methods() (thermo.interface.SurfaceTension
method), 80load_all_methods() (thermo.permittivity.Permittivity
method), 102load_all_methods() (thermo.phase_change.EnthalpyVaporization
method), 109load_all_methods() (thermo.thermal_conductivity.ThermalConductivityGas
method), 157
load_all_methods() (thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 162
load_all_methods() (thermo.utils.TDependentPropertymethod), 179
load_all_methods() (thermo.vapor_pressure.VaporPressuremethod), 199
load_all_methods() (thermo.viscosity.ViscosityGasmethod), 215
load_all_methods() (thermo.viscosity.ViscosityLiquidmethod), 221
load_all_methods() (thermo.volume.VolumeGasmethod), 241
load_all_methods() (thermo.volume.VolumeLiquidmethod), 246
load_all_methods() (thermo.volume.VolumeSolidmethod), 249
logP() (in module thermo.environment), 52Lucas() (in module thermo.viscosity), 210lucas_gas() (in module thermo.viscosity), 225
Mmass_fractions() (in module thermo.elements), 47maxbonds (thermo.elements.Element attribute), 45Meissner() (in module thermo.critical), 18method (thermo.utils.TDependentProperty attribute), 179method (thermo.vapor_pressure.VaporPressure attribute),
200method_P (thermo.utils.TPDependentProperty attribute),
185mgm3_to_ppmv() (in module thermo.safety), 132Miqueu() (in module thermo.interface), 74Missenard() (in module thermo.thermal_conductivity),
149mixing_logarithmic() (in module thermo.utils), 189mixing_simple() (in module thermo.utils), 190Mixture (class in thermo.chemical), 10mixture_from_any() (in module thermo.identifiers), 70MK() (in module thermo.phase_change), 111modified_Wilson_Tc() (in module thermo.critical), 25modified_Wilson_Vc() (in module thermo.critical), 25molar_refractivity_from_RI() (in module
thermo.refractivity), 122molecular_diameter() (in module thermo.lennard_jones),
93molecular_weight() (in module thermo.elements), 48MW (thermo.elements.Element attribute), 45MW() (in module thermo.identifiers), 69
Nname (thermo.elements.Element attribute), 45name (thermo.heat_capacity.HeatCapacityGas attribute),
56name (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 59
Index 283
thermo Documentation, Release 0.1
name (thermo.heat_capacity.HeatCapacitySolid at-tribute), 62
name (thermo.interface.SurfaceTension attribute), 81name (thermo.permittivity.Permittivity attribute), 102name (thermo.phase_change.EnthalpyVaporization at-
tribute), 109name (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 157name (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 162name (thermo.utils.TDependentProperty attribute), 179name (thermo.vapor_pressure.VaporPressure attribute),
200name (thermo.viscosity.ViscosityGas attribute), 216name (thermo.viscosity.ViscosityLiquid attribute), 221name (thermo.volume.VolumeGas attribute), 241name (thermo.volume.VolumeLiquid attribute), 246name (thermo.volume.VolumeSolid attribute), 250name() (in module thermo.identifiers), 70name_to_elements (thermo.elements.PeriodicTable at-
tribute), 46Nicola() (in module thermo.thermal_conductivity), 150Nicola_original() (in module
thermo.thermal_conductivity), 151none_and_length_check() (in module thermo.utils), 190normalize() (in module thermo.utils), 191number (thermo.elements.Element attribute), 45number_to_elements (thermo.elements.PeriodicTable at-
tribute), 46
OODP() (in module thermo.environment), 51omega() (in module thermo.acentric), 3omega_mixture() (in module thermo.acentric), 5
PParachor() (in module thermo.utils), 174Pbubble_mixture() (in module thermo.activity), 7Pc() (in module thermo.critical), 19Pc_mixture() (in module thermo.critical), 20Pdew_mixture() (in module thermo.activity), 7Peclet_heat() (thermo.chemical.Chemical method), 9Peclet_heat() (thermo.chemical.Mixture method), 11period (thermo.elements.Element attribute), 45PeriodicTable (class in thermo.elements), 45periods (in module thermo.elements), 48Permittivity (class in thermo.permittivity), 100permittivity_IAPWS() (in module thermo.permittivity),
103permittivity_methods (in module thermo.permittivity),
104phase_set_property() (in module thermo.utils), 191Pitzer() (in module thermo.interface), 75Pitzer() (in module thermo.phase_change), 112
plot_isobar() (thermo.utils.TPDependentPropertymethod), 185
plot_isotherm() (thermo.utils.TPDependentPropertymethod), 185
plot_T_dependent_property()(thermo.utils.TDependentProperty method),179
Pmax (thermo.volume.VolumeGas attribute), 240Pmin (thermo.volume.VolumeGas attribute), 240polarizability_from_RI() (in module thermo.refractivity),
122ppmv_to_mgm3() (in module thermo.safety), 133PR_Vm() (in module thermo.pr), 118property_mass_to_molar() (in module thermo.utils), 192property_max (thermo.heat_capacity.HeatCapacityGas
attribute), 56property_max (thermo.heat_capacity.HeatCapacityLiquid
attribute), 59property_max (thermo.heat_capacity.HeatCapacitySolid
attribute), 62property_max (thermo.interface.SurfaceTension at-
tribute), 81property_max (thermo.permittivity.Permittivity attribute),
102property_max (thermo.phase_change.EnthalpyVaporization
attribute), 109property_max (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 157property_max (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 162property_max (thermo.utils.TDependentProperty at-
tribute), 180property_max (thermo.vapor_pressure.VaporPressure at-
tribute), 200property_max (thermo.viscosity.ViscosityGas attribute),
216property_max (thermo.viscosity.ViscosityLiquid at-
tribute), 221property_max (thermo.volume.VolumeGas attribute), 241property_max (thermo.volume.VolumeLiquid attribute),
246property_max (thermo.volume.VolumeSolid attribute),
250property_min (thermo.heat_capacity.HeatCapacityGas at-
tribute), 56property_min (thermo.heat_capacity.HeatCapacityLiquid
attribute), 60property_min (thermo.heat_capacity.HeatCapacitySolid
attribute), 62property_min (thermo.interface.SurfaceTension at-
tribute), 81property_min (thermo.permittivity.Permittivity attribute),
102property_min (thermo.phase_change.EnthalpyVaporization
284 Index
thermo Documentation, Release 0.1
attribute), 109property_min (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 157property_min (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 162property_min (thermo.utils.TDependentProperty at-
tribute), 180property_min (thermo.vapor_pressure.VaporPressure at-
tribute), 200property_min (thermo.viscosity.ViscosityGas attribute),
216property_min (thermo.viscosity.ViscosityLiquid at-
tribute), 221property_min (thermo.volume.VolumeGas attribute), 241property_min (thermo.volume.VolumeLiquid attribute),
246property_min (thermo.volume.VolumeSolid attribute),
250property_molar_to_mass() (in module thermo.utils), 192protons (thermo.elements.Element attribute), 45Przedziecki_Sridhar() (in module thermo.viscosity), 211Pt() (in module thermo.triple), 171PubChem() (in module thermo.identifiers), 69
RRachford_Rice_flash_error() (in module thermo.activity),
8Rackett() (in module thermo.volume), 235Rackett_mixture() (in module thermo.volume), 235ranked_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 56ranked_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 60ranked_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 62ranked_methods (thermo.interface.SurfaceTension
attribute), 81ranked_methods (thermo.permittivity.Permittivity at-
tribute), 102ranked_methods (thermo.phase_change.EnthalpyVaporization
attribute), 109ranked_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 157ranked_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 162ranked_methods (thermo.utils.TDependentProperty at-
tribute), 180ranked_methods (thermo.vapor_pressure.VaporPressure
attribute), 200ranked_methods (thermo.viscosity.ViscosityGas at-
tribute), 216ranked_methods (thermo.viscosity.ViscosityLiquid at-
tribute), 221
ranked_methods (thermo.volume.VolumeGas attribute),241
ranked_methods (thermo.volume.VolumeLiquid at-tribute), 246
ranked_methods (thermo.volume.VolumeSolid attribute),250
ranked_methods_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
ranked_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
ranked_methods_P (thermo.viscosity.ViscosityGasattribute), 216
ranked_methods_P (thermo.viscosity.ViscosityLiquid at-tribute), 221
ranked_methods_P (thermo.volume.VolumeGas at-tribute), 241
ranked_methods_P (thermo.volume.VolumeLiquidattribute), 246
rcov (thermo.elements.Element attribute), 45REFPROP() (in module thermo.interface), 76refractive_index() (in module thermo.refractivity), 123Reynolds() (thermo.chemical.Chemical method), 9Reynolds() (thermo.chemical.Mixture method), 11rho_to_Vm() (in module thermo.utils), 192RI_from_molar_refractivity() (in module
thermo.refractivity), 121Riedel() (in module thermo.phase_change), 112Rowlinson_Bondi() (in module thermo.heat_capacity), 65Rowlinson_Poling() (in module thermo.heat_capacity),
65rvdw (thermo.elements.Element attribute), 45
SSanjari() (in module thermo.vapor_pressure), 196Sastri_Rao() (in module thermo.interface), 77Sato_Riedel() (in module thermo.thermal_conductivity),
152select_valid_methods() (thermo.utils.TDependentProperty
method), 180select_valid_methods_P()
(thermo.utils.TPDependentProperty method),186
set_chemical_constants() (thermo.chemical.Mixturemethod), 11
set_chemical_TP() (thermo.chemical.Mixture method),11
set_constant_sources() (thermo.chemical.Chemicalmethod), 10
set_constant_sources() (thermo.chemical.Mixturemethod), 11
set_constants() (thermo.chemical.Chemical method), 10set_constants() (thermo.chemical.Mixture method), 11set_none() (thermo.chemical.Mixture method), 11set_phase() (thermo.chemical.Chemical method), 10
Index 285
thermo Documentation, Release 0.1
set_phase() (thermo.chemical.Mixture method), 11set_ref() (thermo.chemical.Chemical method), 10set_structure() (thermo.chemical.Chemical method), 10set_tabular_data() (thermo.utils.TDependentProperty
method), 180set_tabular_data_P() (thermo.utils.TPDependentProperty
method), 186set_thermo() (thermo.chemical.Chemical method), 10set_TP() (thermo.chemical.Chemical method), 10set_TP() (thermo.chemical.Mixture method), 11set_TP_sources() (thermo.chemical.Chemical method),
10set_TP_sources() (thermo.chemical.Mixture method), 11set_user_methods() (thermo.utils.TDependentProperty
method), 180set_user_methods_P() (thermo.utils.TPDependentProperty
method), 187Sheffy_Johnson() (in module
thermo.thermal_conductivity), 152sigma_Bird_Stewart_Lightfoot_boiling() (in module
thermo.lennard_jones), 94sigma_Bird_Stewart_Lightfoot_critical_1() (in module
thermo.lennard_jones), 94sigma_Bird_Stewart_Lightfoot_critical_2() (in module
thermo.lennard_jones), 95sigma_Bird_Stewart_Lightfoot_melting() (in module
thermo.lennard_jones), 95sigma_Flynn() (in module thermo.lennard_jones), 96sigma_Silva_Liu_Macedo() (in module
thermo.lennard_jones), 96sigma_Stiel_Thodos() (in module thermo.lennard_jones),
97sigma_Tee_Gotoh_Steward_1() (in module
thermo.lennard_jones), 98sigma_Tee_Gotoh_Steward_2() (in module
thermo.lennard_jones), 98similarity_variable() (in module thermo.elements), 49simple_formula_parser() (in module thermo.elements),
49Skin() (in module thermo.safety), 128smiles() (in module thermo.identifiers), 71SMK() (in module thermo.phase_change), 113SNM0() (in module thermo.volume), 236solubility_eutectic() (in module thermo.solubility), 134solubility_parameter() (in module thermo.solubility), 135solve_prop() (thermo.utils.TDependentProperty method),
181Somayajulu() (in module thermo.interface), 77sorted_valid_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 56sorted_valid_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 60sorted_valid_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 63
sorted_valid_methods (thermo.interface.SurfaceTensionattribute), 81
sorted_valid_methods (thermo.permittivity.Permittivityattribute), 102
sorted_valid_methods (thermo.phase_change.EnthalpyVaporizationattribute), 109
sorted_valid_methods (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
sorted_valid_methods (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
sorted_valid_methods (thermo.vapor_pressure.VaporPressureattribute), 200
sorted_valid_methods (thermo.viscosity.ViscosityGas at-tribute), 216
sorted_valid_methods (thermo.viscosity.ViscosityLiquidattribute), 221
sorted_valid_methods (thermo.volume.VolumeLiquid at-tribute), 246
sorted_valid_methods (thermo.volume.VolumeSolid at-tribute), 250
sorted_valid_methods_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
sorted_valid_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
sorted_valid_methods_P (thermo.viscosity.ViscosityGasattribute), 216
sorted_valid_methods_P (thermo.viscosity.ViscosityLiquidattribute), 221
sorted_valid_methods_P (thermo.volume.VolumeGas at-tribute), 241
sorted_valid_methods_P (thermo.volume.VolumeLiquidattribute), 246
STEL() (in module thermo.safety), 127Stiel_Thodos() (in module thermo.viscosity), 212stiel_thodos_dense() (in module
thermo.thermal_conductivity), 168StielPolar() (in module thermo.acentric), 6Stockmayer() (in module thermo.lennard_jones), 86str_to_ppm_mgm3() (in module thermo.safety), 133Stream (class in thermo.chemical), 11surface_tension_methods (in module thermo.interface),
83surface_tension_mixture() (in module thermo.interface),
83SurfaceTension (class in thermo.interface), 78Suzuki_LFL() (in module thermo.safety), 128Suzuki_UFL() (in module thermo.safety), 129symbol (thermo.elements.Element attribute), 45symbol_to_elements (thermo.elements.PeriodicTable at-
tribute), 46synonyms() (in module thermo.identifiers), 71
TT_converter() (in module thermo.temperature), 138
286 Index
thermo Documentation, Release 0.1
T_dependent_property() (thermo.utils.TDependentPropertymethod), 176
T_dependent_property_derivative()(thermo.utils.TDependentProperty method),176
T_dependent_property_integral()(thermo.utils.TDependentProperty method),177
T_dependent_property_integral_over_T()(thermo.utils.TDependentProperty method),177
tabular_data (thermo.heat_capacity.HeatCapacityGas at-tribute), 56
tabular_data (thermo.heat_capacity.HeatCapacityLiquidattribute), 60
tabular_data (thermo.heat_capacity.HeatCapacitySolidattribute), 63
tabular_data (thermo.interface.SurfaceTension attribute),81
tabular_data (thermo.permittivity.Permittivity attribute),102
tabular_data (thermo.phase_change.EnthalpyVaporizationattribute), 109
tabular_data (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
tabular_data (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
tabular_data (thermo.vapor_pressure.VaporPressure at-tribute), 200
tabular_data (thermo.viscosity.ViscosityGas attribute),216
tabular_data (thermo.viscosity.ViscosityLiquid attribute),221
tabular_data (thermo.volume.VolumeGas attribute), 241tabular_data (thermo.volume.VolumeLiquid attribute),
246tabular_data (thermo.volume.VolumeSolid attribute), 250tabular_data_interpolators
(thermo.heat_capacity.HeatCapacityGas at-tribute), 56
tabular_data_interpolators(thermo.heat_capacity.HeatCapacityLiquidattribute), 60
tabular_data_interpolators(thermo.heat_capacity.HeatCapacitySolidattribute), 63
tabular_data_interpolators(thermo.interface.SurfaceTension attribute), 81
tabular_data_interpolators(thermo.permittivity.Permittivity attribute),102
tabular_data_interpolators(thermo.phase_change.EnthalpyVaporizationattribute), 109
tabular_data_interpolators(thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
tabular_data_interpolators(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 163
tabular_data_interpolators(thermo.vapor_pressure.VaporPressure at-tribute), 200
tabular_data_interpolators(thermo.viscosity.ViscosityGas attribute),216
tabular_data_interpolators(thermo.viscosity.ViscosityLiquid attribute),221
tabular_data_interpolators (thermo.volume.VolumeGasattribute), 241
tabular_data_interpolators(thermo.volume.VolumeLiquid attribute),246
tabular_data_interpolators (thermo.volume.VolumeSolidattribute), 250
tabular_data_interpolators_P(thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
tabular_data_interpolators_P(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 163
tabular_data_interpolators_P(thermo.viscosity.ViscosityGas attribute),216
tabular_data_interpolators_P(thermo.viscosity.ViscosityLiquid attribute),221
tabular_data_interpolators_P(thermo.volume.VolumeGas attribute), 241
tabular_data_interpolators_P(thermo.volume.VolumeLiquid attribute),247
tabular_data_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 157
tabular_data_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 162
tabular_data_P (thermo.viscosity.ViscosityGas attribute),216
tabular_data_P (thermo.viscosity.ViscosityLiquid at-tribute), 221
tabular_data_P (thermo.volume.VolumeGas attribute),241
tabular_data_P (thermo.volume.VolumeLiquid attribute),246
tabular_extrapolation_permitted(thermo.heat_capacity.HeatCapacityGas at-tribute), 56
Index 287
thermo Documentation, Release 0.1
tabular_extrapolation_permitted(thermo.heat_capacity.HeatCapacityLiquidattribute), 60
tabular_extrapolation_permitted(thermo.heat_capacity.HeatCapacitySolidattribute), 63
tabular_extrapolation_permitted(thermo.interface.SurfaceTension attribute), 81
tabular_extrapolation_permitted(thermo.permittivity.Permittivity attribute),102
tabular_extrapolation_permitted(thermo.phase_change.EnthalpyVaporizationattribute), 109
tabular_extrapolation_permitted(thermo.thermal_conductivity.ThermalConductivityGasattribute), 158
tabular_extrapolation_permitted(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 163
tabular_extrapolation_permitted(thermo.utils.TDependentProperty attribute),181
tabular_extrapolation_permitted(thermo.vapor_pressure.VaporPressure at-tribute), 200
tabular_extrapolation_permitted(thermo.viscosity.ViscosityGas attribute),216
tabular_extrapolation_permitted(thermo.viscosity.ViscosityLiquid attribute),221
tabular_extrapolation_permitted(thermo.volume.VolumeGas attribute), 242
tabular_extrapolation_permitted(thermo.volume.VolumeLiquid attribute),247
tabular_extrapolation_permitted(thermo.volume.VolumeSolid attribute),250
tabulate_constants() (in module thermo.datasheet), 27tabulate_gas() (in module thermo.datasheet), 27tabulate_liq() (in module thermo.datasheet), 27tabulate_solid() (in module thermo.datasheet), 27Tautoignition() (in module thermo.safety), 129Tb() (in module thermo.phase_change), 114Tc() (in module thermo.critical), 20Tc_mixture() (in module thermo.critical), 21TDependentProperty (class in thermo.utils), 174test_method_validity() (thermo.heat_capacity.HeatCapacityGas
method), 56test_method_validity() (thermo.heat_capacity.HeatCapacityLiquid
method), 60test_method_validity() (thermo.heat_capacity.HeatCapacitySolid
method), 63test_method_validity() (thermo.interface.SurfaceTension
method), 81test_method_validity() (thermo.permittivity.Permittivity
method), 102test_method_validity() (thermo.phase_change.EnthalpyVaporization
method), 109test_method_validity() (thermo.thermal_conductivity.ThermalConductivityGas
method), 158test_method_validity() (thermo.thermal_conductivity.ThermalConductivityLiquid
method), 163test_method_validity() (thermo.utils.TDependentProperty
method), 181test_method_validity() (thermo.vapor_pressure.VaporPressure
method), 200test_method_validity() (thermo.viscosity.ViscosityGas
method), 216test_method_validity() (thermo.viscosity.ViscosityLiquid
method), 221test_method_validity() (thermo.volume.VolumeLiquid
method), 247test_method_validity() (thermo.volume.VolumeSolid
method), 250test_method_validity_P()
(thermo.thermal_conductivity.ThermalConductivityGasmethod), 158
test_method_validity_P()(thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 163
test_method_validity_P() (thermo.viscosity.ViscosityGasmethod), 217
test_method_validity_P()(thermo.viscosity.ViscosityLiquid method),222
test_method_validity_P() (thermo.volume.VolumeGasmethod), 242
test_method_validity_P() (thermo.volume.VolumeLiquidmethod), 247
test_property_validity() (thermo.utils.TDependentPropertyclass method), 181
Tflash() (in module thermo.safety), 130thermal_conductivity_gas_methods (in module
thermo.thermal_conductivity), 169thermal_conductivity_gas_methods_P (in module
thermo.thermal_conductivity), 169thermal_conductivity_gas_mixture() (in module
thermo.thermal_conductivity), 169thermal_conductivity_liquid_methods (in module
thermo.thermal_conductivity), 170thermal_conductivity_liquid_methods_P (in module
thermo.thermal_conductivity), 170thermal_conductivity_liquid_mixture() (in module
thermo.thermal_conductivity), 170thermal_conductivity_Magomedov() (in module
288 Index
thermo Documentation, Release 0.1
thermo.electrochem), 43ThermalConductivityGas (class in
thermo.thermal_conductivity), 153ThermalConductivityLiquid (class in
thermo.thermal_conductivity), 159thermo (module), 253thermo.acentric (module), 3thermo.activity (module), 7thermo.chemical (module), 8thermo.combustion (module), 11thermo.critical (module), 13thermo.datasheet (module), 26thermo.dipole (module), 27thermo.dippr (module), 28thermo.electrochem (module), 34thermo.elements (module), 44thermo.environment (module), 50thermo.heat_capacity (module), 52thermo.identifiers (module), 68thermo.interface (module), 71thermo.law (module), 84thermo.lennard_jones (module), 86thermo.miscdata (module), 99thermo.permittivity (module), 100thermo.phase_change (module), 104thermo.pr (module), 118thermo.reaction (module), 119thermo.refractivity (module), 121thermo.safety (module), 124thermo.solubility (module), 133thermo.temperature (module), 137thermo.thermal_conductivity (module), 139thermo.triple (module), 170thermo.utils (module), 172thermo.vapor_pressure (module), 194thermo.virial (module), 203thermo.viscosity (module), 206thermo.volume (module), 227ThirdProperty() (in module thermo.critical), 21Tliquidus() (in module thermo.phase_change), 115Tm() (in module thermo.phase_change), 115Tm_depression_eutectic() (in module thermo.solubility),
134Tmax (thermo.heat_capacity.HeatCapacityGas attribute),
55Tmax (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 59Tmax (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 62Tmax (thermo.interface.SurfaceTension attribute), 80Tmax (thermo.permittivity.Permittivity attribute), 101Tmax (thermo.phase_change.EnthalpyVaporization at-
tribute), 108
Tmax (thermo.thermal_conductivity.ThermalConductivityGasattribute), 156
Tmax (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 161
Tmax (thermo.vapor_pressure.VaporPressure attribute),199
Tmax (thermo.viscosity.ViscosityGas attribute), 214Tmax (thermo.viscosity.ViscosityLiquid attribute), 220Tmax (thermo.volume.VolumeGas attribute), 240Tmax (thermo.volume.VolumeLiquid attribute), 245Tmax (thermo.volume.VolumeSolid attribute), 249Tmin (thermo.heat_capacity.HeatCapacityGas attribute),
55Tmin (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 59Tmin (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 62Tmin (thermo.interface.SurfaceTension attribute), 80Tmin (thermo.permittivity.Permittivity attribute), 101Tmin (thermo.phase_change.EnthalpyVaporization at-
tribute), 108Tmin (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 156Tmin (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 161Tmin (thermo.vapor_pressure.VaporPressure attribute),
199Tmin (thermo.viscosity.ViscosityGas attribute), 214Tmin (thermo.viscosity.ViscosityLiquid attribute), 220Tmin (thermo.volume.VolumeGas attribute), 240Tmin (thermo.volume.VolumeLiquid attribute), 245Tmin (thermo.volume.VolumeSolid attribute), 249to_num() (in module thermo.utils), 192Townsend_Hales() (in module thermo.volume), 237TP_dependent_property()
(thermo.utils.TPDependentProperty method),182
TP_dependent_property_derivative_P()(thermo.utils.TPDependentProperty method),183
TP_dependent_property_derivative_T()(thermo.utils.TPDependentProperty method),183
TPDependentProperty (class in thermo.utils), 181TRC_Antoine_extended() (in module
thermo.vapor_pressure), 197TRCCp() (in module thermo.heat_capacity), 66Tsat() (thermo.chemical.Chemical method), 10Tstar() (in module thermo.lennard_jones), 87Tt() (in module thermo.triple), 171TWA() (in module thermo.safety), 129
UUFL() (in module thermo.safety), 131
Index 289
thermo Documentation, Release 0.1
UFL_mixture() (in module thermo.safety), 132units (thermo.heat_capacity.HeatCapacityGas attribute),
57units (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 60units (thermo.heat_capacity.HeatCapacitySolid attribute),
63units (thermo.interface.SurfaceTension attribute), 81units (thermo.permittivity.Permittivity attribute), 103units (thermo.phase_change.EnthalpyVaporization
attribute), 110units (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 158units (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 164units (thermo.utils.TDependentProperty attribute), 181units (thermo.vapor_pressure.VaporPressure attribute),
200units (thermo.viscosity.ViscosityGas attribute), 217units (thermo.viscosity.ViscosityLiquid attribute), 222units (thermo.volume.VolumeGas attribute), 242units (thermo.volume.VolumeLiquid attribute), 248units (thermo.volume.VolumeSolid attribute), 250user_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 57user_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 60user_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 63user_methods (thermo.interface.SurfaceTension at-
tribute), 81user_methods (thermo.permittivity.Permittivity attribute),
103user_methods (thermo.phase_change.EnthalpyVaporization
attribute), 110user_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 158user_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 164user_methods (thermo.vapor_pressure.VaporPressure at-
tribute), 200user_methods (thermo.viscosity.ViscosityGas attribute),
217user_methods (thermo.viscosity.ViscosityLiquid at-
tribute), 222user_methods (thermo.volume.VolumeLiquid attribute),
248user_methods (thermo.volume.VolumeSolid attribute),
250user_methods_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 158user_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 164user_methods_P (thermo.viscosity.ViscosityGas at-
tribute), 217user_methods_P (thermo.viscosity.ViscosityLiquid at-
tribute), 222user_methods_P (thermo.volume.VolumeGas attribute),
242user_methods_P (thermo.volume.VolumeLiquid at-
tribute), 248
Vvapor_pressure_methods (in module
thermo.vapor_pressure), 203VaporPressure (class in thermo.vapor_pressure), 197Vc() (in module thermo.critical), 22Vc_mixture() (in module thermo.critical), 23VDI_tabular_data() (in module thermo.miscdata), 99Velasco() (in module thermo.phase_change), 116Vetere() (in module thermo.phase_change), 117Vfs_to_zs() (in module thermo.utils), 187viscosity_gas_methods (in module thermo.viscosity), 226viscosity_gas_methods_P (in module thermo.viscosity),
226viscosity_gas_mixture() (in module thermo.viscosity),
226viscosity_index() (in module thermo.viscosity), 226viscosity_liquid_mixture() (in module thermo.viscosity),
227ViscosityGas (class in thermo.viscosity), 212ViscosityLiquid (class in thermo.viscosity), 217ViswanathNatarajan2() (in module thermo.viscosity), 222ViswanathNatarajan2Exponential() (in module
thermo.viscosity), 222ViswanathNatarajan3() (in module thermo.viscosity), 223Vm_to_rho() (in module thermo.utils), 187volume_gas_methods (in module thermo.volume), 253volume_gas_mixture() (in module thermo.volume), 253volume_liquid_methods (in module thermo.viscosity),
227volume_liquid_methods (in module thermo.volume), 253volume_liquid_methods_P (in module thermo.viscosity),
227volume_liquid_methods_P (in module thermo.volume),
253volume_liquid_mixture() (in module thermo.volume),
253volume_solid_methods (in module thermo.volume), 253VolumeGas (class in thermo.volume), 238VolumeLiquid (class in thermo.volume), 242VolumeSolid (class in thermo.volume), 248
WWagner() (in module thermo.vapor_pressure), 201Wagner_original() (in module thermo.vapor_pressure),
201Watson() (in module thermo.phase_change), 118
290 Index
thermo Documentation, Release 0.1
Watson_exponent (thermo.phase_change.EnthalpyVaporizationattribute), 108
Weber() (thermo.chemical.Chemical method), 10Weber() (thermo.chemical.Mixture method), 11Wilke() (in module thermo.viscosity), 223Winterfeld_Scriven_Davis() (in module
thermo.interface), 81ws_to_zs() (in module thermo.utils), 193
YYamada_Gunn() (in module thermo.volume), 250Yen_Woods_saturation() (in module thermo.volume), 251Yoon_Thodos() (in module thermo.viscosity), 224
ZZ() (in module thermo.utils), 188Zabransky_cubic() (in module thermo.heat_capacity), 67Zabransky_quasi_polynomial() (in module
thermo.heat_capacity), 67Zc() (in module thermo.critical), 23zs_to_Vfs() (in module thermo.utils), 193zs_to_ws() (in module thermo.utils), 194Zuo_Stenby() (in module thermo.interface), 82
Index 291