307
thermo Documentation Release 0.1 Caleb Bell August 07, 2016

thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo DocumentationRelease 0.1

Caleb Bell

August 07, 2016

Page 2: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
Page 3: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 4: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 5: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 6: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 7: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 8: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 9: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 10: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 11: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 12: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 13: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 14: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 15: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 16: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 17: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

Contents:

Contents 1

Page 18: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

2 Contents

Page 19: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 20: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 21: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 22: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 23: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 24: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 25: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 26: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 27: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 28: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 29: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 30: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 31: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 32: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 33: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 34: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 35: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 36: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 37: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 38: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 39: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 40: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 41: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 42: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 43: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 44: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 45: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 46: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 47: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 48: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 49: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 50: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 51: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 52: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 53: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 54: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 55: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 56: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 57: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 58: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 59: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 60: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 61: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 62: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 63: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 64: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 65: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 66: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 67: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 68: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 69: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 70: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 71: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 72: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 73: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 74: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 75: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 76: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 77: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 78: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 79: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 80: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 81: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 82: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 83: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 84: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 85: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 86: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 87: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 88: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 89: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 90: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 91: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 92: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 93: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 94: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 95: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 96: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 97: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 98: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 99: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 100: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 101: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 102: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 103: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 104: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 105: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 106: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 107: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 108: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 109: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 110: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 111: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 112: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 113: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 114: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 115: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 116: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 117: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 118: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 119: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 120: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 121: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 122: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 123: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 124: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 125: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 126: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 127: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 128: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 129: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 130: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 131: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 132: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 133: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 134: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 135: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 136: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 137: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 138: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 139: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 140: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 141: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 142: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 143: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 144: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 145: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 146: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 147: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 148: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 149: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 150: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 151: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 152: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 153: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 154: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 155: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 156: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 157: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 158: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 159: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 160: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 161: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 162: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 163: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 164: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 165: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 166: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 167: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 168: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 169: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 170: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 171: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 172: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 173: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 174: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 175: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 176: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 177: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 178: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 179: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 180: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 181: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 182: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 183: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 184: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 185: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 186: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 187: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 188: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 189: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 190: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 191: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 192: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 193: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 194: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 195: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 196: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 197: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 198: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 199: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 200: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 201: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 202: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 203: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 204: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 205: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 206: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 207: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 208: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 209: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 210: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 211: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 212: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 213: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 214: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 215: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 216: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 217: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 218: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 219: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 220: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 221: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 222: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 223: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 224: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 225: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 226: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 227: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 228: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 229: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 230: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 231: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 232: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 233: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 234: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 235: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 236: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 237: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 238: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 239: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 240: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 241: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 242: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 243: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 244: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 245: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 246: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 247: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 248: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 249: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 250: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 251: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 252: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 253: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 254: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 255: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 256: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 257: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 258: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 259: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 260: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 261: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 262: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 263: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 264: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 265: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 266: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 267: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 268: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 269: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 270: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

254 Chapter 1. thermo

Page 271: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

CHAPTER 2

Indices and tables

• genindex

• modindex

• search

255

Page 272: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

256 Chapter 2. Indices and tables

Page 273: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 274: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 275: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 276: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 277: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 278: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 279: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 280: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 281: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 282: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 283: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 284: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 285: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 286: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 287: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 288: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 289: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 290: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 291: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 292: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

276 Bibliography

Page 293: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 294: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

thermo Documentation, Release 0.1

278 Python Module Index

Page 295: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 296: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 297: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 298: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 299: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 300: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 301: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 302: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 303: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 304: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 305: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 306: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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

Page 307: thermo Documentation · THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS

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