thermo DocumentationRelease 0.1
Caleb Bell
Mar 26, 2017
Contents
1 thermo 31.1 thermo package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Submodules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.1.1 thermo.acentric module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1.1.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.1.1.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.1.1.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.1.1.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.1.1.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.1.1.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.1.1.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.1.1.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.1.1.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.1.1.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.1.1.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.1.1.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1.2 thermo.activity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.1.2.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.1.2.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.1.2.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.1.2.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1.1.2.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1.1.2.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1.1.2.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1.1.2.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1.1.2.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.1.2.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.1.2.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.1.2.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.1.2.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.1.1.2.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.1.2.15 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.1.2.16 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.1.2.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.1.2.18 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.1.1.2.19 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
i
1.1.1.2.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.1.1.2.21 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1.1.2.22 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.1.2.23 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.1.2.24 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.1.1.2.25 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1.1.3 thermo.chemical module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.1.1.3.1 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.1.1.3.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.1.1.3.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.1.1.3.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.1.1.3.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.1.1.3.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.1.1.3.7 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.1.1.3.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.1.1.3.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.1.1.3.10 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.1.1.3.11 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.1.1.3.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.1.1.3.13 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1.1.3.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1.1.3.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1.1.3.16 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1.1.3.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.1.1.3.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.1.1.3.19 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.1.1.3.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.1.1.3.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.1.1.3.22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.1.1.3.23 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.1.1.3.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.1.3.25 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.1.3.26 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.1.3.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.1.3.28 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.1.1.3.29 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.1.1.3.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.1.1.3.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.1.1.3.32 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.1.1.3.33 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.1.1.3.34 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.1.1.3.35 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.1.1.3.36 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.1.1.3.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.1.1.3.38 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.1.1.3.39 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.1.1.3.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.1.1.3.41 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.1.1.3.42 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.1.1.3.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.1.1.3.44 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.1.1.3.45 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.1.1.3.46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.1.1.3.47 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
ii
1.1.1.3.48 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.1.1.3.49 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.1.1.3.50 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.1.1.3.51 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.1.1.3.52 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.1.1.3.53 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.1.1.3.54 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.1.1.3.55 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.1.1.3.56 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.1.1.3.57 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.1.1.3.58 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.1.1.3.59 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1.1.3.60 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1.1.3.61 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1.1.3.62 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1.1.3.63 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.1.1.3.64 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.1.1.3.65 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.1.1.3.66 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.1.1.3.67 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.1.1.3.68 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.1.1.3.69 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.1.1.3.70 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.1.1.3.71 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.1.1.3.72 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.1.1.3.73 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.1.1.3.74 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.1.1.3.75 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.1.1.3.76 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.1.1.3.77 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.1.1.3.78 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.1.1.3.79 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441.1.1.3.80 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441.1.1.3.81 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.1.1.3.82 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.1.1.3.83 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.1.1.3.84 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.1.1.3.85 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.1.1.3.86 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511.1.1.3.87 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521.1.1.3.88 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521.1.1.3.89 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521.1.1.3.90 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521.1.1.3.91 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.1.1.3.92 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.1.1.3.93 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.1.1.3.94 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.1.1.3.95 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531.1.1.3.96 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.1.1.3.97 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.1.1.3.98 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.1.1.3.99 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.1.1.3.100 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.1.1.3.101 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
iii
1.1.1.3.102 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.1.1.3.103 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.1.1.3.104 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.1.1.3.105 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551.1.1.3.106 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.1.1.3.107 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.1.1.3.108 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.1.1.3.109 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.1.1.3.110 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.1.1.3.111 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.1.1.3.112 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.1.1.3.113 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.1.1.3.114 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.1.1.3.115 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.1.1.3.116 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.1.1.3.117 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.1.1.3.118 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581.1.1.3.119 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.1.1.3.120 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.1.1.3.121 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.1.1.3.122 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.1.1.3.123 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591.1.1.3.124 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.1.1.3.125 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.1.1.3.126 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.1.1.3.127 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.1.1.3.128 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601.1.1.3.129 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1.1.3.130 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1.1.3.131 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1.1.3.132 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1.1.3.133 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.1.1.3.134 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.1.1.3.135 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.1.1.3.136 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.1.1.3.137 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.1.1.3.138 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621.1.1.3.139 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1.1.3.140 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1.1.3.141 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1.1.3.142 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1.1.3.143 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.1.1.3.144 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.1.1.3.145 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.1.1.3.146 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.1.1.3.147 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641.1.1.3.148 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.1.1.3.149 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.1.1.3.150 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.1.1.3.151 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.1.1.3.152 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.1.1.3.153 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.1.1.3.154 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.1.1.3.155 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
iv
1.1.1.3.156 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.1.1.3.157 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.1.1.3.158 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.1.1.3.159 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.1.1.3.160 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.1.1.3.161 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.1.1.3.162 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.1.1.3.163 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.1.1.3.164 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.1.1.3.165 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.1.1.3.166 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1.1.3.167 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1.1.3.168 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1.1.3.169 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1.1.3.170 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.1.1.3.171 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.1.1.3.172 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.1.1.3.173 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.1.1.3.174 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.1.1.3.175 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.1.1.3.176 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.1.1.3.177 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.1.1.3.178 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.1.1.3.179 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.1.1.3.180 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.1.1.3.181 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.1.1.3.182 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.1.1.3.183 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721.1.1.3.184 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731.1.1.3.185 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731.1.1.3.186 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731.1.1.3.187 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731.1.1.3.188 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731.1.1.3.189 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741.1.1.3.190 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741.1.1.3.191 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741.1.1.3.192 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741.1.1.3.193 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.1.1.3.194 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.1.1.3.195 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.1.1.3.196 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.1.1.3.197 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.1.1.3.198 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.1.1.4 thermo.combustion module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821.1.1.4.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831.1.1.4.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.1.1.5 thermo.critical module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831.1.1.5.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841.1.1.5.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841.1.1.5.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841.1.1.5.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851.1.1.5.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851.1.1.5.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851.1.1.5.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
v
1.1.1.5.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861.1.1.5.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861.1.1.5.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871.1.1.5.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871.1.1.5.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871.1.1.5.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881.1.1.5.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881.1.1.5.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881.1.1.5.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891.1.1.5.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891.1.1.5.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891.1.1.5.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901.1.1.5.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901.1.1.5.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901.1.1.5.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901.1.1.5.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911.1.1.5.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911.1.1.5.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911.1.1.5.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911.1.1.5.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911.1.1.5.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921.1.1.5.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921.1.1.5.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921.1.1.5.31 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931.1.1.5.32 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931.1.1.5.33 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931.1.1.5.34 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941.1.1.5.35 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941.1.1.5.36 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941.1.1.5.37 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951.1.1.5.38 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951.1.1.5.39 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951.1.1.5.40 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961.1.1.5.41 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961.1.1.5.42 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1.1.1.6 thermo.datasheet module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961.1.1.7 thermo.dipole module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1.1.1.7.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971.1.1.7.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971.1.1.7.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
1.1.1.8 thermo.dippr module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971.1.1.8.1 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981.1.1.8.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981.1.1.8.3 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981.1.1.8.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981.1.1.8.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991.1.1.8.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991.1.1.8.7 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991.1.1.8.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991.1.1.8.9 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001.1.1.8.10 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001.1.1.8.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001.1.1.8.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011.1.1.8.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
vi
1.1.1.8.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011.1.1.8.15 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021.1.1.8.16 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021.1.1.8.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021.1.1.8.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021.1.1.8.19 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031.1.1.8.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031.1.1.8.21 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031.1.1.8.22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1.1.1.9 thermo.electrochem module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031.1.1.9.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041.1.1.9.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041.1.1.9.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041.1.1.9.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.1.9.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.1.9.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.1.9.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.1.9.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.1.1.9.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061.1.1.9.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061.1.1.9.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061.1.1.9.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061.1.1.9.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.1.1.9.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.1.1.9.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.1.1.9.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.1.1.9.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081.1.1.9.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.1.1.9.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.1.1.9.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.1.1.9.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.1.1.9.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.1.1.9.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101.1.1.9.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101.1.1.9.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101.1.1.9.31 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1.1.9.32 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1.1.9.33 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1.1.9.34 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1.1.9.35 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.1.1.9.36 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.37 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.38 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.39 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.40 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.41 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.1.1.9.42 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131.1.1.9.43 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131.1.1.9.44 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
vii
1.1.1.10 thermo.elements module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131.1.1.10.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131.1.1.10.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141.1.1.10.3 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141.1.1.10.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141.1.1.10.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141.1.1.10.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.7 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.9 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.11 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.1.1.10.12 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161.1.1.10.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161.1.1.10.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161.1.1.10.15 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161.1.1.10.16 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171.1.1.10.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171.1.1.10.18 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171.1.1.10.19 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
1.1.1.11 thermo.eos module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171.1.1.11.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.1.1.11.2 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191.1.1.11.3 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191.1.1.11.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201.1.1.11.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201.1.1.11.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201.1.1.11.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.1.1.11.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211.1.1.11.9 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231.1.1.11.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241.1.1.11.11 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251.1.1.11.12 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261.1.1.11.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261.1.1.11.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261.1.1.11.15 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271.1.1.11.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281.1.1.11.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291.1.1.11.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301.1.1.11.19 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301.1.1.11.20 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311.1.1.11.21 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321.1.1.11.22 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321.1.1.11.23 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321.1.1.11.24 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321.1.1.11.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341.1.1.11.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341.1.1.11.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341.1.1.11.28 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341.1.1.11.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1361.1.1.11.30 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371.1.1.11.31 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371.1.1.11.32 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371.1.1.11.33 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
viii
1.1.1.11.34 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381.1.1.11.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391.1.1.11.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391.1.1.11.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391.1.1.11.38 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391.1.1.11.39 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401.1.1.11.40 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421.1.1.11.41 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421.1.1.11.42 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421.1.1.11.43 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421.1.1.11.44 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1421.1.1.11.45 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1441.1.1.11.46 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451.1.1.11.47 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451.1.1.11.48 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451.1.1.11.49 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461.1.1.11.50 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471.1.1.11.51 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1481.1.1.11.52 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1481.1.1.11.53 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1481.1.1.11.54 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491.1.1.11.55 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1501.1.1.11.56 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1501.1.1.11.57 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1501.1.1.11.58 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511.1.1.11.59 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511.1.1.11.60 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511.1.1.11.61 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531.1.1.11.62 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531.1.1.11.63 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531.1.1.11.64 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531.1.1.11.65 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541.1.1.11.66 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541.1.1.11.67 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541.1.1.11.68 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541.1.1.11.69 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1.1.11.70 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1.1.11.71 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1.1.11.72 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1.1.11.73 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.1.1.11.74 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561.1.1.11.75 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561.1.1.11.76 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561.1.1.11.77 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561.1.1.11.78 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571.1.1.11.79 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571.1.1.11.80 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571.1.1.11.81 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
1.1.1.12 thermo.eos_mix module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581.1.1.12.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581.1.1.12.2 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601.1.1.12.3 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601.1.1.12.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1611.1.1.12.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
ix
1.1.1.12.6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621.1.1.12.7 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621.1.1.12.8 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621.1.1.12.9 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641.1.1.12.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651.1.1.12.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651.1.1.12.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651.1.1.12.13 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651.1.1.12.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1671.1.1.12.15 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1681.1.1.12.16 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1681.1.1.12.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1681.1.1.12.18 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1681.1.1.12.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.1.1.12.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.1.1.12.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.1.1.12.22 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.1.1.12.23 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701.1.1.12.24 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721.1.1.12.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731.1.1.12.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731.1.1.12.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731.1.1.12.28 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731.1.1.12.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1761.1.1.12.30 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1761.1.1.12.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1761.1.1.12.32 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1761.1.1.12.33 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.1.1.12.34 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.1.1.12.35 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.1.1.12.36 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791.1.1.12.37 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811.1.1.12.38 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811.1.1.12.39 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811.1.1.12.40 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811.1.1.12.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.1.1.12.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.1.1.12.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841.1.1.12.44 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
1.1.1.13 thermo.environment module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1851.1.1.13.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.1.1.13.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.1.1.13.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861.1.1.13.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.1.1.13.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.1.1.13.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.1.1.13.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1871.1.1.13.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.1.1.13.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
1.1.1.14 thermo.heat_capacity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.1.1.14.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.1.1.14.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.1.1.14.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881.1.1.14.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
x
1.1.1.14.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891.1.1.14.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891.1.1.14.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1901.1.1.14.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.1.1.14.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.1.1.14.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911.1.1.14.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.1.1.14.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.1.1.14.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1921.1.1.14.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931.1.1.14.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931.1.1.14.21 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931.1.1.14.22 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931.1.1.14.23 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.1.1.14.24 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.1.1.14.25 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.1.1.14.26 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.1.1.14.27 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.1.1.14.28 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.1.1.14.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.1.1.14.30 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.1.1.14.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981.1.1.14.32 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.1.1.14.33 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.1.1.14.34 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.1.1.14.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.1.1.14.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991.1.1.14.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001.1.1.14.38 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001.1.1.14.39 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001.1.1.14.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001.1.1.14.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.44 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.45 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011.1.1.14.47 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021.1.1.14.48 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021.1.1.14.49 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021.1.1.14.50 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2031.1.1.14.51 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2031.1.1.14.52 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041.1.1.14.53 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041.1.1.14.54 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2061.1.1.14.55 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.1.1.14.56 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.1.1.14.57 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.1.1.14.58 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
xi
1.1.1.14.59 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.1.1.14.60 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.1.1.14.61 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.1.1.14.62 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.1.1.14.63 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121.1.1.14.64 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121.1.1.14.65 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121.1.1.14.66 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121.1.1.14.67 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.1.1.14.68 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.1.1.14.69 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.1.1.14.70 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.1.1.14.71 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.1.1.14.72 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.1.1.14.73 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171.1.1.14.74 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.1.1.14.75 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.1.1.14.76 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201.1.1.14.77 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.1.1.14.78 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.1.1.14.79 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
1.1.1.15 thermo.identifiers module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.1.1.15.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.1.1.15.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.1.1.15.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.1.1.15.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2261.1.1.15.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2261.1.1.15.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2261.1.1.15.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2261.1.1.15.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2261.1.1.15.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
1.1.1.16 thermo.interface module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2271.1.1.16.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2281.1.1.16.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2281.1.1.16.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2281.1.1.16.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291.1.1.16.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291.1.1.16.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291.1.1.16.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.1.1.16.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.1.1.16.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.1.1.16.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.1.1.16.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1.1.16.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1.1.16.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1.1.16.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1.1.16.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.1.1.16.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2321.1.1.16.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2321.1.1.16.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2321.1.1.16.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2331.1.1.16.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2331.1.1.16.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2331.1.1.16.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
xii
1.1.1.16.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.1.1.16.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.1.1.16.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.1.1.16.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.1.1.16.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351.1.1.16.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351.1.1.16.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351.1.1.16.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2361.1.1.16.31 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371.1.1.16.32 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371.1.1.16.33 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371.1.1.16.34 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371.1.1.16.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2401.1.1.16.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2401.1.1.16.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2401.1.1.16.38 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.1.1.16.39 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.1.1.16.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.1.1.16.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421.1.1.16.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421.1.1.16.43 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431.1.1.16.44 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
1.1.1.17 thermo.law module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451.1.1.17.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2461.1.1.17.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2461.1.1.17.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
1.1.1.18 thermo.lennard_jones module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2471.1.1.18.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481.1.1.18.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481.1.1.18.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481.1.1.18.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2491.1.1.18.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2491.1.1.18.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2491.1.1.18.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2501.1.1.18.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2511.1.1.18.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521.1.1.18.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2531.1.1.18.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2531.1.1.18.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
xiii
1.1.1.18.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.31 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.32 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.33 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541.1.1.18.34 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2551.1.1.18.35 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2551.1.1.18.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2551.1.1.18.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2551.1.1.18.38 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.1.1.18.39 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.1.1.18.40 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.1.1.18.41 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.1.1.18.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.1.1.18.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.1.1.18.44 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.1.1.18.45 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.1.1.18.46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.1.1.18.47 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2581.1.1.18.48 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2581.1.1.18.49 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2581.1.1.18.50 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2581.1.1.18.51 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2581.1.1.18.52 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2591.1.1.18.53 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2591.1.1.18.54 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2591.1.1.18.55 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2591.1.1.18.56 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601.1.1.18.57 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601.1.1.18.58 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
1.1.1.19 thermo.miscdata module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601.1.1.19.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601.1.1.19.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611.1.1.19.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
1.1.1.20 thermo.permittivity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611.1.1.20.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611.1.1.20.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621.1.1.20.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621.1.1.20.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621.1.1.20.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621.1.1.20.6 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621.1.1.20.7 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
1.1.1.21 thermo.phase_change module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651.1.1.21.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651.1.1.21.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2661.1.1.21.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2661.1.1.21.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2661.1.1.21.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2671.1.1.21.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2671.1.1.21.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2671.1.1.21.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2671.1.1.21.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2681.1.1.21.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
xiv
1.1.1.21.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2681.1.1.21.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2681.1.1.21.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2691.1.1.21.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2691.1.1.21.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2691.1.1.21.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2701.1.1.21.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2701.1.1.21.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2701.1.1.21.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711.1.1.21.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711.1.1.21.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711.1.1.21.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2711.1.1.21.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2721.1.1.21.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2721.1.1.21.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2721.1.1.21.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2721.1.1.21.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2721.1.1.21.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2731.1.1.21.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2731.1.1.21.30 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2731.1.1.21.31 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2741.1.1.21.32 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2741.1.1.21.33 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2741.1.1.21.34 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2751.1.1.21.35 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2761.1.1.21.36 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2761.1.1.21.37 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
1.1.1.22 thermo.reaction module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2791.1.1.22.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2801.1.1.22.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2801.1.1.22.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2801.1.1.22.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2801.1.1.22.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811.1.1.22.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811.1.1.22.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811.1.1.22.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2811.1.1.22.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
1.1.1.23 thermo.refractivity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2821.1.1.23.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2821.1.1.23.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2821.1.1.23.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2821.1.1.23.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2831.1.1.23.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2831.1.1.23.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2831.1.1.23.7 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2831.1.1.23.8 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2831.1.1.23.9 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2841.1.1.23.10 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
1.1.1.24 thermo.safety module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2841.1.1.24.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2841.1.1.24.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2851.1.1.24.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2851.1.1.24.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2851.1.1.24.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
xv
1.1.1.24.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2851.1.1.24.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.1.1.24.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.1.1.24.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.1.1.24.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2881.1.1.24.11 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2881.1.1.24.12 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2881.1.1.24.13 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2881.1.1.24.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2891.1.1.24.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2891.1.1.24.16 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2901.1.1.24.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2901.1.1.24.18 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2911.1.1.24.19 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2911.1.1.24.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2911.1.1.24.21 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2921.1.1.24.22 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2921.1.1.24.23 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2921.1.1.24.24 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2931.1.1.24.25 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2931.1.1.24.26 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2931.1.1.24.27 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2931.1.1.24.28 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2931.1.1.24.29 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
1.1.1.25 thermo.solubility module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2941.1.1.25.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2941.1.1.25.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2941.1.1.25.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.1.1.25.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.1.1.25.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.1.1.25.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.1.1.25.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2961.1.1.25.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2961.1.1.25.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
1.1.1.26 thermo.temperature module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2961.1.1.26.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971.1.1.26.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971.1.1.26.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971.1.1.26.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2981.1.1.26.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2981.1.1.26.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
1.1.1.27 thermo.thermal_conductivity module . . . . . . . . . . . . . . . . . . . . . . . . . 2981.1.1.27.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2991.1.1.27.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2991.1.1.27.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2991.1.1.27.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.1.1.27.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3011.1.1.27.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3011.1.1.27.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
xvi
1.1.1.27.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3021.1.1.27.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3021.1.1.27.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3021.1.1.27.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031.1.1.27.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031.1.1.27.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031.1.1.27.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031.1.1.27.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3031.1.1.27.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3041.1.1.27.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3051.1.1.27.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3051.1.1.27.24 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3061.1.1.27.25 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3061.1.1.27.26 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.1.1.27.27 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.1.1.27.28 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.1.1.27.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.1.1.27.30 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121.1.1.27.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121.1.1.27.32 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121.1.1.27.33 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121.1.1.27.34 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3121.1.1.27.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3131.1.1.27.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3131.1.1.27.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3131.1.1.27.38 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3131.1.1.27.39 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3141.1.1.27.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3141.1.1.27.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3141.1.1.27.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3141.1.1.27.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3141.1.1.27.44 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3151.1.1.27.45 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3151.1.1.27.46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3151.1.1.27.47 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3161.1.1.27.48 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3161.1.1.27.49 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3161.1.1.27.50 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3181.1.1.27.51 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3181.1.1.27.52 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3181.1.1.27.53 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3181.1.1.27.54 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.1.27.55 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.1.27.56 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.1.27.57 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.1.27.58 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3191.1.1.27.59 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3211.1.1.27.60 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3211.1.1.27.61 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3221.1.1.27.62 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3221.1.1.27.63 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.1.1.27.64 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.1.1.27.65 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.1.1.27.66 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
xvii
1.1.1.27.67 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3291.1.1.27.68 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3291.1.1.27.69 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3301.1.1.27.70 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3301.1.1.27.71 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3301.1.1.27.72 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311.1.1.27.73 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311.1.1.27.74 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3311.1.1.27.75 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3321.1.1.27.76 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3321.1.1.27.77 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3321.1.1.27.78 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
1.1.1.28 thermo.triple module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3351.1.1.28.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3351.1.1.28.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3351.1.1.28.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3361.1.1.28.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3361.1.1.28.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
1.1.1.29 thermo.unifac module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3361.1.1.29.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3371.1.1.29.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3381.1.1.29.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3381.1.1.29.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3391.1.1.29.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3391.1.1.29.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3391.1.1.29.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3401.1.1.29.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411.1.1.29.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411.1.1.29.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
1.1.1.30 thermo.utils module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411.1.1.30.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3421.1.1.30.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3431.1.1.30.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3431.1.1.30.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3431.1.1.30.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3441.1.1.30.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3441.1.1.30.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3441.1.1.30.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3451.1.1.30.14 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3451.1.1.30.15 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3461.1.1.30.16 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3461.1.1.30.17 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3461.1.1.30.18 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3461.1.1.30.19 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
xviii
1.1.1.30.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3471.1.1.30.21 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3471.1.1.30.22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3471.1.1.30.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3481.1.1.30.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3481.1.1.30.25 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3481.1.1.30.26 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3481.1.1.30.27 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.1.1.30.28 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.1.1.30.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.1.1.30.30 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.1.1.30.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.1.1.30.32 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3501.1.1.30.33 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3501.1.1.30.34 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3501.1.1.30.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3501.1.1.30.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.1.1.30.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.1.1.30.38 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.1.1.30.39 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.1.1.30.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.1.1.30.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.1.1.30.42 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.1.1.30.43 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.1.1.30.44 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.1.1.30.45 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3531.1.1.30.46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3531.1.1.30.47 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3531.1.1.30.48 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.1.1.30.49 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.1.1.30.50 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.1.1.30.51 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.1.1.30.52 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.1.1.30.53 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551.1.1.30.54 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551.1.1.30.55 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551.1.1.30.56 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551.1.1.30.57 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.1.1.30.58 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.1.1.30.59 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.1.1.30.60 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.1.1.30.61 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.1.1.30.62 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.1.1.30.63 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.1.1.30.64 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.1.1.30.65 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.1.1.30.66 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.1.1.30.67 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3591.1.1.30.68 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3591.1.1.30.69 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3661.1.1.30.70 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3661.1.1.30.71 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3731.1.1.30.72 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3731.1.1.30.73 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
xix
1.1.1.30.74 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3801.1.1.30.75 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3811.1.1.30.76 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3811.1.1.30.77 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
1.1.1.31 thermo.vapor_pressure module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3831.1.1.31.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3831.1.1.31.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3841.1.1.31.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3841.1.1.31.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3851.1.1.31.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3851.1.1.31.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3851.1.1.31.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3851.1.1.31.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3851.1.1.31.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3861.1.1.31.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3861.1.1.31.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3861.1.1.31.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3861.1.1.31.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3871.1.1.31.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3881.1.1.31.15 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3881.1.1.31.16 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3881.1.1.31.17 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3911.1.1.31.18 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3911.1.1.31.19 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3911.1.1.31.20 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3921.1.1.31.21 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3921.1.1.31.22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3921.1.1.31.23 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3931.1.1.31.24 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3931.1.1.31.25 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3931.1.1.31.26 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3931.1.1.31.27 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3941.1.1.31.28 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3941.1.1.31.29 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3941.1.1.31.30 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3951.1.1.31.31 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
1.1.1.32 thermo.virial module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3951.1.1.32.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3951.1.1.32.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3961.1.1.32.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3961.1.1.32.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3971.1.1.32.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3981.1.1.32.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3981.1.1.32.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3991.1.1.32.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3991.1.1.32.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3991.1.1.32.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4001.1.1.32.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4021.1.1.32.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
1.1.1.33 thermo.viscosity module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4021.1.1.33.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4031.1.1.33.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4031.1.1.33.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4031.1.1.33.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
xx
1.1.1.33.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4041.1.1.33.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4041.1.1.33.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4051.1.1.33.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4051.1.1.33.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4051.1.1.33.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4061.1.1.33.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4071.1.1.33.12 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4071.1.1.33.13 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4071.1.1.33.14 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4121.1.1.33.15 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4131.1.1.33.16 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4131.1.1.33.17 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4131.1.1.33.18 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4181.1.1.33.19 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4181.1.1.33.20 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4181.1.1.33.21 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191.1.1.33.22 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191.1.1.33.23 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191.1.1.33.24 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4191.1.1.33.25 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4201.1.1.33.26 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4201.1.1.33.27 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4201.1.1.33.28 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.1.1.33.29 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.1.1.33.30 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.1.1.33.31 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.1.1.33.32 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4211.1.1.33.33 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4221.1.1.33.34 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4221.1.1.33.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4221.1.1.33.36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4231.1.1.33.37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4231.1.1.33.38 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4241.1.1.33.39 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4241.1.1.33.40 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4241.1.1.33.41 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4251.1.1.33.42 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4251.1.1.33.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4251.1.1.33.44 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4251.1.1.33.45 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4251.1.1.33.46 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4261.1.1.33.47 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4261.1.1.33.48 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1.1.33.49 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1.1.33.50 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4291.1.1.33.51 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
1.1.1.34 thermo.volume module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4311.1.1.34.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4321.1.1.34.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4321.1.1.34.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4321.1.1.34.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4331.1.1.34.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4331.1.1.34.6 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
xxi
1.1.1.34.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4341.1.1.34.13 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4351.1.1.34.14 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4351.1.1.34.15 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4351.1.1.34.16 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.1.1.34.17 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.1.1.34.18 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.1.1.34.19 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4371.1.1.34.20 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4381.1.1.34.21 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4381.1.1.34.22 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4381.1.1.34.23 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4381.1.1.34.24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4391.1.1.34.25 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4391.1.1.34.26 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4391.1.1.34.27 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4391.1.1.34.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4411.1.1.34.29 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4421.1.1.34.30 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4421.1.1.34.31 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4421.1.1.34.32 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4471.1.1.34.33 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4471.1.1.34.34 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4471.1.1.34.35 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4481.1.1.34.36 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4481.1.1.34.37 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4481.1.1.34.38 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4491.1.1.34.39 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4491.1.1.34.40 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4491.1.1.34.41 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4501.1.1.34.42 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4501.1.1.34.43 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4501.1.1.34.44 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4511.1.1.34.45 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4511.1.1.34.46 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4511.1.1.34.47 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4521.1.1.34.48 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4561.1.1.34.49 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4561.1.1.34.50 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4561.1.1.34.51 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4561.1.1.34.52 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4571.1.1.34.53 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4571.1.1.34.54 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4571.1.1.34.55 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4601.1.1.34.56 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4601.1.1.34.57 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4601.1.1.34.58 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4601.1.1.34.59 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4631.1.1.34.60 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
xxii
1.1.1.34.61 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4631.1.1.34.62 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4641.1.1.34.63 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4661.1.1.34.64 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4661.1.1.34.65 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
2 Indices and tables 471
Bibliography 473
Python Module Index 499
xxiii
xxiv
thermo Documentation, Release 0.1
Contents:
Contents 1
thermo Documentation, Release 0.1
2 Contents
CHAPTER 1
thermo
thermo package
Submodules
thermo.acentric module
thermo.acentric.omega(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=[’LK’,‘DEFINITION’])
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
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
The method name to use. Accepted methods are ‘PSRK’, ‘PD’, ‘YAWS’, ‘LK’, and‘DEFINITION’. All valid values are also held in the list omega_methods.
AvailableMethods : bool, optional
3
thermo Documentation, Release 0.1
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’, a compillation of experimental and estimated data published in the Appendix of [15]_, the fourthrevision of the PSRK model.
•‘PD’, an older compillation of data published in (Passut & Danner, 1973) [16]_.
•‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of[17]_.
•‘LK’, a estimation method for hydrocarbons.
•‘DEFINITION’, based on the definition of omega as presented in [R1], using vapor pressure data.
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]
Returns omega : float
Acentric factor of the fluid [-]
4 Chapter 1. thermo
thermo Documentation, Release 0.1
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
The method name to use. Only ‘SIMPLE’ is accepted so far. All valid values are alsoheld in the list omega_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
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.
1.1. thermo package 5
thermo Documentation, Release 0.1
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
The method name to use. Only ‘DEFINITION’ is accepted so far. All valid values arealso held in the list 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
Notes
Only one source is available for this function. It is:
•‘DEFINITION’, based on the definition of Stiel Polar Factor presented in [R7], using vapor pressure 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.
6 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R7], [R8]
Examples
>>> StielPolar(647.3, 22048321.0, 0.344, CASRN='7732-18-5')0.024581140348734376
thermo.activity module
thermo.activity.K_value(P=None, Psat=None, phi_l=None, phi_g=None, gamma=None, Poynt-ing=1)
Calculates the equilibrium K-value assuming Raoult’s law, or an equation of state model, or an activity coeffi-cient model, or a combined equation of state-activity model.
The calculation procedure will use the most advanced approach with the provided inputs:
•If P, Psat, phi_l, phi_g, and gamma are provided, use the combined approach.
•If P, Psat, and gamma are provided, use the modified Raoult’s law.
•If phi_l and phi_g are provided, use the EOS only method.
•If P and Psat are provided, use Raoult’s law.
Definitions:
𝐾𝑖 =𝑦𝑖𝑥𝑖
Raoult’s law:
𝐾𝑖 =𝑃 𝑠𝑎𝑡𝑖
𝑃
Activity coefficient, no EOS (modified Raoult’s law):
𝐾𝑖 =𝛾𝑖𝑃
𝑠𝑎𝑡𝑖
𝑃
Equation of state only:
𝐾𝑖 =𝜑𝑙𝑖𝜑𝑣𝑖
=𝑓 𝑙𝑖𝑓𝑣𝑖
Combined approach (liquid reference fugacity coefficient is normally calculated the saturation pressure for it asa pure species; vapor fugacity coefficient calculated normally):
𝐾𝑖 =𝛾𝑖𝑃
𝑠𝑎𝑡𝑖 𝜑𝑙,𝑟𝑒𝑓𝑖
𝜑𝑣𝑖𝑃
Combined approach, with Poynting Correction Factor (liquid molar volume in the integral is for i as a purespecies only):
𝐾𝑖 =
𝛾𝑖𝑃𝑠𝑎𝑡𝑖 𝜑𝑙,𝑟𝑒𝑓𝑖 exp
[ ∫ 𝑃𝑃𝑠𝑎𝑡𝑖
𝑉 𝑙𝑖 𝑑𝑃
𝑅𝑇
]𝜑𝑣𝑖𝑃
1.1. thermo package 7
thermo Documentation, Release 0.1
Parameters P : float
System pressure, optional
Psat : float
Vapor pressure of species i, [Pa]
phi_l : float
Fugacity coefficient of species i in the liquid phase, either at the system conditions(EOS-only case) or at the saturation pressure of species i as a pure species (referencecondition for the combined approach), optional [-]
phi_g : float
Fugacity coefficient of species i in the vapor phase at the system conditions, optional [-]
gamma : float
Activity coefficient of species i in the liquid phase, optional [-]
Poynting : float
Poynting correction factor, optional [-]
Returns K : float
Equilibrium K value of component i, calculated with an approach depending on theprovided inputs [-]
Notes
The Poynting correction factor is normally simplified as follows, due to a liquid’s low pressure dependency:
𝐾𝑖 =𝛾𝑖𝑃
𝑠𝑎𝑡𝑖 𝜑𝑙,𝑟𝑒𝑓𝑖 exp
[𝑉𝑙(𝑃−𝑃 𝑠𝑎𝑡
𝑖 )𝑅𝑇
]𝜑𝑣𝑖𝑃
References
[R9], [R10]
Examples
Raoult’s law:
>>> K_value(101325, 3000.)0.029607698001480384
Modified Raoult’s law:
>>> K_value(P=101325, Psat=3000, gamma=0.9)0.026646928201332347
EOS-only approach:
>>> K_value(phi_l=1.6356, phi_g=0.88427)1.8496613025433408
8 Chapter 1. thermo
thermo Documentation, Release 0.1
Gamma-phi combined approach:
>>> K_value(P=1E6, Psat=1938800, phi_l=1.4356, phi_g=0.88427, gamma=0.92)2.8958055544121137
Gamma-phi combined approach with a Poynting factor:
>>> K_value(P=1E6, Psat=1938800, phi_l=1.4356, phi_g=0.88427, gamma=0.92,... Poynting=0.999)2.8929097488577016
thermo.activity.Rachford_Rice_flash_error(V_over_F, zs, Ks)Calculates the objective function of the Rachford-Rice flash equation. This function should be called by a solverseeking a solution to a flash calculation. The unknown variable is V_over_F, for which a solution must bebetween 0 and 1. ∑
𝑖
𝑧𝑖(𝐾𝑖 − 1)
1 + 𝑉𝐹 (𝐾𝑖 − 1)
= 0
Parameters V_over_F : float
Vapor fraction guess [-]
zs : list[float]
Overall mole fractions of all species, [-]
Ks : list[float]
Equilibrium K-values, [-]
Returns error : float
Deviation between the objective function at the correct V_over_F and the attemptedV_over_F, [-]
Notes
The derivation is as follows:
𝐹𝑧𝑖 = 𝐿𝑥𝑖 + 𝑉 𝑦𝑖
𝑥𝑖 =𝑧𝑖
1 + 𝑉𝐹 (𝐾𝑖 − 1)∑
𝑖
𝑦𝑖 =∑𝑖
𝐾𝑖𝑥𝑖 = 1∑𝑖
(𝑦𝑖 − 𝑥𝑖) = 0
∑𝑖
𝑧𝑖(𝐾𝑖 − 1)
1 + 𝑉𝐹 (𝐾𝑖 − 1)
= 0
References
[R11]
1.1. thermo package 9
thermo Documentation, Release 0.1
Examples
>>> Rachford_Rice_flash_error(0.5, zs=[0.5, 0.3, 0.2],... Ks=[1.685, 0.742, 0.532])0.04406445591174976
thermo.activity.Rachford_Rice_solution(zs, Ks)Solves the objective function of the Rachford-Rice flash equation. Uses the method proposed in [R13] to obtainan initial guess. ∑
𝑖
𝑧𝑖(𝐾𝑖 − 1)
1 + 𝑉𝐹 (𝐾𝑖 − 1)
= 0
Parameters zs : list[float]
Overall mole fractions of all species, [-]
Ks : list[float]
Equilibrium K-values, [-]
Returns V_over_F : float
Vapor fraction solution [-]
xs : list[float]
Mole fractions of each species in the liquid phase, [-]
ys : list[float]
Mole fractions of each species in the vapor phase, [-]
Notes
The initial guess is the average of the following, as described in [R13].(𝑉
𝐹
)𝑚𝑖𝑛
=(𝐾𝑚𝑎𝑥 −𝐾𝑚𝑖𝑛)𝑧𝑜𝑓 𝐾𝑚𝑎𝑥
− (1 −𝐾𝑚𝑖𝑛)
(1 −𝐾𝑚𝑖𝑛)(𝐾𝑚𝑎𝑥 − 1)(𝑉
𝐹
)𝑚𝑎𝑥
=1
1 −𝐾𝑚𝑖𝑛
Another algorithm for determining the range of the correct solution is given in [R14]; [R13] provides a narrowerrange however. For both cases, each guess should be limited to be between 0 and 1 as they are often negative orlarger than 1. (
𝑉
𝐹
)𝑚𝑖𝑛
=1
1 −𝐾𝑚𝑎𝑥(𝑉
𝐹
)𝑚𝑎𝑥
=1
1 −𝐾𝑚𝑖𝑛
If the newton method does not converge, a bisection method (brenth) is used instead. However, it is somewhatslower, especially as newton will attempt 50 iterations before giving up.
References
[R12], [R13], [R14]
10 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Rachford_Rice_solution(zs=[0.5, 0.3, 0.2], Ks=[1.685, 0.742, 0.532])(0.6907302627738542, [0.3394086969663436, 0.3650560590371706, 0.2955352439964858],→˓ [0.571903654388289, 0.27087159580558057, 0.15722474980613044])
thermo.activity.Li_Johns_Ahmadi_solution(zs, Ks)Solves the objective function of the Li-Johns-Ahmadi flash equation. Uses the method proposed in [R15] toobtain an initial guess.
0 = 1 +
(𝐾𝑚𝑎𝑥 −𝐾𝑚𝑖𝑛
𝐾𝑚𝑖𝑛 − 1
)𝑥1 +
𝑛−1∑𝑖=2
𝐾𝑖 −𝐾𝑚𝑖𝑛
𝐾𝑚𝑖𝑛 − 1
[𝑧𝑖(𝐾𝑚𝑎𝑥 − 1)𝑥𝑚𝑎𝑥
(𝐾𝑖 − 1)𝑧𝑚𝑎𝑥 + (𝐾𝑚𝑎𝑥 −𝐾𝑖)𝑥𝑚𝑎𝑥
]Parameters zs : list[float]
Overall mole fractions of all species, [-]
Ks : list[float]
Equilibrium K-values, [-]
Returns V_over_F : float
Vapor fraction solution [-]
xs : list[float]
Mole fractions of each species in the liquid phase, [-]
ys : list[float]
Mole fractions of each species in the vapor phase, [-]
Notes
The initial guess is the average of the following, as described in [R15]. Each guess should be limited to bebetween 0 and 1 as they are often negative or larger than 1. max refers to the corresponding mole fractions forthe species with the largest K value.(
1 −𝐾𝑚𝑖𝑛
𝐾𝑚𝑎𝑥 −𝐾𝑚𝑖𝑛
)𝑧𝑚𝑎𝑥 ≤ 𝑥𝑚𝑎𝑥 ≤
(1 −𝐾𝑚𝑖𝑛
𝐾𝑚𝑎𝑥 −𝐾𝑚𝑖𝑛
)If the newton method does not converge, a bisection method (brenth) is used instead. However, it is somewhatslower, especially as newton will attempt 50 iterations before giving up.
This method does not work for problems of only two components. K values are sorted internally. Has not beenfound to be quicker than the Rachford-Rice equation.
References
[R15]
Examples
1.1. thermo package 11
thermo Documentation, Release 0.1
>>> Li_Johns_Ahmadi_solution(zs=[0.5, 0.3, 0.2], Ks=[1.685, 0.742, 0.532])(0.6907302627738544, [0.33940869696634357, 0.3650560590371706, 0.→˓2955352439964858], [0.5719036543882889, 0.27087159580558057, 0.→˓15722474980613044])
thermo.activity.flash_inner_loop(zs, Ks, AvailableMethods=False, Method=None)This function handles the solution of the inner loop of a flash calculation, solving for liquid and gas mole frac-tions and vapor fraction based on specified overall mole fractions and K values. As K values are weak functionsof composition, this should be called repeatedly by an outer loop. Will automatically select an algorithm to useif no Method is provided. Should always provide a solution.
The automatic algorithm selection will try an analytical solution, and use the Rachford-Rice method if there are4 or more components in the mixture.
Parameters zs : list[float]
Overall mole fractions of all species, [-]
Ks : list[float]
Equilibrium K-values, [-]
Returns V_over_F : float
Vapor fraction solution [-]
xs : list[float]
Mole fractions of each species in the liquid phase, [-]
ys : list[float]
Mole fractions of each species in the vapor phase, [-]
methods : list, only returned if AvailableMethods == True
List of methods which can be used to obtain a solution with the given inputs
Other Parameters Method : string, optional
The method name to use. Accepted methods are ‘Analytical’, ‘Rachford-Rice’, and‘Li-Johns-Ahmadi’. All valid values are also held in the list flash_inner_loop_methods.
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain a solution for thedesired chemical, and will return methods instead of V_over_F, xs, and ys.
Notes
A total of three methods are available for this function. They are:
•‘Analytical’, an exact solution derived with SymPy, applicable only only to mixtures of two or three com-ponents
•‘Rachford-Rice’, which numerically solves an objective function described inRachford_Rice_solution.
•‘Li-Johns-Ahmadi’, which numerically solves an objective function described inLi_Johns_Ahmadi_solution.
12 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> flash_inner_loop(zs=[0.5, 0.3, 0.2], Ks=[1.685, 0.742, 0.532])(0.6907302627738537, [0.3394086969663437, 0.36505605903717053, 0.→˓29553524399648573], [0.5719036543882892, 0.2708715958055805, 0.→˓1572247498061304])
thermo.activity.NRTL(xs, taus, alphas)Calculates the activity coefficients of each species in a mixture using the Non-Random Two-Liquid (NRTL)method, given their mole fractions, dimensionless interaction parameters, and nonrandomness constants. Thoseare normally correlated with temperature in some form, and need to be calculated separately.
ln(𝛾𝑖) =
𝑛∑𝑗=1
𝑥𝑗𝜏𝑗𝑖𝐺𝑗𝑖
𝑛∑𝑘=1
𝑥𝑘𝐺𝑘𝑖
+
𝑛∑𝑗=1
𝑥𝑗𝐺𝑖𝑗𝑛∑
𝑘=1
𝑥𝑘𝐺𝑘𝑗
⎛⎜⎜⎜⎜⎝𝜏𝑖𝑗 −𝑛∑
𝑚=1
𝑥𝑚𝜏𝑚𝑗𝐺𝑚𝑗
𝑛∑𝑘=1
𝑥𝑘𝐺𝑘𝑗
⎞⎟⎟⎟⎟⎠𝐺𝑖𝑗 = exp (−𝛼𝑖𝑗𝜏𝑖𝑗)
Parameters xs : list[float]
Liquid mole fractions of each species, [-]
taus : list[list[float]]
Dimensionless interaction parameters of each compound with each other, [-]
alphas : list[list[float]]
Nonrandomness constants of each compound interacting with each other, [-]
Returns gammas : list[float]
Activity coefficient for each species in the liquid mixture, [-]
Notes
This model needs N^2 parameters.
One common temperature dependence of the nonrandomness constants is:
𝛼𝑖𝑗 = 𝑐𝑖𝑗 + 𝑑𝑖𝑗𝑇
Most correlations for the interaction parameters include some of the terms shown in the following form:
𝜏𝑖𝑗 = 𝐴𝑖𝑗 +𝐵𝑖𝑗
𝑇+𝐶𝑖𝑗
𝑇 2+𝐷𝑖𝑗 ln (𝑇 ) + 𝐸𝑖𝑗𝑇
𝐹𝑖𝑗
References
[R16], [R17]
Examples
Ethanol-water example, at 343.15 K and 1 MPa:
1.1. thermo package 13
thermo Documentation, Release 0.1
>>> NRTL(xs=[0.252, 0.748], taus=[[0, -0.178], [1.963, 0]],... alphas=[[0, 0.2974],[.2974, 0]])[1.9363183763514304, 1.1537609663170014]
thermo.activity.Wilson(xs, params)Calculates the activity coefficients of each species in a mixture using the Wilson method, given their molefractions, and dimensionless interaction parameters. Those are normally correlated with temperature, and needto be calculated separately.
ln 𝛾𝑖 = 1 − ln
⎛⎝ 𝑁∑𝑗
Λ𝑖𝑗𝑥𝑗
⎞⎠−𝑁∑𝑗
Λ𝑗𝑖𝑥𝑗𝑁∑𝑘
Λ𝑗𝑘𝑥𝑘
Parameters xs : list[float]
Liquid mole fractions of each species, [-]
params : list[list[float]]
Dimensionless interaction parameters of each compound with each other, [-]
Returns gammas : list[float]
Activity coefficient for each species in the liquid mixture, [-]
Notes
This model needs N^2 parameters.
The original model correlated the interaction parameters using the standard pure-component molar volumes ofeach species at 25°C, in the following form:
Λ𝑖𝑗 =𝑉𝑗𝑉𝑖
exp
(−𝜆𝑖,𝑗𝑅𝑇
)However, that form has less flexibility and offered no advantage over using only regressed parameters.
Most correlations for the interaction parameters include some of the terms shown in the following form:
ln Λ𝑖𝑗 = 𝑎𝑖𝑗 +𝑏𝑖𝑗𝑇
+ 𝑐𝑖𝑗 ln𝑇 + 𝑑𝑖𝑗𝑇 +𝑒𝑖𝑗𝑇 2
+ ℎ𝑖𝑗𝑇2
The Wilson model is not applicable to liquid-liquid systems.
References
[R18], [R19]
Examples
Ethanol-water example, at 343.15 K and 1 MPa:
>>> Wilson([0.252, 0.748], [[1, 0.154], [0.888, 1]])[1.8814926087178843, 1.1655774931125487]
14 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.activity.UNIQUAC(xs, rs, qs, taus)Calculates the activity coefficients of each species in a mixture using the Universal quasi-chemical (UNIQUAC)equation, given their mole fractions, rs, qs, and dimensionless interaction parameters. The interaction parame-ters are normally correlated with temperature, and need to be calculated separately.
ln 𝛾𝑖 = lnΦ𝑖
𝑥𝑖+𝑧
2𝑞𝑖 ln
𝜃𝑖Φ𝑖
+ 𝑙𝑖 −Φ𝑖
𝑥𝑖
𝑁∑𝑗
𝑥𝑗 𝑙𝑗 − 𝑞𝑖 ln
⎛⎝ 𝑁∑𝑗
𝜃𝑗𝜏𝑗𝑖
⎞⎠+ 𝑞𝑖 − 𝑞𝑖
𝑁∑𝑗
𝜃𝑗𝜏𝑖𝑗∑𝑁𝑘 𝜃𝑘𝜏𝑘𝑗
𝜃𝑖 =𝑥𝑖𝑞𝑖
𝑛∑𝑗=1
𝑥𝑗𝑞𝑗
Φ𝑖 =𝑥𝑖𝑟𝑖
𝑛∑𝑗=1
𝑥𝑗𝑟𝑗
𝑙𝑖 =𝑧
2(𝑟𝑖 − 𝑞𝑖) − (𝑟𝑖 − 1)
Parameters xs : list[float]
Liquid mole fractions of each species, [-]
rs : list[float]
Van der Waals volume parameters for each species, [-]
qs : list[float]
Surface area parameters for each species, [-]
taus : list[list[float]]
Dimensionless interaction parameters of each compound with each other, [-]
Returns gammas : list[float]
Activity coefficient for each species in the liquid mixture, [-]
Notes
This model needs N^2 parameters.
The original expression for the interaction parameters is as follows:
𝜏𝑗𝑖 = exp
(−∆𝑢𝑖𝑗𝑅𝑇
)However, it is seldom used. Most correlations for the interaction parameters include some of the terms shownin the following form:
ln 𝜏𝑖𝑗 = 𝑎𝑖𝑗 +𝑏𝑖𝑗𝑇
+ 𝑐𝑖𝑗 ln𝑇 + 𝑑𝑖𝑗𝑇 +𝑒𝑖𝑗𝑇 2
1.1. thermo package 15
thermo Documentation, Release 0.1
This model is recast in a slightly more computationally efficient way in [R21], as shown below:
ln 𝛾𝑖 = ln 𝛾𝑟𝑒𝑠𝑖 + ln 𝛾𝑐𝑜𝑚𝑏𝑖
ln 𝛾𝑟𝑒𝑠𝑖 = 𝑞𝑖
⎛⎝1 − ln
∑𝑁𝑗 𝑞𝑗𝑥𝑗𝜏𝑗𝑖∑𝑁𝑗 𝑞𝑗𝑥𝑗
−∑𝑗
𝑞𝑘𝑥𝑗𝜏𝑖𝑗∑𝑘 𝑞𝑘𝑥𝑘𝜏𝑘𝑗
⎞⎠ln 𝛾𝑐𝑜𝑚𝑏
𝑖 = (1 − 𝑉𝑖 + ln𝑉𝑖) −𝑧
2𝑞𝑖
(1 − 𝑉𝑖
𝐹𝑖+ ln
𝑉𝑖𝐹𝑖
)𝑉𝑖 =
𝑟𝑖∑𝑁𝑗 𝑟𝑗𝑥𝑗
𝐹𝑖 =𝑞𝑖∑𝑗 𝑞𝑗𝑥𝑗
References
[R20], [R21], [R22]
Examples
Ethanol-water example, at 343.15 K and 1 MPa:
>>> UNIQUAC(xs=[0.252, 0.748], rs=[2.1055, 0.9200], qs=[1.972, 1.400],... taus=[[1.0, 1.0919744384510301], [0.37452902779205477, 1.0]])[2.35875137797083, 1.2442093415968987]
thermo.activity.flash(P, zs, Psats)
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.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.identify_phase(T, P, Tm=None, Tb=None, Tc=None, Psat=None)Determines the phase of a one-species chemical system according to basic rules, using whatever information isavailable. Considers only the phases liquid, solid, and gas; does not consider two-phase scenarios, as shouldoccurs between phase boundaries.
•If the melting temperature is known and the temperature is under or equal to it, consider it a solid.
16 Chapter 1. thermo
thermo Documentation, Release 0.1
•If the critical temperature is known and the temperature is greater or equal to it, consider it a gas.
•If the vapor pressure at T is known and the pressure is under or equal to it, consider it a gas. If the pressureis greater than the vapor pressure, consider it a liquid.
•If the melting temperature, critical temperature, and vapor pressure are not known, attempt to use theboiling point to provide phase information. If the pressure is between 90 kPa and 110 kPa (approximatelynormal), consider it a liquid if it is under the boiling temperature and a gas if above the boiling temperature.
•If the pressure is above 110 kPa and the boiling temperature is known, consider it a liquid if the temperatureis under the boiling temperature.
•Return None otherwise.
Parameters T : float
Temperature, [K]
P : float
Pressure, [Pa]
Tm : float, optional
Normal melting temperature, [K]
Tb : float, optional
Normal boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Psat : float, optional
Vapor pressure of the fluid at T, [Pa]
Returns phase : str
Either ‘s’, ‘l’, ‘g’, or None if the phase cannot be determined
Notes
No special attential is paid to any phase transition. For the case where the melting point is not provided, thepossibility of the fluid being solid is simply ignored.
Examples
>>> identify_phase(T=280, P=101325, Tm=273.15, Psat=991)'l'
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.→˓6666666666666666], 0.5625000000000001)
1.1. thermo package 17
thermo Documentation, Release 0.1
>>> 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.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)
>>> Pdew_mixture(zs=[0.5, 0.5], Psats=[1400, 7000])2333.3333333333335
thermo.chemical module
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 methods areexpected.
Default initialization is for 298.15 K, 1 atm. Goal is for, when a method fails, a warning is printed.
Attributes
legal_status Dictionary of legal status indicators for the chemical.economic_status Dictionary of economic status indicators for the chemi-
cal.alpha Thermal diffusivity of the chemical at its current tem-
perature, pressure, and phase in units of m^2/s.alphag Thermal diffusivity of the gas phase of the chemical at
its current temperature and pressure, in units of m^2/s.alphal Thermal diffusivity of the liquid phase of the chemi-
cal at its current temperature and pressure, in units ofm^2/s.
aromatic_rings Number of aromatic rings in a chemical, computed withRDKit from a chemical’s SMILES.
atom_fractions Dictionary of atom:fractional occurence of the elementsin a chemical.
Bvirial Second virial coefficient of the gas phase of the chem-ical at its current temperature and pressure, in units ofmol/m^3.
charge Charge of a chemical, computed with RDKit from achemical’s SMILES.
Cp Mass heat capacity of the chemical at its current phaseand temperature, in units of J/kg/K.
Continued on next page
18 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.1 – continued from previous pageCpg Gas-phase heat capacity of the chemical at its current
temperature, in units of J/kg/K.Cpgm Gas-phase ideal gas heat capacity of the chemical at its
current temperature, in units of J/mol/K.Cpl Liquid-phase heat capacity of the chemical at its current
temperature, in units of J/kg/K.Cplm Liquid-phase heat capacity of the chemical at its current
temperature, in units of J/mol/K.Cpm Molar heat capacity of the chemical at its current phase
and temperature, in units of J/mol/K.Cps Solid-phase heat capacity of the chemical at its current
temperature, in units of J/kg/K.Cpsm Solid-phase heat capacity of the chemical at its current
temperature, in units of J/mol/K.Cvg Gas-phase ideal-gas contant-volume heat capacity of the
chemical at its current temperature, in units of J/kg/K.Cvgm Gas-phase ideal-gas contant-volume heat capacity of the
chemical at its current temperature, in units of J/mol/K.eos Equation of state object held by the chemical; used
to calculate excess thermodynamic quantities, and alsoprovides a vapor pressure curve, enthalpy of vaporiza-tion curve, fugacity, thermodynamic partial derivatives,and more; see thermo.eos for a full listing.
Hill Hill formula of a compound.Hvap Enthalpy of vaporization of the chemical at its current
temperature, in units of J/kg.Hvapm Enthalpy of vaporization of the chemical at its current
temperature, in units of J/mol.isentropic_exponent Gas-phase ideal-gas isentropic exponent of the chemical
at its current temperature, dimensionless.isobaric_expansion Isobaric (constant-pressure) expansion of the chemical
at its current phase and temperature, in units of 1/K.isobaric_expansion_g Isobaric (constant-pressure) expansion of the gas phase
of the chemical at its current temperature and pressure,in units of 1/K.
isobaric_expansion_l Isobaric (constant-pressure) expansion of the liquidphase of the chemical at its current temperature andpressure, in units of 1/K.
JT Joule Thomson coefficient of the chemical at its currentphase and temperature, in units of K/Pa.
JTg Joule Thomson coefficient of the chemical in the gasphase at its current temperature and pressure, in units ofK/Pa.
JTl Joule Thomson coefficient of the chemical in the liquidphase at its current temperature and pressure, in units ofK/Pa.
k Thermal conductivity of the chemical at its currentphase, temperature, and pressure in units of W/m/K.
kg Thermal conductivity of the chemical in the gas phase atits current temperature and pressure, in units of W/m/K.
Continued on next page
1.1. thermo package 19
thermo Documentation, Release 0.1
Table 1.1 – continued from previous pagekl Thermal conductivity of the chemical in the liquid phase
at its current temperature and pressure, in units ofW/m/K.
mass_fractions Dictionary of atom:mass-weighted fractional occurenceof elements.
mu Viscosity of the chemical at its current phase, tempera-ture, and pressure in units of Pa*s.
mug Viscosity of the chemical in the gas phase at its currenttemperature and pressure, in units of Pa*s.
mul Viscosity of the chemical in the liquid phase at its cur-rent temperature and pressure, in units of Pa*s.
nu Kinematic viscosity of the the chemical at its currenttemperature, pressure, and phase in units of m^2/s.
nug Kinematic viscosity of the gas phase of the chemical atits current temperature and pressure, in units of m^2/s.
nul Kinematic viscosity of the liquid phase of the chemi-cal at its current temperature and pressure, in units ofm^2/s.
Parachor Parachor of the chemical at its current temperature andpressure, in units of N^0.25*m^2.75/mol.
permittivity Relative permittivity of the chemical at its current tem-perature, dimensionless.
Pr Prandtl number of the chemical at its current tempera-ture, pressure, and phase; dimensionless.
Prg Prandtl number of the gas phase of the chemical at itscurrent temperature and pressure, dimensionless.
Prl Prandtl number of the liquid phase of the chemical at itscurrent temperature and pressure, dimensionless.
Psat Vapor pressure of the chemical at its current tempera-ture, in units of Pa.
PSRK_groups Dictionary of PSRK subgroup: count groups for thePSRK subgroups, as determined by DDBST’s onlineservice.
rdkitmol RDKit object of the chemical, without hydrogen.rdkitmol_Hs RDKit object of the chemical, with hydrogen.rho Mass density of the chemical at its current phase and
temperature and pressure, in units of kg/m^3.rhog Gas-phase mass density of the chemical at its current
temperature and pressure, in units of kg/m^3.rhogm Molar density of the chemical in the gas phase at the
current temperature and pressure, in units of mol/m^3.rhol Liquid-phase mass density of the chemical at its current
temperature and pressure, in units of kg/m^3.rholm Molar density of the chemical in the liquid phase at the
current temperature and pressure, in units of mol/m^3.rhom Molar density of the chemical at its current phase and
temperature and pressure, in units of mol/m^3.rhos Solid-phase mass density of the chemical at its current
temperature, in units of kg/m^3.rhosm Molar density of the chemical in the solid phase at the
current temperature and pressure, in units of mol/m^3.Continued on next page
20 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.1 – continued from previous pagerings Number of rings in a chemical, computed with RDKit
from a chemical’s SMILES.sigma Surface tension of the chemical at its current tempera-
ture, in units of N/m.solubility_parameter Solubility parameter of the chemical at its current tem-
perature and pressure, in units of Pa^0.5.UNIFAC_Dortmund_groups Dictionary of Dortmund UNIFAC subgroup: count
groups for the Dortmund UNIFAC subgroups, as deter-mined by DDBST’s online service.
UNIFAC_groups Dictionary of UNIFAC subgroup: count groups forthe original UNIFAC subgroups, as determined byDDBST’s online service.
UNIFAC_R UNIFAC R (normalized Van der Waals volume), dimen-sionless.
UNIFAC_Q UNIFAC Q (normalized Van der Waals area), dimen-sionless.
Van_der_Waals_area Unnormalized Van der Waals area, in units of m^2/mol.Van_der_Waals_volume Unnormalized Van der Waals volume, in units of
m^3/mol.Vm Molar volume of the chemical at its current phase and
temperature and pressure, in units of m^3/mol.Vmg Gas-phase molar volume of the chemical at its current
temperature and pressure, in units of mol/m^3.Vml Liquid-phase molar volume of the chemical at its cur-
rent temperature and pressure, in units of mol/m^3.Vms Solid-phase molar volume of the chemical at its current
temperature, in units of mol/m^3.Z Compressibility factor of the chemical at its current
phase and temperature and pressure, dimensionless.Zg Compressibility factor of the chemical in the gas phase
at the current temperature and pressure, dimensionless.Zl Compressibility factor of the chemical in the liquid
phase at the current temperature and pressure, dimen-sionless.
Zs Compressibility factor of the chemical in the solid phaseat the current temperature and pressure, dimensionless.
T (float) Temperature of the chemical, [K]P (float) Pressure of the chemical, [Pa]phase (str) Phase of the chemical; one of ‘s’, ‘l’, ‘g’, or ‘l/g’.ID (str) User specified string by which the chemical’s CAS was looked up.CAS (str) The CAS number of the chemical.PubChem (int) PubChem Compound identifier (CID) of the chemical; all chemicals are sourced from their database. Chemicals can be looked at online at https://pubchem.ncbi.nlm.nih.gov.MW (float) Molecular weight of the compound, g/mol.formula (str) Molecular formula of the compound.atoms (dict) dictionary of counts of individual atoms, indexed by symbol with proper capitalization, [-]similarity_variable (float) Similarity variable, see thermo.elements.similarity_variable for the definition, [mol/g]smiles (str) Simplified molecular-input line-entry system representation of the compound.
Continued on next page
1.1. thermo package 21
thermo Documentation, Release 0.1
Table 1.2 – continued from previous pageInChI (str) IUPAC International Chemical Identifier of the compound.InChI_Key (str) 25-character hash of the compound’s InChI.IUPAC_name (str) Preferred IUPAC name for a compound.synonyms (list[str]) All synonyms for the compound found in PubChem, sorted by popularity.Tm (float) Melting temperature [K]Tb (float) Boiling temperature [K]Tc (float) Critical temperature [K]Pc (float) Critical pressure [Pa]Vc (float) Critical volume [m^3/mol]Zc (float) Critical compressibility [-]rhoc (float) Critical density [kg/m^3]rhocm (float) Critical molar density [mol/m^3]omega (float) Acentric factor [-]StielPolar (float) Stiel Polar factor, see thermo.acentric.StielPolar for the definition [-]Tt (float) Triple temperature, [K]Pt (float) Triple pressure, [Pa]Hfus (float) Enthalpy of fusion [J/kg]Hfusm (float) Molar enthalpy of fusion [J/mol]Hsub (float) Enthalpy of sublimation [J/kg]Hsubm (float) Molar enthalpy of sublimation [J/mol]Hf (float) Enthalpy of formation [J/mol]Hc (float) Molar enthalpy of combustion [J/mol]Tflash (float) Flash point of the chemical, [K]Tautoignition (float) Autoignition point of the chemical, [K]LFL (float) Lower flammability limit of the gas in an atmosphere at STP, [mole fraction]UFL (float) Upper flammability limit of the gas in an atmosphere at STP, [mole fraction]TWA (tuple[quantity, unit]) Time-Weighted Average limit on worker exposure to dangerous chemicals.STEL (tuple[quantity, unit]) Short-term Exposure limit on worker exposure to dangerous chemicals.Ceiling (tuple[quantity, unit]) Ceiling limits on worker exposure to dangerous chemicals.Skin (bool) Whether or not a chemical can be absorbed through the skin.Carcinogen (str or dict) Carcinogen status information.dipole (float) Dipole moment, [debye]Stockmayer (float) Lennard-Jones depth of potential-energy minimum over k, [K]molecular_diameter (float) Lennard-Jones molecular diameter, [Angstrom]GWP (float) Global warming potential (default 100-year outlook), [(impact/mass chemical)/(impact/mass CO2)]ODP (float) Ozone Depletion potential, [(impact/mass chemical)/(impact/mass CFC-11)];logP (float) Octanol-water partition coefficient, [-]RI (float) Refractive Index on the Na D line, [-]RIT (float) Temperature at which refractive index reading was madeconductivity (float) Electrical conductivity of the fluid, [S/m]conductivityT (float) Temperature at which conductivity measurement was madeVaporPressure (object) Instance of thermo.vapor_pressure.VaporPressure, with data and methods loaded for the chemical; performs the actual calculations of vapor pressure of the chemical.EnthalpyVaporization (object) Instance of thermo.phase_change.EnthalpyVaporization, with data and methods loaded for the chemical; performs the actual calculations of molar enthalpy of vaporization of the chemical.VolumeSolid (object) Instance of thermo.volume.VolumeSolid, with data and methods loaded for the chemical; performs the actual calculations of molar volume of the solid phase of the chemical.VolumeLiquid (object) Instance of thermo.volume.VolumeLiquid, with data and methods loaded for the chemical; performs the actual calculations of molar volume of the liquid phase of the chemical.VolumeGas (object) Instance of thermo.volume.VolumeGas, with data and methods loaded for the chemical; performs the actual calculations of molar volume of the gas phase of the chemical.HeatCapacitySolid (object) Instance of thermo.heat_capacity.HeatCapacitySolid, with data and methods loaded for the chemical; performs the actual calculations of molar heat capacity of the solid phase of the chemical.HeatCapacityLiquid (object) Instance of thermo.heat_capacity.HeatCapacityLiquid, with data and methods loaded for the chemical; performs the actual calculations of molar heat capacity of the liquid phase of the chemical.HeatCapacityGas (object) Instance of thermo.heat_capacity.HeatCapacityGas, with data and methods loaded for the chemical; performs the actual calculations of molar heat capacity of the gas phase of the chemical.ViscosityLiquid (object) Instance of thermo.viscosity.ViscosityLiquid, with data and methods loaded for the chemical; performs the actual calculations of viscosity of the liquid phase of the chemical.
Continued on next page
22 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.2 – continued from previous pageViscosityGas (object) Instance of thermo.viscosity.ViscosityGas, with data and methods loaded for the chemical; performs the actual calculations of viscosity of the gas phase of the chemical.ThermalConductivityLiquid (object) Instance of thermo.thermal_conductivity.ThermalConductivityLiquid, with data and methods loaded for the chemical; performs the actual calculations of thermal conductivity of the liquid phase of the chemical.ThermalConductivityGas (object) Instance of thermo.thermal_conductivity.ThermalConductivityGas, with data and methods loaded for the chemical; performs the actual calculations of thermal conductivity of the gas phase of the chemical.SurfaceTension (object) Instance of thermo.interface.SurfaceTension, with data and methods loaded for the chemical; performs the actual calculations of surface tension of the chemical.Permittivity (object) Instance of thermo.permittivity.Permittivity , with data and methods loaded for the chemical; performs the actual calculations of permittivity of the chemical.Psat_298 (float) Vapor pressure of the chemical at 298.15 K, [Pa]phase_STP (str) Phase of the chemical at 298.15 K and 101325 Pa; one of ‘s’, ‘l’, ‘g’, or ‘l/g’.Vml_Tb (float) Molar volume of liquid phase at the normal boiling point [m^3/mol]Vml_Tm (float) Molar volume of liquid phase at the melting point [m^3/mol]Vml_STP (float) Molar volume of liquid phase at 298.15 K and 101325 Pa [m^3/mol]Vmg_STP (float) Molar volume of gas phase at 298.15 K and 101325 Pa [m^3/mol]Hvap_Tbm (float) Molar enthalpy of vaporization at the normal boiling point [J/mol]Hvap_Tb (float) Mass enthalpy of vaporization at the normal boiling point [J/kg]
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_H_excess(T, P)calc_S(T, P)calc_S_excess(T, P)calculate([T, P])calculate_PH(P, H)calculate_PS(P, S)calculate_TH(T, H)calculate_TS(T, S)draw_2d([width, height, Hs]) Interface for drawing a 2D image of the molecule.draw_3d([width, height, style, Hs]) Interface for drawing an interactive 3D view of the
molecule.set_TP_sources()set_constant_sources()set_constants()set_eos(T, P[, eos])set_ref([T_ref, P_ref, phase_ref, H_ref, S_ref])set_thermo()
AHelmholtz energy of the chemical at its current temperature and pressure, in units of J/kg.
This property requires that thermo.chemical.set_thermo ran successfully to be accurate. It alsodepends on the molar volume of the chemical at its current conditions.
Am
1.1. thermo package 23
thermo Documentation, Release 0.1
Helmholtz energy of the chemical at its current temperature and pressure, in units of J/mol.
This property requires that thermo.chemical.set_thermo ran successfully to be accurate. It alsodepends on the molar volume of the chemical at its current conditions.
Bond(L=None)
BvirialSecond virial coefficient of the gas phase of the chemical at its current temperature and pressure, in unitsof mol/m^3.
This property uses the object-oriented interface thermo.volume.VolumeGas, converting its resultwith thermo.utils.B_from_Z.
Examples
>>> Chemical('water').Bvirial-0.0009596286322838357
Capillary(V=None)
CpMass heat capacity of the chemical at its current phase and temperature, in units of J/kg/K.
Utilizes the object oriented interfaces thermo.heat_capacity.HeatCapacitySolid,thermo.heat_capacity.HeatCapacityLiquid, and thermo.heat_capacity.HeatCapacityGas to perform the actual calculation of each property. Note that those interfacesprovide output in molar units (J/mol/K).
Examples
>>> w = Chemical('water')>>> w.Cp, w.phase(4180.597021827336, 'l')>>> Chemical('palladium').Cp234.26767209171211
CpgGas-phase heat capacity of the chemical at its current temperature, in units of J/kg/K. For calculationof this property at other temperatures, or specifying manually the method used to calculate it, and more- see the object oriented interface thermo.heat_capacity.HeatCapacityGas; each Chemicalinstance creates one to actually perform the calculations. Note that that interface provides output in molarunits.
Examples
>>> w = Chemical('water', T=520)>>> w.Cpg1967.6698314620658
CpgmGas-phase ideal gas heat capacity of the chemical at its current temperature, in units of J/mol/K. Forcalculation of this property at other temperatures, or specifying manually the method used to calculate it,
24 Chapter 1. thermo
thermo Documentation, Release 0.1
and more - see the object oriented interface thermo.heat_capacity.HeatCapacityGas; eachChemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('water').Cpgm33.583577868850675>>> Chemical('water').HeatCapacityGas.T_dependent_property(320)33.67865044005934>>> Chemical('water').HeatCapacityGas.T_dependent_property_integral(300, 320)672.6480417835064
CplLiquid-phase heat capacity of the chemical at its current temperature, in units of J/kg/K. For calculation ofthis property at other temperatures, or specifying manually the method used to calculate it, and more - seethe object oriented interface thermo.heat_capacity.HeatCapacityLiquid; each Chemicalinstance creates one to actually perform the calculations. Note that that interface provides output in molarunits.
Examples
>>> Chemical('water', T=320).Cpl4177.518996988284
Ideal entropy change of water from 280 K to 340 K, output converted back to mass-based units of J/kg/K.
>>> dSm = Chemical('water').HeatCapacityLiquid.T_dependent_property_integral_→˓over_T(280, 340)>>> property_molar_to_mass(dSm, Chemical('water').MW)812.1024585274956
CplmLiquid-phase heat capacity of the chemical at its current temperature, in units of J/mol/K. For calculation ofthis property at other temperatures, or specifying manually the method used to calculate it, and more - seethe object oriented interface thermo.heat_capacity.HeatCapacityLiquid; each Chemicalinstance creates one to actually perform the calculations.
Notes
Some methods give heat capacity along the saturation line, some at 1 atm but only up to the normal boilingpoint, and some give heat capacity at 1 atm up to the normal boiling point and then along the saturationline. Real-liquid heat capacity is pressure dependent, but this interface is not.
Examples
>>> Chemical('water').Cplm75.31462591538556>>> Chemical('water').HeatCapacityLiquid.T_dependent_property(320)75.2591744360631
1.1. thermo package 25
thermo Documentation, Release 0.1
>>> Chemical('water').HeatCapacityLiquid.T_dependent_property_integral(300,→˓320)1505.0619005000553
CpmMolar heat capacity of the chemical at its current phase and temperature, in units of J/mol/K.
Utilizes the object oriented interfaces thermo.heat_capacity.HeatCapacitySolid,thermo.heat_capacity.HeatCapacityLiquid, and thermo.heat_capacity.HeatCapacityGas to perform the actual calculation of each property.
Examples
>>> Chemical('cubane').Cpm137.05489206785944>>> Chemical('ethylbenzene', T=550, P=3E6).Cpm294.18449553310046
CpsSolid-phase heat capacity of the chemical at its current temperature, in units of J/kg/K. For calculationof this property at other temperatures, or specifying manually the method used to calculate it, and more -see the object oriented interface thermo.heat_capacity.HeatCapacitySolid; each Chemicalinstance creates one to actually perform the calculations. Note that that interface provides output in molarunits.
Examples
>>> Chemical('palladium', T=400).Cps241.63563239992484>>> Pd = Chemical('palladium', T=400)>>> Cpsms = [Pd.HeatCapacitySolid.T_dependent_property(T) for T in np.→˓linspace(300,500, 5)]>>> [property_molar_to_mass(Cps, Pd.MW) for Cps in Cpsms][234.40150347679008, 238.01856793835751, 241.63563239992484, 245.→˓25269686149224, 248.86976132305958]
CpsmSolid-phase heat capacity of the chemical at its current temperature, in units of J/mol/K. For calculationof this property at other temperatures, or specifying manually the method used to calculate it, and more -see the object oriented interface thermo.heat_capacity.HeatCapacitySolid; each Chemicalinstance creates one to actually perform the calculations.
Examples
>>> Chemical('palladium').Cpsm24.930765664000003>>> Chemical('palladium').HeatCapacitySolid.T_dependent_property(320)25.098979200000002>>> Chemical('palladium').HeatCapacitySolid.all_methodsset(["Perry's Table 2-151", 'CRC Standard Thermodynamic Properties of→˓Chemical Substances', 'Lastovka, Fulem, Becerra and Shaw (2008)'])
26 Chapter 1. thermo
thermo Documentation, Release 0.1
CvgGas-phase ideal-gas contant-volume heat capacity of the chemical at its current temperature, in units ofJ/kg/K. Subtracts R from the ideal-gas heat capacity; does not include pressure-compensation from anequation of state.
Examples
>>> w = Chemical('water', T=520)>>> w.Cvg1506.1471795798861
CvgmGas-phase ideal-gas contant-volume heat capacity of the chemical at its current temperature, in units ofJ/mol/K. Subtracts R from the ideal-gas heat capacity; does not include pressure-compensation from anequation of state.
Examples
>>> w = Chemical('water', T=520)>>> w.Cvgm27.13366316134193
Grashof(Tw=None, L=None)
HillHill formula of a compound. For a description of the Hill system, see thermo.elements.atoms_to_Hill.
Examples
>>> Chemical('furfuryl alcohol').Hill'C5H6O2'
HvapEnthalpy of vaporization of the chemical at its current temperature, in units of J/kg.
This property uses the object-oriented interface thermo.phase_change.EnthalpyVaporization, but converts its results from molar to mass units.
Examples
>>> Chemical('water', T=320).Hvap2389540.219347256
HvapmEnthalpy of vaporization of the chemical at its current temperature, in units of J/mol. For calculation ofthis property at other temperatures, or specifying manually the method used to calculate it, and more - seethe object oriented interface thermo.phase_change.EnthalpyVaporization; each Chemicalinstance creates one to actually perform the calculations.
1.1. thermo package 27
thermo Documentation, Release 0.1
Examples
>>> Chemical('water', T=320).Hvapm43048.23612280223>>> Chemical('water').EnthalpyVaporization.T_dependent_property(320)43048.23612280223>>> Chemical('water').EnthalpyVaporization.all_methodsset(['VDI_PPDS', 'MORGAN_KOBAYASHI', 'VETERE', 'VELASCO', 'LIU', 'COOLPROP',→˓'CRC_HVAP_298', 'CLAPEYRON', 'SIVARAMAN_MAGEE_KOBAYASHI', 'ALIBAKHSHI',→˓'DIPPR_PERRY_8E', 'RIEDEL', 'CHEN', 'PITZER', 'CRC_HVAP_TB'])
JTJoule Thomson coefficient of the chemical at its current phase and temperature, in units of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Examples
>>> Chemical('water').JT-2.2150394958666407e-07
JTgJoule Thomson coefficient of the chemical in the gas phase at its current temperature and pressure, in unitsof K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Utilizes the temperature-derivative method of thermo.volume.VolumeGas and the temperature-dependent heat capacity method thermo.heat_capacity.HeatCapacityGas to obtain the prop-erties required for the actual calculation.
Examples
>>> Chemical('dodecane', T=400, P=1000).JTg5.4089897835384913e-05
JTlJoule Thomson coefficient of the chemical in the liquid phase at its current temperature and pressure, inunits of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Utilizes the temperature-derivative method of thermo.volume.VolumeLiquid and the temperature-dependent heat capacity method thermo.heat_capacity.HeatCapacityLiquid to obtain theproperties required for the actual calculation.
Examples
28 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> Chemical('dodecane', T=400).JTl-3.1037120844444807e-07
Jakob(Tw=None)
PSRK_groupsDictionary of PSRK subgroup: count groups for the PSRK subgroups, as determined by DDBST’s onlineservice.
Examples
>>> pprint(Chemical('Cumene').PSRK_groups)1: 2, 9: 5, 13: 1
ParachorParachor of the chemical at its current temperature and pressure, in units of N^0.25*m^2.75/mol.
𝑃 =𝜎0.25𝑀𝑊
𝜌𝐿 − 𝜌𝑉
Calculated based on surface tension, density of the liquid and gas phase, and molecular weight. For usesof this property, see thermo.utils.Parachor.
Examples
>>> Chemical('octane').Parachor6.291693072841486e-05
Peclet_heat(V=None, D=None)
PoyntingPoynting correction factor for use in phase equilibria methods based on activity coefficients or other refer-ence states. Performs the shortcut calculation assuming molar volume is independent of pressure.
Poy = exp
[𝑉𝑙(𝑃 − 𝑃 𝑠𝑎𝑡)
𝑅𝑇
]The full calculation normally returns values very close to the approximate ones. This property is definedin terms of pure components only.
Notes
The full equation shown below can be used as follows:
Poy = exp
⎡⎣∫ 𝑃
𝑃 𝑠𝑎𝑡𝑖
𝑉 𝑙𝑖 𝑑𝑃
𝑅𝑇
⎤⎦>>> from scipy.integrate import quad>>> c = Chemical('pentane', T=300, P=1E7)>>> exp(quad(lambda P : c.VolumeLiquid(c.T, P), c.Psat, c.P)[0]/R/c.T)1.5821826990975127
1.1. thermo package 29
thermo Documentation, Release 0.1
Examples
>>> Chemical('pentane', T=300, P=1E7).Poynting1.5743051250679803
PrPrandtl number of the chemical at its current temperature, pressure, and phase; dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
>>> Chemical('acetone').Pr4.450368847076066
PrgPrandtl number of the gas phase of the chemical at its current temperature and pressure, dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Utilizes the temperature and pressure dependent object oriented interfaces thermo.viscosity.ViscosityGas, thermo.thermal_conductivity.ThermalConductivityGas, andthermo.heat_capacity.HeatCapacityGas to calculate the actual properties.
Examples
>>> Chemical('NH3').Prg0.847263731933008
PrlPrandtl number of the liquid phase of the chemical at its current temperature and pressure, dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Utilizes the temperature and pressure dependent object oriented interfaces thermo.viscosity.ViscosityLiquid, thermo.thermal_conductivity.ThermalConductivityLiquid,and thermo.heat_capacity.HeatCapacityLiquid to calculate the actual properties.
Examples
>>> Chemical('nitrogen', T=70).Prl2.7655015690791696
PsatVapor pressure of the chemical at its current temperature, in units of Pa. For calculation of this property atother temperatures, or specifying manually the method used to calculate it, and more - see the object ori-ented interface thermo.vapor_pressure.VaporPressure; each Chemical instance creates oneto actually perform the calculations.
30 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Chemical('water', T=320).Psat10533.614271198725>>> Chemical('water').VaporPressure.T_dependent_property(320)10533.614271198725>>> Chemical('water').VaporPressure.all_methodsset(['VDI_PPDS', 'BOILING_CRITICAL', 'WAGNER_MCGARRY', 'AMBROSE_WALTON',→˓'COOLPROP', 'LEE_KESLER_PSAT', 'EOS', 'ANTOINE_POLING', 'SANJARI', 'DIPPR_→˓PERRY_8E', 'Edalat'])
Reynolds(V=None, D=None)
Tsat(P)
UInternal energy of the chemical at its current temperature and pressure, in units of J/kg.
This property requires that thermo.chemical.set_thermo ran successfully to be accurate. It alsodepends on the molar volume of the chemical at its current conditions.
UNIFAC_Dortmund_groupsDictionary of Dortmund UNIFAC subgroup: count groups for the Dortmund UNIFAC subgroups, as de-termined by DDBST’s online service.
Examples
>>> pprint(Chemical('Cumene').UNIFAC_Dortmund_groups)1: 2, 9: 5, 13: 1
UNIFAC_QUNIFAC Q (normalized Van der Waals area), dimensionless. Used in the UNIFAC model.
Examples
>>> Chemical('decane').UNIFAC_Q6.016
UNIFAC_RUNIFAC R (normalized Van der Waals volume), dimensionless. Used in the UNIFAC model.
Examples
>>> Chemical('benzene').UNIFAC_R3.1878
UNIFAC_groupsDictionary of UNIFAC subgroup: count groups for the original UNIFAC subgroups, as determined byDDBST’s online service.
1.1. thermo package 31
thermo Documentation, Release 0.1
Examples
>>> pprint(Chemical('Cumene').UNIFAC_groups)1: 2, 9: 5, 13: 1
UmInternal energy of the chemical at its current temperature and pressure, in units of J/mol.
This property requires that thermo.chemical.set_thermo ran successfully to be accurate. It alsodepends on the molar volume of the chemical at its current conditions.
Van_der_Waals_areaUnnormalized Van der Waals area, in units of m^2/mol.
Examples
>>> Chemical('hexane').Van_der_Waals_area964000.0
Van_der_Waals_volumeUnnormalized Van der Waals volume, in units of m^3/mol.
Examples
>>> Chemical('hexane').Van_der_Waals_volume6.8261966e-05
VmMolar volume of the chemical at its current phase and temperature and pressure, in units of m^3/mol.
Utilizes the object oriented interfaces thermo.volume.VolumeSolid, thermo.volume.VolumeLiquid, and thermo.volume.VolumeGas to perform the actual calculation of each prop-erty.
Examples
>>> Chemical('ethylbenzene', T=550, P=3E6).Vm0.00017758024401627633
VmgGas-phase molar volume of the chemical at its current temperature and pressure, in units of mol/m^3. Forcalculation of this property at other temperatures or pressures, or specifying manually the method used tocalculate it, and more - see the object oriented interface thermo.volume.VolumeGas; each Chemicalinstance creates one to actually perform the calculations.
Examples
Estimate the molar volume of the core of the sun, at 15 million K and 26.5 PetaPascals, assuming purehelium (actually 68% helium):
32 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> Chemical('helium', T=15E6, P=26.5E15).Vmg4.805464238181197e-07
VmlLiquid-phase molar volume of the chemical at its current temperature and pressure, in units of mol/m^3.For calculation of this property at other temperatures or pressures, or specifying manually the method usedto calculate it, and more - see the object oriented interface thermo.volume.VolumeLiquid; eachChemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('cyclobutane', T=225).Vml7.42395423425395e-05
VmsSolid-phase molar volume of the chemical at its current temperature, in units of mol/m^3. For calculationof this property at other temperatures, or specifying manually the method used to calculate it, and more- see the object oriented interface thermo.volume.VolumeSolid; each Chemical instance createsone to actually perform the calculations.
Examples
>>> Chemical('iron').Vms7.09593392630242e-06
Weber(V=None, D=None)
ZCompressibility factor of the chemical at its current phase and temperature and pressure, dimensionless.
Examples
>>> Chemical('MTBE', T=900, P=1E-2).Z0.9999999999079768
ZgCompressibility factor of the chemical in the gas phase at the current temperature and pressure, dimen-sionless.
Utilizes the object oriented interface and thermo.volume.VolumeGas to perform the actual calcula-tion of molar volume.
Examples
>>> Chemical('sulfur hexafluoride', T=700, P=1E9).Zg11.140084184207813
ZlCompressibility factor of the chemical in the liquid phase at the current temperature and pressure, dimen-sionless.
1.1. thermo package 33
thermo Documentation, Release 0.1
Utilizes the object oriented interface and thermo.volume.VolumeLiquid to perform the actual cal-culation of molar volume.
Examples
>>> Chemical('water').Zl0.0007385375470263454
ZsCompressibility factor of the chemical in the solid phase at the current temperature and pressure, dimen-sionless.
Utilizes the object oriented interface and thermo.volume.VolumeSolid to perform the actual cal-culation of molar volume.
Examples
>>> Chemical('palladium').Z0.00036248477437931853
alphaThermal diffusivity of the chemical at its current temperature, pressure, and phase in units of m^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Examples
>>> Chemical('furfural').alpha7.672866198927953e-08
alphagThermal diffusivity of the gas phase of the chemical at its current temperature and pressure, in units ofm^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Utilizes the temperature and pressure dependent object oriented interfaces thermo.volume.VolumeGas, thermo.thermal_conductivity.ThermalConductivityGas, and thermo.heat_capacity.HeatCapacityGas to calculate the actual properties.
Examples
>>> Chemical('ammonia').alphag1.6931865425158556e-05
alphalThermal diffusivity of the liquid phase of the chemical at its current temperature and pressure, in units ofm^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
34 Chapter 1. thermo
thermo Documentation, Release 0.1
Utilizes the temperature and pressure dependent object oriented interfaces thermo.volume.VolumeLiquid, thermo.thermal_conductivity.ThermalConductivityLiquid, andthermo.heat_capacity.HeatCapacityLiquid to calculate the actual properties.
Examples
>>> Chemical('nitrogen', T=70).alphal9.504101801042264e-08
aromatic_ringsNumber of aromatic rings in a chemical, computed with RDKit from a chemical’s SMILES. If RDKit isnot available, holds None.
Examples
>>> Chemical('Paclitaxel').aromatic_rings3
atom_fractionsDictionary of atom:fractional occurence of the elements in a chemical. Useful when performing elementbalances. For mass-fraction occurences, see mass_fractions.
Examples
>>> Chemical('Ammonium aluminium sulfate').atom_fractions'H': 0.25, 'S': 0.125, 'Al': 0.0625, 'O': 0.5, 'N': 0.0625
calc_H(T, P)
calc_H_excess(T, P)
calc_S(T, P)
calc_S_excess(T, P)
calculate(T=None, P=None)
calculate_PH(P, H)
calculate_PS(P, S)
calculate_TH(T, H)
calculate_TS(T, S)
chargeCharge of a chemical, computed with RDKit from a chemical’s SMILES. If RDKit is not available, holdsNone.
Examples
>>> Chemical('sodium ion').charge1
1.1. thermo package 35
thermo Documentation, Release 0.1
draw_2d(width=300, height=300, Hs=False)Interface for drawing a 2D image of the molecule. Requires an HTML5 browser, and the libraries RDKitand IPython. An exception is raised if either of these libraries is absent.
Parameters width : int
Number of pixels wide for the view
height : int
Number of pixels tall for the view
Hs : bool
Whether or not to show hydrogen
Examples
>>> Chemical('decane').draw_2d()
draw_3d(width=300, height=500, style=’stick’, Hs=True)Interface for drawing an interactive 3D view of the molecule. Requires an HTML5 browser, and thelibraries RDKit, pymol3D, and IPython. An exception is raised if all three of these libraries are absent.
Parameters width : int
Number of pixels wide for the view
height : int
Number of pixels tall for the view
style : str
One of ‘stick’, ‘line’, ‘cross’, or ‘sphere’
Hs : bool
Whether or not to show hydrogen
Examples
>>> Chemical('cubane').draw_3d()
economic_statusDictionary of economic status indicators for the chemical.
Examples
>>> pprint(Chemical('benzene').economic_status)["US public: 'Manufactured': 6165232.1, 'Imported': 463146.474, 'Exported':→˓271908.252",u'1,000,000 - 10,000,000 tonnes per annum',u'Intermediate Use Only','OECD HPV Chemicals']
36 Chapter 1. thermo
thermo Documentation, Release 0.1
eosEquation of state object held by the chemical; used to calculate excess thermodynamic quantities, andalso provides a vapor pressure curve, enthalpy of vaporization curve, fugacity, thermodynamic partialderivatives, and more; see thermo.eos for a full listing.
Examples
>>> Chemical('methane').eos.V_g0.024410195021818258
isentropic_exponentGas-phase ideal-gas isentropic exponent of the chemical at its current temperature, dimensionless. Doesnot include pressure-compensation from an equation of state.
Examples
>>> Chemical('hydrogen').isentropic_exponent1.405237786321222
isobaric_expansionIsobaric (constant-pressure) expansion of the chemical at its current phase and temperature, in units of1/K.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Examples
Radical change in value just above and below the critical temperature of water:
>>> Chemical('water', T=647.1, P=22048320.0).isobaric_expansion0.34074205839222449
>>> Chemical('water', T=647.2, P=22048320.0).isobaric_expansion0.18143324022215077
isobaric_expansion_gIsobaric (constant-pressure) expansion of the gas phase of the chemical at its current temperature andpressure, in units of 1/K.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Utilizes the temperature-derivative method of thermo.VolumeGas to perform the actual calculation.The derivatives are all numerical.
Examples
>>> Chemical('Hexachlorobenzene', T=900).isobaric_expansion_g0.001151869741981048
1.1. thermo package 37
thermo Documentation, Release 0.1
isobaric_expansion_lIsobaric (constant-pressure) expansion of the liquid phase of the chemical at its current temperature andpressure, in units of 1/K.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Utilizes the temperature-derivative method of thermo.volume.VolumeLiquid to perform the actualcalculation. The derivatives are all numerical.
Examples
>>> Chemical('dodecane', T=400).isobaric_expansion_l0.0011617555762469477
kThermal conductivity of the chemical at its current phase, temperature, and pressure in units of W/m/K.
Utilizes the object oriented interfaces thermo.thermal_conductivity.ThermalConductivityLiquid and thermo.thermal_conductivity.ThermalConductivityGas to perform the actual calculation of each property.
Examples
>>> Chemical('ethanol', T=300).kl0.16313594741877802>>> Chemical('ethanol', T=400).kg0.026019924109310026
kgThermal conductivity of the chemical in the gas phase at its current temperature and pressure, in units ofW/m/K.
For calculation of this property at other temperatures and pressures, or specifying manually the methodused to calculate it, and more - see the object oriented interface thermo.thermal_conductivity.ThermalConductivityGas; each Chemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('water', T=320).kg0.021273128263091207
klThermal conductivity of the chemical in the liquid phase at its current temperature and pressure, in unitsof W/m/K.
For calculation of this property at other temperatures and pressures, or specifying manually the methodused to calculate it, and more - see the object oriented interface thermo.thermal_conductivity.ThermalConductivityLiquid; each Chemical instance creates one to actually perform the calcu-lations.
38 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Chemical('water', T=320).kl0.6369957248212118
legal_statusDictionary of legal status indicators for the chemical.
Examples
>>> pprint(Chemical('benzene').legal_status)'DSL': 'LISTED','EINECS': 'LISTED','NLP': 'UNLISTED','SPIN': 'LISTED','TSCA': 'LISTED'
mass_fractionsDictionary of atom:mass-weighted fractional occurence of elements. Useful when performing mass bal-ances. For atom-fraction occurences, see atom_fractions.
Examples
>>> Chemical('water').mass_fractions'H': 0.11189834407236524, 'O': 0.8881016559276347
muViscosity of the chemical at its current phase, temperature, and pressure in units of Pa*s.
Utilizes the object oriented interfaces thermo.viscosity.ViscosityLiquid and thermo.viscosity.ViscosityGas to perform the actual calculation of each property.
Examples
>>> Chemical('ethanol', T=300).mu0.001044526538460911>>> Chemical('ethanol', T=400).mu1.1853097849748217e-05
mugViscosity of the chemical in the gas phase at its current temperature and pressure, in units of Pa*s.
For calculation of this property at other temperatures and pressures, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.viscosity.ViscosityGas; each Chemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('water', T=320, P=100).mug1.0431450856297212e-05
1.1. thermo package 39
thermo Documentation, Release 0.1
mulViscosity of the chemical in the liquid phase at its current temperature and pressure, in units of Pa*s.
For calculation of this property at other temperatures and pressures, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.viscosity.ViscosityLiquid; each Chemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('water', T=320).mul0.0005767262693751547
nuKinematic viscosity of the the chemical at its current temperature, pressure, and phase in units of m^2/s.
𝜈 =𝜇
𝜌
Examples
>>> Chemical('argon').nu1.3846930410865003e-05
nugKinematic viscosity of the gas phase of the chemical at its current temperature and pressure, in units ofm^2/s.
𝜈 =𝜇
𝜌
Utilizes the temperature and pressure dependent object oriented interfaces thermo.volume.VolumeGas, thermo.viscosity.ViscosityGas to calculate the actual properties.
Examples
>>> Chemical('methane', T=115).nug2.5119305527611988e-06
nulKinematic viscosity of the liquid phase of the chemical at its current temperature and pressure, in units ofm^2/s.
𝜈 =𝜇
𝜌
Utilizes the temperature and pressure dependent object oriented interfaces thermo.volume.VolumeLiquid, thermo.viscosity.ViscosityLiquid to calculate the actual properties.
Examples
>>> Chemical('methane', T=110).nul2.858184674118658e-07
40 Chapter 1. thermo
thermo Documentation, Release 0.1
permittivityRelative permittivity of the chemical at its current temperature, dimensionless.
For calculation of this property at other temperatures, or specifying manually the method used to calcu-late it, and more - see the object oriented interface thermo.permittivity.Permittivity; eachChemical instance creates one to actually perform the calculations.
Examples
>>> Chemical('toluene', T=250).permittivity2.49775625
rdkitmolRDKit object of the chemical, without hydrogen. If RDKit is not available, holds None.
For examples of what can be done with RDKit, see their website.
rdkitmol_HsRDKit object of the chemical, with hydrogen. If RDKit is not available, holds None.
For examples of what can be done with RDKit, see their website.
rhoMass density of the chemical at its current phase and temperature and pressure, in units of kg/m^3.
Utilizes the object oriented interfaces thermo.volume.VolumeSolid, thermo.volume.VolumeLiquid, and thermo.volume.VolumeGas to perform the actual calculation of each prop-erty. Note that those interfaces provide output in units of m^3/mol.
Examples
>>> Chemical('decane', T=550, P=2E6).rho498.6549441720744
rhogGas-phase mass density of the chemical at its current temperature and pressure, in units of kg/m^3. Forcalculation of this property at other temperatures or pressures, or specifying manually the method used tocalculate it, and more - see the object oriented interface thermo.volume.VolumeGas; each Chemicalinstance creates one to actually perform the calculations. Note that that interface provides output in molarunits.
Examples
Estimate the density of the core of the sun, at 15 million K and 26.5 PetaPascals, assuming pure helium(actually 68% helium):
>>> Chemical('helium', T=15E6, P=26.5E15).rhog8329.27226509739
Compared to a result on Wikipedia of 150000 kg/m^3, the fundamental equation of state performs poorly.
>>> He = Chemical('helium', T=15E6, P=26.5E15)>>> He.VolumeGas.set_user_methods_P(['IDEAL']); He.rhog850477.8065477367
1.1. thermo package 41
thermo Documentation, Release 0.1
The ideal-gas law performs somewhat better, but vastly overshoots the density prediction.
rhogmMolar density of the chemical in the gas phase at the current temperature and pressure, in units of mol/m^3.
Utilizes the object oriented interface and thermo.volume.VolumeGas to perform the actual calcula-tion of molar volume.
Examples
>>> Chemical('tungsten hexafluoride').rhogm42.01349946063116
rholLiquid-phase mass density of the chemical at its current temperature and pressure, in units of kg/m^3. Forcalculation of this property at other temperatures and pressures, or specifying manually the method usedto calculate it, and more - see the object oriented interface thermo.volume.VolumeLiquid; eachChemical instance creates one to actually perform the calculations. Note that that interface provides outputin molar units.
Examples
>>> Chemical('o-xylene', T=297).rhol876.9946785618097
rholmMolar density of the chemical in the liquid phase at the current temperature and pressure, in units ofmol/m^3.
Utilizes the object oriented interface and thermo.volume.VolumeLiquid to perform the actual cal-culation of molar volume.
Examples
>>> Chemical('nitrogen', T=70).rholm29937.20179186975
rhomMolar density of the chemical at its current phase and temperature and pressure, in units of mol/m^3.
Utilizes the object oriented interfaces thermo.volume.VolumeSolid, thermo.volume.VolumeLiquid, and thermo.volume.VolumeGas to perform the actual calculation of each prop-erty. Note that those interfaces provide output in units of m^3/mol.
Examples
>>> Chemical('1-hexanol').rhom7983.414573003429
rhosSolid-phase mass density of the chemical at its current temperature, in units of kg/m^3. For calculation of
42 Chapter 1. thermo
thermo Documentation, Release 0.1
this property at other temperatures, or specifying manually the method used to calculate it, and more - seethe object oriented interface thermo.volume.VolumeSolid; each Chemical instance creates one toactually perform the calculations. Note that that interface provides output in molar units.
Examples
>>> Chemical('iron').rhos7869.999999999994
rhosmMolar density of the chemical in the solid phase at the current temperature and pressure, in units ofmol/m^3.
Utilizes the object oriented interface and thermo.volume.VolumeSolid to perform the actual cal-culation of molar volume.
Examples
>>> Chemical('palladium').rhosm112760.75925577903
ringsNumber of rings in a chemical, computed with RDKit from a chemical’s SMILES. If RDKit is not avail-able, holds None.
Examples
>>> Chemical('Paclitaxel').rings7
set_TP_sources()
set_constant_sources()
set_constants()
set_eos(T, P, eos=<class ‘thermo.eos.PR’>)
set_ref(T_ref=298.15, P_ref=101325, phase_ref=’calc’, H_ref=0, S_ref=0)
set_thermo()
sigmaSurface tension of the chemical at its current temperature, in units of N/m.
For calculation of this property at other temperatures, or specifying manually the method used to calcu-late it, and more - see the object oriented interface thermo.interface.SurfaceTension; eachChemical instance creates one to actually perform the calculations.
Examples
1.1. thermo package 43
thermo Documentation, Release 0.1
>>> Chemical('water', T=320).sigma0.06855002575793023>>> Chemical('water', T=320).SurfaceTension.solve_prop(0.05)416.8307110842183
solubility_parameterSolubility parameter of the chemical at its current temperature and pressure, in units of Pa^0.5.
𝛿 =
√∆𝐻𝑣𝑎𝑝 −𝑅𝑇
𝑉𝑚
Calculated based on enthalpy of vaporization and molar volume. Normally calculated at STP. For uses ofthis property, see thermo.solubility.solubility_parameter.
Examples
>>> Chemical('NH3').solubility_parameter24766.329043856073
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.
Attributes
Bvirial Second virial coefficient of the gas phase of the mixtureat its current temperature, pressure, and composition inunits of mol/m^3.
Cp Mass heat capacity of the mixture at its current phaseand temperature, in units of J/kg/K.
Cpg Gas-phase heat capacity of the mixture at its currenttemperature , and composition in units of J/kg/K.
Cpgm Gas-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/mol/K.
Cpgms Gas-phase ideal gas heat capacity of the chemicals at itscurrent temperature, in units of J/mol/K.
Cpgs Gas-phase pure component heat capacity of the chemi-cals in the mixture at its current temperature, in units ofJ/kg/K.
Cpl Liquid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/kg/K.
Cplm Liquid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/mol/K.
Cplms Liquid-phase pure component heat capacity of thechemicals in the mixture at its current temperature, inunits of J/mol/K.
Continued on next page
44 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pageCpls Liquid-phase pure component heat capacity of the
chemicals in the mixture at its current temperature, inunits of J/kg/K.
Cpm Molar heat capacity of the mixture at its current phaseand temperature, in units of J/mol/K.
Cps Solid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/kg/K.
Cpsm Solid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/mol/K.
Cpsms Solid-phase pure component heat capacity of the chem-icals in the mixture at its current temperature, in units ofJ/mol/K.
Cpss Solid-phase pure component heat capacity of the chem-icals in the mixture at its current temperature, in units ofJ/kg/K.
Cvg Gas-phase ideal-gas contant-volume heat capacity of themixture at its current temperature, in units of J/kg/K.
Cvgm Gas-phase ideal-gas contant-volume heat capacity of themixture at its current temperature and composition, inunits of J/mol/K.
Cvgms Gas-phase pure component ideal-gas contant-volumeheat capacities of the chemicals in the mixture at its cur-rent temperature, in units of J/mol/K.
Cvgs Gas-phase pure component ideal-gas contant-volumeheat capacities of the chemicals in the mixture at its cur-rent temperature, in units of J/kg/K.
Hvapms Pure component enthalpies of vaporization of the chem-icals in the mixture at its current temperature, in units ofJ/mol.
Hvaps Enthalpy of vaporization of the chemicals in the mixtureat its current temperature, in units of J/kg.
IUPAC_names IUPAC names for all chemicals in the mixture.InChI_Keys InChI keys for all chemicals in the mixture.InChIs InChI strings for all chemicals in the mixture.JT Joule Thomson coefficient of the mixture at its current
phase, temperature, and pressure in units of K/Pa.JTg Joule Thomson coefficient of the gas phase of the mix-
ture if one exists at its current temperature and pressure,in units of K/Pa.
JTgs Pure component Joule Thomson coefficients of thechemicals in the mixture in the gas phase at its currenttemperature and pressure, in units of K/Pa.
JTl Joule Thomson coefficient of the liquid phase of themixture if one exists at its current temperature and pres-sure, in units of K/Pa.
JTls Pure component Joule Thomson coefficients of thechemicals in the mixture in the liquid phase at its cur-rent temperature and pressure, in units of K/Pa.
PSRK_groups List of dictionaries of PSRK subgroup: count groups foreach chemical in the mixture.
Continued on next page
1.1. thermo package 45
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pagePr Prandtl number of the mixture at its current temperature,
pressure, and phase; dimensionless.Prg Prandtl number of the gas phase of the mixture if one ex-
ists at its current temperature and pressure, dimension-less.
Prgs Pure component Prandtl numbers of the gas phase of thechemicals in the mixture at its current temperature andpressure, dimensionless.
Prl Prandtl number of the liquid phase of the mixture if oneexists at its current temperature and pressure, dimen-sionless.
Prls Pure component Prandtl numbers of the liquid phase ofthe chemicals in the mixture at its current temperatureand pressure, dimensionless.
Psats Pure component vapor pressures of the chemicals in themixture at its current temperature, in units of Pa.
PubChems PubChem Component ID numbers for all chemicals inthe mixture.
UNIFAC_Dortmund_groups List of dictionaries of Dortmund UNIFAC subgroup:count groups for each chemcial in the mixture.
UNIFAC_groups List of dictionaries of UNIFAC subgroup: count groupsfor each chemical in the mixture.
Vm Molar volume of the mixture at its current phase andtemperature and pressure, in units of m^3/mol.
Vmg Gas-phase molar volume of the mixture at its cur-rent temperature, pressure, and composition in units ofmol/m^3.
Vmg_STP Gas-phase molar volume of the mixture at 298.15 K and101.325 kPa, and the current composition in units ofmol/m^3.
Vmgs Pure component gas-phase molar volumes of the chem-icals in the mixture at its current temperature and pres-sure, in units of mol/m^3.
Vml Liquid-phase molar volume of the mixture at its cur-rent temperature, pressure, and composition in units ofmol/m^3.
Vml_STP Liquid-phase molar volume of the mixture at 298.15 Kand 101.325 kPa, and the current composition in unitsof mol/m^3.
Vmls Pure component liquid-phase molar volumes of thechemicals in the mixture at its current temperature andpressure, in units of mol/m^3.
Vmss Pure component solid-phase molar volumes of thechemicals in the mixture at its current temperature, inunits of mol/m^3.
Z Compressibility factor of the mixture at its current phaseand temperature and pressure, dimensionless.
Zg Compressibility factor of the mixture in the gas phaseat the current temperature, pressure, and composition,dimensionless.
Continued on next page
46 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pageZg_STP Gas-phase compressibility factor of the mixture at
298.15 K and 101.325 kPa, and the current composition,dimensionless.
Zgs Pure component compressibility factors of the chemi-cals in the mixture in the gas phase at the current tem-perature and pressure, dimensionless.
Zl Compressibility factor of the mixture in the liquid phaseat the current temperature, pressure, and composition,dimensionless.
Zl_STP Liquid-phase compressibility factor of the mixture at298.15 K and 101.325 kPa, and the current composition,dimensionless.
Zls Pure component compressibility factors of the chemi-cals in the liquid phase at the current temperature andpressure, dimensionless.
Zss Pure component compressibility factors of the chemi-cals in the mixture in the solid phase at the current tem-perature and pressure, dimensionless.
alpha Thermal diffusivity of the mixture at its current temper-ature, pressure, and phase in units of m^2/s.
alphag Thermal diffusivity of the gas phase of the mixture ifone exists at its current temperature and pressure, inunits of m^2/s.
alphags Pure component thermal diffusivities of the chemicals inthe mixture in the gas phase at the current temperatureand pressure, in units of m^2/s.
alphal Thermal diffusivity of the liquid phase of the mixtureif one exists at its current temperature and pressure, inunits of m^2/s.
alphals Pure component thermal diffusivities of the chemicals inthe mixture in the liquid phase at the current temperatureand pressure, in units of m^2/s.
atom_fractions Dictionary of atomic fractions for each atom in the mix-ture.
atom_fractionss List of dictionaries of atomic fractions for all chemicalsin the mixture.
atomss List of dictionaries of atom counts for all chemicals inthe mixture.
charges Charges for all chemicals in the mixture.economic_statuses List of dictionaries of the economic status for all chem-
icals in the mixture.eos Equation of state object held by the mixture.formulas Chemical formulas for all chemicals in the mixture.isentropic_exponent Gas-phase ideal-gas isentropic exponent of the mixture
at its current temperature, dimensionless.isentropic_exponents Gas-phase pure component ideal-gas isentropic expo-
nent of the chemicals in the mixture at its current tem-perature, dimensionless.
isobaric_expansion Isobaric (constant-pressure) expansion of the mixture atits current phase, temperature, and pressure in units of1/K.
Continued on next page
1.1. thermo package 47
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pageisobaric_expansion_gs Pure component isobaric (constant-pressure) expan-
sions of the chemicals in the mixture in the gas phaseat its current temperature and pressure, in units of 1/K.
isobaric_expansion_ls Pure component isobaric (constant-pressure) expan-sions of the chemicals in the mixture in the liquid phaseat its current temperature and pressure, in units of 1/K.
k Thermal conductivity of the mixture at its current phase,temperature, and pressure in units of W/m/K.
kg Thermal conductivity of the mixture in the gas phaseat its current temperature, pressure, and composition inunits of Pa*s.
kgs Pure component thermal conductivies of the chemicalsin the mixture in the gas phase at its current temperatureand pressure, in units of W/m/K.
kl Thermal conductivity of the mixture in the liquid phaseat its current temperature, pressure, and composition inunits of Pa*s.
kls Pure component thermal conductivities of the chemicalsin the mixture in the liquid phase at its current tempera-ture and pressure, in units of W/m/K.
legal_statuses List of dictionaries of the legal status for all chemicalsin the mixture.
mass_fractions Dictionary of mass fractions for each atom in the mix-ture.
mass_fractionss List of dictionaries of mass fractions for all chemicalsin the mixture.
mu Viscosity of the mixture at its current phase, tempera-ture, and pressure in units of Pa*s.
mug Viscosity of the mixture in the gas phase at its currenttemperature, pressure, and composition in units of Pa*s.
mugs Pure component viscosities of the chemicals in the mix-ture in the gas phase at its current temperature and pres-sure, in units of Pa*s.
mul Viscosity of the mixture in the liquid phase at its currenttemperature, pressure, and composition in units of Pa*s.
muls Pure component viscosities of the chemicals in the mix-ture in the liquid phase at its current temperature andpressure, in units of Pa*s.
nu Kinematic viscosity of the the mixture at its current tem-perature, pressure, and phase in units of m^2/s.
nug Kinematic viscosity of the gas phase of the mixture ifone exists at its current temperature and pressure, inunits of m^2/s.
nugs Pure component kinematic viscosities of the gas phaseof the chemicals in the mixture at its current temperatureand pressure, in units of m^2/s.
nul Kinematic viscosity of the liquid phase of the mixtureif one exists at its current temperature and pressure, inunits of m^2/s.
Continued on next page
48 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pagenuls Pure component kinematic viscosities of the liquid
phase of the chemicals in the mixture at its current tem-perature and pressure, in units of m^2/s.
permittivites Pure component relative permittivities of the chemicalsin the mixture at its current temperature, dimensionless.
rho Mass density of the mixture at its current phase and tem-perature and pressure, in units of kg/m^3.
rhog Gas-phase mass density of the mixture at its currenttemperature, pressure, and composition in units ofkg/m^3.
rhog_STP Gas-phase mass density of the mixture at 298.15 K and101.325 kPa, and the current composition in units ofkg/m^3.
rhogm Molar density of the mixture in the gas phase at the cur-rent temperature, pressure, and composition in units ofmol/m^3.
rhogm_STP Molar density of the mixture in the gas phase at 298.15K and 101.325 kPa, and the current composition, inunits of mol/m^3.
rhogms Pure component molar densities of the chemicals in thegas phase at the current temperature and pressure, inunits of mol/m^3.
rhogs Pure-component gas-phase mass densities of the chem-icals in the mixture at its current temperature and pres-sure, in units of kg/m^3.
rhol Liquid-phase mass density of the mixture at its cur-rent temperature, pressure, and composition in units ofkg/m^3.
rhol_STP Liquid-phase mass density of the mixture at 298.15 Kand 101.325 kPa, and the current composition in unitsof kg/m^3.
rholm Molar density of the mixture in the liquid phase at thecurrent temperature, pressure, and composition in unitsof mol/m^3.
rholm_STP Molar density of the mixture in the liquid phase at298.15 K and 101.325 kPa, and the current composition,in units of mol/m^3.
rholms Pure component molar densities of the chemicals in themixture in the liquid phase at the current temperatureand pressure, in units of mol/m^3.
rhols Pure-component liquid-phase mass density of the chem-icals in the mixture at its current temperature and pres-sure, in units of kg/m^3.
rhom Molar density of the mixture at its current phase andtemperature and pressure, in units of mol/m^3.
rhosms Pure component molar densities of the chemicals in thesolid phase at the current temperature and pressure, inunits of mol/m^3.
rhoss Pure component solid-phase mass density of the chemi-cals in the mixture at its current temperature, in units ofkg/m^3.
Continued on next page
1.1. thermo package 49
thermo Documentation, Release 0.1
Table 1.4 – continued from previous pageringss List of ring counts for all chemicals in the mixture.sigma Surface tension of the mixture at its current temperature
and composition, in units of N/m.sigmas Pure component surface tensions of the chemicals in the
mixture at its current temperature, in units of N/m.smiless SMILES strings for all chemicals in the mixture.solubility_parameters Pure component solubility parameters of the chemicals
in the mixture at its current temperature and pressure, inunits of Pa^0.5.
synonymss Lists of synonyms for all chemicals in the mixture.
Methods
Bond([L])Capillary([V])Grashof([Tw, L])Jakob([Tw])Peclet_heat([V, D])Reynolds([V, D])Vfgs() Volume fractions of all species in the gas phase at the
current temperature and pressure.Vfls() Volume fractions of all species in the liquid phase at the
current temperature and pressure.Weber([V, D])calculate([T, P])calculate_PH(P, H)calculate_PS(P, S)calculate_TH(T, H)calculate_TS(T, S)draw_2d([Hs]) Interface for drawing a 2D image of all the molecules in
the mixture.set_TP([T, P])set_TP_sources()set_chemical_TP()set_chemical_constants()set_constant_sources()set_constants()set_eos(T, P[, eos])set_none()set_phase()
Bond(L=None)
BvirialSecond virial coefficient of the gas phase of the mixture at its current temperature, pressure, and composi-tion in units of mol/m^3.
This property uses the object-oriented interface thermo.volume.VolumeGasMixture, convertingits result with thermo.utils.B_from_Z.
50 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['hexane'], ws=[1], T=300, P=1E5).Bvirial-0.0014869761738013018
Capillary(V=None)
CpMass heat capacity of the mixture at its current phase and temperature, in units of J/kg/K.
Examples
>>> w = Mixture(['water'], ws=[1])>>> w.Cp, w.phase(4180.597021827336, 'l')>>> Pd = Mixture(['palladium'], ws=[1])>>> Pd.Cp, Pd.phase(234.26767209171211, 's')
CpgGas-phase heat capacity of the mixture at its current temperature , and composition in units of J/kg/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacityGasMixture; each Mixture instance creates one to actually perform the calculations.Note that that interface provides output in molar units.
Examples
>>> Mixture(['oxygen', 'nitrogen'], ws=[.4, .6], T=350, P=1E6).Cpg995.8911053614883
CpgmGas-phase heat capacity of the mixture at its current temperature and composition, in units of J/mol/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacityGasMixture; each Mixture instance creates one to actually perform the calculations.
Examples
>>> Mixture(['oxygen', 'nitrogen'], ws=[.4, .6], T=350, P=1E6).Cpgm29.361044582498046
CpgmsGas-phase ideal gas heat capacity of the chemicals at its current temperature, in units of J/mol/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cpgms[89.55804092586159, 111.70390334788907]
1.1. thermo package 51
thermo Documentation, Release 0.1
CpgsGas-phase pure component heat capacity of the chemicals in the mixture at its current temperature, in unitsof J/kg/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cpgs[1146.5360555565146, 1212.3488046342566]
CplLiquid-phase heat capacity of the mixture at its current temperature and composition, in units of J/kg/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacityLiquidMixture; each Mixture instance creates one to actually perform the calcula-tions. Note that that interface provides output in molar units.
Examples
>>> Mixture(['water', 'sodium chloride'], ws=[.9, .1], T=301.5).Cpl3735.4604049449786
CplmLiquid-phase heat capacity of the mixture at its current temperature and composition, in units of J/mol/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacityLiquidMixture; each Mixture instance creates one to actually perform the calcula-tions.
Examples
>>> Mixture(['toluene', 'decane'], ws=[.9, .1], T=300).Cplm168.29157865567112
CplmsLiquid-phase pure component heat capacity of the chemicals in the mixture at its current temperature, inunits of J/mol/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cplms[140.9113971170526, 163.62584810669068]
CplsLiquid-phase pure component heat capacity of the chemicals in the mixture at its current temperature, inunits of J/kg/K.
52 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cpls[1803.9697581961016, 1775.869915141704]
CpmMolar heat capacity of the mixture at its current phase and temperature, in units of J/mol/K. Available onlyif single phase.
Examples
>>> Mixture(['ethylbenzene'], ws=[1], T=550, P=3E6).Cpm294.18449553310046
CpsSolid-phase heat capacity of the mixture at its current temperature and composition, in units of J/kg/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacitySolidMixture; each Mixture instance creates one to actually perform the calcula-tions. Note that that interface provides output in molar units.
Examples
>>> Mixture(['silver', 'platinum'], ws=[0.95, 0.05]).Cps229.55145722105294
CpsmSolid-phase heat capacity of the mixture at its current temperature and composition, in units of J/mol/K.For calculation of this property at other temperatures or compositions, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.heat_capacity.HeatCapacitySolidMixture; each Mixture instance creates one to actually perform the calcula-tions.
Examples
>>> Mixture(['silver', 'platinum'], ws=[0.95, 0.05]).Cpsm25.32745719036059
CpsmsSolid-phase pure component heat capacity of the chemicals in the mixture at its current temperature, inunits of J/mol/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cpsms[109.77384365511931, 135.22614707678474]
1.1. thermo package 53
thermo Documentation, Release 0.1
CpssSolid-phase pure component heat capacity of the chemicals in the mixture at its current temperature, inunits of J/kg/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cpss[1405.341925822248, 1467.6412627521154]
CvgGas-phase ideal-gas contant-volume heat capacity of the mixture at its current temperature, in units ofJ/kg/K. Subtracts R from the ideal-gas heat capacity; does not include pressure-compensation from anequation of state.
Examples
>>> Mixture(['water'], ws=[1], T=520).Cvg1506.1471795798861
CvgmGas-phase ideal-gas contant-volume heat capacity of the mixture at its current temperature and com-position, in units of J/mol/K. Subtracts R from the ideal-gas heat capacity; does not include pressure-compensation from an equation of state.
Examples
>>> Mixture(['water'], ws=[1], T=520).Cvgm27.13366316134193
CvgmsGas-phase pure component ideal-gas contant-volume heat capacities of the chemicals in the mixture at itscurrent temperature, in units of J/mol/K. Subtracts R from the ideal-gas heat capacities; does not includepressure-compensation from an equation of state.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cvgms[81.2435811258616, 103.38944354788907]
CvgsGas-phase pure component ideal-gas contant-volume heat capacities of the chemicals in the mixture atits current temperature, in units of J/kg/K. Subtracts R from the ideal-gas heat capacity; does not includepressure-compensation from an equation of state.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Cvgs[1040.093040003431, 1122.1100117398266]
54 Chapter 1. thermo
thermo Documentation, Release 0.1
Grashof(Tw=None, L=None)
HvapmsPure component enthalpies of vaporization of the chemicals in the mixture at its current temperature, inunits of J/mol.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Hvapms[32639.806783391632, 36851.7902195611]
HvapsEnthalpy of vaporization of the chemicals in the mixture at its current temperature, in units of J/kg.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Hvaps[417859.9144942896, 399961.16950519773]
IUPAC_namesIUPAC names for all chemicals in the mixture.
Examples
>>> Mixture(['1-hexene', '1-nonene'], zs=[.7, .3]).IUPAC_names['hex-1-ene', 'non-1-ene']
InChI_KeysInChI keys for all chemicals in the mixture.
Examples
>>> Mixture(['1-nonene'], zs=[1]).InChI_Keys['JRZJOMJEPLMPRA-UHFFFAOYSA-N']
InChIsInChI strings for all chemicals in the mixture.
Examples
>>> Mixture(['methane', 'ethane', 'propane', 'butane'],... zs=[0.25, 0.25, 0.25, 0.25]).InChIs['CH4/h1H4', 'C2H6/c1-2/h1-2H3', 'C3H8/c1-3-2/h3H2,1-2H3', 'C4H10/c1-3-4-2/h3-→˓4H2,1-2H3']
JTJoule Thomson coefficient of the mixture at its current phase, temperature, and pressure in units of K/Pa.
1.1. thermo package 55
thermo Documentation, Release 0.1
Available only if single phase.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Examples
>>> Mixture(['water'], ws=[1]).JT-2.2150394958666412e-07
JTgJoule Thomson coefficient of the gas phase of the mixture if one exists at its current temperature andpressure, in units of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Examples
>>> Mixture(['dodecane'], ws=[1], T=400, P=1000).JTg5.4089897835384913e-05
JTgsPure component Joule Thomson coefficients of the chemicals in the mixture in the gas phase at its currenttemperature and pressure, in units of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).JTgs[6.0940046688790938e-05, 4.1290005523287549e-05]
JTlJoule Thomson coefficient of the liquid phase of the mixture if one exists at its current temperature andpressure, in units of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Examples
>>> Mixture(['dodecane'], ws=[1], T=400).JTl-3.193910574559279e-07
JTlsPure component Joule Thomson coefficients of the chemicals in the mixture in the liquid phase at itscurrent temperature and pressure, in units of K/Pa.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
56 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).JTls[-3.8633730709853161e-07, -3.464395792560331e-07]
Jakob(Tw=None)
PSRK_groupsList of dictionaries of PSRK subgroup: count groups for each chemical in the mixture. Uses the PSRKsubgroups, as determined by DDBST’s online service.
Examples
>>> pprint(Mixture(['1-pentanol', 'decane'], ws=[0.5, 0.5]).PSRK_groups)[1: 1, 2: 4, 14: 1, 1: 2, 2: 8]
Peclet_heat(V=None, D=None)
PrPrandtl number of the mixture at its current temperature, pressure, and phase; dimensionless. Availableonly if single phase.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
>>> Mixture(['acetone'], ws=[1]).Pr4.450368847076066
PrgPrandtl number of the gas phase of the mixture if one exists at its current temperature and pressure, dimen-sionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
>>> Mixture(['NH3'], ws=[1]).Prg0.8472637319330079
PrgsPure component Prandtl numbers of the gas phase of the chemicals in the mixture at its current temperatureand pressure, dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
1.1. thermo package 57
thermo Documentation, Release 0.1
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).Prgs[0.7810364900059606, 0.7843703955226016]
PrlPrandtl number of the liquid phase of the mixture if one exists at its current temperature and pressure,dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
>>> Mixture(['nitrogen'], ws=[1], T=70).Prl2.7655015690791696
PrlsPure component Prandtl numbers of the liquid phase of the chemicals in the mixture at its current temper-ature and pressure, dimensionless.
𝑃𝑟 =𝐶𝑝𝜇
𝑘
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).Prls[6.13542244155373, 5.034509376420631]
PsatsPure component vapor pressures of the chemicals in the mixture at its current temperature, in units of Pa.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Psats[32029.25774454549, 10724.419010511821]
PubChemsPubChem Component ID numbers for all chemicals in the mixture.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5]).PubChems[241, 1140]
Reynolds(V=None, D=None)
UNIFAC_Dortmund_groupsList of dictionaries of Dortmund UNIFAC subgroup: count groups for each chemcial in the mixture. Usesthe Dortmund UNIFAC subgroups, as determined by DDBST’s online service.
58 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> pprint(Mixture(['1-pentanol', 'decane'], ws=[0.5, 0.5]).UNIFAC_Dortmund_→˓groups)[1: 1, 2: 4, 14: 1, 1: 2, 2: 8]
UNIFAC_groupsList of dictionaries of UNIFAC subgroup: count groups for each chemical in the mixture. Uses the originalUNIFAC subgroups, as determined by DDBST’s online service.
Examples
>>> pprint(Mixture(['1-pentanol', 'decane'], ws=[0.5, 0.5]).UNIFAC_groups)[1: 1, 2: 4, 14: 1, 1: 2, 2: 8]
Vfgs()Volume fractions of all species in the gas phase at the current temperature and pressure. Note this is amethod, not a property. Volume fractions are calculated based on pure species volumes only.
Examples
>>> Mixture(['sulfur hexafluoride', 'methane'], zs=[.2, .9], T=315).Vfgs()[0.18062059238682632, 0.8193794076131737]
Vfls()Volume fractions of all species in the liquid phase at the current temperature and pressure. Note this is amethod, not a property. Volume fractions are calculated based on pure species volumes only.
Examples
>>> Mixture(['hexane', 'pentane'], zs=[.5, .5], T=315).Vfls()[0.5299671144566751, 0.47003288554332484]
VmMolar volume of the mixture at its current phase and temperature and pressure, in units of m^3/mol.Available only if single phase.
Examples
>>> Mixture(['ethylbenzene'], ws=[1], T=550, P=3E6).Vm0.00017758024401627633
VmgGas-phase molar volume of the mixture at its current temperature, pressure, and composition in units ofmol/m^3. For calculation of this property at other temperatures or pressures or compositions, or specifyingmanually the method used to calculate it, and more - see the object oriented interface thermo.volume.VolumeGasMixture; each Mixture instance creates one to actually perform the calculations.
1.1. thermo package 59
thermo Documentation, Release 0.1
Examples
>>> Mixture(['hexane'], ws=[1], T=300, P=2E5).Vmg0.010888694235142216
Vmg_STPGas-phase molar volume of the mixture at 298.15 K and 101.325 kPa, and the current composition in unitsof mol/m^3.
Examples
>>> Mixture(['nitrogen'], ws=[1]).Vmg_STP0.023832508854853822
VmgsPure component gas-phase molar volumes of the chemicals in the mixture at its current temperature andpressure, in units of mol/m^3.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Vmgs[0.024929001982294974, 0.024150186467130488]
VmlLiquid-phase molar volume of the mixture at its current temperature, pressure, and composition in units ofmol/m^3. For calculation of this property at other temperatures or pressures or compositions, or specifyingmanually the method used to calculate it, and more - see the object oriented interface thermo.volume.VolumeLiquidMixture; each Mixture instance creates one to actually perform the calculations.
Examples
>>> Mixture(['cyclobutane'], ws=[1], T=225).Vml7.42395423425395e-05
Vml_STPLiquid-phase molar volume of the mixture at 298.15 K and 101.325 kPa, and the current composition inunits of mol/m^3.
Examples
>>> Mixture(['cyclobutane'], ws=[1]).Vml_STP8.143327329133706e-05
VmlsPure component liquid-phase molar volumes of the chemicals in the mixture at its current temperature andpressure, in units of mol/m^3.
60 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Vmls[9.188896727673715e-05, 0.00010946199496993461]
VmssPure component solid-phase molar volumes of the chemicals in the mixture at its current temperature, inunits of mol/m^3.
Examples
>>> Mixture(['iron'], ws=[1], T=320).Vmss[7.09593392630242e-06]
Weber(V=None, D=None)
ZCompressibility factor of the mixture at its current phase and temperature and pressure, dimensionless.Available only if single phase.
Examples
>>> Mixture(['MTBE'], ws=[1], T=900, P=1E-2).Z0.9999999999056376
ZgCompressibility factor of the mixture in the gas phase at the current temperature, pressure, and composi-tion, dimensionless.
Utilizes the object oriented interface and thermo.volume.VolumeGasMixture to perform the ac-tual calculation of molar volume.
Examples
>>> Mixture(['hexane'], ws=[1], T=300, P=1E5).Zg0.9403859376888882
Zg_STPGas-phase compressibility factor of the mixture at 298.15 K and 101.325 kPa, and the current composition,dimensionless.
Examples
>>> Mixture(['nitrogen'], ws=[1]).Zg_STP0.9995520809691023
ZgsPure component compressibility factors of the chemicals in the mixture in the gas phase at the currenttemperature and pressure, dimensionless.
1.1. thermo package 61
thermo Documentation, Release 0.1
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Zgs[0.9493743379816593, 0.9197146081359057]
ZlCompressibility factor of the mixture in the liquid phase at the current temperature, pressure, and compo-sition, dimensionless.
Utilizes the object oriented interface and thermo.volume.VolumeLiquidMixture to perform theactual calculation of molar volume.
Examples
>>> Mixture(['water'], ws=[1]).Zl0.0007385375470263454
Zl_STPLiquid-phase compressibility factor of the mixture at 298.15 K and 101.325 kPa, and the current compo-sition, dimensionless.
Examples
>>> Mixture(['cyclobutane'], ws=[1]).Zl_STP0.0033285083663950068
ZlsPure component compressibility factors of the chemicals in the liquid phase at the current temperature andpressure, dimensionless.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).Zls[0.0034994191720201235, 0.004168655010037687]
ZssPure component compressibility factors of the chemicals in the mixture in the solid phase at the currenttemperature and pressure, dimensionless.
Examples
>>> Mixture(['palladium'], ws=[1]).Zss[0.00036248477437931853]
alphaThermal diffusivity of the mixture at its current temperature, pressure, and phase in units of m^2/s. Avail-able only if single phase.
𝛼 =𝑘
𝜌𝐶𝑝
62 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['furfural'], ws=[1]).alpha7.672866198927953e-08
alphagThermal diffusivity of the gas phase of the mixture if one exists at its current temperature and pressure, inunits of m^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Examples
>>> Mixture(['ammonia'], ws=[1]).alphag1.6931865425158556e-05
alphagsPure component thermal diffusivities of the chemicals in the mixture in the gas phase at the current tem-perature and pressure, in units of m^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).alphags[3.3028044028118324e-06, 2.4413332489215457e-06]
alphalThermal diffusivity of the liquid phase of the mixture if one exists at its current temperature and pressure,in units of m^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Examples
>>> Mixture(['nitrogen'], ws=[1], T=70).alphal9.504101801042264e-08
alphalsPure component thermal diffusivities of the chemicals in the mixture in the liquid phase at the currenttemperature and pressure, in units of m^2/s.
𝛼 =𝑘
𝜌𝐶𝑝
Examples
1.1. thermo package 63
thermo Documentation, Release 0.1
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).alphals[8.732683564481583e-08, 7.57355434073289e-08]
atom_fractionsDictionary of atomic fractions for each atom in the mixture.
Examples
>>> Mixture(['CO2', 'O2'], zs=[0.5, 0.5]).atom_fractions'C': 0.2, 'O': 0.8
atom_fractionssList of dictionaries of atomic fractions for all chemicals in the mixture.
Examples
>>> Mixture(['oxygen', 'nitrogen'], zs=[.5, .5]).atom_fractionss['O': 1.0, 'N': 1.0]
atomssList of dictionaries of atom counts for all chemicals in the mixture.
Examples
>>> Mixture(['nitrogen', 'oxygen'], zs=[.01, .99]).atomss['N': 2, 'O': 2]
calculate(T=None, P=None)
calculate_PH(P, H)
calculate_PS(P, S)
calculate_TH(T, H)
calculate_TS(T, S)
chargesCharges for all chemicals in the mixture.
Examples
>>> Mixture(['water', 'sodium ion', 'chloride ion'], zs=[.9, .05, .05]).→˓charges[0, 1, -1]
draw_2d(Hs=False)Interface for drawing a 2D image of all the molecules in the mixture. Requires an HTML5 browser, andthe libraries RDKit and IPython. An exception is raised if either of these libraries is absent.
Parameters Hs : bool
Whether or not to show hydrogen
64 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Mixture([’natural gas’]).draw_2d()
economic_statusesList of dictionaries of the economic status for all chemicals in the mixture.
Examples
>>> pprint(Mixture(['o-xylene', 'm-xylene'], zs=[.5, .5]).economic_statuses)[["US public: 'Manufactured': 0.0, 'Imported': 0.0, 'Exported': 0.0",u'100,000 - 1,000,000 tonnes per annum','OECD HPV Chemicals'],
["US public: 'Manufactured': 39.805, 'Imported': 0.0, 'Exported': 0.0",u'100,000 - 1,000,000 tonnes per annum','OECD HPV Chemicals']]
eosEquation of state object held by the mixture. See : obj:thermo.eos_mix for a full listing.
eos_in_a_box = []
formulasChemical formulas for all chemicals in the mixture.
Examples
>>> Mixture(['ethanol', 'trichloroethylene', 'furfuryl alcohol'],... ws=[0.5, 0.2, 0.3]).formulas['C2H6O', 'C2HCl3', 'C5H6O2']
isentropic_exponentGas-phase ideal-gas isentropic exponent of the mixture at its current temperature, dimensionless. Does notinclude pressure-compensation from an equation of state.
Examples
>>> Mixture(['hydrogen'], ws=[1]).isentropic_exponent1.405237786321222
isentropic_exponentsGas-phase pure component ideal-gas isentropic exponent of the chemicals in the mixture at its currenttemperature, dimensionless.
Does not include pressure-compensation from an equation of state.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).isentropic_exponents[1.1023398979313739, 1.080418846592871]
1.1. thermo package 65
thermo Documentation, Release 0.1
isobaric_expansionIsobaric (constant-pressure) expansion of the mixture at its current phase, temperature, and pressure inunits of 1/K. Available only if single phase.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Examples
>>> Mixture(['water'], ws=[1], T=647.1, P=22048320.0).isobaric_expansion0.34074205839222449
isobaric_expansion_gsPure component isobaric (constant-pressure) expansions of the chemicals in the mixture in the gas phaseat its current temperature and pressure, in units of 1/K.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).isobaric_expansion_→˓gs[0.0038091518363900499, 0.0043556759306508453]
isobaric_expansion_lsPure component isobaric (constant-pressure) expansions of the chemicals in the mixture in the liquid phaseat its current temperature and pressure, in units of 1/K.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).isobaric_expansion_→˓ls[0.0012736035771253886, 0.0011234157437069571]
kThermal conductivity of the mixture at its current phase, temperature, and pressure in units of W/m/K.Available only if single phase.
Examples
>>> Mixture(['ethanol'], ws=[1], T=300).kl0.16313594741877802
kgThermal conductivity of the mixture in the gas phase at its current temperature, pressure, and compositionin units of Pa*s.
66 Chapter 1. thermo
thermo Documentation, Release 0.1
For calculation of this property at other temperatures and pressures, or specifying manually the methodused to calculate it, and more - see the object oriented interface thermo.thermal_conductivity.ThermalConductivityGasMixture; each Mixture instance creates one to actually perform thecalculations.
Examples
>>> Mixture(['water'], ws=[1], T=500).kg0.036035173297862676
kgsPure component thermal conductivies of the chemicals in the mixture in the gas phase at its current tem-perature and pressure, in units of W/m/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).kgs[0.011865404482987936, 0.010981336502491088]
klThermal conductivity of the mixture in the liquid phase at its current temperature, pressure, and composi-tion in units of Pa*s.
For calculation of this property at other temperatures and pressures, or specifying manually the methodused to calculate it, and more - see the object oriented interface thermo.thermal_conductivity.ThermalConductivityLiquidMixture; each Mixture instance creates one to actually perform thecalculations.
Examples
>>> Mixture(['water'], ws=[1], T=320).kl0.6369957248212118
klsPure component thermal conductivities of the chemicals in the mixture in the liquid phase at its currenttemperature and pressure, in units of W/m/K.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).kls[0.13391538485205587, 0.12429339088930591]
legal_statusesList of dictionaries of the legal status for all chemicals in the mixture.
Examples
1.1. thermo package 67
thermo Documentation, Release 0.1
>>> pprint(Mixture(['oxygen', 'nitrogen'], zs=[.5, .5]).legal_statuses)['DSL': 'LISTED','EINECS': 'LISTED','NLP': 'UNLISTED','SPIN': 'LISTED','TSCA': 'LISTED',
'DSL': 'LISTED','EINECS': 'LISTED','NLP': 'UNLISTED','SPIN': 'LISTED','TSCA': 'LISTED']
mass_fractionsDictionary of mass fractions for each atom in the mixture.
Examples
>>> Mixture(['CO2', 'O2'], zs=[0.5, 0.5]).mass_fractions'C': 0.15801826905745822, 'O': 0.8419817309425419
mass_fractionssList of dictionaries of mass fractions for all chemicals in the mixture.
Examples
>>> Mixture(['oxygen', 'nitrogen'], zs=[.5, .5]).mass_fractionss['O': 1.0, 'N': 1.0]
muViscosity of the mixture at its current phase, temperature, and pressure in units of Pa*s. Available only ifsingle phase.
Examples
>>> Mixture(['ethanol'], ws=[1], T=400).mu1.1853097849748213e-05
mugViscosity of the mixture in the gas phase at its current temperature, pressure, and composition in units ofPa*s.
For calculation of this property at other temperatures and pressures, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.viscosity.ViscosityGasMixture; each Mixture instance creates one to actually perform the calculations.
Examples
>>> Mixture(['water'], ws=[1], T=500).mug1.7298722343367148e-05
68 Chapter 1. thermo
thermo Documentation, Release 0.1
mugsPure component viscosities of the chemicals in the mixture in the gas phase at its current temperature andpressure, in units of Pa*s.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).mugs[8.082880451060605e-06, 7.442602145854158e-06]
mulViscosity of the mixture in the liquid phase at its current temperature, pressure, and composition in unitsof Pa*s.
For calculation of this property at other temperatures and pressures, or specifying manually themethod used to calculate it, and more - see the object oriented interface thermo.viscosity.ViscosityLiquidMixture; each Mixture instance creates one to actually perform the calculations.
Examples
>>> Mixture(['water'], ws=[1], T=320).mul0.0005767262693751547
mulsPure component viscosities of the chemicals in the mixture in the liquid phase at its current temperatureand pressure, in units of Pa*s.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).muls[0.00045545522798131764, 0.00043274394349114754]
nuKinematic viscosity of the the mixture at its current temperature, pressure, and phase in units of m^2/s.Available only if single phase.
𝜈 =𝜇
𝜌
Examples
>>> Mixture(['argon'], ws=[1]).nu1.3846930410865003e-05
nugKinematic viscosity of the gas phase of the mixture if one exists at its current temperature and pressure, inunits of m^2/s.
𝜈 =𝜇
𝜌
1.1. thermo package 69
thermo Documentation, Release 0.1
Examples
>>> Mixture(['methane'], ws=[1], T=115).nug2.5057767760931785e-06
nugsPure component kinematic viscosities of the gas phase of the chemicals in the mixture at its current tem-perature and pressure, in units of m^2/s.
𝜈 =𝜇
𝜌
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).nugs[2.579610757948387e-06, 1.9149095260590705e-06]
nulKinematic viscosity of the liquid phase of the mixture if one exists at its current temperature and pressure,in units of m^2/s.
𝜈 =𝜇
𝜌
Examples
>>> Mixture(['methane'], ws=[1], T=110).nul2.85818467411866e-07
nulsPure component kinematic viscosities of the liquid phase of the chemicals in the mixture at its currenttemperature and pressure, in units of m^2/s.
𝜈 =𝜇
𝜌
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).nuls[5.357870271650772e-07, 3.8129130341250897e-07]
permittivitesPure component relative permittivities of the chemicals in the mixture at its current temperature, dimen-sionless.
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).permittivites[2.23133472, 1.8508128]
70 Chapter 1. thermo
thermo Documentation, Release 0.1
rhoMass density of the mixture at its current phase and temperature and pressure, in units of kg/m^3. Availableonly if single phase.
Examples
>>> Mixture(['decane'], ws=[1], T=550, P=2E6).rho498.6549441720744
rhogGas-phase mass density of the mixture at its current temperature, pressure, and composition in units ofkg/m^3. For calculation of this property at other temperatures, pressures, or compositions or specifyingmanually the method used to calculate it, and more - see the object oriented interface thermo.volume.VolumeGasMixture; each Mixture instance creates one to actually perform the calculations. Note thatthat interface provides output in molar units.
Examples
>>> Mixture(['hexane'], ws=[1], T=300, P=2E5).rhog7.914205150685313
rhog_STPGas-phase mass density of the mixture at 298.15 K and 101.325 kPa, and the current composition in unitsof kg/m^3.
Examples
>>> Mixture(['nitrogen'], ws=[1]).rhog_STP1.145534453639403
rhogmMolar density of the mixture in the gas phase at the current temperature, pressure, and composition in unitsof mol/m^3.
Utilizes the object oriented interface and thermo.volume.VolumeGasMixture to perform the ac-tual calculation of molar volume.
Examples
>>> Mixture(['water'], ws=[1], T=500).rhogm24.467426039789093
rhogm_STPMolar density of the mixture in the gas phase at 298.15 K and 101.325 kPa, and the current composition,in units of mol/m^3.
1.1. thermo package 71
thermo Documentation, Release 0.1
Examples
>>> Mixture(['nitrogen'], ws=[1]).rhogm_STP40.892374850585895
rhogmsPure component molar densities of the chemicals in the gas phase at the current temperature and pressure,in units of mol/m^3.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).rhogms[40.11392035309789, 41.407547778608084]
rhogsPure-component gas-phase mass densities of the chemicals in the mixture at its current temperature andpressure, in units of kg/m^3.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).rhogs[3.1333721283939258, 3.8152260283954584]
rholLiquid-phase mass density of the mixture at its current temperature, pressure, and composition in unitsof kg/m^3. For calculation of this property at other temperatures, pressures, compositions or specifyingmanually the method used to calculate it, and more - see the object oriented interface thermo.volume.VolumeLiquidMixture; each Mixture instance creates one to actually perform the calculations. Notethat that interface provides output in molar units.
Examples
>>> Mixture(['o-xylene'], ws=[1], T=297).rhol876.9946785618097
rhol_STPLiquid-phase mass density of the mixture at 298.15 K and 101.325 kPa, and the current composition inunits of kg/m^3.
Examples
>>> Mixture(['cyclobutane'], ws=[1]).rhol_STP688.9851989526821
rholmMolar density of the mixture in the liquid phase at the current temperature, pressure, and composition inunits of mol/m^3.
Utilizes the object oriented interface and thermo.volume.VolumeLiquidMixture to perform theactual calculation of molar volume.
72 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['water'], ws=[1], T=300).rholm55317.352773503124
rholm_STPMolar density of the mixture in the liquid phase at 298.15 K and 101.325 kPa, and the current composition,in units of mol/m^3.
Examples
>>> Mixture(['water'], ws=[1]).rholm_STP55344.59086372442
rholmsPure component molar densities of the chemicals in the mixture in the liquid phase at the current temper-ature and pressure, in units of mol/m^3.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).rholms[10882.699301520635, 9135.590853014008]
rholsPure-component liquid-phase mass density of the chemicals in the mixture at its current temperature andpressure, in units of kg/m^3.
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).rhols[850.0676666084917, 841.7389069631628]
rhomMolar density of the mixture at its current phase and temperature and pressure, in units of mol/m^3.Available only if single phase.
Examples
>>> Mixture(['1-hexanol'], ws=[1]).rhom7853.086232143972
rhosmsPure component molar densities of the chemicals in the solid phase at the current temperature and pressure,in units of mol/m^3.
1.1. thermo package 73
thermo Documentation, Release 0.1
Examples
>>> Mixture(['iron'], ws=[1], T=320).rhosms[140925.7767033753]
rhossPure component solid-phase mass density of the chemicals in the mixture at its current temperature, inunits of kg/m^3.
Examples
>>> Mixture(['iron'], ws=[1], T=320).rhoss[7869.999999999994]
ringssList of ring counts for all chemicals in the mixture.
Examples
>>> Mixture(['Docetaxel', 'Paclitaxel'], zs=[.5, .5]).ringss[6, 7]
set_TP(T=None, P=None)
set_TP_sources()
set_chemical_TP()
set_chemical_constants()
set_constant_sources()
set_constants()
set_eos(T, P, eos=<class ‘thermo.eos_mix.PRMIX’>)
set_none()
set_phase()
sigmaSurface tension of the mixture at its current temperature and composition, in units of N/m.
For calculation of this property at other temperatures, or specifying manually the method used to calculateit, and more - see the object oriented interface thermo.interface.SurfaceTensionMixture;each Mixture instance creates one to actually perform the calculations.
Examples
>>> Mixture(['water'], ws=[1], T=300, P=1E5).sigma0.07176932405246211
sigmasPure component surface tensions of the chemicals in the mixture at its current temperature, in units ofN/m.
74 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> Mixture(['benzene', 'toluene'], ws=[0.5, 0.5], T=320).sigmas[0.02533469712937521, 0.025254723406585546]
smilessSMILES strings for all chemicals in the mixture.
Examples
>>> Mixture(['methane', 'ethane', 'propane', 'butane'],... zs=[0.25, 0.25, 0.25, 0.25]).smiless['C', 'CC', 'CCC', 'CCCC']
solubility_parametersPure component solubility parameters of the chemicals in the mixture at its current temperature and pres-sure, in units of Pa^0.5.
𝛿 =
√∆𝐻𝑣𝑎𝑝 −𝑅𝑇
𝑉𝑚
Examples
>>> Mixture(['benzene', 'hexane'], ws=[0.5, 0.5], T=320).solubility_parameters[18062.51359608708, 14244.12852702228]
synonymssLists of synonyms for all chemicals in the mixture.
Examples
>>> Mixture(['Tetradecene', 'Pentadecene'], zs=[.1, .9]).synonymss[['tetradec-2-ene', 'tetradecene', '2-tetradecene', 'tetradec-2-ene', '26952-→˓13-6', '35953-53-8', '1652-97-7'], ['pentadec-1-ene', '1-pentadecene',→˓'pentadecene,1-', 'pentadec-1-ene', '13360-61-7', 'pentadecene']]
class thermo.chemical.Stream(IDs, zs=None, ws=None, Vfls=None, Vfgs=None, m=None, Q=None,Ql_STP=None, Qg_STP=None, T=298.15, P=101325)
Bases: thermo.chemical.Mixture
Attributes
Bvirial Second virial coefficient of the gas phase of the mixtureat its current temperature, pressure, and composition inunits of mol/m^3.
Cp Mass heat capacity of the mixture at its current phaseand temperature, in units of J/kg/K.
Continued on next page
1.1. thermo package 75
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pageCpg Gas-phase heat capacity of the mixture at its current
temperature , and composition in units of J/kg/K.Cpgm Gas-phase heat capacity of the mixture at its current
temperature and composition, in units of J/mol/K.Cpgms Gas-phase ideal gas heat capacity of the chemicals at its
current temperature, in units of J/mol/K.Cpgs Gas-phase pure component heat capacity of the chemi-
cals in the mixture at its current temperature, in units ofJ/kg/K.
Cpl Liquid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/kg/K.
Cplm Liquid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/mol/K.
Cplms Liquid-phase pure component heat capacity of thechemicals in the mixture at its current temperature, inunits of J/mol/K.
Cpls Liquid-phase pure component heat capacity of thechemicals in the mixture at its current temperature, inunits of J/kg/K.
Cpm Molar heat capacity of the mixture at its current phaseand temperature, in units of J/mol/K.
Cps Solid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/kg/K.
Cpsm Solid-phase heat capacity of the mixture at its currenttemperature and composition, in units of J/mol/K.
Cpsms Solid-phase pure component heat capacity of the chem-icals in the mixture at its current temperature, in units ofJ/mol/K.
Cpss Solid-phase pure component heat capacity of the chem-icals in the mixture at its current temperature, in units ofJ/kg/K.
Cvg Gas-phase ideal-gas contant-volume heat capacity of themixture at its current temperature, in units of J/kg/K.
Cvgm Gas-phase ideal-gas contant-volume heat capacity of themixture at its current temperature and composition, inunits of J/mol/K.
Cvgms Gas-phase pure component ideal-gas contant-volumeheat capacities of the chemicals in the mixture at its cur-rent temperature, in units of J/mol/K.
Cvgs Gas-phase pure component ideal-gas contant-volumeheat capacities of the chemicals in the mixture at its cur-rent temperature, in units of J/kg/K.
Hvapms Pure component enthalpies of vaporization of the chem-icals in the mixture at its current temperature, in units ofJ/mol.
Hvaps Enthalpy of vaporization of the chemicals in the mixtureat its current temperature, in units of J/kg.
IUPAC_names IUPAC names for all chemicals in the mixture.InChI_Keys InChI keys for all chemicals in the mixture.InChIs InChI strings for all chemicals in the mixture.
Continued on next page
76 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pageJT Joule Thomson coefficient of the mixture at its current
phase, temperature, and pressure in units of K/Pa.JTg Joule Thomson coefficient of the gas phase of the mix-
ture if one exists at its current temperature and pressure,in units of K/Pa.
JTgs Pure component Joule Thomson coefficients of thechemicals in the mixture in the gas phase at its currenttemperature and pressure, in units of K/Pa.
JTl Joule Thomson coefficient of the liquid phase of themixture if one exists at its current temperature and pres-sure, in units of K/Pa.
JTls Pure component Joule Thomson coefficients of thechemicals in the mixture in the liquid phase at its cur-rent temperature and pressure, in units of K/Pa.
PSRK_groups List of dictionaries of PSRK subgroup: count groups foreach chemical in the mixture.
Pr Prandtl number of the mixture at its current temperature,pressure, and phase; dimensionless.
Prg Prandtl number of the gas phase of the mixture if one ex-ists at its current temperature and pressure, dimension-less.
Prgs Pure component Prandtl numbers of the gas phase of thechemicals in the mixture at its current temperature andpressure, dimensionless.
Prl Prandtl number of the liquid phase of the mixture if oneexists at its current temperature and pressure, dimen-sionless.
Prls Pure component Prandtl numbers of the liquid phase ofthe chemicals in the mixture at its current temperatureand pressure, dimensionless.
Psats Pure component vapor pressures of the chemicals in themixture at its current temperature, in units of Pa.
PubChems PubChem Component ID numbers for all chemicals inthe mixture.
UNIFAC_Dortmund_groups List of dictionaries of Dortmund UNIFAC subgroup:count groups for each chemcial in the mixture.
UNIFAC_groups List of dictionaries of UNIFAC subgroup: count groupsfor each chemical in the mixture.
Vm Molar volume of the mixture at its current phase andtemperature and pressure, in units of m^3/mol.
Vmg Gas-phase molar volume of the mixture at its cur-rent temperature, pressure, and composition in units ofmol/m^3.
Vmg_STP Gas-phase molar volume of the mixture at 298.15 K and101.325 kPa, and the current composition in units ofmol/m^3.
Vmgs Pure component gas-phase molar volumes of the chem-icals in the mixture at its current temperature and pres-sure, in units of mol/m^3.
Continued on next page
1.1. thermo package 77
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pageVml Liquid-phase molar volume of the mixture at its cur-
rent temperature, pressure, and composition in units ofmol/m^3.
Vml_STP Liquid-phase molar volume of the mixture at 298.15 Kand 101.325 kPa, and the current composition in unitsof mol/m^3.
Vmls Pure component liquid-phase molar volumes of thechemicals in the mixture at its current temperature andpressure, in units of mol/m^3.
Vmss Pure component solid-phase molar volumes of thechemicals in the mixture at its current temperature, inunits of mol/m^3.
Z Compressibility factor of the mixture at its current phaseand temperature and pressure, dimensionless.
Zg Compressibility factor of the mixture in the gas phaseat the current temperature, pressure, and composition,dimensionless.
Zg_STP Gas-phase compressibility factor of the mixture at298.15 K and 101.325 kPa, and the current composition,dimensionless.
Zgs Pure component compressibility factors of the chemi-cals in the mixture in the gas phase at the current tem-perature and pressure, dimensionless.
Zl Compressibility factor of the mixture in the liquid phaseat the current temperature, pressure, and composition,dimensionless.
Zl_STP Liquid-phase compressibility factor of the mixture at298.15 K and 101.325 kPa, and the current composition,dimensionless.
Zls Pure component compressibility factors of the chemi-cals in the liquid phase at the current temperature andpressure, dimensionless.
Zss Pure component compressibility factors of the chemi-cals in the mixture in the solid phase at the current tem-perature and pressure, dimensionless.
alpha Thermal diffusivity of the mixture at its current temper-ature, pressure, and phase in units of m^2/s.
alphag Thermal diffusivity of the gas phase of the mixture ifone exists at its current temperature and pressure, inunits of m^2/s.
alphags Pure component thermal diffusivities of the chemicals inthe mixture in the gas phase at the current temperatureand pressure, in units of m^2/s.
alphal Thermal diffusivity of the liquid phase of the mixtureif one exists at its current temperature and pressure, inunits of m^2/s.
alphals Pure component thermal diffusivities of the chemicals inthe mixture in the liquid phase at the current temperatureand pressure, in units of m^2/s.
atom_fractions Dictionary of atomic fractions for each atom in the mix-ture.
Continued on next page
78 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pageatom_fractionss List of dictionaries of atomic fractions for all chemicals
in the mixture.atomss List of dictionaries of atom counts for all chemicals in
the mixture.charges Charges for all chemicals in the mixture.economic_statuses List of dictionaries of the economic status for all chem-
icals in the mixture.eos Equation of state object held by the mixture.formulas Chemical formulas for all chemicals in the mixture.isentropic_exponent Gas-phase ideal-gas isentropic exponent of the mixture
at its current temperature, dimensionless.isentropic_exponents Gas-phase pure component ideal-gas isentropic expo-
nent of the chemicals in the mixture at its current tem-perature, dimensionless.
isobaric_expansion Isobaric (constant-pressure) expansion of the mixture atits current phase, temperature, and pressure in units of1/K.
isobaric_expansion_gs Pure component isobaric (constant-pressure) expan-sions of the chemicals in the mixture in the gas phaseat its current temperature and pressure, in units of 1/K.
isobaric_expansion_ls Pure component isobaric (constant-pressure) expan-sions of the chemicals in the mixture in the liquid phaseat its current temperature and pressure, in units of 1/K.
k Thermal conductivity of the mixture at its current phase,temperature, and pressure in units of W/m/K.
kg Thermal conductivity of the mixture in the gas phaseat its current temperature, pressure, and composition inunits of Pa*s.
kgs Pure component thermal conductivies of the chemicalsin the mixture in the gas phase at its current temperatureand pressure, in units of W/m/K.
kl Thermal conductivity of the mixture in the liquid phaseat its current temperature, pressure, and composition inunits of Pa*s.
kls Pure component thermal conductivities of the chemicalsin the mixture in the liquid phase at its current tempera-ture and pressure, in units of W/m/K.
legal_statuses List of dictionaries of the legal status for all chemicalsin the mixture.
mass_fractions Dictionary of mass fractions for each atom in the mix-ture.
mass_fractionss List of dictionaries of mass fractions for all chemicalsin the mixture.
mu Viscosity of the mixture at its current phase, tempera-ture, and pressure in units of Pa*s.
mug Viscosity of the mixture in the gas phase at its currenttemperature, pressure, and composition in units of Pa*s.
mugs Pure component viscosities of the chemicals in the mix-ture in the gas phase at its current temperature and pres-sure, in units of Pa*s.
Continued on next page
1.1. thermo package 79
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pagemul Viscosity of the mixture in the liquid phase at its current
temperature, pressure, and composition in units of Pa*s.muls Pure component viscosities of the chemicals in the mix-
ture in the liquid phase at its current temperature andpressure, in units of Pa*s.
nu Kinematic viscosity of the the mixture at its current tem-perature, pressure, and phase in units of m^2/s.
nug Kinematic viscosity of the gas phase of the mixture ifone exists at its current temperature and pressure, inunits of m^2/s.
nugs Pure component kinematic viscosities of the gas phaseof the chemicals in the mixture at its current temperatureand pressure, in units of m^2/s.
nul Kinematic viscosity of the liquid phase of the mixtureif one exists at its current temperature and pressure, inunits of m^2/s.
nuls Pure component kinematic viscosities of the liquidphase of the chemicals in the mixture at its current tem-perature and pressure, in units of m^2/s.
permittivites Pure component relative permittivities of the chemicalsin the mixture at its current temperature, dimensionless.
rho Mass density of the mixture at its current phase and tem-perature and pressure, in units of kg/m^3.
rhog Gas-phase mass density of the mixture at its currenttemperature, pressure, and composition in units ofkg/m^3.
rhog_STP Gas-phase mass density of the mixture at 298.15 K and101.325 kPa, and the current composition in units ofkg/m^3.
rhogm Molar density of the mixture in the gas phase at the cur-rent temperature, pressure, and composition in units ofmol/m^3.
rhogm_STP Molar density of the mixture in the gas phase at 298.15K and 101.325 kPa, and the current composition, inunits of mol/m^3.
rhogms Pure component molar densities of the chemicals in thegas phase at the current temperature and pressure, inunits of mol/m^3.
rhogs Pure-component gas-phase mass densities of the chem-icals in the mixture at its current temperature and pres-sure, in units of kg/m^3.
rhol Liquid-phase mass density of the mixture at its cur-rent temperature, pressure, and composition in units ofkg/m^3.
rhol_STP Liquid-phase mass density of the mixture at 298.15 Kand 101.325 kPa, and the current composition in unitsof kg/m^3.
rholm Molar density of the mixture in the liquid phase at thecurrent temperature, pressure, and composition in unitsof mol/m^3.
Continued on next page
80 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.6 – continued from previous pagerholm_STP Molar density of the mixture in the liquid phase at
298.15 K and 101.325 kPa, and the current composition,in units of mol/m^3.
rholms Pure component molar densities of the chemicals in themixture in the liquid phase at the current temperatureand pressure, in units of mol/m^3.
rhols Pure-component liquid-phase mass density of the chem-icals in the mixture at its current temperature and pres-sure, in units of kg/m^3.
rhom Molar density of the mixture at its current phase andtemperature and pressure, in units of mol/m^3.
rhosms Pure component molar densities of the chemicals in thesolid phase at the current temperature and pressure, inunits of mol/m^3.
rhoss Pure component solid-phase mass density of the chemi-cals in the mixture at its current temperature, in units ofkg/m^3.
ringss List of ring counts for all chemicals in the mixture.sigma Surface tension of the mixture at its current temperature
and composition, in units of N/m.sigmas Pure component surface tensions of the chemicals in the
mixture at its current temperature, in units of N/m.smiless SMILES strings for all chemicals in the mixture.solubility_parameters Pure component solubility parameters of the chemicals
in the mixture at its current temperature and pressure, inunits of Pa^0.5.
synonymss Lists of synonyms for all chemicals in the mixture.
Methods
Bond([L])Capillary([V])Grashof([Tw, L])Jakob([Tw])Peclet_heat([V, D])Reynolds([V, D])Vfgs() Volume fractions of all species in the gas phase at the
current temperature and pressure.Vfls() Volume fractions of all species in the liquid phase at the
current temperature and pressure.Weber([V, D])calculate([T, P])calculate_PH(P, H)calculate_PS(P, S)calculate_TH(T, H)calculate_TS(T, S)draw_2d([Hs]) Interface for drawing a 2D image of all the molecules in
the mixture.set_TP([T, P])
Continued on next page
1.1. thermo package 81
thermo Documentation, Release 0.1
Table 1.7 – continued from previous pageset_TP_sources()set_chemical_TP()set_chemical_constants()set_constant_sources()set_constants()set_eos(T, P[, eos])set_none()set_phase()
calculate(T=None, P=None)
thermo.combustion module
thermo.combustion.Hcombustion(atoms, 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
82 Chapter 1. thermo
thermo Documentation, Release 0.1
Heat of formation of nitrogen, [J/mol]
Returns Hc : float
Heat of combustion of chemical, [J/mol]
Notes
Default heats of formation for chemicals are at 298 K, 1 atm.
Examples
Liquid methanol burning
>>> Hcombustion('H': 4, 'C': 1, 'O': 1, Hf=-239100)-726024.0
thermo.critical module
thermo.critical.Tc(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=[’SURF’])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’ for organic chemicals, and ‘MATTHEWS’ for inorganic chemicals. Function hasdata 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
The method name to use. Accepted methods are ‘IUPAC’, ‘MATTHEWS’, ‘CRC’,‘PSRK’, ‘PD’, ‘YAWS’, and ‘SURF’. All valid values are also held in the listTc_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
1.1. thermo package 83
thermo Documentation, Release 0.1
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 [R23], [R24], [R25], [R26], [R27], [R28], [R29], [R30], [R31], [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 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
[R23], [R24], [R25], [R26], [R27], [R28], [R29], [R30], [R31], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_,[17]_
Examples
>>> Tc(CASRN='64-17-5')514.0
thermo.critical.Pc(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=[’SURF’])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’ for organic chemicals, and ‘MATTHEWS’ for inorganic chemicals. Function hasdata 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
The method name to use. Accepted methods are ‘IUPAC’, ‘MATTHEWS’, ‘CRC’,‘PSRK’, ‘PD’, ‘YAWS’, and ‘SURF’. All valid values are also held in the listPc_methods.
AvailableMethods : bool, optional
84 Chapter 1. thermo
thermo Documentation, Release 0.1
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’, a series of critically evaluated experimental datum for organic compounds in [R32], [R33],[R34], [R35], [R36], [R37], [R38], [R39], [R40], [10]_, [11]_, and [12]_.
•‘MATTHEWS’, a series of critically evaluated data for inorganic compounds in [13]_.
•‘CRC’, a compillation of critically evaluated data by the TRC as published in [14]_.
•‘PSRK’, a compillation of experimental and estimated data published in [15]_.
•‘PD’, an older compillation of data published in [16]_
•‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of[17]_.
•SURF’, an estimation method using a simple quadratic method for estimating Pc from Tc and Vc. This isignored and not returned as a method by default.
References
[R32], [R33], [R34], [R35], [R36], [R37], [R38], [R39], [R40], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_,[17]_
Examples
>>> Pc(CASRN='64-17-5')6137000.0
thermo.critical.Vc(CASRN, AvailableMethods=False, Method=None, IgnoreMethods=[’SURF’])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’ for organic chemicals, and ‘MATTHEWS’ for inorganic chemicals. Function hasdata 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
1.1. thermo package 85
thermo Documentation, Release 0.1
The method name to use. Accepted methods are ‘IUPAC’, ‘MATTHEWS’, ‘CRC’,‘PSRK’, ‘YAWS’, and ‘SURF’. All valid values are also held in the list 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’, a series of critically evaluated experimental datum for organic compounds in [R41], [R42],[R43], [R44], [R45], [R46], [R47], [R48], [R49], [10]_, [11]_, and [12]_.
•‘MATTHEWS’, a series of critically evaluated data for inorganic compounds in [13]_.
•‘CRC’, a compillation of critically evaluated data by the TRC as published in [14]_.
•‘PSRK’, a compillation of experimental and estimated data published in [15]_.
•‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of[16]_.
•‘SURF’, an estimation method using a simple quadratic method for estimating Pc from Tc and Vc. This isignored and not returned as a method by default
References
[R41], [R42], [R43], [R44], [R45], [R46], [R47], [R48], [R49], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_
Examples
>>> Vc(CASRN='64-17-5')0.000168
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’ for organic chemicals, and ‘MATTHEWS’ for inorganic chemicals. Function hasdata 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
86 Chapter 1. thermo
thermo Documentation, Release 0.1
Other Parameters Method : string, optional
The method name to use. Accepted methods are ‘IUPAC’, ‘MATTHEWS’, ‘CRC’,‘PSRK’, ‘YAWS’, and ‘COMBINED’. All valid values are also held 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
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’, a series of critically evaluated experimental datum for organic compounds in [R50], [R51],[R52], [R53], [R54], [R55], [R56], [R57], [R58], [10]_, [11]_, and [12]_.
•‘MATTHEWS’, a series of critically evaluated data for inorganic compounds in [13]_.
•‘CRC’, a compillation of critically evaluated data by the TRC as published in [14]_.
•‘PSRK’, a compillation of experimental and estimated data published in [15]_.
•‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of[16]_.
References
[R50], [R51], [R52], [R53], [R54], [R55], [R56], [R57], [R58], [10]_, [11]_, [12]_, [13]_, [14]_, [15]_, [16]_
Examples
>>> Zc(CASRN='64-17-5')0.24100000000000002
thermo.critical.third_property(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
1.1. thermo package 87
thermo Documentation, Release 0.1
Estimate critical volume
Returns Tc, Pc or Vc : float
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]>>> third_property('141-62-8', V=True)0.0010920041152263375
>>> # Succinic acid 110-15-6>>> third_property('110-15-6', P=True)6095016.233766234
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]
Examples
Decamethyltetrasiloxane [141-62-8]
>>> critical_surface(Tc=599.4, Pc=1.19E6, Method='IHMELS')0.0010927333333333334
88 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R59]:
𝑃𝑐 = −0.025 + 2.215𝑇𝑐𝑉𝑐
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 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
[R59]
Examples
Succinic acid [110-15-6]
>>> Ihmels(Tc=851.0, Vc=0.000308)6095016.233766234
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 [R60]:
𝑃𝑐 =2.08𝑇𝑐𝑉𝑐 − 8
Parameters Tc : float, optional
Critical temperature of fluid [K]
Pc : float, optional
Critical pressure of fluid [Pa]
1.1. thermo package 89
thermo Documentation, Release 0.1
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
[R60]
Examples
Succinic acid [110-15-6]
>>> Meissner(Tc=851.0, Vc=0.000308)5978445.199999999
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 [R61]:
𝑃𝑐 = 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.
90 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R61]
Examples
Succinic acid [110-15-6]
>>> Grigoras(Tc=851.0, Vc=0.000308)5871233.766233766
thermo.critical.Li(zs, Tcs, Vcs)Calculates critical temperature of a mixture according to mixing rules in [R62]. 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.
References
[R62]
Examples
Nitrogen-Argon 50/50 mixture
1.1. thermo package 91
thermo Documentation, Release 0.1
>>> 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.Chueh_Prausnitz_Tc(zs, Tcs, Vcs, taus)Calculates critical temperature of a mixture according to mixing rules in [R63].
𝑇𝑐𝑚 =
𝑛∑𝑖
𝜃𝑖𝑇𝑐𝑖 +
𝑛∑𝑖
𝑛∑𝑗
(𝜃𝑖𝜃𝑗𝜏𝑖𝑗)𝑇𝑟𝑒𝑓
𝜃 =𝑥𝑖𝑉
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]
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
[R63], [R64]
Examples
butane/pentane/hexane 0.6449/0.2359/0.1192 mixture, exp: 450.22 K.
92 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> 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.Grieves_Thodos(zs, Tcs, Aijs)Calculates critical temperature of a mixture according to mixing rules in [R65].
𝑇𝑐𝑚 =∑𝑖
𝑇𝑐𝑖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
[R65], [R66]
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
thermo.critical.modified_Wilson_Tc(zs, Tcs, Aijs)Calculates critical temperature of a mixture according to mixing rules in [R67]. Equation
𝑇𝑐𝑚 =∑𝑖
𝑥𝑖𝑇𝑐𝑖 + 𝐶∑𝑖
𝑥𝑖 ln
⎛⎝𝑥𝑖 +∑𝑗
𝑥𝑗𝐴𝑖𝑗
⎞⎠𝑇𝑟𝑒𝑓
For a binary mxiture, this simplifies to:
𝑇𝑐𝑚 = 𝑥1𝑇𝑐1 + 𝑥2𝑇𝑐2 + 𝐶[𝑥1 ln(𝑥1 + 𝑥2𝐴12) + 𝑥2 ln(𝑥2 + 𝑥1𝐴21)]
1.1. thermo package 93
thermo Documentation, Release 0.1
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. [R67] 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 [R68], 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
[R67], [R68]
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.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.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
94 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.critical.Chueh_Prausnitz_Vc(zs, Vcs, nus)Calculates critical volume of a mixture according to mixing rules in [R69] 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
References
[R69], [R70]
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.modified_Wilson_Vc(zs, Vcs, Aijs)Calculates critical volume of a mixture according to mixing rules in [R71] with parameters. 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
Vcs : float
Critical volumes of all components, [m^3/mol]
1.1. thermo package 95
thermo Documentation, Release 0.1
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
[R71], [R72]
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.0002664335032706881
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.datasheet module
thermo.datasheet.tabulate_solid(chemical, Tmin=None, Tmax=None, pts=10)
thermo.datasheet.tabulate_liq(chemical, Tmin=None, Tmax=None, pts=10)
thermo.datasheet.tabulate_gas(chemical, Tmin=None, Tmax=None, pts=10)
thermo.datasheet.tabulate_constants(chemical, full=False, vertical=False)
thermo.dipole module
thermo.dipole.dipole_moment(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.
96 Chapter 1. thermo
thermo Documentation, Release 0.1
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
The method name to use. Accepted methods are ‘CCCBDB’, ‘MULLER’, or ‘POL-ING’. All valid values are also held in the list 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:
•‘CCCBDB’, a series of critically evaluated data for compounds in [R73], intended for use in predictivemodeling.
•‘MULLER’, a collection of data in a group-contribution scheme in [R74].
•‘POLING’, in the appendix in [3].
References
[R73], [R74], [R75]
Examples
>>> dipole_moment(CASRN='64-17-5')1.44
thermo.dippr module
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
1.1. thermo package 97
thermo Documentation, Release 0.1
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R76]
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
[R77]
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
98 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature, [K]
A-D : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R78]
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
[R79]
Examples
Water second virial coefficient; DIPPR coefficients normally dimensionless.
>>> EQ104(300, 0.02222, -26.38, -16750000, -3.894E19, 3.133E21)-1.1204179007265151
1.1. thermo package 99
thermo Documentation, Release 0.1
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]
References
[R80]
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
[R81]
100 Chapter 1. thermo
thermo Documentation, Release 0.1
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]
A-E : float
Parameter for the equation; chemical and property specific [-]
Returns Y : float
Property [constant-specific]
References
[R82], [R83]
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]
1.1. thermo package 101
thermo Documentation, Release 0.1
References
[R84]
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
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
[R85]
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 [-]
102 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns Y : float
Property [constant-specific]
References
[R86]
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
[R87]
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
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.
1.1. thermo package 103
thermo Documentation, Release 0.1
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_COND’ which is from Lange’s Handbook, Table 8.34 Electrical
Conductivity of Various Pure Liquids’, a compillation of data in [R88].
References
[R88]
Examples
>>> conductivity('7732-18-5')(4e-06, 291.15)
thermo.electrochem.Laliberte_density(T, ws, CASRNs)Calculate the density of an aqueous electrolyte mixture using the form proposed by [R89]. 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
104 Chapter 1. thermo
thermo Documentation, Release 0.1
CASRNs : array
CAS numbers of the fluid components other than water
Returns rho_i : float
Solution density, [kg/m^3]
Notes
Temperature range check is not used here.
References
[R89]
Examples
>>> Laliberte_density(273.15, [0.0037838838], ['7647-14-5'])1002.6250120185854
thermo.electrochem.Laliberte_heat_capacity(T, ws, CASRNs)Calculate the heat capacity of an aqueous electrolyte mixture using the form proposed by [R90]. 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.
References
[R90]
1.1. thermo package 105
thermo Documentation, Release 0.1
Examples
>>> Laliberte_heat_capacity(273.15+1.5, [0.00398447], ['7647-14-5'])4186.569908672113
thermo.electrochem.Laliberte_viscosity(T, ws, CASRNs)Calculate the viscosity of an aqueous mixture using the form proposed by [R91]. 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[R91]‘s spreadsheet.
References
[R91]
Examples
>>> Laliberte_viscosity(273.15+5, [0.005810], ['7647-14-5'])0.0015285828581961414
thermo.electrochem.Laliberte_viscosity_w(T)Calculate the viscosity of a water using the form proposed by [R92]. 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
106 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Original source or pure water viscosity is not cited. No temperature range is given for this equation.
References
[R92]
Examples
>>> Laliberte_viscosity_w(298)0.0008932264487033279
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 [R93] 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 [R93]‘s spreadsheet.
References
[R93]
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.004254025533308794
1.1. thermo package 107
thermo Documentation, Release 0.1
thermo.electrochem.Laliberte_density_w(T)Calculate the density of water using the form proposed by [R94]. 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
[R94]
Examples
>>> Laliberte_density_w(298.15)997.0448954179155>>> Laliberte_density_w(273.15 + 50)988.0362916114763
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 [R95]. 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
108 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R95]
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
thermo.electrochem.Laliberte_heat_capacity_w(T)Calculate the heat capacity of water using the interpolation proposed by [R96]. 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]
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
[R96]
Examples
>>> Laliberte_heat_capacity_w(273.15+3.56)4208.878020261102
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 [R97] 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
1.1. thermo package 109
thermo Documentation, Release 0.1
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
[R97]
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.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 [R98]. 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
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]
110 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R98]
Examples
>>> thermal_conductivity_Magomedov(293., 1E6, [.25], ['7758-94-3'], k_w=0.59827)0.548654049375
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
[R99], [R100]
Examples
>>> ionic_strength([0.1393, 0.1393], [1, -1])0.1393
thermo.electrochem.Kweq_1981(T, rho_w)Calculates equilibrium constant for OH- and H+ in water, according to [R101]. Second most recent formulation.
log10𝐾𝑤 = 𝐴+𝐵/𝑇 + 𝐶/𝑇 2 +𝐷/𝑇 3 + (𝐸 + 𝐹/𝑇 +𝐺/𝑇 2) log10 𝜌𝑤
Parameters T : float
1.1. thermo package 111
thermo Documentation, Release 0.1
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
[R101]
Examples
>>> -1*log10(Kweq_1981(600, 700))11.274522047458206
thermo.electrochem.Kweq_IAPWS_gas(T)Calculates equilibrium constant for OH- and H+ in water vapor, according to [R102]. 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
[R102]
Examples
>>> Kweq_IAPWS_gas(800)1.4379721554798815e-61
112 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.electrochem.Kweq_IAPWS(T, rho_w)Calculates equilibrium constant for OH- and H+ in water, according to [R103]. This is the most recent formu-lation 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
References
[R103]
Examples
Example from IAPWS check:
>>> -1*log10(Kweq_IAPWS(600, 700))11.203153057603775
thermo.elements module
class thermo.elements.PeriodicTable(elements)Bases: object
Periodic Table object for use in dealing with elements.
Parameters elements : list[Element]
List of Element objects
See also:
periodic_table, 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.
1.1. thermo package 113
thermo Documentation, Release 0.1
References
[R104]
CAS_to_elements
name_to_elements
number_to_elements
symbol_to_elements
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
[R105]
Examples
>>> molecular_weight('H': 12, 'C': 20, 'O': 5) # DNA332.30628
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]
114 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns mfracs : dict
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
[R106]
Examples
>>> mass_fractions('H': 12, 'C': 20, 'O': 5)'H': 0.03639798802478244, 'C': 0.7228692758981262, 'O': 0.24073273607709128
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
[R107]
Examples
>>> atom_fractions('H': 12, 'C': 20, 'O': 5)'H': 0.32432432432432434, 'C': 0.5405405405405406, 'O': 0.13513513513513514
1.1. thermo package 115
thermo Documentation, Release 0.1
thermo.elements.similarity_variable(atoms, MW=None)Calculates the similarity variable of an compound, as defined in [R108]. 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 [R108], [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
[R108]
Examples
>>> similarity_variable('H': 32, 'C': 15)0.2212654140784498
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.
116 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R109]
Examples
>>> atoms_to_Hill('H': 5, 'C': 2, 'Br': 1)'C2H5Br'
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.
Examples
>>> simple_formula_parser('CO2')'C': 1, 'O': 2
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.
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.
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.blocks = ‘s’: [1, 2, 3, 4, 11, 12, 19, 20, 37, 38, 55, 56, 87, 88], ‘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], ‘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.eos module
class thermo.eos.GCEOSBases: object
1.1. thermo package 117
thermo Documentation, Release 0.1
Class for solving a generic Pressure-explicit three-parameter cubic equation of state. Does not implement anyparameters itself; must be subclassed by an equation of state class which uses it. Works for mixtures or purespecies for all properties except fugacity. All properties are derived with the CAS SymPy, not relying on anyderivations previously published.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 2 + 𝛿𝑉 + 𝜖
Main methods (in order they are called) are solve, set_from_PT, volume_solutions,set_properties_from_solution, and derivatives_and_departures.
solve calls check_sufficient_input, which checks if two of T, P, and V were set. It then solves for the remainingvariable. If T is missing, method solve_T is used; it is parameter specific, and so must be implemented ineach specific EOS. If P is missing, it is directly calculated. If V is missing, it is calculated with the methodvolume_solutions. At this point, either three possible volumes or one user specified volume are known. Thevalue of a_alpha, and its first and second temperature derivative are calculated with the EOS-specific methoda_alpha_and_derivatives.
If V is not provided, volume_solutions calculates the three possible molar volumes which are solutions to theEOS; in the single-phase region, only one solution is real and correct. In the two-phase region, all volumes arereal, but only the largest and smallest solution are physically meaningful, with the largest being that of the gasand the smallest that of the liquid.
set_from_PT is called to sort out the possible molar volumes. For the case of a user-specified V, the possi-bility of there existing another solution is ignored for speed. If there is only one real volume, the methodset_properties_from_solution is called with it. If there are two real volumes, set_properties_from_solution iscalled once with each volume. The phase is returned by set_properties_from_solution, and the volumes is set toeither V_l or V_g as appropriate.
set_properties_from_solution is a beast which calculates all relevant partial derivatives and properties of theEOS. 15 derivatives and excess enthalpy and entropy are calculated first. If the method was called with thequick flag, the method derivatives_and_departures uses a mess derived with SymPy’s cse function to performthe calculation as quickly as possible. Otherwise, the independent formulas for each property are used.
set_properties_from_solution next calculates beta (isobaric expansion coefficient), kappa (isothermal compress-ibility), Cp_minus_Cv, Cv_dep, Cp_dep, V_dep molar volume departure, U_dep internal energy departure,G_dep Gibbs energy departure, A_dep Helmholtz energy departure, fugacity, and phi (fugacity coefficient). Itthen calculates PIP or phase identification parameter, and determines the fluid phase with it. Finally, it sets allthese properties as attibutes or either the liquid or gas phase with the convention of adding on _l or _g to thevariable names.
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Dummy method to calculate a_alpha and its first andsecond derivatives.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
Continued on next page
118 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.8 – continued from previous pagedPsat_dT(T) Generic method to calculate the temperature derivative
of vapor pressure for a specified T.derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Hvap(T)Method to calculate enthalpy of vaporization for a pure fluid from an equation of state, without iteration.
𝑑𝑃 𝑠𝑎𝑡
𝑑𝑇=
∆𝐻𝑣𝑎𝑝
𝑇 (𝑉𝑔 − 𝑉𝑙)
Results above the critical temperature are meaningless. A first-order polynomial is used to extrapolateunder 0.32 Tc; however, there is normally not a volume solution to the EOS which can produce that lowof a pressure.
Parameters T : float
Temperature, [K]
Returns Hvap : float
Increase in enthalpy needed for vaporization of liquid phase along the saturation line,[J/mol]
Notes
Calculates vapor pressure and its derivative with Psat and dPsat_dT as well as molar volumes of thesaturation liquid and vapor phase in the process.
Very near the critical point this provides unrealistic results due to Psat‘s polynomials being insufficientlyaccurate.
References
[R116]
Psat(T, polish=False)Generic method to calculate vapor pressure for a specified T.
From Tc to 0.32Tc, uses a 10th order polynomial of the following form:
ln𝑃𝑟
𝑇𝑟=
10∑𝑘=0
𝐶𝑘
(𝛼
𝑇𝑟− 1
)𝑘
1.1. thermo package 119
thermo Documentation, Release 0.1
If polish is True, SciPy’s newton solver is launched with the calculated vapor pressure as an initial guessin an attempt to get more accuracy. This may not converge however.
Results above the critical temperature are meaningless. A first-order polynomial is used to extrapolateunder 0.32 Tc; however, there is normally not a volume solution to the EOS which can produce that lowof a pressure.
Parameters T : float
Temperature, [K]
polish : bool, optional
Whether to attempt to use a numerical solver to make the solution more precise or not
Returns Psat : float
Vapor pressure, [Pa]
Notes
EOSs sharing the same b, delta, and epsilon have the same coefficient sets.
All coefficients were derived with numpy’s polyfit. The intersection between the polynomials is continu-ous, but there is a step change in its derivative.
Form for the regression is inspired from [R117].
References
[R117]
V_g_sat(T)Method to calculate molar volume of the vapor phase along the saturation line.
Parameters T : float
Temperature, [K]
Returns V_g_sat : float
Gas molar volume along the saturation line, [m^3/mol]
Notes
Computers Psat, and then uses volume_solutions to obtain the three possible molar volumes. The highestvalue is returned.
V_l_sat(T)Method to calculate molar volume of the liquid phase along the saturation line.
Parameters T : float
Temperature, [K]
Returns V_l_sat : float
Liquid molar volume along the saturation line, [m^3/mol]
120 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Computers Psat, and then uses volume_solutions to obtain the three possible molar volumes. The lowestvalue is returned.
a_alpha_and_derivatives(T, full=True, quick=True)Dummy method to calculate a_alpha and its first and second derivatives. Should be implemented with thesame function signature in each EOS variant; this only raises a NotImplemented Exception. Should return‘a_alpha’, ‘da_alpha_dT’, and ‘d2a_alpha_dT2’.
For use in solve_T, returns only a_alpha if full is False.
Parameters T : float
Temperature, [K]
full : bool, optional
If False, calculates and returns only a_alpha
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns a_alpha : float
Coefficient calculated by EOS-specific method, [J^2/mol^2/Pa]
da_alpha_dT : float
Temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K]
d2a_alpha_dT2 : float
Second temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K**2]
check_sufficient_inputs()Method to an exception if none of the pairs (T, P), (T, V), or (P, V) are given.
dPsat_dT(T)Generic method to calculate the temperature derivative of vapor pressure for a specified T. Implements theanalytical derivative of the two polynomials described in Psat.
As with Psat, results above the critical temperature are meaningless. The first-order polynomial whichis used to calculate it under 0.32 Tc may not be physicall meaningful, due to there normally not being avolume solution to the EOS which can produce that low of a pressure.
Parameters T : float
Temperature, [K]
Returns dPsat_dT : float
Derivative of vapor pressure with respect to temperature, [Pa/K]
Notes
There is a small step change at 0.32 Tc for all EOS due to the two switch between polynomials at thatpoint.
Useful for calculating enthalpy of vaporization with the Clausius Clapeyron Equation. Derived withSymPy’s diff and cse.
1.1. thermo package 121
thermo Documentation, Release 0.1
derivatives_and_departures(T, P, V, b, delta, epsilon, a_alpha, da_alpha_dT, d2a_alpha_dT2,quick=True)
kwargs =
static main_derivatives_and_departures(T, P, V, b, delta, epsilon, a_alpha, da_alpha_dT,d2a_alpha_dT2, quick=True)
set_from_PT(Vs)Counts the number of real volumes in Vs, and determines what to do. If there is only onereal volume, the method set_properties_from_solution is called with it. If there are two real vol-umes, set_properties_from_solution is called once with each volume. The phase is returned byset_properties_from_solution, and the volumes is set to either V_l or V_g as appropriate.
Parameters Vs : list[float]
Three possible molar volumes, [m^3/mol]
set_properties_from_solution(T, P, V, b, delta, epsilon, a_alpha, da_alpha_dT,d2a_alpha_dT2, quick=True)
Sets all interesting properties which can be calculated from an EOS alone. Determines which phase thefluid is on its own; for details, see phase_identification_parameter.
The list of properties set is as follows, with all properties suffixed with ‘_l’ or ‘_g’.
dP_dT, dP_dV, dV_dT, dV_dP, dT_dV, dT_dP, d2P_dT2, d2P_dV2, d2V_dT2, d2V_dP2, d2T_dV2,d2T_dP2, d2V_dPdT, d2P_dTdV, d2T_dPdV, H_dep, S_dep, beta, kappa, Cp_minus_Cv, V_dep, U_dep,G_dep, A_dep, fugacity, phi, and PIP.
Parameters T : float
Temperature, [K]
P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
b : float
Coefficient calculated by EOS-specific method, [m^3/mol]
delta : float
Coefficient calculated by EOS-specific method, [m^3/mol]
epsilon : float
Coefficient calculated by EOS-specific method, [m^6/mol^2]
a_alpha : float
Coefficient calculated by EOS-specific method, [J^2/mol^2/Pa]
da_alpha_dT : float
Temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K]
d2a_alpha_dT2 : float
Second temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K**2]
quick : bool, optional
122 Chapter 1. thermo
thermo Documentation, Release 0.1
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns phase : str
Either ‘l’ or ‘g’
Notes
The individual formulas for the derivatives and excess properties are as follows. For definitions of beta,see isobaric_expansion; for kappa, see isothermal_compressibility; for Cp_minus_Cv, see Cp_minus_Cv;for phase_identification_parameter, see phase_identification_parameter.
First derivatives; in part using the Triple Product Rule [R119], [R120]:(𝜕𝑃
𝜕𝑇
)𝑉
=𝑅
𝑉 − 𝑏−
𝑎𝑑𝛼(𝑇 )𝑑𝑇
𝑉 2 + 𝑉 𝛿 + 𝜖(𝜕𝑃
𝜕𝑉
)𝑇
= − 𝑅𝑇
(𝑉 − 𝑏)2 − 𝑎 (−2𝑉 − 𝛿)𝛼(𝑇 )
(𝑉 2 + 𝑉 𝛿 + 𝜖)2(
𝜕𝑉
𝜕𝑇
)𝑃
= −(𝜕𝑃𝜕𝑇
)𝑉(
𝜕𝑃𝜕𝑉
)𝑇(
𝜕𝑉
𝜕𝑃
)𝑇
= −(𝜕𝑉𝜕𝑇
)𝑃(
𝜕𝑃𝜕𝑇
)𝑉(
𝜕𝑇
𝜕𝑉
)𝑃
=1(
𝜕𝑉𝜕𝑇
)𝑃(
𝜕𝑇
𝜕𝑃
)𝑉
=1(
𝜕𝑃𝜕𝑇
)𝑉
Second derivatives with respect to one variable; those of T and V use identities shown in [R118] andverified numerically: (
𝜕2𝑃
𝜕𝑇 2
)𝑉
= −𝑎𝑑2𝛼(𝑇 )
𝑑𝑇 2
𝑉 2 + 𝑉 𝛿 + 𝜖(𝜕2𝑃
𝜕𝑉 2
)𝑇
= 2
(𝑅𝑇
(𝑉 − 𝑏)3 − 𝑎 (2𝑉 + 𝛿)
2𝛼(𝑇 )
(𝑉 2 + 𝑉 𝛿 + 𝜖)3 +
𝑎𝛼(𝑇 )
(𝑉 2 + 𝑉 𝛿 + 𝜖)2
)(𝜕2𝑇
𝜕𝑃 2
)𝑉
= −(𝜕2𝑃
𝜕𝑇 2
)𝑉
(𝜕𝑃
𝜕𝑇
)−3
𝑉(𝜕2𝑉
𝜕𝑃 2
)𝑇
= −(𝜕2𝑃
𝜕𝑉 2
)𝑇
(𝜕𝑃
𝜕𝑉
)−3
𝑇(𝜕2𝑇
𝜕𝑉 2
)𝑃
= −[(
𝜕2𝑃
𝜕𝑉 2
)𝑇
(𝜕𝑃
𝜕𝑇
)𝑉
−(𝜕𝑃
𝜕𝑉
)𝑇
(𝜕2𝑃
𝜕𝑇𝜕𝑉
)](𝜕𝑃
𝜕𝑇
)−2
𝑉
+
[(𝜕2𝑃
𝜕𝑇𝜕𝑉
)(𝜕𝑃
𝜕𝑇
)𝑉
−(𝜕𝑃
𝜕𝑉
)𝑇
(𝜕2𝑃
𝜕𝑇 2
)𝑉
](𝜕𝑃
𝜕𝑇
)−3
𝑉
(𝜕𝑃
𝜕𝑉
)𝑇(
𝜕2𝑉
𝜕𝑇 2
)𝑃
= −[(
𝜕2𝑃
𝜕𝑇 2
)𝑉
(𝜕𝑃
𝜕𝑉
)𝑇
−(𝜕𝑃
𝜕𝑇
)𝑉
(𝜕2𝑃
𝜕𝑇𝜕𝑉
)](𝜕𝑃
𝜕𝑉
)−2
𝑇
+
[(𝜕2𝑃
𝜕𝑇𝜕𝑉
)(𝜕𝑃
𝜕𝑉
)𝑇
−(𝜕𝑃
𝜕𝑇
)𝑉
(𝜕2𝑃
𝜕𝑉 2
)𝑇
](𝜕𝑃
𝜕𝑉
)−3
𝑇
(𝜕𝑃
𝜕𝑇
)𝑉
Second derivatives with respect to the other two variables; those of T and V use identities shown in [R118]
1.1. thermo package 123
thermo Documentation, Release 0.1
and verified numerically: (𝜕2𝑃
𝜕𝑇𝜕𝑉
)= − 𝑅
(𝑉 − 𝑏)2 +
𝑎 (2𝑉 + 𝛿) 𝑑𝛼(𝑇 )𝑑𝑇
(𝑉 2 + 𝑉 𝛿 + 𝜖)2(
𝜕2𝑇
𝜕𝑃𝜕𝑉
)= −
[(𝜕2𝑃
𝜕𝑇𝜕𝑉
)(𝜕𝑃
𝜕𝑇
)𝑉
−(𝜕𝑃
𝜕𝑉
)𝑇
(𝜕2𝑃
𝜕𝑇 2
)𝑉
](𝜕𝑃
𝜕𝑇
)−3
𝑉(𝜕2𝑉
𝜕𝑇𝜕𝑃
)= −
[(𝜕2𝑃
𝜕𝑇𝜕𝑉
)(𝜕𝑃
𝜕𝑉
)𝑇
−(𝜕𝑃
𝜕𝑇
)𝑉
(𝜕2𝑃
𝜕𝑉 2
)𝑇
](𝜕𝑃
𝜕𝑉
)−3
𝑇
Excess properties
𝐻𝑑𝑒𝑝 =
∫ 𝑉
∞
[𝑇𝜕𝑃
𝜕𝑇 𝑉− 𝑃
]𝑑𝑉 + 𝑃𝑉 −𝑅𝑇 = 𝑃𝑉 −𝑅𝑇 +
2√𝛿2 − 4𝜖
(𝑇𝑎
𝑑𝛼(𝑇 )
𝑑𝑇− 𝑎𝛼(𝑇 )
)atanh
(2𝑉 + 𝛿√𝛿2 − 4𝜖
)𝑆𝑑𝑒𝑝 =
∫ 𝑉
∞
[𝜕𝑃
𝜕𝑇− 𝑅
𝑉
]𝑑𝑉 +𝑅 log
𝑃𝑉
𝑅𝑇= −𝑅 log (𝑉 ) +𝑅 log
(𝑃𝑉
𝑅𝑇
)+𝑅 log (𝑉 − 𝑏) +
2𝑎𝑑𝛼(𝑇 )𝑑𝑇√
𝛿2 − 4𝜖atanh
(2𝑉 + 𝛿√𝛿2 − 4𝜖
)𝑉𝑑𝑒𝑝 = 𝑉 − 𝑅𝑇
𝑃𝑈𝑑𝑒𝑝 = 𝐻𝑑𝑒𝑝 − 𝑃𝑉𝑑𝑒𝑝
𝐺𝑑𝑒𝑝 = 𝐻𝑑𝑒𝑝 − 𝑇𝑆𝑑𝑒𝑝
𝐴𝑑𝑒𝑝 = 𝑈𝑑𝑒𝑝 − 𝑇𝑆𝑑𝑒𝑝
fugacity = 𝑃 exp
(𝐺𝑑𝑒𝑝
𝑅𝑇
)𝜑 =
fugacity𝑃
𝐶𝑣,𝑑𝑒𝑝 = 𝑇
∫ 𝑉
∞
(𝜕2𝑃
𝜕𝑇 2
)𝑑𝑉 = −𝑇𝑎
(√1
𝛿2 − 4𝜖log
(𝑉 − 𝛿2
2
√1
𝛿2 − 4𝜖+𝛿
2+ 2𝜖
√1
𝛿2 − 4𝜖
)−√
1
𝛿2 − 4𝜖log
(𝑉 +
𝛿2
2
√1
𝛿2 − 4𝜖+𝛿
2− 2𝜖
√1
𝛿2 − 4𝜖
))𝑑2𝛼(𝑇 )
𝑑𝑇 2
𝐶𝑝,𝑑𝑒𝑝 = (𝐶𝑝 − 𝐶𝑣)from EOS + 𝐶𝑣,𝑑𝑒𝑝 −𝑅
References
[R118], [R119], [R120]
solve()First EOS-generic method; should be called by all specific EOSs. For solving for T, the EOS must providethe method solve_T. For all cases, the EOS must provide a_alpha_and_derivatives. Calls set_from_PTonce done.
solve_T(P, V, quick=True)Generic method to calculate T from a specified P and V. Provides SciPy’s newton solver, and it-erates to solve the general equation for P, recalculating a_alpha as a function of temperature usinga_alpha_and_derivatives each iteration.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas - notapplicable where a numerical solver is used.
124 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns T : float
Temperature, [K]
to_TP(T, P)
static volume_solutions(T, P, b, delta, epsilon, a_alpha, quick=True)Solution of this form of the cubic EOS in terms of volumes. Returns three values, all with some complexpart.
Parameters T : float
Temperature, [K]
P : float
Pressure, [Pa]
b : float
Coefficient calculated by EOS-specific method, [m^3/mol]
delta : float
Coefficient calculated by EOS-specific method, [m^3/mol]
epsilon : float
Coefficient calculated by EOS-specific method, [m^6/mol^2]
a_alpha : float
Coefficient calculated by EOS-specific method, [J^2/mol^2/Pa]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns Vs : list[float]
Three possible molar volumes, [m^3/mol]
Notes
Using explicit formulas, as can be derived in the following example, is faster than most numeric rootfinding techniques, and finds all values explicitly. It takes several seconds.
>>> from sympy import *>>> P, T, V, R, b, a, delta, epsilon, alpha = symbols('P, T, V, R, b, a,→˓delta, epsilon, alpha')>>> Tc, Pc, omega = symbols('Tc, Pc, omega')>>> CUBIC = R*T/(V-b) - a*alpha/(V*V + delta*V + epsilon) - P>>> #solve(CUBIC, V)
class thermo.eos.PR(Tc, Pc, omega, T=None, P=None, V=None)Bases: thermo.eos.GCEOS
Class for solving the Peng-Robinson cubic equation of state for a pure compound. Subclasses CUBIC_EOS,which provides the methods for solving the EOS and calculating its assorted relevant thermodynamic properties.Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which calculates a_alpha and its first and secondderivatives, and solve_T, which from a specified P and V obtains T.
1.1. thermo package 125
thermo Documentation, Release 0.1
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎 = 0.45724𝑅2𝑇 2
𝑐
𝑃𝑐
𝑏 = 0.07780𝑅𝑇𝑐𝑃𝑐
𝛼(𝑇 ) = [1 + 𝜅(1 −√𝑇𝑟)]2
𝜅 = 0.37464 + 1.54226𝜔 − 0.26992𝜔2
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
The constants in the expresions for a and b are given to full precision in the actual code, as derived in [R123].
References
[R121], [R122], [R123]
Examples
T-P initialization, and exploring each phase’s properties:
>>> eos = PR(Tc=507.6, Pc=3025000, omega=0.2975, T=400., P=1E6)>>> eos.V_l, eos.V_g(0.000156073131885293, 0.0021418760907613724)>>> eos.phase'l/g'>>> eos.H_dep_l, eos.H_dep_g(-26111.868721160834, -3549.2993749373945)>>> eos.S_dep_l, eos.S_dep_g(-58.0984281510609, -6.439449710478305)>>> eos.U_dep_l, eos.U_dep_g
126 Chapter 1. thermo
thermo Documentation, Release 0.1
(-22942.157933046128, -2365.391545698767)>>> eos.G_dep_l, eos.G_dep_g(-2872.4974607364747, -973.5194907460723)>>> eos.A_dep_l, eos.A_dep_g(297.21332737823104, 210.38833849255525)>>> eos.beta_l, eos.beta_g(0.002693370917783791, 0.01012322391117497)>>> eos.kappa_l, eos.kappa_g(9.335721543829537e-09, 1.9710669809793307e-06)>>> eos.Cp_minus_Cv_l, eos.Cp_minus_Cv_g(48.51014580740853, 44.54414603000345)>>> eos.Cv_dep_l, eos.Cp_dep_l(18.89210627002109, 59.08779227742962)
P-T initialization, liquid phase, and round robin trip:
>>> eos = PR(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00013022208100139953, -31134.740290463407, -72.47559475426013)
T-V initialization, liquid phase:
>>> eos = PR(Tc=507.6, Pc=3025000, omega=0.2975, T=299., V=0.00013022208100139953)>>> eos.P, eos.phase(1000000.0000020266, 'l')
P-V initialization at same state:
>>> eos = PR(Tc=507.6, Pc=3025000, omega=0.2975, V=0.00013022208100139953, P=1E6)>>> eos.T, eos.phase(298.99999999999926, 'l')
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.Continued on next page
1.1. thermo package 127
thermo Documentation, Release 0.1
Table 1.9 – continued from previous pageset_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
PR EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Psat_coeffs = [9.689234781518378e-06, -0.0002443582031145319, 0.0026885427128470565, -0.017049496987961255, 0.06971001627679084, -0.19625435197107072, 0.39857709528021257, -0.5870213533216718, 0.5163461910213303, -3.3504109815148495, -0.0001335877045451046]
Psat_coeffs_limiting = [-3.4758880164801873, 0.7675486448347723]
Zc = 0.30740130869870386
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, kappa, and a.
For use in solve_T, returns only a_alpha if full is False.
𝑎𝛼 = 𝑎
(𝜅
(− 𝑇 0.5
𝑇𝑐0.5+ 1
)+ 1
)2
𝑑𝑎𝛼
𝑑𝑇= − 1.0𝑎𝜅
𝑇 0.5𝑇𝑐0.5
(𝜅
(− 𝑇 0.5
𝑇𝑐0.5+ 1
)+ 1
)𝑑2𝑎𝛼
𝑑𝑇 2= 0.5𝑎𝜅
(− 1
𝑇 1.5𝑇𝑐0.5
(𝜅
(𝑇 0.5
𝑇𝑐0.5− 1
)− 1
)+
𝜅
𝑇 1.0𝑇𝑐1.0
)
c1 = 0.4572355289213822
c2 = 0.07779607390388846
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the PR EOS. Uses Tc, a, b, and kappa as well, obtainedfrom the class’s namespace.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns T : float
Temperature, [K]
Notes
The exact solution can be derived as follows, and is excluded for breviety.
128 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> from sympy import *>>> P, T, V = symbols('P, T, V')>>> Tc, Pc, omega = symbols('Tc, Pc, omega')>>> R, a, b, kappa = symbols('R, a, b, kappa')
>>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2>>> PR_formula = R*T/(V-b) - a_alpha/(V*(V+b)+b*(V-b)) - P>>> #solve(PR_formula, T)
class thermo.eos.SRK(Tc, Pc, omega, T=None, P=None, V=None)Bases: thermo.eos.GCEOS
Class for solving the Soave-Redlich-Kwong cubic equation of state for a pure compound. Subclasses CU-BIC_EOS, which provides the methods for solving the EOS and calculating its assorted relevant thermodynamicproperties. Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎 =
(𝑅2(𝑇𝑐)
2
9( 3√
2 − 1)𝑃𝑐
)=
0.42748 ·𝑅2(𝑇𝑐)2
𝑃𝑐
𝑏 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐𝑃𝑐
=0.08664 ·𝑅𝑇𝑐
𝑃𝑐
𝛼(𝑇 ) =
[1 +𝑚
(1 −
√𝑇
𝑇𝑐
)]2𝑚 = 0.480 + 1.574𝜔 − 0.176𝜔2
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
References
[R124], [R125], [R126]
1.1. thermo package 129
thermo Documentation, Release 0.1
Examples
>>> eos = SRK(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00014682102759032, -31754.65309653571, -74.3732468359525)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
SRK EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Psat_coeffs = [3.2606704044732426e-06, -8.494828412561618e-05, 0.0009661948864683891, -0.006368516279504884, 0.027478137804348456, -0.08418797719898592, 0.19421926832038514, -0.3331822830694727, 0.3209627416366067, -3.0522790305186756, -3.689527930660367e-05]
Psat_coeffs_limiting = [-3.2308843103522107, 0.7210534170705403]
Zc = 0.3333333333333333
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Uses
130 Chapter 1. thermo
thermo Documentation, Release 0.1
the set values of Tc, m, and a.
𝑎𝛼 = 𝑎
(𝑚
(−√
𝑇
𝑇𝑐+ 1
)+ 1
)2
𝑑𝑎𝛼
𝑑𝑇=𝑎𝑚
𝑇
√𝑇
𝑇𝑐
(𝑚
(√𝑇
𝑇𝑐− 1
)− 1
)
𝑑2𝑎𝛼
𝑑𝑇 2=𝑎𝑚√
𝑇𝑇𝑐
2𝑇 2(𝑚+ 1)
c1 = 0.4274802335403414
c2 = 0.08664034996495772
epsilon = 0
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the SRK EOS. Uses a, b, and Tc obtained from theclass’s namespace.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns T : float
Temperature, [K]
Notes
The exact solution can be derived as follows; it is excluded for breviety.
>>> from sympy import *>>> P, T, V, R, a, b, m = symbols('P, T, V, R, a, b, m')>>> Tc, Pc, omega = symbols('Tc, Pc, omega')>>> a_alpha = a*(1 + m*(1-sqrt(T/Tc)))**2>>> SRK = R*T/(V-b) - a_alpha/(V*(V+b)) - P>>> # solve(SRK, T)
class thermo.eos.PR78(Tc, Pc, omega, T=None, P=None, V=None)Bases: thermo.eos.PR
Class for solving the Peng-Robinson cubic equation of state for a pure compound according to the 1978 variant.Subclasses PR, which provides everything except the variable kappa. Solves the EOS on initialization. See PR
1.1. thermo package 131
thermo Documentation, Release 0.1
for further documentation.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎 = 0.45724𝑅2𝑇 2
𝑐
𝑃𝑐
𝑏 = 0.07780𝑅𝑇𝑐𝑃𝑐
𝛼(𝑇 ) = [1 + 𝜅(1 −√𝑇𝑟)]2
𝜅𝑖 = 0.37464 + 1.54226𝜔𝑖 − 0.26992𝜔2𝑖 if 𝜔𝑖 ≤ 0.491
𝜅𝑖 = 0.379642 + 1.48503𝜔𝑖 − 0.164423𝜔2𝑖 + 0.016666𝜔3
𝑖 if 𝜔𝑖 > 0.491
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
This variant is recommended over the original.
References
[R127], [R128]
Examples
P-T initialization (furfuryl alcohol), liquid phase:
>>> eos = PR78(Tc=632, Pc=5350000, omega=0.734, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 8.351960066075009e-05, -63764.649480508735, -130.73710891262687)
Methods
132 Chapter 1. thermo
thermo Documentation, Release 0.1
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
PR EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
class thermo.eos.PRSV(Tc, Pc, omega, T=None, P=None, V=None, kappa1=0)Bases: thermo.eos.PR
Class for solving the Peng-Robinson-Stryjek-Vera equations of state for a pure compound as given in [R129].The same as the Peng-Robinson EOS, except with a different kappa formula and with an optional fit parameter.Subclasses PR, which provides only several constants. See PR for further documentation and examples.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎 = 0.45724𝑅2𝑇 2
𝑐
𝑃𝑐
𝑏 = 0.07780𝑅𝑇𝑐𝑃𝑐
𝛼(𝑇 ) = [1 + 𝜅(1 −√𝑇𝑟)]2
𝜅 = 𝜅0 + 𝜅1(1 + 𝑇 0.5𝑟 )(0.7 − 𝑇𝑟)
𝜅0 = 0.378893 + 1.4897153𝜔 − 0.17131848𝜔2 + 0.0196554𝜔3
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
1.1. thermo package 133
thermo Documentation, Release 0.1
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
kappa1 : float, optional
Fit parameter; available in [R129] for over 90 compounds, [-]
Notes
[R129] recommends that kappa1 be set to 0 for Tr > 0.7. This is not done by default; the class booleankappa1_Tr_limit may be set to True and the problem re-solved with that specified if desired. kappa1_Tr_limitis not supported for P-V inputs.
Solutions for P-V solve for T with SciPy’s newton solver, as there is no analytical solution for T
[R130] and [R131] are two more resources documenting the PRSV EOS. [R132] lists kappa values for 69additional compounds. See also PRSV2. Note that tabulated kappa values should be used with the criticalparameters used in their fits. Both [R129] and [R132] only considered vapor pressure in fitting the parameter.
References
[R129], [R130], [R131], [R132]
Examples
P-T initialization (hexane, with fit parameter in [R129]), liquid phase:
>>> eos = PRSV(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6, kappa1=0.05104)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00013012686944840622, -31698.916002476657, -74.16749024350403)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
Continued on next page
134 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.12 – continued from previous pagea_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives for this EOS.check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,
V), or (P, V) are given.dPsat_dT(T) Generic method to calculate the temperature derivative
of vapor pressure for a specified T.derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
PRSV EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, kappa0, kappa1, and a.
For use in root-finding, returns only a_alpha if full is False.
The a_alpha function is shown below; its first and second derivatives are long available through the SymPyexpression under it.
𝑎𝛼 = 𝑎
((𝜅0 + 𝜅1
(√𝑇
𝑇𝑐+ 1
)(− 𝑇
𝑇𝑐+
7
10
))(−√
𝑇
𝑇𝑐+ 1
)+ 1
)2
>>> from sympy import *>>> P, T, V = symbols('P, T, V')>>> Tc, Pc, omega = symbols('Tc, Pc, omega')>>> R, a, b, kappa0, kappa1 = symbols('R, a, b, kappa0, kappa1')>>> kappa = kappa0 + kappa1*(1 + sqrt(T/Tc))*(Rational(7, 10)-T/Tc)>>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2>>> # diff(a_alpha, T)>>> # diff(a_alpha, T, 2)
kappa1_Tr_limit = False
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the PRSV EOS. Uses Tc, a, b, kappa0 and kappa aswell, obtained from the class’s namespace.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
1.1. thermo package 135
thermo Documentation, Release 0.1
quick : bool, optional
Whether to use a SymPy cse-derived expression (somewhat faster) or individual formu-las.
Returns T : float
Temperature, [K]
Notes
Not guaranteed to produce a solution. There are actually two solution, one much higher than normallydesired; it is possible the solver could converge on this.
class thermo.eos.PRSV2(Tc, Pc, omega, T=None, P=None, V=None, kappa1=0, kappa2=0, kappa3=0)Bases: thermo.eos.PR
Class for solving the Peng-Robinson-Stryjek-Vera 2 equations of state for a pure compound as given in [R133].The same as the Peng-Robinson EOS, except with a different kappa formula and with three fit parameters.Subclasses PR, which provides only several constants. See PR for further documentation and examples. PRSVprovides only one constant.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎 = 0.45724𝑅2𝑇 2
𝑐
𝑃𝑐
𝑏 = 0.07780𝑅𝑇𝑐𝑃𝑐
𝛼(𝑇 ) = [1 + 𝜅(1 −√𝑇𝑟)]2
𝜅 = 𝜅0 + [𝜅1 + 𝜅2(𝜅3 − 𝑇𝑟)(1 − 𝑇 0.5𝑟 )](1 + 𝑇 0.5
𝑟 )(0.7 − 𝑇𝑟)
𝜅0 = 0.378893 + 1.4897153𝜔 − 0.17131848𝜔2 + 0.0196554𝜔3
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
kappa1 : float, optional
Fit parameter; available in [R133] for over 90 compounds, [-]
kappa2 : float, optional
136 Chapter 1. thermo
thermo Documentation, Release 0.1
Fit parameter; available in [R133] for over 90 compounds, [-]
kappa : float, optional
Fit parameter; available in [R133] for over 90 compounds, [-]
Notes
Solutions for P-V solve for T with SciPy’s newton solver, as there is no analytical solution for T
Note that tabulated kappa values should be used with the critical parameters used in their fits. [R133] consideredonly vapor pressure in fitting the parameter.
References
[R133]
Examples
P-T initialization (hexane, with fit parameter in [R133]), liquid phase:
>>> eos = PRSV2(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6, kappa1=0.05104,→˓ kappa2=0.8634, kappa3=0.460)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00013018821346475243, -31496.173493225775, -73.61525801151417)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.Continued on next page
1.1. thermo package 137
thermo Documentation, Release 0.1
Table 1.13 – continued from previous pagesolve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
PRSV2 EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, kappa0, kappa1, kappa2, kappa3, and a.
For use in solve_T, returns only a_alpha if full is False.
The first and second derivatives of a_alpha are available through the following SymPy expression.
>>> from sympy import *>>> P, T, V = symbols('P, T, V')>>> Tc, Pc, omega = symbols('Tc, Pc, omega')>>> R, a, b, kappa0, kappa1, kappa2, kappa3 = symbols('R, a, b, kappa0,→˓kappa1, kappa2, kappa3')>>> Tr = T/Tc>>> kappa = kappa0 + (kappa1 + kappa2*(kappa3-Tr)*(1-→˓sqrt(Tr)))*(1+sqrt(Tr))*(Rational('0.7')-Tr)>>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2>>> # diff(a_alpha, T)>>> # diff(a_alpha, T, 2)
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the PRSV2 EOS. Uses Tc, a, b, kappa0, kappa1,kappa2, and kappa3 as well, obtained from the class’s namespace.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (somewhat faster) or individual formu-las.
Returns T : float
Temperature, [K]
Notes
Not guaranteed to produce a solution. There are actually 8 solutions, six with an imaginary component ata tested point. The two temperature solutions are quite far apart, with one much higher than the other; it ispossible the solver could converge on the higher solution, so use T inputs with care. This extra solution isa perfectly valid one however.
138 Chapter 1. thermo
thermo Documentation, Release 0.1
class thermo.eos.VDW(Tc, Pc, T=None, P=None, V=None, omega=None)Bases: thermo.eos.GCEOS
Class for solving the Van der Waals cubic equation of state for a pure compound. Subclasses CUBIC_EOS,which provides the methods for solving the EOS and calculating its assorted relevant thermodynamic properties.Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T. main_derivatives_and_departures is a re-implementationwith VDW specific methods, as the general solution has ZeroDivisionError errors.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎
𝑉 2
𝑎 =27
64
(𝑅𝑇𝑐)2
𝑃𝑐
𝑏 =𝑅𝑇𝑐8𝑃𝑐
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
omega is allowed as an input for compatibility with the other EOS forms, but is not used.
References
[R134], [R135]
Examples
>>> eos = VDW(Tc=507.6, Pc=3025000, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00022332978038490077, -13385.722837649315, -32.65922018109096)
Attributes
omega
1.1. thermo package 139
thermo Documentation, Release 0.1
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)
Re-implementation of derivatives and excess propertycalculations, as ZeroDivisionError errors occur with thegeneral solution.
set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-mines what to do.
set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculatedfrom an EOS alone.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V) Method to calculate T from a specified P and V for theVDW EOS.
to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Psat_coeffs = [0.00016085874036294383, -0.002014769498637164, 0.011302214511559567, -0.037903025677446814, 0.0867354062418565, -0.15182421588718523, 0.23310737420980204, -0.32912533484896433, 0.29955810023815194, -2.9999750707517197, -3.623599198764848e-07]
Psat_coeffs_limiting = [-3.0232164484175756, 0.20980668241160666]
Zc = 0.375
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of a.
𝑎𝛼 = 𝑎
𝑑𝑎𝛼
𝑑𝑇= 0
𝑑2𝑎𝛼
𝑑𝑇 2= 0
delta = 0
epsilon = 0
140 Chapter 1. thermo
thermo Documentation, Release 0.1
static main_derivatives_and_departures(T, P, V, b, delta, epsilon, a_alpha, da_alpha_dT,d2a_alpha_dT2, quick=True)
Re-implementation of derivatives and excess property calculations, as ZeroDivisionError errors occur withthe general solution. The following derivation is the source of these formulas.
>>> from sympy import *>>> P, T, V, R, b, a = symbols('P, T, V, R, b, a')>>> P_vdw = R*T/(V-b) - a/(V*V)>>> vdw = P_vdw - P>>>>>> dP_dT = diff(vdw, T)>>> dP_dV = diff(vdw, V)>>> d2P_dT2 = diff(vdw, T, 2)>>> d2P_dV2 = diff(vdw, V, 2)>>> d2P_dTdV = diff(vdw, T, V)>>> H_dep = integrate(T*dP_dT - P_vdw, (V, oo, V))>>> H_dep += P*V - R*T>>> S_dep = integrate(dP_dT - R/V, (V,oo,V))>>> S_dep += R*log(P*V/(R*T))>>> Cv_dep = T*integrate(d2P_dT2, (V,oo,V))>>>>>> dP_dT, dP_dV, d2P_dT2, d2P_dV2, d2P_dTdV, H_dep, S_dep, Cv_dep(R/(V - b), -R*T/(V - b)**2 + 2*a/V**3, 0, 2*(R*T/(V - b)**3 - 3*a/V**4), -R/→˓(V - b)**2, P*V - R*T - a/V, R*(-log(V) + log(V - b)) + R*log(P*V/(R*T)), 0)
omega = None
solve_T(P, V)Method to calculate T from a specified P and V for the VDW EOS. Uses a, and b, obtained from the class’snamespace.
𝑇 =1
𝑅𝑉 2
(𝑃𝑉 2 (𝑉 − 𝑏) + 𝑉 𝑎− 𝑎𝑏
)Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
Returns T : float
Temperature, [K]
class thermo.eos.RK(Tc, Pc, T=None, P=None, V=None, omega=None)Bases: thermo.eos.GCEOS
Class for solving the Redlich-Kwong cubic equation of state for a pure compound. Subclasses CUBIC_EOS,which provides the methods for solving the EOS and calculating its assorted relevant thermodynamic properties.Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T.
1.1. thermo package 141
thermo Documentation, Release 0.1
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎
𝑉√𝑇 (𝑉 + 𝑏)
𝑎 =
(𝑅2(𝑇𝑐)
2.5
9( 3√
2 − 1)𝑃𝑐
)=
0.42748 ·𝑅2(𝑇𝑐)2.5
𝑃𝑐
𝑏 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐𝑃𝑐
=0.08664 ·𝑅𝑇𝑐
𝑃𝑐
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
omega is allowed as an input for compatibility with the other EOS forms, but is not used.
References
[R136], [R137], [R138]
Examples
>>> eos = RK(Tc=507.6, Pc=3025000, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00015189341729751854, -26160.8336206741, -63.01311649400547)
Attributes
omega
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Continued on next page
142 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.15 – continued from previous pagePsat(T[, polish]) Generic method to calculate vapor pressure for a speci-
fied T.V_g_sat(T) Method to calculate molar volume of the vapor phase
along the saturation line.V_l_sat(T) Method to calculate molar volume of the liquid phase
along the saturation line.a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives for this EOS.check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,
V), or (P, V) are given.dPsat_dT(T) Generic method to calculate the temperature derivative
of vapor pressure for a specified T.derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
RK EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Psat_coeffs = [704544.2441281658, 3561602.0999577316, 6656106.824621978, 4335693.453896916, -2349194.303374687, -4335442.825124258, 326862.94121967856, 4024294.3438453656, 3188268.8928488772, 1083057.9018650202, 142620.2120065352]
Psat_coeffs_limiting = [-72.70028836951158, -68.76714163049]
Zc = 0.3333333333333333
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of a.
𝑎𝛼 =𝑎√𝑇
𝑑𝑎𝛼
𝑑𝑇= − 𝑎
2𝑇32
𝑑2𝑎𝛼
𝑑𝑇 2=
3𝑎
4𝑇52
c1 = 0.4274802335403414
c2 = 0.08664034996495772
epsilon = 0
omega = None
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the RK EOS. Uses a, and b, obtained from the class’snamespace.
1.1. thermo package 143
thermo Documentation, Release 0.1
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns T : float
Temperature, [K]
Notes
The exact solution can be derived as follows; it is excluded for breviety.
>>> from sympy import *>>> P, T, V, R = symbols('P, T, V, R')>>> Tc, Pc = symbols('Tc, Pc')>>> a, b = symbols('a, b')
>>> RK = Eq(P, R*T/(V-b) - a/sqrt(T)/(V*V + b*V))>>> # solve(RK, T)
class thermo.eos.APISRK(Tc, Pc, omega=None, T=None, P=None, V=None, S1=None, S2=0)Bases: thermo.eos.SRK
Class for solving the Refinery Soave-Redlich-Kwong cubic equation of state for a pure compound shown inthe API Databook [R139]. Subclasses CUBIC_EOS, which provides the methods for solving the EOS andcalculating its assorted relevant thermodynamic properties. Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T. Two fit constants are used in this expresion, with anestimation scheme for the first if unavailable and the second may be set to zero.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎 =
(𝑅2(𝑇𝑐)
2
9( 3√
2 − 1)𝑃𝑐
)=
0.42748 ·𝑅2(𝑇𝑐)2
𝑃𝑐
𝑏 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐𝑃𝑐
=0.08664 ·𝑅𝑇𝑐
𝑃𝑐
𝛼(𝑇 ) =
[1 + 𝑆1
(1 −
√𝑇𝑟
)+ 𝑆2
1 −√𝑇𝑟√
𝑇𝑟
]2𝑆1 = 0.48508 + 1.55171𝜔 − 0.15613𝜔2 if S1 is not tabulated
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
144 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float, optional
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
S1 : float, optional
Fit constant or estimated from acentric factor if not provided [-]
S2 : float, optional
Fit constant or 0 if not provided [-]
References
[R139]
Examples
>>> eos = APISRK(Tc=514.0, Pc=6137000.0, S1=1.678665, S2=-0.216396, P=1E6, T=299)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 7.045692682173252e-05, -42826.2716306387, -103.6269439137981)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)
Continued on next page
1.1. thermo package 145
thermo Documentation, Release 0.1
Table 1.16 – continued from previous pageset_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
API SRK EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, a, S1, and S2.
𝑎𝛼(𝑇 ) = 𝑎
[1 + 𝑆1
(1 −
√𝑇𝑟
)+ 𝑆2
1 −√𝑇𝑟√
𝑇𝑟
]2𝑑𝑎𝛼
𝑑𝑇= 𝑎
𝑇𝑐
𝑇 2
(−𝑆2
(√𝑇
𝑇𝑐− 1
)+
√𝑇
𝑇𝑐
(𝑆1
√𝑇
𝑇𝑐+ 𝑆2
))(𝑆2
(√𝑇
𝑇𝑐− 1
)+
√𝑇
𝑇𝑐
(𝑆1
(√𝑇
𝑇𝑐− 1
)− 1
))𝑑2𝑎𝛼
𝑑𝑇 2= 𝑎
1
2𝑇 3
(𝑆21𝑇
√𝑇
𝑇𝑐− 𝑆1𝑆2𝑇
√𝑇
𝑇𝑐+ 3𝑆1𝑆2𝑇𝑐
√𝑇
𝑇𝑐+ 𝑆1𝑇
√𝑇
𝑇𝑐− 3𝑆2
2𝑇𝑐
√𝑇
𝑇𝑐+ 4𝑆2
2𝑇𝑐+ 3𝑆2𝑇𝑐
√𝑇
𝑇𝑐
)
solve_T(P, V, quick=True)Method to calculate T from a specified P and V for the API SRK EOS. Uses a, b, and Tc obtained fromthe class’s namespace.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Whether to use a SymPy cse-derived expression (3x faster) or individual formulas
Returns T : float
Temperature, [K]
Notes
If S2 is set to 0, the solution is the same as in the SRK EOS, and that is used. Otherwise, newton’s methodmust be used to solve for T. There are 8 roots of T in that case, six of them real. No guarantee can be maderegarding which root will be obtained.
class thermo.eos.TWUPR(Tc, Pc, omega, T=None, P=None, V=None)Bases: thermo.eos.PR
146 Chapter 1. thermo
thermo Documentation, Release 0.1
Class for solving the Twu [R140] variant of the Peng-Robinson cubic equation of state for a pure compound.Subclasses PR, which provides the methods for solving the EOS and calculating its assorted relevant thermody-namic properties. Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎 = 0.45724𝑅2𝑇 2
𝑐
𝑃𝑐
𝑏 = 0.07780𝑅𝑇𝑐𝑃𝑐
𝛼 = 𝛼(0) + 𝜔(𝛼(1) − 𝛼(0))
𝛼(𝑖) = 𝑇𝑁(𝑀−1)𝑟 exp[𝐿(1 − 𝑇𝑁𝑀
𝑟 )]
For sub-critical conditions:
L0, M0, N0 = 0.125283, 0.911807, 1.948150;
L1, M1, N1 = 0.511614, 0.784054, 2.812520
For supercritical conditions:
L0, M0, N0 = 0.401219, 4.963070, -0.2;
L1, M1, N1 = 0.024955, 1.248089, -8.
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
Claimed to be more accurate than the PR, PR78 and PRSV equations.
There is no analytical solution for T. There are multiple possible solutions for T under certain conditions; noguaranteed are provided regarding which solution is obtained.
1.1. thermo package 147
thermo Documentation, Release 0.1
References
[R140]
Examples
>>> eos = TWUPR(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> eos.V_l, eos.H_dep_l, eos.S_dep_l(0.0001301754975832377, -31652.726391608117, -74.1128253091799)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
PR EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, omega, and a.
Because of its similarity for the TWUSRK EOS, this has been moved to an externalTWU_a_alpha_common function. See it for further documentation.
class thermo.eos.TWUSRK(Tc, Pc, omega, T=None, P=None, V=None)
148 Chapter 1. thermo
thermo Documentation, Release 0.1
Bases: thermo.eos.SRK
Class for solving the Soave-Redlich-Kwong cubic equation of state for a pure compound. Subclasses CU-BIC_EOS, which provides the methods for solving the EOS and calculating its assorted relevant thermodynamicproperties. Solves the EOS on initialization.
Implemented methods here are a_alpha_and_derivatives, which sets a_alpha and its first and second derivatives,and solve_T, which from a specified P and V obtains T.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎 =
(𝑅2(𝑇𝑐)
2
9( 3√
2 − 1)𝑃𝑐
)=
0.42748 ·𝑅2(𝑇𝑐)2
𝑃𝑐
𝑏 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐𝑃𝑐
=0.08664 ·𝑅𝑇𝑐
𝑃𝑐
𝛼 = 𝛼(0) + 𝜔(𝛼(1) − 𝛼(0))
𝛼(𝑖) = 𝑇𝑁(𝑀−1)𝑟 exp[𝐿(1 − 𝑇𝑁𝑀
𝑟 )]
For sub-critical conditions:
L0, M0, N0 = 0.141599, 0.919422, 2.496441
L1, M1, N1 = 0.500315, 0.799457, 3.291790
For supercritical conditions:
L0, M0, N0 = 0.441411, 6.500018, -0.20
L1, M1, N1 = 0.032580, 1.289098, -8.0
Parameters Tc : float
Critical temperature, [K]
Pc : float
Critical pressure, [Pa]
omega : float
Acentric factor, [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
There is no analytical solution for T. There are multiple possible solutions for T under certain conditions; noguaranteed are provided regarding which solution is obtained.
1.1. thermo package 149
thermo Documentation, Release 0.1
References
[R141]
Examples
>>> eos = TWUSRK(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l', 0.00014689217317770398, -31612.591872087483, -74.02294100343829)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for this EOS.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Method to calculate T from a specified P and V for the
SRK EOS.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for this EOS. Returns a_alpha,da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documentation. Usesthe set values of Tc, omega, and a.
Because of its similarity for the TWUPR EOS, this has been moved to an external TWU_a_alpha_commonfunction. See it for further documentation.
class thermo.eos.ALPHA_FUNCTIONS
150 Chapter 1. thermo
thermo Documentation, Release 0.1
Bases: thermo.eos.GCEOS
Basic class with a number of attached alpha functions for different applications, all of which have no parametersattached. These alpha functions should be used for fitting purposes; new EOSs should have their alpha func-tions added here. The first and second derivatives should also be implemented. Efficient implementations arediscouraged but possible.
All parameters should be in self.alpha_function_coeffs. This object is inspired by the work of [R142], wheremost of the alpha functions have been found.
References
[R142]
Examples
Swap out the default alpha function from the SRK EOS, replace it the same, a new method that takes a manuallyspecified coefficient.
>>> eos = SRK(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> [eos.m, eos.a_alpha_and_derivatives(299)][0.9326878999999999, (3.7271789178606376, -0.007332989159328508, 1.→˓947612023379061e-05)]
>>> a = SRK>>> a.a_alpha_and_derivatives = ALPHA_FUNCTIONS.Soave_1972>>> a.alpha_function_coeffs = [0.9326878999999999]>>> a = a(Tc=507.6, Pc=3025000, omega=0.2975, T=299., P=1E6)>>> a.a_alpha_and_derivatives(299)(3.7271789178606376, -0.007332989159328508, 1.947612023379061e-05)
Methods
Almeida(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Almeida et al.
Androulakis(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Androulakis et al.
Coquelet(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Coquelet et al.
Gasem(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Gasem (2001) [R220].
Gibbons_Laughton(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Gibbons and Laughton (1984)[R221].
Haghtalab(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Haghtalab et al.
Harmens_Knapp(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Harmens and Knapp (1980)[R223].
Continued on next page
1.1. thermo package 151
thermo Documentation, Release 0.1
Table 1.19 – continued from previous pageHeyen(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives according to Heyen (1980) [R224].Hvap(T) Method to calculate enthalpy of vaporization for a pure
fluid from an equation of state, without iteration.Mathias(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives according to Mathias (1983) [R226].Mathias_Copeman(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives according to Mathias and Copeman (1983)[R227].
Melhem(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Melhem et al.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
Saffari(T[, full, quick]) Method to calculate a_alpha and its first and sec-ond derivatives according to Saffari and Zahedi (2013)[R230].
Schwartzentruber(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Schwartzentruber et al.
Soave_1972(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Soave (1972) [R232].
Soave_1984(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Soave (1984) [R233].
Soave_1993(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Soave (1983) [R234].
Trebble_Bishnoi(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Trebble and Bishnoi (1987)[R235].
Twu(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Twu et al.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
Yu_Lu(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives according to Yu and Lu (1987) [R237].
a_alpha_and_derivatives(T[, full, quick]) Dummy method to calculate a_alpha and its first andsecond derivatives.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.
Continued on next page
152 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.19 – continued from previous pageto_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
static Almeida(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Almeida et al. (1991) [R143].Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more doc-umentation. Three coefficients needed.
𝛼 = 𝑒𝑐1(−𝑇𝑇𝑐+1)| 𝑇
𝑇𝑐−1|𝑐2−1+𝑐3(−1+𝑇𝑐
𝑇 )
References
[R143]
static Androulakis(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Androulakis et al. (1989)[R144]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Three coefficients needed.
𝛼 = 𝑐1
(−(𝑇
𝑇𝑐
) 23
+ 1
)+ 𝑐2
(−(𝑇
𝑇𝑐
) 23
+ 1
)2
+ 𝑐3
(−(𝑇
𝑇𝑐
) 23
+ 1
)3
+ 1
References
[R144]
static Coquelet(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Coquelet et al. (2004) [R145].Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more doc-umentation. Three coefficients needed.
𝛼 = 𝑒𝑐1(− 𝑇
𝑇𝑐+1)(𝑐2(−√
𝑇𝑇𝑐+1
)2+𝑐3
(−√
𝑇𝑇𝑐+1
)3+1
)2
References
[R145]
static Gasem(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Gasem (2001) [R146]. Re-turns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more docu-mentation. Three coefficients needed.
𝛼 = 𝑒(−( 𝑇𝑇𝑐 )
𝑐3+1)(𝑇𝑐2𝑇𝑐 +𝑐1)
References
[R146]
1.1. thermo package 153
thermo Documentation, Release 0.1
static Gibbons_Laughton(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Gibbons and Laughton (1984)[R147]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Two coefficients needed.
𝛼 = 𝑐1
(𝑇
𝑇𝑐− 1
)+ 𝑐2
(√𝑇
𝑇𝑐− 1
)+ 1
References
[R147]
static Haghtalab(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Haghtalab et al. (2010)[R148]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Three coefficients needed.
𝛼 = 𝑒
(−𝑐
log ( 𝑇𝑇𝑐 )
3 +1
)(−𝑇𝑐2
𝑇𝑐 +𝑐1)
References
[R148]
static Harmens_Knapp(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Harmens and Knapp (1980)[R149]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Two coefficients needed.
𝛼 =
(𝑐1
(−√
𝑇
𝑇𝑐+ 1
)− 𝑐2
(1 − 𝑇𝑐
𝑇
)+ 1
)2
References
[R149]
static Heyen(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Heyen (1980) [R150]. Re-turns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more docu-mentation. Two coefficients needed.
𝛼 = 𝑒𝑐1(−( 𝑇𝑇𝑐 )
𝑐2+1)
References
[R150]
static Mathias(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Mathias (1983) [R151]. Re-turns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more docu-mentation. Two coefficients needed.
𝛼 =
(𝑐1
(−√
𝑇
𝑇𝑐+ 1
)− 𝑐2
(− 𝑇
𝑇𝑐+ 0.7
)(− 𝑇
𝑇𝑐+ 1
)+ 1
)2
154 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R151]
static Mathias_Copeman(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Mathias and Copeman (1983)[R152]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Three coefficients needed.
𝛼 =
⎛⎝𝑐1(−√ 𝑇
𝑇𝑐+ 1
)+ 𝑐2
(−√
𝑇
𝑇𝑐+ 1
)2
+ 𝑐3
(−√
𝑇
𝑇𝑐+ 1
)3
+ 1
⎞⎠2
References
[R152]
static Melhem(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Melhem et al. (1989) [R153].Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more doc-umentation. Two coefficients needed.
𝛼 = 𝑒𝑐1(− 𝑇
𝑇𝑐+1)+𝑐2(−√
𝑇𝑇𝑐+1
)2
References
[R153]
static Saffari(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Saffari and Zahedi (2013)[R154]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Three coefficients needed.
𝛼 = 𝑒𝑇𝑐1𝑇𝑐 +𝑐2 log ( 𝑇
𝑇𝑐 )+𝑐3(−√
𝑇𝑇𝑐+1
)
References
[R154]
static Schwartzentruber(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Schwartzentruber et al. (1990)[R155]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. Three coefficients needed.
𝛼 =
(𝑐4
(−√
𝑇
𝑇𝑐+ 1
)−
(−√
𝑇
𝑇𝑐+ 1
)(𝑇 2𝑐3𝑇𝑐2
+𝑇𝑐2𝑇𝑐
+ 𝑐1
)+ 1
)2
References
[R155]
1.1. thermo package 155
thermo Documentation, Release 0.1
static Soave_1972(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Soave (1972) [R156]. Returnsa_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documenta-tion. Same as SRK.a_alpha_and_derivatives but slower and requiring alpha_function_coeffs to be set.One coefficient needed.
𝛼 =
(𝑐1
(−√
𝑇
𝑇𝑐+ 1
)+ 1
)2
References
[R156]
static Soave_1984(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Soave (1984) [R157]. Returnsa_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documenta-tion. Two coefficients needed.
𝛼 = 𝑐1
(− 𝑇
𝑇𝑐+ 1
)+ 𝑐2
(−1 +
𝑇𝑐
𝑇
)+ 1
References
[R157]
static Soave_1993(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Soave (1983) [R158]. Returnsa_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more documenta-tion. Two coefficient needed.
𝛼 = 𝑐1
(− 𝑇
𝑇𝑐+ 1
)+ 𝑐2
(−√
𝑇
𝑇𝑐+ 1
)2
+ 1
References
[R158]
static Trebble_Bishnoi(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Trebble and Bishnoi (1987)[R159]. Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives formore documentation. One coefficient needed.
𝛼 = 𝑒𝑐1(−𝑇𝑇𝑐+1)
References
[R159]
static Twu(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Twu et al. (1991) [R160].
156 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more doc-umentation. Three coefficients needed.
𝛼 =
(𝑇
𝑇𝑐
)𝑐3(𝑐2−1)
𝑒𝑐1(−( 𝑇𝑇𝑐 )
𝑐2𝑐3+1)
References
[R160]
static Yu_Lu(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives according to Yu and Lu (1987) [R161].Returns a_alpha, da_alpha_dT, and d2a_alpha_dT2. See GCEOS.a_alpha_and_derivatives for more doc-umentation. Four coefficients needed.
𝛼 = 10𝑐4(− 𝑇
𝑇𝑐+1)(
𝑇2𝑐3𝑇𝑐2
+𝑇𝑐2𝑇𝑐 +𝑐1
)
References
[R161]
class thermo.eos.GCEOS_DUMMY(T=None, P=None, **kwargs)Bases: thermo.eos.GCEOS
Attributes
PcTcomega
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Dummy method to calculate a_alpha and its first andsecond derivatives.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)main_derivatives_and_departures(T, P, V,b, ...)
Continued on next page
1.1. thermo package 157
thermo Documentation, Release 0.1
Table 1.20 – continued from previous pageset_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
Pc = None
Tc = None
omega = None
thermo.eos_mix module
class thermo.eos_mix.GCEOSMIXBases: thermo.eos.GCEOS
Class for solving a generic pressure-explicit three-parameter cubic equation of state for a mixture. Does notimplement any parameters itself; must be subclassed by a mixture equation of state class which subclassesit. No routines for partial molar properties for a generic cubic equation of state have yet been implemented,although that would be desireable. The only partial molar property which is currently used is fugacity, whichmust be implemented in each mixture EOS that subclasses this.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 2 + 𝛿𝑉 + 𝜖
Main methods are fugacities, solve_T, and a_alpha_and_derivatives.
fugacities is a helper method intended as a common interface for setting fugacities of each species in each phase;it calls fugacity_coefficients to actually calculate them, but that is not implemented here. This should be usedwhen performing flash calculations, where fugacities are needed repeatedly. The fugacities change as a functionof liquid/gas phase composition, but the entire EOS need not be solved to recalculate them.
solve_T is a wrapper around GCEOS‘s solve_T; the only difference is to use half the average mixture’s criticaltemperature as the initial guess.
a_alpha_and_derivatives implements the Van der Waals mixing rules for a mixture. It callsa_alpha_and_derivatives from the pure-component EOS for each species via multiple inheritance.
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
Continued on next page
158 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.21 – continued from previous pageV_l_sat(T) Method to calculate molar volume of the liquid phase
along the saturation line.a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.solve() First EOS-generic method; should be called by all spe-
cific EOSs.solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_and_derivatives(T, full=True, quick=True)Method to calculate a_alpha and its first and second derivatives for an EOS with the Van der Waals mixingrules. Uses the parent class’s interface to compute pure component values. Returns a_alpha, da_alpha_dT,and d2a_alpha_dT2. Calls setup_a_alpha_and_derivatives before calling a_alpha_and_derivatives foreach species, which typically sets a and Tc. Calls cleanup_a_alpha_and_derivatives to remove the setproperties after the calls are done.
For use in solve_T this returns only a_alpha if full is False.
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
Parameters T : float
Temperature, [K]
full : bool, optional
If False, calculates and returns only a_alpha
quick : bool, optional
Only the quick variant is implemented; it is little faster anyhow
Returns a_alpha : float
Coefficient calculated by EOS-specific method, [J^2/mol^2/Pa]
1.1. thermo package 159
thermo Documentation, Release 0.1
da_alpha_dT : float
Temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K]
d2a_alpha_dT2 : float
Second temperature derivative of coefficient calculated by EOS-specific method,[J^2/mol^2/Pa/K**2]
Notes
The exact expressions can be obtained with the following SymPy expression below, commented out forbrevity.
>>> from sympy import *>>> a_alpha_i, a_alpha_j, kij, T = symbols('a_alpha_i, a_alpha_j, kij, T')>>> a_alpha_ij = (1-kij)*sqrt(a_alpha_i(T)*a_alpha_j(T))>>> #diff(a_alpha_ij, T)>>> #diff(a_alpha_ij, T, T)
fugacities(xs=None, ys=None)Helper method for calculating fugacity coefficients for any phases present, using either the overall molefractions for both phases or using specified mole fractions for each phase.
Requires fugacity_coefficients to be implemented by each subclassing EOS.
In addition to setting fugacities_l and/or fugacities_g, this also sets the fugacity coefficients phis_l and/orphis_g.
𝜑𝑔𝑖 =𝑓𝑔𝑖𝑥𝑖𝑃
𝜑𝑙𝑖 =𝑓 𝑙𝑖𝑥𝑖𝑃
Parameters xs : list[float], optional
Liquid-phase mole fractions of each species, [-]
ys : list[float], optional
Vapor-phase mole fractions of each species, [-]
Notes
It is helpful to check that fugacity_coefficients has been implemented correctly using the following expres-sion, from [R246].
ln𝜑𝑖 =
[𝜕(𝑛 log 𝜑)
𝜕𝑛𝑖
]𝑇,𝑃,𝑛𝑗 ,𝑉𝑡
For reference, several expressions for fugacity of a component are as follows, shown in [R246] and [R247].
ln𝜑𝑖 =
∫ 𝑃
0
(𝑉𝑖𝑅𝑇
− 1
𝑃
)𝑑𝑃
ln𝜑𝑖 =
∫ ∞
𝑉
[1
𝑅𝑇
𝜕𝑃
𝜕𝑛𝑖− 1
𝑉
]𝑑𝑉 − ln𝑍
160 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R246], [R247]
solve_T(P, V, quick=True)Generic method to calculate T from a specified P and V. Provides SciPy’s newton solver, and it-erates to solve the general equation for P, recalculating a_alpha as a function of temperature usinga_alpha_and_derivatives each iteration.
Parameters P : float
Pressure, [Pa]
V : float
Molar volume, [m^3/mol]
quick : bool, optional
Unimplemented, although it may be possible to derive explicit expressions as done formany pure-component EOS
Returns T : float
Temperature, [K]
to_TP_zs(T, P, zs)
class thermo.eos_mix.PRMIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.GCEOSMIX , thermo.eos.PR
Class for solving the Peng-Robinson cubic equation of state for a mixture of any number of compounds. Sub-classes PR. Solves the EOS on initialization and calculates fugacities for all components in all phases.
The implemented method here is fugacity_coefficients, which implements the formula for fugacity coefficientsin a mixture as given in [R248]. Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 = 0.45724𝑅2𝑇 2
𝑐,𝑖
𝑃𝑐,𝑖
𝑏𝑖 = 0.07780𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 = [1 + 𝜅𝑖(1 −√𝑇𝑟,𝑖)]
2
𝜅𝑖 = 0.37464 + 1.54226𝜔𝑖 − 0.26992𝜔2𝑖
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
1.1. thermo package 161
thermo Documentation, Release 0.1
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
For P-V initializations, SciPy’s newton solver is used to find T.
References
[R248], [R249]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = PRMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(3.625735065042031e-05, 0.0007006656856469095)>>> eos.fugacities_l, eos.fugacities_g([793860.8382114634, 73468.55225303846], [436530.9247009119, 358114.63827532396])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
Continued on next page
162 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.22 – continued from previous pagea_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, kappa, and Tc for a specific component be-
fore the pure-species EOS’s a_alpha_and_derivativesmethod is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -4
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
fugacity_coefficients(Z, zs)Literature formula for calculating fugacity coefficients for each species in a mixture. Verified numerically.Applicable to most derivatives of the Peng-Robinson equation of state as well. Called by fugacities oninitialization, or by a solver routine which is performing a flash calculation.
ln𝜑𝑖 =𝐵𝑖
𝐵(𝑍 − 1) − ln(𝑍 −𝐵) +
𝐴
2√
2𝐵
[𝐵𝑖
𝐵− 2
𝑎𝛼
∑𝑖
𝑦𝑖(𝑎𝛼)𝑖𝑗
]log
[𝑍 + (1 +
√2)𝐵
𝑍 − (√
2 − 1)𝐵
]
𝐴 =(𝑎𝛼)𝑃
𝑅2𝑇 2
𝐵 =𝑏𝑃
𝑅𝑇
Parameters Z : float
Compressibility of the mixture for a desired phase, [-]
1.1. thermo package 163
thermo Documentation, Release 0.1
zs : list[float], optional
List of mole factions, either overall or in a specific phase, [-]
Returns phis : float
Fugacity coefficient for each species, [-]
References
[R250], [R251]
setup_a_alpha_and_derivatives(i, T=None)Sets a, kappa, and Tc for a specific component before the pure-species EOS’s a_alpha_and_derivativesmethod is called. Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
class thermo.eos_mix.SRKMIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.GCEOSMIX , thermo.eos.SRK
Class for solving the Soave-Redlich-Kwong cubic equation of state for a mixture of any number of compounds.Subclasses SRK. Solves the EOS on initialization and calculates fugacities for all components in all phases.
The implemented method here is fugacity_coefficients, which implements the formula for fugacity coefficientsin a mixture as given in [R252]. Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 =
(𝑅2(𝑇𝑐,𝑖)
2
9( 3√
2 − 1)𝑃𝑐,𝑖
)=
0.42748 ·𝑅2(𝑇𝑐,𝑖)2
𝑃𝑐,𝑖
𝑏𝑖 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
=0.08664 ·𝑅𝑇𝑐,𝑖
𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 =
[1 +𝑚𝑖
(1 −
√𝑇
𝑇𝑐,𝑖
)]2𝑚𝑖 = 0.480 + 1.574𝜔𝑖 − 0.176𝜔2
𝑖
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
164 Chapter 1. thermo
thermo Documentation, Release 0.1
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
For P-V initializations, SciPy’s newton solver is used to find T.
References
[R252], [R253], [R254]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> SRK_eos = SRKMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> SRK_eos.V_l, SRK_eos.V_g(4.104755570185178e-05, 0.0007110155639819184)>>> SRK_eos.fugacities_l, SRK_eos.fugacities_g([817841.6430546846, 72382.81925202628], [442137.1280124604, 361820.79211909405])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
Continued on next page
1.1. thermo package 165
thermo Documentation, Release 0.1
Table 1.23 – continued from previous pagedPsat_dT(T) Generic method to calculate the temperature derivative
of vapor pressure for a specified T.derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, m, and Tc for a specific component before the
pure-species EOS’s a_alpha_and_derivatives method iscalled.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -4
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
fugacity_coefficients(Z, zs)Literature formula for calculating fugacity coefficients for each species in a mixture. Verified numerically.Applicable to most derivatives of the SRK equation of state as well. Called by fugacities on initialization,or by a solver routine which is performing a flash calculation.
ln𝜑𝑖 =𝐵𝑖
𝐵(𝑍 − 1) − ln(𝑍 −𝐵) +
𝐴
𝐵
[𝐵𝑖
𝐵− 2
𝑎𝛼
∑𝑖
𝑦𝑖(𝑎𝛼)𝑖𝑗
]ln
(1 +
𝐵
𝑍
)𝐴 =
𝑎𝛼𝑃
𝑅2𝑇 2
𝐵 =𝑏𝑃
𝑅𝑇
Parameters Z : float
Compressibility of the mixture for a desired phase, [-]
zs : list[float], optional
List of mole factions, either overall or in a specific phase, [-]
Returns phis : float
Fugacity coefficient for each species, [-]
166 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R255], [R256]
setup_a_alpha_and_derivatives(i, T=None)Sets a, m, and Tc for a specific component before the pure-species EOS’s a_alpha_and_derivatives methodis called. Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
class thermo.eos_mix.PR78MIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.PRMIX
Class for solving the Peng-Robinson cubic equation of state for a mixture of any number of compounds ac-cording to the 1978 variant. Subclasses PR. Solves the EOS on initialization and calculates fugacities for allcomponents in all phases.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 = 0.45724𝑅2𝑇 2
𝑐,𝑖
𝑃𝑐,𝑖
𝑏𝑖 = 0.07780𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 = [1 + 𝜅𝑖(1 −√𝑇𝑟,𝑖)]
2
𝜅𝑖 = 0.37464 + 1.54226𝜔𝑖 − 0.26992𝜔2𝑖 if 𝜔𝑖 ≤ 0.491
𝜅𝑖 = 0.379642 + 1.48503𝜔𝑖 − 0.164423𝜔2𝑖 + 0.016666𝜔3
𝑖 if 𝜔𝑖 > 0.491
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
1.1. thermo package 167
thermo Documentation, Release 0.1
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
This variant is recommended over the original.
References
[R257], [R258]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa, with modified acentric factors to show the differencebetween PRMIX
>>> eos = PR78MIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.6, 0.7], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(3.239642793468722e-05, 0.000504337849300222)>>> eos.fugacities_l, eos.fugacities_g([833048.4511980319, 6160.908815331634], [460717.2776793947, 279598.90103207633])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
Continued on next page
168 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.24 – continued from previous pagefugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficients
for each species in a mixture.main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, kappa, and Tc for a specific component be-
fore the pure-species EOS’s a_alpha_and_derivativesmethod is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -4
class thermo.eos_mix.VDWMIX(Tcs, Pcs, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.GCEOSMIX , thermo.eos.VDW
Class for solving the Van der Waals cubic equation of state for a mixture of any number of compounds. Sub-classes VDW. Solves the EOS on initialization and calculates fugacities for all components in all phases.
The implemented method here is fugacity_coefficients, which implements the formula for fugacity coefficientsin a mixture as given in [R259]. Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎
𝑉 2
𝑎 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗𝑎𝑖𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖𝑗 = (1 − 𝑘𝑖𝑗)√𝑎𝑖𝑎𝑗
𝑎𝑖 =27
64
(𝑅𝑇𝑐,𝑖)2
𝑃𝑐,𝑖
𝑏𝑖 =𝑅𝑇𝑐,𝑖8𝑃𝑐,𝑖
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
1.1. thermo package 169
thermo Documentation, Release 0.1
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
For P-V initializations, SciPy’s newton solver is used to find T.
References
[R259], [R260]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = VDWMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5], zs=[0.→˓5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(5.8813678514166464e-05, 0.0007770869741895237)>>> eos.fugacities_l, eos.fugacities_g([854533.2669205095, 207126.8497276207], [448470.73633807345, 397826.5439999289])
Attributes
omega
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
Continued on next page
170 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.25 – continued from previous pagea_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and second
derivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)
Re-implementation of derivatives and excess propertycalculations, as ZeroDivisionError errors occur with thegeneral solution.
set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-mines what to do.
set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculatedfrom an EOS alone.
setup_a_alpha_and_derivatives(i[, T]) Sets a for a specific component before the pure-speciesEOS’s a_alpha_and_derivatives method is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -4
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
fugacity_coefficients(Z, zs)Literature formula for calculating fugacity coefficients for each species in a mixture. Verified numerically.Called by fugacities on initialization, or by a solver routine which is performing a flash calculation.
ln𝜑𝑖 =𝑏𝑖
𝑉 − 𝑏− ln
[𝑍
(1 − 𝑏
𝑉
)]−
2√𝑎𝑎𝑖
𝑅𝑇𝑉
Parameters Z : float
Compressibility of the mixture for a desired phase, [-]
zs : list[float], optional
List of mole factions, either overall or in a specific phase, [-]
Returns phis : float
Fugacity coefficient for each species, [-]
1.1. thermo package 171
thermo Documentation, Release 0.1
References
[R261]
setup_a_alpha_and_derivatives(i, T=None)Sets a for a specific component before the pure-species EOS’s a_alpha_and_derivatives method is called.Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
class thermo.eos_mix.PRSVMIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None,kappa1s=None)
Bases: thermo.eos_mix.PRMIX , thermo.eos.PRSV
Class for solving the Peng-Robinson-Stryjek-Vera equations of state for a mixture as given in [R262]. Sub-classes PRMIX and PRSV. Solves the EOS on initialization and calculates fugacities for all components in allphases.
Inherits the method of calculating fugacity coefficients from PRMIX. Two of T, P, and V are needed to solve theEOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 = 0.45724𝑅2𝑇 2
𝑐,𝑖
𝑃𝑐,𝑖
𝑏𝑖 = 0.07780𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 = [1 + 𝜅𝑖(1 −√𝑇𝑟,𝑖)]
2
𝜅𝑖 = 𝜅0,𝑖 + 𝜅1,𝑖(1 + 𝑇 0.5𝑟,𝑖 )(0.7 − 𝑇𝑟,𝑖)
𝜅0,𝑖 = 0.378893 + 1.4897153𝜔𝑖 − 0.17131848𝜔2𝑖 + 0.0196554𝜔3
𝑖
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
172 Chapter 1. thermo
thermo Documentation, Release 0.1
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
kappa1s : list[float], optional
Fit parameter; available in [R262] for over 90 compounds, [-]
Notes
[R262] recommends that kappa1 be set to 0 for Tr > 0.7. This is not done by default; the class booleankappa1_Tr_limit may be set to True and the problem re-solved with that specified if desired. kappa1_Tr_limitis not supported for P-V inputs.
For P-V initializations, SciPy’s newton solver is used to find T.
[R263] and [R264] are two more resources documenting the PRSV EOS. [R265] lists kappa values for 69additional compounds. See also PRSV2. Note that tabulated kappa values should be used with the criticalparameters used in their fits. Both [R262] and [R265] only considered vapor pressure in fitting the parameter.
References
[R262], [R263], [R264], [R265]
Examples
P-T initialization, two-phase, nitrogen and methane
>>> eos = PRSVMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.phase, eos.V_l, eos.H_dep_l, eos.S_dep_l('l/g', 3.623552388375633e-05, -6349.003406339961, -49.12403359687138)
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
Continued on next page
1.1. thermo package 173
thermo Documentation, Release 0.1
Table 1.26 – continued from previous pagecleanup_a_alpha_and_derivatives() Removes properties set by
setup_a_alpha_and_derivatives; run bydPsat_dT(T) Generic method to calculate the temperature derivative
of vapor pressure for a specified T.derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, kappa0, kappa1, and Tc for a spe-
cific component before the pure-species EOS’sa_alpha_and_derivatives method is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -5
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
setup_a_alpha_and_derivatives(i, T=None)Sets a, kappa0, kappa1, and Tc for a specific component before the pure-species EOS’sa_alpha_and_derivatives method is called. Both are called by GCEOSMIX.a_alpha_and_derivatives forevery component.
class thermo.eos_mix.PRSV2MIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None,kappa1s=None, kappa2s=None, kappa3s=None)
Bases: thermo.eos_mix.PRMIX , thermo.eos.PRSV2
Class for solving the Peng-Robinson-Stryjek-Vera 2 equations of state for a Mixture as given in [R266]. Sub-classes PRMIX and PRSV2. Solves the EOS on initialization and calculates fugacities for all components in allphases.
Inherits the method of calculating fugacity coefficients from PRMIX. Two of T, P, and V are needed to solve the
174 Chapter 1. thermo
thermo Documentation, Release 0.1
EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 = 0.45724𝑅2𝑇 2
𝑐,𝑖
𝑃𝑐,𝑖
𝑏𝑖 = 0.07780𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 = [1 + 𝜅𝑖(1 −√𝑇𝑟,𝑖)]
2
𝜅𝑖 = 𝜅0,𝑖 + [𝜅1,𝑖 + 𝜅2,𝑖(𝜅3,𝑖 − 𝑇𝑟,𝑖)(1 − 𝑇 0.5𝑟,𝑖 )](1 + 𝑇 0.5
𝑟,𝑖 )(0.7 − 𝑇𝑟,𝑖)
𝜅0,𝑖 = 0.378893 + 1.4897153𝜔𝑖 − 0.17131848𝜔2𝑖 + 0.0196554𝜔3
𝑖
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
kappa1s : list[float], optional
Fit parameter; available in [R266] for over 90 compounds, [-]
kappa2s : list[float], optional
Fit parameter; available in [R266] for over 90 compounds, [-]
kappa3s : list[float], optional
Fit parameter; available in [R266] for over 90 compounds, [-]
1.1. thermo package 175
thermo Documentation, Release 0.1
Notes
For P-V initializations, SciPy’s newton solver is used to find T.
Note that tabulated kappa values should be used with the critical parameters used in their fits. [R266] consideredonly vapor pressure in fitting the parameter.
References
[R266]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = PRSV2MIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(3.623552388375633e-05, 0.0007002421492037557)>>> eos.fugacities_l, eos.fugacities_g([794057.5831840546, 72851.22327178407], [436553.6561835047, 357878.1106688996])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
Continued on next page
176 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.27 – continued from previous pagemain_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, kappa, kappa0, kappa1, kappa2, kappa3 and Tc
for a specific component before the pure-species EOS’sa_alpha_and_derivatives method is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -5
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
setup_a_alpha_and_derivatives(i, T=None)Sets a, kappa, kappa0, kappa1, kappa2, kappa3 and Tc for a specific component be-fore the pure-species EOS’s a_alpha_and_derivatives method is called. Both are called byGCEOSMIX.a_alpha_and_derivatives for every component.
class thermo.eos_mix.TWUPRMIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.PRMIX , thermo.eos.TWUPR
Class for solving the Twu [R267] variant of the Peng-Robinson cubic equation of state for a mixture. SubclassesTWUPR. Solves the EOS on initialization and calculates fugacities for all components in all phases.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑣 − 𝑏− 𝑎𝛼(𝑇 )
𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 = 0.45724𝑅2𝑇 2
𝑐,𝑖
𝑃𝑐,𝑖
𝑏𝑖 = 0.07780𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
𝛼𝑖 = 𝛼(0)𝑖 + 𝜔𝑖(𝛼
(1)𝑖 − 𝛼
(0)𝑖 )
𝛼(0 or 1) = 𝑇𝑁(𝑀−1)𝑟,𝑖 exp[𝐿(1 − 𝑇𝑁𝑀
𝑟,𝑖 )]
For sub-critical conditions:
L0, M0, N0 = 0.125283, 0.911807, 1.948150;
1.1. thermo package 177
thermo Documentation, Release 0.1
L1, M1, N1 = 0.511614, 0.784054, 2.812520
For supercritical conditions:
L0, M0, N0 = 0.401219, 4.963070, -0.2;
L1, M1, N1 = 0.024955, 1.248089, -8.
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
For P-V initializations, SciPy’s newton solver is used to find T. Claimed to be more accurate than the PR, PR78and PRSV equations.
References
[R267]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = TWUPRMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(3.62456981315702e-05, 0.0007004398944116554)>>> eos.fugacities_l, eos.fugacities_g([792155.0221633187, 73305.88829726784], [436468.96776424424, 358049.2495573095])
178 Chapter 1. thermo
thermo Documentation, Release 0.1
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, omega, and Tc for a specific component be-
fore the pure-species EOS’s a_alpha_and_derivativesmethod is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -5
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
setup_a_alpha_and_derivatives(i, T=None)Sets a, omega, and Tc for a specific component before the pure-species EOS’s a_alpha_and_derivativesmethod is called. Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
1.1. thermo package 179
thermo Documentation, Release 0.1
class thermo.eos_mix.TWUSRKMIX(Tcs, Pcs, omegas, zs, kijs=None, T=None, P=None, V=None)Bases: thermo.eos_mix.SRKMIX , thermo.eos.TWUSRK
Class for solving the Twu variant of the Soave-Redlich-Kwong cubic equation of state for a mixture. SubclassesTWUSRK. Solves the EOS on initialization and calculates fugacities for all components in all phases.
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎𝑖 =
(𝑅2(𝑇𝑐,𝑖)
2
9( 3√
2 − 1)𝑃𝑐,𝑖
)=
0.42748 ·𝑅2(𝑇𝑐,𝑖)2
𝑃𝑐,𝑖
𝑏𝑖 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
=0.08664 ·𝑅𝑇𝑐,𝑖
𝑃𝑐,𝑖
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝛼𝑖 = 𝛼(0,𝑖) + 𝜔𝑖(𝛼(1,𝑖) − 𝛼(0,𝑖))
𝛼(0 or 1, i) = 𝑇𝑁(𝑀−1)𝑟,𝑖 exp[𝐿(1 − 𝑇𝑁𝑀
𝑟,𝑖 )]
For sub-critical conditions:
L0, M0, N0 = 0.141599, 0.919422, 2.496441
L1, M1, N1 = 0.500315, 0.799457, 3.291790
For supercritical conditions:
L0, M0, N0 = 0.441411, 6.500018, -0.20
L1, M1, N1 = 0.032580, 1.289098, -8.0
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
180 Chapter 1. thermo
thermo Documentation, Release 0.1
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
Notes
For P-V initializations, SciPy’s newton solver is used to find T. Claimed to be more accurate than the SRKequation.
References
[R268]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = TWUSRKMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(4.108791361639091e-05, 0.0007117070840276789)>>> eos.fugacities_l, eos.fugacities_g([809692.8308266952, 74093.63881572781], [441783.43148985505, 362470.31741077645])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
Continued on next page
1.1. thermo package 181
thermo Documentation, Release 0.1
Table 1.29 – continued from previous pagefugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficients
for each species in a mixture.main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.set_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, omega, and Tc for a specific component be-
fore the pure-species EOS’s a_alpha_and_derivativesmethod is called.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -5
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
setup_a_alpha_and_derivatives(i, T=None)Sets a, omega, and Tc for a specific component before the pure-species EOS’s a_alpha_and_derivativesmethod is called. Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
class thermo.eos_mix.APISRKMIX(Tcs, Pcs, zs, omegas=None, kijs=None, T=None, P=None, V=None,S1s=None, S2s=None)
Bases: thermo.eos_mix.SRKMIX , thermo.eos.APISRK
Class for solving the Refinery Soave-Redlich-Kwong cubic equation of state for a mixture of any number ofcompounds, as shown in the API Databook [R269]. Subclasses APISRK. Solves the EOS on initialization andcalculates fugacities for all components in all phases.
182 Chapter 1. thermo
thermo Documentation, Release 0.1
Two of T, P, and V are needed to solve the EOS.
𝑃 =𝑅𝑇
𝑉 − 𝑏− 𝑎𝛼(𝑇 )
𝑉 (𝑉 + 𝑏)
𝑎𝛼 =∑𝑖
∑𝑗
𝑧𝑖𝑧𝑗(𝑎𝛼)𝑖𝑗
(𝑎𝛼)𝑖𝑗 = (1 − 𝑘𝑖𝑗)√
(𝑎𝛼)𝑖(𝑎𝛼)𝑗
𝑏 =∑𝑖
𝑧𝑖𝑏𝑖
𝑎𝑖 =
(𝑅2(𝑇𝑐,𝑖)
2
9( 3√
2 − 1)𝑃𝑐,𝑖
)=
0.42748 ·𝑅2(𝑇𝑐,𝑖)2
𝑃𝑐,𝑖
𝑏𝑖 =
(( 3√
2 − 1)
3
)𝑅𝑇𝑐,𝑖𝑃𝑐,𝑖
=0.08664 ·𝑅𝑇𝑐,𝑖
𝑃𝑐,𝑖
𝛼(𝑇 )𝑖 =
[1 + 𝑆1,𝑖
(1 −
√𝑇𝑟,𝑖
)+ 𝑆2,𝑖
1 −√𝑇𝑟,𝑖√
𝑇𝑟,𝑖
]2𝑆1,𝑖 = 0.48508 + 1.55171𝜔𝑖 − 0.15613𝜔2
𝑖 if S1 is not tabulated
Parameters Tcs : float
Critical temperatures of all compounds, [K]
Pcs : float
Critical pressures of all compounds, [Pa]
omegas : float
Acentric factors of all compounds, [-]
zs : float
Overall mole fractions of all species, [-]
kijs : list[list[float]], optional
n*n size list of lists with binary interaction parameters for the Van der Waals mixingrules, default all 0 [-]
T : float, optional
Temperature, [K]
P : float, optional
Pressure, [Pa]
V : float, optional
Molar volume, [m^3/mol]
S1s : float, optional
Fit constant or estimated from acentric factor if not provided [-]
S2s : float, optional
Fit constant or 0 if not provided [-]
1.1. thermo package 183
thermo Documentation, Release 0.1
Notes
For P-V initializations, SciPy’s newton solver is used to find T.
References
[R269]
Examples
T-P initialization, nitrogen-methane at 115 K and 1 MPa:
>>> eos = APISRKMIX(T=115, P=1E6, Tcs=[126.1, 190.6], Pcs=[33.94E5, 46.04E5],→˓omegas=[0.04, 0.011], zs=[0.5, 0.5], kijs=[[0,0],[0,0]])>>> eos.V_l, eos.V_g(4.101590920556748e-05, 0.0007104685894929316)>>> eos.fugacities_l, eos.fugacities_g([817882.3033490349, 71620.48238123364], [442158.29113191745, 361519.7987757053])
Methods
Hvap(T) Method to calculate enthalpy of vaporization for a purefluid from an equation of state, without iteration.
Psat(T[, polish]) Generic method to calculate vapor pressure for a speci-fied T.
V_g_sat(T) Method to calculate molar volume of the vapor phasealong the saturation line.
V_l_sat(T) Method to calculate molar volume of the liquid phasealong the saturation line.
a_alpha_and_derivatives(T[, full, quick]) Method to calculate a_alpha and its first and secondderivatives for an EOS with the Van der Waals mixingrules.
check_sufficient_inputs() Method to an exception if none of the pairs (T, P), (T,V), or (P, V) are given.
cleanup_a_alpha_and_derivatives() Removes properties set bysetup_a_alpha_and_derivatives; run by
dPsat_dT(T) Generic method to calculate the temperature derivativeof vapor pressure for a specified T.
derivatives_and_departures(T, P, V, b, ...)fugacities([xs, ys]) Helper method for calculating fugacity coefficients for
any phases present, using either the overall mole frac-tions for both phases or using specified mole fractionsfor each phase.
fugacity_coefficients(Z, zs) Literature formula for calculating fugacity coefficientsfor each species in a mixture.
main_derivatives_and_departures(T, P, V,b, ...)set_from_PT(Vs) Counts the number of real volumes in Vs, and deter-
mines what to do.Continued on next page
184 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.30 – continued from previous pageset_properties_from_solution(T, P, V, b, ...) Sets all interesting properties which can be calculated
from an EOS alone.setup_a_alpha_and_derivatives(i[, T]) Sets a, S1, S2 and Tc for a specific component before the
pure-species EOS’s a_alpha_and_derivatives method iscalled.
solve() First EOS-generic method; should be called by all spe-cific EOSs.
solve_T(P, V[, quick]) Generic method to calculate T from a specified P and V.to_TP(T, P)to_TP_zs(T, P, zs)volume_solutions(T, P, b, delta, epsilon, ...) Solution of this form of the cubic EOS in terms of vol-
umes.
a_alpha_mro = -5
cleanup_a_alpha_and_derivatives()Removes properties set by setup_a_alpha_and_derivatives; run by GCEOSMIX.a_alpha_and_derivativesafter a_alpha is calculated for every component
setup_a_alpha_and_derivatives(i, T=None)Sets a, S1, S2 and Tc for a specific component before the pure-species EOS’s a_alpha_and_derivativesmethod is called. Both are called by GCEOSMIX.a_alpha_and_derivatives for every component.
thermo.environment module
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
The method name to use. Accepted methods are IPCC (2007) 100yr’, ‘IPCC (2007)100yr-SAR’, ‘IPCC (2007) 20yr’, and ‘IPCC (2007) 500yr’. All valid values are alsoheld in the list 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
1.1. thermo package 185
thermo Documentation, Release 0.1
Notes
All data is from [R110], the official source. Several chemicals are available in [R110] 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’.
References
[R110]
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 [R113] when a method is not specified. If a range is provided in[R113], 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
The method name to use. Accepted methods are ‘ODP2 Max’, ‘ODP2 Min’, ‘ODP2string’, ‘ODP2 logarithmic average’, and methods for older values are ‘ODP1 Max’,‘ODP1 Min’, ‘ODP1 string’, and ‘ODP1 logarithmic average’. All valid values are alsoheld in the list ODP_methods.
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
186 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R112]. Several mixtures listed in [R112] are not included here as they are not pure species.Methods for values in [R113] 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
[R112], [R113]
Examples
Dichlorotetrafluoroethane, according to [R113].
>>> 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
The method name to use. Accepted methods are ‘SYRRES’, or ‘CRC’, All valid valuesare also held in the list 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
([𝑠𝑜𝑙𝑢𝑡𝑒]
𝑢𝑛−𝑖𝑜𝑛𝑖𝑧𝑒𝑑𝑜𝑐𝑡𝑎𝑛𝑜𝑙
[𝑠𝑜𝑙𝑢𝑡𝑒]𝑢𝑛−𝑖𝑜𝑛𝑖𝑧𝑒𝑑𝑤𝑎𝑡𝑒𝑟
)
1.1. thermo package 187
thermo Documentation, Release 0.1
References
[R114], [R115]
Examples
>>> logP('67-56-1')-0.74
thermo.heat_capacity module
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 [R357].
𝐶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 [R357], [mol/g]
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
[R357]
Examples
>>> Lastovka_Shaw(1000.0, 0.1333)2467.113309084757
188 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.heat_capacity.Lastovka_Shaw_integral(T, similarity_variable,cyclic_aliphatic=False)
Calculate the integral of ideal-gas constant-pressure heat capacitiy with the similarity variable concept andmethod as shown in [R358].
Parameters T : float
Temperature of gas [K]
similarity_variable : float
similarity variable as defined in [R358], [mol/g]
Returns H : float
Difference in enthalpy from 0 K, [J/kg]
See also:
Lastovka_Shaw , Lastovka_Shaw_integral_over_T
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! Integral was computed with SymPy.
References
[R358]
Examples
>>> Lastovka_Shaw_integral(300.0, 0.1333)5283095.816018478
thermo.heat_capacity.Lastovka_Shaw_integral_over_T(T, similarity_variable,cyclic_aliphatic=False)
Calculate the integral over temperature of ideal-gas constant-pressure heat capacitiy with the similarity variableconcept and method as shown in [R359].
Parameters T : float
Temperature of gas [K]
similarity_variable : float
similarity variable as defined in [R359], [mol/g]
Returns S : float
Difference in entropy from 0 K, [J/kg/K]
See also:
Lastovka_Shaw , Lastovka_Shaw_integral
1.1. thermo package 189
thermo Documentation, Release 0.1
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! Integral was computed with SymPy.
References
[R359]
Examples
>>> Lastovka_Shaw_integral_over_T(300.0, 0.1333)3609.791928945323
thermo.heat_capacity.TRCCp(T, a0, a1, a2, a3, a4, a5, a6, a7)Calculates ideal gas heat capacity using the model developed in [R360].
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]
Notes
j is set to 8. Analytical integrals are available for this expression.
References
[R360]
Examples
>>> TRCCp(300, 4.0, 7.65E5, 720., 3.565, -0.052, -1.55E6, 52., 201.)42.06525682312236
thermo.heat_capacity.TRCCp_integral(T, a0, a1, a2, a3, a4, a5, a6, a7, I=0)Integrates ideal gas heat capacity using the model developed in [R361]. Best used as a delta only.
190 Chapter 1. thermo
thermo Documentation, Release 0.1
The difference in enthalpy with respect to 0 K is given by:
𝐻(𝑇 ) −𝐻𝑟𝑒𝑓
𝑅𝑇= 𝑎0 + 𝑎1𝑥(𝑎2)/(𝑎2𝑇 ) + 𝐼/𝑇 + ℎ(𝑇 )/𝑇
ℎ(𝑇 ) = (𝑎5 + 𝑎7)
[(2𝑎3 + 8𝑎4) ln(1 − 𝑦) +
𝑎3
(1 +
1
1 − 𝑦
)+ 𝑎4
(7 +
1
1 − 𝑦
)𝑦 + 𝑎4
3𝑦2 + (5/3)𝑦3 + 𝑦4 + (3/5)𝑦5 + (1/3)𝑦6
+ (1/7)
𝑎4 −
𝑎5(𝑎6 + 𝑎7)2
𝑦7]
ℎ(𝑇 ) = 0 for 𝑇 ≤ 𝑎7
𝑦 =𝑇 − 𝑎7𝑇 + 𝑎6
for 𝑇 > 𝑎7 otherwise 0
Parameters T : float
Temperature [K]
a1-a7 : float
Coefficients
I : float, optional
Integral offset
Returns H-H(0) : float
Difference in enthalpy from 0 K , [J/mol]
Notes
Analytical integral as provided in [R361] and verified with numerical integration.
References
[R361]
Examples
>>> TRCCp_integral(298.15, 4.0, 7.65E5, 720., 3.565, -0.052, -1.55E6, 52.,... 201., 1.2)10802.532600592816
thermo.heat_capacity.TRCCp_integral_over_T(T, a0, a1, a2, a3, a4, a5, a6, a7, J=0)Integrates ideal gas heat capacity over T using the model developed in [R362]. Best used as a delta only.
The difference in ideal-gas entropy with respect to 0 K is given by:
𝑆∘
𝑅= 𝐽 + 𝑎0 ln𝑇 +
𝑎1𝑎22
(1 +
𝑎2𝑇
)𝑥(𝑎2) + 𝑠(𝑇 )
𝑠(𝑇 ) =
[𝑎3 +
(𝑎4𝑎
27 − 𝑎5𝑎26
)(𝑎7𝑎6
)4(
𝑎7𝑎6
)2
ln 𝑧 + (𝑎3 + 𝑎4) ln
(𝑇 + 𝑎6𝑎6 + 𝑎7
)+
7∑𝑖=1
(𝑎4𝑎
27 − 𝑎5𝑎26
)(−𝑎7𝑎6
)6−𝑖
− 𝑎4
𝑦𝑖
𝑖−𝑎3𝑎6
(𝑎6 + 𝑎7) +𝑎5𝑦
6
7𝑎7(𝑎6 + 𝑎7)
𝑦
]𝑠(𝑇 ) = 0 for 𝑇 ≤ 𝑎7
𝑧 =𝑇
𝑇 + 𝑎6· 𝑎7 + 𝑎6
𝑎7
𝑦 =𝑇 − 𝑎7𝑇 + 𝑎6
for 𝑇 > 𝑎7 otherwise 0
1.1. thermo package 191
thermo Documentation, Release 0.1
Parameters T : float
Temperature [K]
a1-a7 : float
Coefficients
J : float, optional
Integral offset
Returns S-S(0) : float
Difference in entropy from 0 K , [J/mol/K]
Notes
Analytical integral as provided in [R362] and verified with numerical integration.
References
[R362]
Examples
>>> TRCCp_integral_over_T(300, 4.0, 124000, 245, 50.539, -49.469,... 220440000, 560, 78)213.80148972435018
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.
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
192 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R363] for modeling gas heat capacity. Coefficients for 1961 chem-icals are available.
POLING: Simple polynomials in [R364] 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 [R365]. 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 [R366] at 298.15 K; data is available for 533 gases.
POLING_CONST: Constant values in [R364] at 298.15 K; available for 348 gases.
VDI_TABULAR: Tabular data up to the critical point available in [R367]. Note that this data is along thesaturation curve.
References
[R363], [R364], [R365], [R366], [R367]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate surface tension of a liquid at tem-perature T with a given method.
Continued on next page
1.1. thermo package 193
thermo Documentation, Release 0.1
Table 1.31 – continued from previous pagecalculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-
spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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]
method : str
Method name to use
Returns Cp : float
Calculated heat capacity, [J/mol/K]
calculate_integral(T1, T2, method)Method to calculate the integral of a property with respect to temperature, using a specified method. Im-plements the analytical integrals of all available methods except for tabular data.
Parameters T1 : float
194 Chapter 1. thermo
thermo Documentation, Release 0.1
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. Implements the analytical integrals of all available methods except for tabular data.
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]
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.
1.1. thermo package 195
thermo Documentation, Release 0.1
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.
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.
thermo.heat_capacity.Rowlinson_Poling(T, Tc, omega, Cpgm)Calculate liquid constant-pressure heat capacitiy with the [R368] CSP method.
This equation is not terrible accurate.
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
196 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R368]
Examples
>>> Rowlinson_Poling(350.0, 435.5, 0.203, 91.21)143.80194441498296
thermo.heat_capacity.Rowlinson_Bondi(T, Tc, omega, Cpgm)Calculate liquid constant-pressure heat capacitiy with the CSP method shown in [R369].
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.
1.1. thermo package 197
thermo Documentation, Release 0.1
References
[R369], [R370], [R371]
Examples
>>> Rowlinson_Bondi(T=373.28, Tc=535.55, omega=0.323, Cpgm=119.342)175.39760730048116
thermo.heat_capacity.Dadgostar_Shaw(T, similarity_variable)Calculate liquid constant-pressure heat capacitiy with the similarity variable concept and method as shown in[R372].
𝐶𝑝 = 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 [R372], [mol/g]
Returns Cpl : float
Liquid constant-pressure heat capacitiy, [J/kg/K]
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
[R372]
Examples
>>> Dadgostar_Shaw(355.6, 0.139)1802.5291501191516
thermo.heat_capacity.Zabransky_quasi_polynomial(T, Tc, a1, a2, a3, a4, a5, a6)Calculates liquid heat capacity using the model developed in [R373].
𝐶
𝑅= 𝐴1 ln(1 − 𝑇𝑟) +
𝐴2
1 − 𝑇𝑟+
𝑚∑𝑗=0
𝐴𝑗+3𝑇𝑗𝑟
Parameters T : float
Temperature [K]
198 Chapter 1. thermo
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 [R373] when critical temper-ature was available for the fluid. Analytical integrals are available for this expression.
References
[R373]
Examples
>>> Zabransky_quasi_polynomial(330, 591.79, -3.12743, 0.0857315, 13.7282, 1.28971,→˓ 6.42297, 4.10989)165.4728226923247
thermo.heat_capacity.Zabransky_quasi_polynomial_integral(T, Tc, a1, a2, a3, a4, a5,a6)
Calculates the integral of liquid heat capacity using the quasi-polynomial model developed in [R374].
Parameters T : float
Temperature [K]
a1-a6 : float
Coefficients
Returns H : float
Difference in enthalpy from 0 K, [J/mol]
Notes
The analytical integral was derived with SymPy; it is a simple polynomial plus some logarithms.
References
[R374]
1.1. thermo package 199
thermo Documentation, Release 0.1
Examples
>>> H2 = Zabransky_quasi_polynomial_integral(300, 591.79, -3.12743,... 0.0857315, 13.7282, 1.28971, 6.42297, 4.10989)>>> H1 = Zabransky_quasi_polynomial_integral(200, 591.79, -3.12743,... 0.0857315, 13.7282, 1.28971, 6.42297, 4.10989)>>> H2 - H114662.026406892925
thermo.heat_capacity.Zabransky_quasi_polynomial_integral_over_T(T, Tc, a1, a2,a3, a4, a5, a6)
Calculates the integral of liquid heat capacity over T using the quasi-polynomial model developed in [R375].
Parameters T : float
Temperature [K]
a1-a6 : float
Coefficients
Returns S : float
Difference in entropy from 0 K, [J/mol/K]
Notes
The analytical integral was derived with Sympy. It requires the Polylog(2,x) function, which is unimplementedin SciPy. A very accurate numerical approximation was implemented as thermo.utils.polylog2. Rela-tively slow due to the use of that special function.
References
[R375]
Examples
>>> S2 = Zabransky_quasi_polynomial_integral_over_T(300, 591.79, -3.12743,... 0.0857315, 13.7282, 1.28971, 6.42297, 4.10989)>>> S1 = Zabransky_quasi_polynomial_integral_over_T(200, 591.79, -3.12743,... 0.0857315, 13.7282, 1.28971, 6.42297, 4.10989)>>> S2 - S159.16997291893654
thermo.heat_capacity.Zabransky_cubic(T, a1, a2, a3, a4)Calculates liquid heat capacity using the model developed in [R376].
𝐶
𝑅=
3∑𝑗=0
𝐴𝑗+1
(𝑇
100
)𝑗
Parameters T : float
Temperature [K]
a1-a4 : float
200 Chapter 1. thermo
thermo Documentation, Release 0.1
Coefficients
Returns Cp : float
Liquid heat capacity, [J/mol/K]
Notes
Most often form used in [R376]. Analytical integrals are available for this expression.
References
[R376]
Examples
>>> Zabransky_cubic(298.15, 20.9634, -10.1344, 2.8253, -0.256738)75.31462591538556
thermo.heat_capacity.Zabransky_cubic_integral(T, a1, a2, a3, a4)Calculates the integral of liquid heat capacity using the model developed in [R377].
Parameters T : float
Temperature [K]
a1-a4 : float
Coefficients
Returns H : float
Difference in enthalpy from 0 K, [J/mol]
Notes
The analytical integral was derived with Sympy; it is a simple polynomial.
References
[R377]
Examples
>>> Zabransky_cubic_integral(298.15, 20.9634, -10.1344, 2.8253, -0.256738)31051.679845520586
thermo.heat_capacity.Zabransky_cubic_integral_over_T(T, a1, a2, a3, a4)Calculates the integral of liquid heat capacity over T using the model developed in [R378].
Parameters T : float
Temperature [K]
1.1. thermo package 201
thermo Documentation, Release 0.1
a1-a4 : float
Coefficients
Returns S : float
Difference in entropy from 0 K, [J/mol/K]
Notes
The analytical integral was derived with Sympy; it is a simple polynomial, plus a logarithm
References
[R378]
Examples
>>> Zabransky_cubic_integral_over_T(298.15, 20.9634, -10.1344, 2.8253,... -0.256738)24.73245695987246
class thermo.heat_capacity.Zabransky_quasipolynomial(CAS, name, uncertainty, Tmin,Tmax, Tc, coeffs)
Bases: object
Quasi-polynomial object for calculating the heat capacity of a chemical. Implements the enthalpy and entropyintegrals as well.
𝐶
𝑅= 𝐴1 ln(1 − 𝑇𝑟) +
𝐴2
1 − 𝑇𝑟+
𝑚∑𝑗=0
𝐴𝑗+3𝑇𝑗𝑟
Parameters CAS : str
CAS number.
name : str
Name of the chemical as given in [R379].
uncertainty : str
Uncertainty class of the heat capacity as given in [R379].
Tmin : float
Minimum temperature any experimental data was available at.
Tmax : float
Maximum temperature any experimental data was available at.
Tc : float
Critical temperature of the chemical, as used in the formula.
coeffs : list[float]
Six coefficients for the equation.
202 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R379]
Methods
calculate(T) Method to actually calculate heat capacity as a functionof temperature.
calculate_integral(T1, T2) Method to compute the enthalpy integral of heat capac-ity from T1 to T2.
calculate_integral_over_T(T1, T2) Method to compute the entropy integral of heat capacityfrom T1 to T2.
CASCAS number.
TcCritical temperature of the chemical, as used in the formula.
TmaxMaximum temperature any experimental data was available at.
TminMinimum temperature any experimental data was available at.
calculate(T)Method to actually calculate heat capacity as a function of temperature.
Parameters T : float
Temperature, [K]
Returns Cp : float
Liquid heat capacity as T, [J/mol/K]
calculate_integral(T1, T2)
Method to compute the enthalpy integral of heat capacity from T1 to T2.
Parameters T1 : float
Initial temperature, [K]
T2 : float
Final temperature, [K]
Returns dH : float
Enthalpy difference between T1 and T2, [J/mol]
calculate_integral_over_T(T1, T2)
Method to compute the entropy integral of heat capacity from T1 to T2.
Parameters T1 : float
Initial temperature, [K]
1.1. thermo package 203
thermo Documentation, Release 0.1
T2 : float
Final temperature, [K]
Returns dS : float
Entropy difference between T1 and T2, [J/mol/K]
coeffsSix coefficients for the equation.
nameName of the chemical.
uncertaintyUncertainty class of the heat capacity.
class thermo.heat_capacity.Zabransky_spline(CAS, name, uncertainty)Bases: object
Implementation of the cubic spline method presented in [R380] for calculating the heat capacity of a chemical.Implements the enthalpy and entropy integrals as well.
𝐶
𝑅=
3∑𝑗=0
𝐴𝑗+1
(𝑇
100
)𝑗
Parameters CAS : str
CAS number.
name : str
Name of the chemical as in [R380].
uncertainty : str
Uncertainty class of the heat capacity as in [R380].
References
[R380]
Methods
add_coeffs(Tmin, Tmax, coeffs) Called internally during the parsing of the Zabranskydatabase, to
calculate(T) Method to actually calculate heat capacity as a functionof temperature.
calculate_integral(T1, T2) Method to compute the enthalpy integral of heat capac-ity from T1 to T2.
calculate_integral_over_T(T1, T2) Method to compute the entropy integral of heat capacityfrom T1 to T2.
CASCAS number.
Ts
204 Chapter 1. thermo
thermo Documentation, Release 0.1
Temperatures at which the coefficient sets transition.
add_coeffs(Tmin, Tmax, coeffs)Called internally during the parsing of the Zabransky database, to add coefficients as they are read one perline
calculate(T)Method to actually calculate heat capacity as a function of temperature.
Parameters T : float
Temperature, [K]
Returns Cp : float
Liquid heat capacity as T, [J/mol/K]
calculate_integral(T1, T2)Method to compute the enthalpy integral of heat capacity from T1 to T2. Analytically integrates across thepiecewise spline as necessary.
Parameters T1 : float
Initial temperature, [K]
T2 : float
Final temperature, [K]
Returns dS : float
Enthalpy difference between T1 and T2, [J/mol/K]
calculate_integral_over_T(T1, T2)Method to compute the entropy integral of heat capacity from T1 to T2. Analytically integrates across thepiecewise spline as necessary.
Parameters T1 : float
Initial temperature, [K]
T2 : float
Final temperature, [K]
Returns dS : float
Entropy difference between T1 and T2, [J/mol/K]
coeff_setsActual coefficients used to describe the chemical.
nNumber of coefficient sets used to describe the chemical.
nameName of the chemical.
uncertaintyUncertainty class of the heat capacity.
thermo.heat_capacity.heat_capacity_liquid_methods = [’Zabransky spline, averaged heat capacity’, ‘Zabransky quasipolynomial, averaged heat capacity’, ‘Zabransky spline, constant-pressure’, ‘Zabransky quasipolynomial, constant-pressure’, ‘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.
1.1. thermo package 205
thermo Documentation, Release 0.1
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.
ZABRANSKY_SPLINE, ZABRANSKY_QUASIPOLYNOMIAL, ZABRANSKY_SPLINE_C, andZABRANSKY_QUASIPOLYNOMIAL_C:
Rigorous expressions developed in [R381] 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. ‘C’ denotes constant- pres-sure data available from more precise experiments. The others are heat capacity values averaged overa temperature changed.
ZABRANSKY_SPLINE_SAT and ZABRANSKY_QUASIPOLYNOMIAL_SAT: Rigorous expressionsdeveloped in [R381] 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 their entire range. Respectively, there is data available for 203, and 16chemicals. Note that these methods are for the saturation curve!
206 Chapter 1. thermo
thermo Documentation, Release 0.1
VDI_TABULAR: Tabular data up to the critical point available in [R385]. 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 [R383]. 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 [R382] at 298.15 K; available for 245 liquids.
CRCSTD: Consta values tabulated in [R384] at 298.15 K; data is available for 433 liquids.
References
[R381], [R382], [R383], [R384], [R385]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate heat capacity of a liquid at temper-ature T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
Continued on next page
1.1. thermo package 207
thermo Documentation, Release 0.1
Table 1.34 – continued from previous pagecalculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-
perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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]
calculate_integral(T1, T2, method)Method to calculate the integral of a property with respect to temperature, using a specified method. Im-plements the analytical integrals of all available methods except for tabular data, the case of multiplecoefficient sets needed to encompass the temperature range of any of the ZABRANSKY methods, and theCSP methods using the vapor phase properties.
Parameters T1 : float
Lower limit of integration, [K]
T2 : float
208 Chapter 1. thermo
thermo Documentation, Release 0.1
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 spec-ified method. Implements the analytical integrals of all available methods except for tabular data, thecase of multiple coefficient sets needed to encompass the temperature range of any of the ZABRANSKYmethods, and the CSP methods using the vapor phase properties.
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]
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’
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, averaged heat capacity’, ‘Zabransky quasipolynomial, averaged heat capacity’, ‘Zabransky spline, constant-pressure’, ‘Zabransky quasipolynomial, constant-pressure’, ‘Zabransky spline, saturation’, ‘Zabransky quasipolynomial, saturation’, ‘VDI Heat Atlas’, ‘Dadgostar and Shaw (2011)’, ‘Rowlinson and Poling (2001)’, ‘Rowlinson and Bondi (1969)’, ‘CoolProp’, ‘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.
1.1. thermo package 209
thermo Documentation, Release 0.1
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.
thermo.heat_capacity.Lastovka_solid(T, similarity_variable)Calculate solid constant-pressure heat capacitiy with the similarity variable concept and method as shown in[R386].
𝐶𝑝 = 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 [R386], [mol/g]
Returns Cps : float
Solid constant-pressure heat capacitiy, [J/kg/K]
210 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
References
[R386]
Examples
>>> Lastovka_solid(300, 0.2139)1682.063629222013
thermo.heat_capacity.Lastovka_solid_integral(T, similarity_variable)Integrates solid constant-pressure heat capacitiy with the similarity variable concept and method as shown in[R387].
Uses a explicit form as derived with Sympy.
Parameters T : float
Temperature of solid [K]
similarity_variable : float
similarity variable as defined in [R387], [mol/g]
Returns H : float
Difference in enthalpy from 0 K, [J/kg]
See also:
Lastovka_solid
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!
References
[R387]
1.1. thermo package 211
thermo Documentation, Release 0.1
Examples
>>> Lastovka_solid_integral(300, 0.2139)283246.1242170376
thermo.heat_capacity.Lastovka_solid_integral_over_T(T, similarity_variable)Integrates over T solid constant-pressure heat capacitiy with the similarity variable concept and method as shownin [R388].
Uses a explicit form as derived with Sympy.
Parameters T : float
Temperature of solid [K]
similarity_variable : float
similarity variable as defined in [R388], [mol/g]
Returns S : float
Difference in entropy from 0 K, [J/kg/K]
See also:
Lastovka_solid
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!
References
[R388]
Examples
>>> Lastovka_solid_integral_over_T(300, 0.2139)1947.553552666818
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.
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
similarity variable, n_atoms/MW, [mol/g]
MW : float, optional
Molecular weight, [g/mol]
212 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R390].
CRCSTD: Values tabulated in [R389] 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
[R389], [R390]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
Continued on next page
1.1. thermo package 213
thermo Documentation, Release 0.1
Table 1.35 – continued from previous pagecalculate(T, method) Method to calculate heat capacity of a solid at tempera-
ture T with a given method.calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-
spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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]
calculate_integral(T1, T2, method)Method to calculate the integral of a property with respect to temperature, using a specified method. Im-plements the analytical integrals of all available methods except for tabular data.
214 Chapter 1. thermo
thermo Documentation, Release 0.1
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. Implements the analytical integrals of all available methods except for tabular data.
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]
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.
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.
1.1. thermo package 215
thermo Documentation, Release 0.1
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.
class thermo.heat_capacity.HeatCapacitySolidMixture(CASs=[], HeatCapacitySolids=[])Bases: thermo.utils.MixtureProperty
Class for dealing with solid heat capacity of a mixture as a function of temperature, pressure, and composition.Consists only of mole weighted averaging.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
HeatCapacitySolids : list[HeatCapacitySolid], optional
HeatCapacitySolid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
Notes
To iterate over all methods, use the list stored in heat_capacity_solid_mixture_methods.
216 Chapter 1. thermo
thermo Documentation, Release 0.1
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate heat capacity of a solid mixture attemperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
Continued on next page
1.1. thermo package 217
thermo Documentation, Release 0.1
Table 1.36 – continued from previous pagetest_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 set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate heat capacity of a solid mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Cpsm : float
Molar heat capacity of the solid mixture at the given conditions, [J/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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.
ranked_methods = [’SIMPLE’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
218 Chapter 1. thermo
thermo Documentation, Release 0.1
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
class thermo.heat_capacity.HeatCapacityGasMixture(CASs=[], HeatCapacityGases=[])Bases: thermo.utils.MixtureProperty
Class for dealing with the gas heat capacity of a mixture as a function of temperature, pressure, and composition.Consists only of mole weighted averaging.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
HeatCapacityGases : list[HeatCapacityGas], optional
HeatCapacityGas objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
Notes
To iterate over all methods, use the list stored in heat_capacity_gas_mixture_methods.
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
Attributes
TP_zs_ws_cachedmethodprop_cached
1.1. thermo package 219
thermo Documentation, Release 0.1
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate heat capacity of a gas mixture attemperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
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 set of information; filled by load_all_methods.
220 Chapter 1. thermo
thermo Documentation, Release 0.1
calculate(T, P, zs, ws, method)Method to calculate heat capacity of a gas mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Cpgm : float
Molar heat capacity of the gas mixture at the given conditions, [J/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 = [’SIMPLE’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
1.1. thermo package 221
thermo Documentation, Release 0.1
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
class thermo.heat_capacity.HeatCapacityLiquidMixture(MWs=[], CASs=[], HeatCapac-ityLiquids=[])
Bases: thermo.utils.MixtureProperty
Class for dealing with liquid heat capacity of a mixture as a function of temperature, pressure, and composition.Consists only of mole weighted averaging, and the Laliberte method for aqueous electrolyte solutions.
Parameters MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
CASs : str, optional
The CAS numbers of all species in the mixture
HeatCapacityLiquids : list[HeatCapacityLiquid], optional
HeatCapacityLiquid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
Notes
To iterate over all methods, use the list stored in heat_capacity_liquid_mixture_methods.
LALIBERTE: Electrolyte model equation with coefficients; see thermo.electrochem.Laliberte_heat_capacity for more details.
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
Continued on next page
222 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.38 – continued from previous page
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate heat capacity of a liquid mixture attemperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
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 set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)
1.1. thermo package 223
thermo Documentation, Release 0.1
Method to calculate heat capacity of a liquid mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Cplm : float
Molar heat capacity of the liquid mixture at the given conditions, [J/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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’
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 = [’Laliberte’, ‘SIMPLE’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
224 Chapter 1. thermo
thermo Documentation, Release 0.1
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
thermo.identifiers module
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.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.PubChem(CASRN)Given a CASRN in the database, obtain the PubChem database number of the compound.
1.1. thermo package 225
thermo Documentation, Release 0.1
Parameters CASRN : string
Valid CAS number in PubChem database
Returns pubchem : int
PubChem database id, as an integer
Notes
CASRN must be an indexing key in the pubchem database.
References
[R391]
Examples
>>> PubChem('7732-18-5')962
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
[R392]
Examples
>>> MW('7732-18-5')18.01528
thermo.identifiers.formula(CASRN)
>>> formula('7732-18-5')'H2O'
226 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.identifiers.smiles(CASRN)
>>> smiles('7732-18-5')'O'
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.IUPAC_name(CASRN)
>>> IUPAC_name('7732-18-5')'oxidane'
thermo.identifiers.name(CASRN)
>>> name('7732-18-5')'water'
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.identifiers.mixture_from_any(ID)
thermo.interface module
thermo.interface.REFPROP(T, Tc, sigma0, n0, sigma1=0, n1=0, sigma2=0, n2=0)Calculates air-liquid surface tension using the REFPROP [R393] regression-based method. Relatively recent,
1.1. thermo package 227
thermo Documentation, Release 0.1
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 [R393]. 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
[R393]
Examples
Parameters for water at 298.15 K
>>> REFPROP(298.15, 647.096, -0.1306, 2.471, 0.2151, 1.233)0.07205503890847453
228 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.interface.Somayajulu(T, Tc, A, B, C)Calculates air-water surface tension using the [R394] emperical (parameter-regressed) method. Well regressed,no recent data.
𝜎 = 𝑎𝑋5/4 + 𝑏𝑋9/4 + 𝑐𝑋13/4𝑋 = (𝑇𝑐 − 𝑇 )/𝑇𝑐
Parameters T : float
Temperature of fluid [K]
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
[R394]
Examples
Water at 300 K
>>> Somayajulu(300, 647.126, 232.713514, -140.18645, -4.890098)0.07166386387996757
thermo.interface.Jasper(T, a, b)Calculates surface tension of a fluid given two parameters, a linear fit in Celcius from [R395] with data reprintedin [R396].
𝜎 = 𝑎− 𝑏𝑇
Parameters T : float
Temperature of fluid, [K]
a : float
1.1. thermo package 229
thermo Documentation, Release 0.1
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
[R395], [R396]
Examples
>>> Jasper(298.15, 24, 0.0773)0.0220675
thermo.interface.Brock_Bird(T, Tb, Tc, Pc)Calculates air-water surface tension using the [R397] 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
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.
230 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R397]
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.Pitzer(T, Tc, Pc, omega)Calculates air-water surface tension using the correlation derived by [R398] from the works of [R399] and[R400]. 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.
References
[R398], [R399], [R400]
Examples
Chlorobenzene from Poling, as compared with a % error value at 293 K.
1.1. thermo package 231
thermo Documentation, Release 0.1
>>> Pitzer(293., 633.0, 4530000.0, 0.249)0.03458453513446387
thermo.interface.Sastri_Rao(T, Tb, Tc, Pc, chemicaltype=None)Calculates air-water surface tension using the correlation derived by [R402] 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
[R402]
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.Zuo_Stenby(T, Tc, Pc, omega)Calculates air-water surface tension using the reference fluids methods of [R403].
𝜎(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]
232 Chapter 1. thermo
thermo Documentation, Release 0.1
Pc : float
Critical pressure of fluid [Pa]
omega : float
Acentric factor for fluid, [-]
Returns sigma : float
Liquid surface tension, N/m
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
[R403]
Examples
Chlorobenzene
>>> Zuo_Stenby(293., 633.0, 4530000.0, 0.249)0.03345569011871088
thermo.interface.Hakim_Steinberg_Stiel(T, Tc, Pc, omega, StielPolar=0)Calculates air-water surface tension using the reference fluids methods of [R404].
𝜎 = 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
1.1. thermo package 233
thermo Documentation, Release 0.1
Notes
Original equation for m and Q are used. Internal units are atm and mN/m.
References
[R404]
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.Miqueu(T, Tc, Vc, omega)Calculates air-water surface tension using the methods of [R406].
𝜎 = 𝑘𝑇𝑐
(𝑁𝑎
𝑉𝑐
)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]
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 nonetheless. Createdwith 31 normal fluids, none polar or hydrogen bonded. Has an AARD of 3.5%.
References
[R406]
234 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Bromotrifluoromethane, 2.45 mN/m
>>> Miqueu(300., 340.1, 0.000199, 0.1687)0.003474099603581931
thermo.interface.Aleem(T, MW, Tb, rhol, Hvap_Tb, Cpl)Calculates vapor-liquid surface tension using the correlation derived by [R407] based on critical property CSPmethods.
𝜎 = 𝜑𝑀𝑊 1/3
6𝑁1/3𝐴
𝜌2/3𝑙 [𝐻𝑣𝑎𝑝 + 𝐶𝑝,𝑙(𝑇𝑏 − 𝑇 )]
𝜑 = 1 − 0.0047𝑀𝑊 + 6.8 × 10−6𝑀𝑊 2
Parameters T : float
Temperature of fluid [K]
MW : float
Molecular weight [g/mol]
Tb : float
Boiling temperature of the fluid [K]
rhol : float
Liquid density at T and P [kg/m^3]
Hvap_Tb : float
Mass enthalpy of vaporization at the normal boiling point [kg/m^3]
Cpl : float
Liquid heat capacity of the chemical at T [J/kg/K]
Returns sigma : float
Liquid-vapor surface tension [N/m]
Notes
Internal units of molecuar weight are kg/mol. This model is dimensionally consistent.
This model does not use the critical temperature. After it predicts a surface tension of 0 at a sufficiently high tem-perature, it returns negative results. The temperature at which this occurs (the “predicted” critical temperature)can be calculated as follows:
𝜎 = 0 → 𝑇𝑐,𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 at 𝑇𝑏 +𝐻𝑣𝑎𝑝
𝐶𝑝𝑙
Because of its dependence on density, it has the potential to model the effect of pressure on surface tension.
Claims AAD of 4.3%. Developed for normal alkanes. Total of 472 data points. Behaves worse for higheralkanes. Behaves very poorly overall.
References
[R407]
1.1. thermo package 235
thermo Documentation, Release 0.1
Examples
Methane at 90 K
>>> Aleem(T=90, MW=16.04246, Tb=111.6, rhol=458.7, Hvap_Tb=510870.,... Cpl=2465.)0.01669970221165325
thermo.interface.surface_tension_methods = [’REFPROP’, ‘SOMAYAJULU2’, ‘SOMAYAJULU’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘JASPER’, ‘MIQUEU’, ‘BROCK_BIRD’, ‘SASTRI_RAO’, ‘PITZER’, ‘ZUO_STENBY’, ‘Aleem’]Holds all methods available for the SurfaceTension class, for use in iterating over them.
class thermo.interface.SurfaceTension(MW=None, Tb=None, Tc=None, Pc=None,Vc=None, Zc=None, omega=None, StielPolar=None,Hvap_Tb=None, CASRN=’‘, Vml=None, Cpl=None)
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]
MW : float, optional
Molecular weight, [g/mol]
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, [-]
StielPolar : float, optional
Stiel polar factor
Hvap_Tb : float
Mass enthalpy of vaporization at the normal boiling point [kg/m^3]
CASRN : str, optional
The CAS number of the chemical
Vml : float or callable, optional
Liquid molar volume at a given temperature and pressure or callable for the same,[m^3/mol]
Cpl : float or callable, optional
236 Chapter 1. thermo
thermo Documentation, Release 0.1
Mass heat capacity of the fluid at a pressure and temperature or or callable for the same,[J/kg/K]
See also:
REFPROP, Somayajulu, Jasper, Brock_Bird, Sastri_Rao, Pitzer, Zuo_Stenby , Miqueu,Aleem
Notes
To iterate over all methods, use the list stored in surface_tension_methods.
STREFPROP: The REFPROP coefficient-based method, documented in the function REFPROP for 115 fluidsfrom [R412].
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 [R408], and the secondfrom [R409]. The later, revised coefficients should be used prefered.
JASPER: Fit with a single temperature coefficient from Jaspen (1972) as documented in the function Jasper.Data for 522 fluids is available, as shown in [R411] but originally in [R410].
BROCK_BIRD: CSP method documented in Brock_Bird. Most popular estimation method; from 1955.
SASTRI_RAO: CSP method documented in Sastri_Rao. Second most popular estimation method; from1995.
PITZER: CSP method documented in Pitzer; from 1958.
ZUO_STENBY: CSP method documented in Zuo_Stenby; from 1997.
MIQUEU: CSP method documented in Miqueu.
ALEEM: CSP method documented in Aleem.
VDI_TABULAR: Tabular data in [R413] along the saturation curve; interpolation is as set by the user or thedefault.
References
[R408], [R409], [R410], [R411], [R412], [R413]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
Continued on next page
1.1. thermo package 237
thermo Documentation, Release 0.1
Table 1.39 – continued from previous pageT_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate surface tension of a liquid at tem-perature T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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]
238 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
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 = 4.0Maximum valid value of surface tension. Set to roughly twice that of cobalt at its melting point.
property_min = 0Mimimum valid value of surface tension. This occurs at the critical point exactly.
ranked_methods = [’REFPROP’, ‘SOMAYAJULU2’, ‘SOMAYAJULU’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘JASPER’, ‘MIQUEU’, ‘BROCK_BIRD’, ‘SASTRI_RAO’, ‘PITZER’, ‘ZUO_STENBY’, ‘Aleem’]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
1.1. thermo package 239
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
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 [R414] and also in [R415].
𝜎𝑀 =∑𝑖
∑𝑗
1
𝑉 𝐿2𝐿
(𝑥𝑖𝑉𝑖) (𝑥𝑗𝑉𝑗)√𝜎𝑖 · 𝜎𝑗
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
[R414], [R415]
Examples
>>> Winterfeld_Scriven_Davis([0.1606, 0.8394], [0.01547, 0.02877],... [8610., 15530.])0.024967388450439817
240 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.interface.Diguilio_Teja(T, xs, sigmas_Tb, Tbs, Tcs)Calculates surface tension of a liquid mixture according to mixing rules in [R416].
𝜎 = 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]
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.
[R416] claims a 4.63 percent average absolute error on 21 binary and 4 ternary non-aqueous systems. [R416]also considered Van der Waals mixing rules for Tc, but found it provided a higher error of 5.58%
References
[R416]
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
1.1. thermo package 241
thermo Documentation, Release 0.1
class thermo.interface.SurfaceTensionMixture(MWs=[], Tbs=[], Tcs=[], CASs=[], Sur-faceTensions=[], VolumeLiquids=[])
Bases: thermo.utils.MixtureProperty
Class for dealing with surface tension of a mixture as a function of temperature, pressure, and composition.Consists of two mixing rules specific to surface tension, and mole weighted averaging.
Prefered method is Winterfeld_Scriven_Davis which requires mole fractions, pure component surfacetensions, and the molar density of each pure component. Diguilio_Teja is of similar accuracy, but requiresthe surface tensions of pure components at their boiling points, as well as boiling points and critical points andmole fractions. An ideal mixing rule based on mole fractions, SIMPLE, is also available and is still relativelyaccurate.
Parameters MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
Tbs : list[float], optional
Boiling points of all species in the mixture, [K]
Tcs : list[float], optional
Critical temperatures of all species in the mixture, [K]
CASs : list[str], optional
The CAS numbers of all species in the mixture
SurfaceTensions : list[SurfaceTension], optional
SurfaceTension objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
VolumeLiquids : list[VolumeLiquid], optional
VolumeLiquid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
See also:
Winterfeld_Scriven_Davis, Diguilio_Teja
Notes
To iterate over all methods, use the list stored in surface_tension_mixture_methods.
WINTERFELDSCRIVENDAVIS: Mixing rule described in Winterfeld_Scriven_Davis.
DIGUILIOTEJA: Mixing rule described in Diguilio_Teja.
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
References
[R417]
242 Chapter 1. thermo
thermo Documentation, Release 0.1
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate surface tension of a liquid mix-ture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
test_property_validity(prop) Method to test the validity of a calculated property.
1.1. thermo package 243
thermo Documentation, Release 0.1
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 set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate surface tension of a liquid mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns sigma : float
Surface tension of the liquid at given conditions, [N/m]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 = 4.0Maximum valid value of surface tension. Set to roughly twice that of cobalt at its melting point.
property_min = 0Mimimum valid value of surface tension. This occurs at the critical point exactly.
ranked_methods = [’Winterfeld, Scriven, and Davis (1978)’, ‘Diguilio and Teja (1988)’, ‘Simple’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
244 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
thermo.law module
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 [-]
1.1. thermo package 245
thermo Documentation, Release 0.1
Notes
Supported methods are:
•DSL: Canada Domestic Substance List, [R418]. As extracted on Feb 11, 2015 from a html list. This listis updated 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.
•TSCA: USA EPA Toxic Substances Control Act Chemical Inventory, [R419]. This list is as extracted on2016-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, [R420]. As extracted froma spreadsheet dynamically generated at [R418]. 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 [R420].
•SPIN: Substances Prepared in Nordic Countries. Also a boolean data type. Retrieved 2015-03 from[R421].
Other methods which could be added are:
•Australia: AICS Australian Inventory of Chemical Substances
•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
[R418], [R419], [R420], [R421]
Examples
>>> pprint(legal_status('64-17-5'))'DSL': 'LISTED','EINECS': 'LISTED','NLP': 'UNLISTED','SPIN': 'LISTED','TSCA': 'LISTED'
246 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
>>> pprint(economic_status(CASRN='98-00-0'))["US public: 'Manufactured': 0.0, 'Imported': 10272.711, 'Exported': 184.127",u'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 high production volume chemicals→˓')'OECD HPV Chemicals'>>> economic_status(CASRN='98-01-1', Method='European Chemicals Agency Total→˓Tonnage Bands')[u'10,000 - 100,000 tonnes per annum']
thermo.law.load_economic_data()
thermo.law.load_law_data()
thermo.lennard_jones module
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]
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]
1.1. thermo package 247
thermo Documentation, Release 0.1
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 [R423], for 322 chemicals.
References
[R422], [R423]
Examples
>>> Stockmayer(CASRN='64-17-5')1291.41
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
248 Chapter 1. thermo
thermo Documentation, Release 0.1
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
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 [R425], for 322 chemicals.
References
[R424], [R425]
Examples
>>> molecular_diameter(CASRN='64-17-5')4.23738
thermo.lennard_jones.sigma_Flynn(Vc)Calculates Lennard-Jones molecular diameter. Uses critical volume. CSP method by [R426] as reported in[R427].
𝜎 = 0.561(𝑉 1/3𝑐 )5/4
Parameters Vc : float
Critical volume of fluid [m^3/mol]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
1.1. thermo package 249
thermo Documentation, Release 0.1
Notes
Vc is originally in units of mL/mol.
References
[R426], [R427]
Examples
>>> sigma_Flynn(0.000268)5.2506948422196285
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_critical_2(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R428].
𝜎 = 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
[R428]
Examples
>>> sigma_Bird_Stewart_Lightfoot_critical_2(560.1, 4550000)5.658657684653222
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_critical_1(Vc)Calculates Lennard-Jones molecular diameter. Uses critical volume. CSP method by [R429].
𝜎 = 0.841𝑉 1/3𝑐
Parameters Vc : float
Critical volume of fluid [m^3/mol]
250 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
Notes
Original units of Vc are mL/mol.
References
[R429]
Examples
>>> sigma_Bird_Stewart_Lightfoot_critical_1(0.000268)5.422184116631474
thermo.lennard_jones.sigma_Bird_Stewart_Lightfoot_boiling(Vb)Calculates Lennard-Jones molecular diameter. Uses molar volume of liquid at boiling. CSP method by [R430].
𝜎 = 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
[R430]
Examples
>>> sigma_Bird_Stewart_Lightfoot_boiling(0.0001015)5.439018856944655
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 [R431].
𝜎 = 1.222𝑉1/3𝑚,𝑠𝑜𝑙
Parameters Vm : float
1.1. thermo package 251
thermo Documentation, Release 0.1
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
[R431]
Examples
>>> sigma_Bird_Stewart_Lightfoot_melting(8.8e-05)5.435407341351406
thermo.lennard_jones.sigma_Stiel_Thodos(Vc, Zc)Calculates Lennard-Jones molecular diameter. Uses critical volume and compressibility. CSP method by[R432].
𝜎 = 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
[R432]
Examples
Monofluorobenzene
>>> sigma_Stiel_Thodos(0.000271, 0.265)5.94300853971033
252 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.lennard_jones.sigma_Tee_Gotoh_Steward_1(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R433].
𝜎 = 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 [R433] but are notincluded here, except for sigma_Tee_Gotoh_Steward_2.
References
[R433]
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 [R434].
𝜎 = (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, [-]
Returns sigma : float
Lennard-Jones molecular diameter, [Angstrom]
1.1. thermo package 253
thermo Documentation, Release 0.1
Notes
Original units of Pc are atm. Further regressions with other parameters were performed in [R434] but are notincluded here, except for sigma_Tee_Gotoh_Steward_1.
References
[R434]
Examples
>>> sigma_Tee_Gotoh_Steward_2(560.1, 4550000, 0.245)5.412104867264477
thermo.lennard_jones.sigma_Silva_Liu_Macedo(Tc, Pc)Calculates Lennard-Jones molecular diameter. Uses critical temperature and pressure. CSP method by [R435].
𝜎3𝐿𝐽 = 0.17791 + 11.779
(𝑇𝑐𝑃𝑐
)− 0.049029
(𝑇𝑐𝑃𝑐
)2
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
[R435]
Examples
>>> sigma_Silva_Liu_Macedo(560.1, 4550000)5.164483998730177
thermo.lennard_jones.epsilon_Flynn(Tc)Calculates Lennard-Jones depth of potential-energy minimum. Uses critical temperature. CSP method by[R436] as reported in [R437].
𝜖/𝑘 = 1.77𝑇 5/6𝑐
254 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters Tc : float
Critical temperature of fluid [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R436], [R437]
Examples
>>> epsilon_Flynn(560.1)345.2984087011443
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_critical(Tc)Calculates Lennard-Jones depth of potential-energy minimum. Uses critical temperature. CSP method by[R438].
𝜖/𝑘 = 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
[R438]
Examples
>>> epsilon_Bird_Stewart_Lightfoot_critical(560.1)431.27700000000004
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_boiling(Tb)Calculates Lennard-Jones depth of potential-energy minimum. Uses boiling temperature. CSP method by[R439].
𝜖/𝑘 = 1.15𝑇𝑏
Parameters Tb : float
Boiling temperature [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
1.1. thermo package 255
thermo Documentation, Release 0.1
References
[R439]
Examples
>>> epsilon_Bird_Stewart_Lightfoot_boiling(357.85)411.5275
thermo.lennard_jones.epsilon_Bird_Stewart_Lightfoot_melting(Tm)Calculates Lennard-Jones depth of potential-energy minimum. Uses melting temperature. CSP method by[R440].
𝜖/𝑘 = 1.92𝑇𝑚
Parameters Tm : float
Melting temperature [K]
Returns epsilon_k : float
Lennard-Jones depth of potential-energy minimum over k, [K]
References
[R440]
Examples
>>> epsilon_Bird_Stewart_Lightfoot_melting(231.15)443.808
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 [R441].
𝜖/𝑘 = 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
[R441]
256 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Fluorobenzene
>>> 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[R442].
𝜖/𝑘 = 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 [R442] but are not included here, except for ep-silon_Tee_Gotoh_Steward_2.
References
[R442]
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 [R443].
𝜖/𝑘 = (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]
1.1. thermo package 257
thermo Documentation, Release 0.1
Notes
Further regressions with other parameters were performed in [R443] but are not included here, except for ep-silon_Tee_Gotoh_Steward_1.
References
[R443]
Examples
>>> epsilon_Tee_Gotoh_Steward_2(560.1, 0.245)466.55125785
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 [R444].
Ω𝐷 =𝐴
𝑇 *𝐵 +𝐶
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
[R444]
258 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> collision_integral_Neufeld_Janzen_Aziz(100, 1, 1)0.516717697672334
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 [R446].
Ω(𝑙,𝑠)* = 𝐴(𝑙,𝑠) +
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
[R446]
Examples
>>> collision_integral_Kim_Monroe(400, 1, 1)0.4141818082392228
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 259
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
[R448]
Examples
>>> Tstar(T=318.2, epsilon_k=308.43)1.0316765554582887
thermo.miscdata module
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 [R449].
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
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.
260 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R449]
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
thermo.permittivity.permittivity_IAPWS(T, rho)Calculate the relative permittivity of pure water as a function of. temperature and density. Assumes the 1997IAPWS [R450] 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:
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];
1.1. thermo package 261
thermo Documentation, Release 0.1
polarizability = 1.636E-40 dipole = 6.138E-30
References
[R450]
Examples
>>> permittivity_IAPWS(373., 958.46)55.56584297721836
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
To iterate over all methods, use the list stored in permittivity_methods.
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 [R451].
CRC_CONSTANT: Constant permittivity values at specified temperatures only. Data is from [R451], and isavailable for 1303 liquids.
References
[R451]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
262 Chapter 1. thermo
thermo Documentation, Release 0.1
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate permittivity of a liquid at tempera-ture T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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)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
1.1. thermo package 263
thermo Documentation, Release 0.1
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’, ‘CRC_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. 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
264 Chapter 1. thermo
thermo Documentation, Release 0.1
Temperature at which to test the method, [K]
method : str
Name of the method to test
Returns validity : bool
Whether or not a method is valid
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.phase_change module
thermo.phase_change.Tb(CASRN, AvailableMethods=False, Method=None, IgnoreMeth-ods=[’PSAT_DEFINITION’])
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
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_ORG’, a compillation of data on organics as published in [R452].
•‘CRC_INORG’, a compillation of data on inorganic as published in [R452].
•‘YAWS’, a large compillation of data from a variety of sources; no data points are sourced in the work of[R453].
1.1. thermo package 265
thermo Documentation, Release 0.1
•‘PSAT_DEFINITION’, calculation of boiling point from a vapor pressure calculation. This is normallyoff by a fraction of a degree even in the best cases. Listed in IgnoreMethods by default for performancereasons.
References
[R452], [R453]
Examples
>>> Tb('7732-18-5')373.124
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.
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_NTBKM, a compillation of data on organics as published in [R454] as Open Notebook MeltingPoints; Averaged (median) values were used when multiple points were available. For more informationon this invaluable and excellent collection, see http://onswebservices.wikispaces.com/meltingpoint.
•‘CRC_ORG’, a compillation of data on organics as published in [R455].
•‘CRC_INORG’, a compillation of data on inorganic as published in [R455].
266 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R454], [R455]
Examples
>>> Tm(CASRN='7732-18-5')273.15
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]
Notes
No original source is available for this equation. [R456] 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
[R456]
1.1. thermo package 267
thermo Documentation, Release 0.1
Examples
Problem from Perry’s examples.
>>> Clapeyron(T=294.0, Tc=466.0, Pc=5.55E6)26512.354585061985
thermo.phase_change.Pitzer(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a fit by [R458] to the work of Pitzer [R457];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 [R459], page 2-487 as method #2 for estimating Hvap. This cites [R458].
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
[R457], [R458], [R459]
Examples
Example as in [R459], p2-487; exp: 37.51 kJ/mol
>>> Pitzer(452, 645.6, 0.35017)36696.736640106414
thermo.phase_change.SMK(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R460]; requires a chemical’scritical temperature and acentric factor.
268 Chapter 1. thermo
thermo Documentation, Release 0.1
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 − 𝑇/𝑇𝑐
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
[R460]
Examples
Problem in [R460]:
>>> SMK(553.15, 751.35, 0.302)39866.17647797959
thermo.phase_change.MK(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R461]; requires a chemical’scritical temperature and acentric factor.
1.1. thermo package 269
thermo Documentation, Release 0.1
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.
References
[R461]
Examples
Problem in article for SMK function.
>>> MK(553.15, 751.35, 0.302)38727.993546377205
thermo.phase_change.Velasco(T, Tc, omega)Calculates enthalpy of vaporization at arbitrary temperatures using a the work of [R462]; 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]
270 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float
Acentric factor [-]
Returns Hvap : float
Enthalpy of vaporization, [J/mol]
Notes
The original article has been reviewed. It is regressed from enthalpy of vaporization values at 0.7Tr, from 121fluids in REFPROP 9.1. A value in the article was read to be similar, but slightly too low from that calculatedhere.
References
[R462]
Examples
From graph, in [R462] for perfluoro-n-heptane.
>>> Velasco(333.2, 476.0, 0.5559)33299.41734936356
thermo.phase_change.Riedel(Tb, Tc, Pc)Calculates enthalpy of vaporization at the boiling point, using the Ridel [R463] CSP method. Required infor-mation are critical temperature and pressure, and boiling point. Equation taken from [R464] and [R465].
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%.
[R464] is the source of example work here, showing a calculation at 0.0% error.
Internal units of pressure are bar.
1.1. thermo package 271
thermo Documentation, Release 0.1
References
[R463], [R464], [R465]
Examples
Pyridine, 0.0% err vs. exp: 35090 J/mol; from Poling [R464].
>>> Riedel(388.4, 620.0, 56.3E5)35089.78989646058
thermo.phase_change.Chen(Tb, Tc, Pc)Calculates enthalpy of vaporization using the Chen [R466] 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
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 [R467] 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
[R466], [R467]
Examples
Same problem as in Perry’s examples.
>>> Chen(294.0, 466.0, 5.55E6)26705.893506174052
272 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.phase_change.Liu(Tb, Tc, Pc)Calculates enthalpy of vaporization at the normal boiling point using the Liu [R468] 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]
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
[R468]
Examples
Same problem as in Perry’s examples
>>> Liu(294.0, 466.0, 5.55E6)26378.566319606754
thermo.phase_change.Vetere(Tb, Tc, Pc, F=1)Calculates enthalpy of vaporization at the boiling point, using the Vetere [R469] CSP method. Required infor-mation are critical temperature and pressure, and boiling point. Equation taken from [R470].
The enthalpy of vaporization is given by:
∆𝐻𝑣𝑎𝑝
𝑅𝑇𝑏=𝜏0.38𝑏
[ln𝑃𝑐 − 0.513 + 0.5066
𝑃𝑐𝑇 2𝑏𝑟
]𝜏𝑏 + 𝐹 (1 − 𝜏0.38𝑏 ) ln𝑇𝑏𝑟
Parameters Tb : float
1.1. thermo package 273
thermo Documentation, Release 0.1
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]
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
[R469], [R470]
Examples
Example as in [R470], 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 = [’DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘COOLPROP’, ‘VDI_TABULAR’, ‘MORGAN_KOBAYASHI’, ‘SIVARAMAN_MAGEE_KOBAYASHI’, ‘VELASCO’, ‘PITZER’, ‘ALIBAKHSHI’, ‘CRC_HVAP_TB’, ‘CRC_HVAP_298’, ‘GHARAGHEIZI_HVAP_298’, ‘CLAPEYRON’, ‘RIEDEL’, ‘CHEN’, ‘VETERE’, ‘LIU’]Holds all methods available for the EnthalpyVaporization class, for use in iterating over them.
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, three coefficient-based methods, nine corresponding-states estima-tors, and the external library CoolProp.
Parameters Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
274 Chapter 1. thermo
thermo Documentation, Release 0.1
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
The CAS number of the chemical
See also:
MK, SMK, Velasco, Clapeyron, Riedel, Chen, Vetere, Liu, Watson
Notes
To iterate over all methods, use the list stored in enthalpy_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 [R474] 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 [R474] 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 [R475] at 298.15 K. This is adusted with theWatson equation unless Tc is not available. Data is available for 2730 chemicals.
1.1. thermo package 275
thermo Documentation, Release 0.1
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R473]. Very slow but accurate.
VDI_TABULAR: Tabular data in [R474] along the saturation curve; interpolation is as set by the user or thedefault.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R473]. Extrapo-lates poorly at low temperatures.
DIPPR_PERRY_8E: A collection of 344 coefficient sets from the DIPPR database published openly in[R476]. Provides temperature limits for all its fluids. thermo.dippr.EQ106 is used for its fluids.
ALIBAKHSHI: One-constant limited temperature range regression method presented in [R477], with con-stants for ~2000 chemicals from the DIPPR database. Valid up to 100 K below the critical point, and 50 Kunder the boiling point.
References
[R471], [R472], [R473], [R474], [R475], [R476], [R477]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate heat of vaporization of a liquid attemperature T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
Continued on next page
276 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.42 – 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 DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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 = [’MORGAN_KOBAYASHI’, ‘SIVARAMAN_MAGEE_KOBAYASHI’, ‘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
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.
1.1. thermo package 277
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.
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’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘MORGAN_KOBAYASHI’, ‘SIVARAMAN_MAGEE_KOBAYASHI’, ‘VELASCO’, ‘PITZER’, ‘ALIBAKHSHI’, ‘CRC_HVAP_TB’, ‘CRC_HVAP_298’, ‘GHARAGHEIZI_HVAP_298’, ‘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 bemade. 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
278 Chapter 1. thermo
thermo Documentation, Release 0.1
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.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.reaction module
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
1.1. thermo package 279
thermo Documentation, Release 0.1
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 [R479]. Some chemicals with duplicated CAS numbers were removed.
References
[R479]
Examples
>>> Hf(CASRN='7732-18-5')-241820.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
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:
•‘ATCT_L’, the Active Thermochemical Tables version 1.112.
280 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R480]
Examples
>>> Hf_l('67-56-1')-238400.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:
•‘ATCT_G’, the Active Thermochemical Tables version 1.112.
•‘TRC’, from a 1994 compilation.
References
[R481], [R482]
Examples
>>> Hf_g('67-56-1')-200700.0
1.1. thermo package 281
thermo Documentation, Release 0.1
thermo.refractivity module
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 the 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
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’, a compillation of Organic RI data in [R483].
References
[R483]
Examples
>>> refractive_index(CASRN='64-17-5')(1.3611, 293.15)
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
)𝑉𝑚
282 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R484]
Examples
>>> polarizability_from_RI(1.3611, 5.8676E-5)5.147658123614415e-30
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
[R485]
Examples
>>> molar_refractivity_from_RI(1.3611, 5.8676E-5)1.2985217089649597e-05
1.1. thermo package 283
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
[R486]
Examples
>>> RI_from_molar_refractivity(1.2985e-5, 5.8676E-5)1.3610932757685672
thermo.safety module
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 [R487].
284 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R487]
Examples
>>> ppmv_to_mgm3(1, 40)1.6349623351068687
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 [R488].
References
[R488]
Examples
>>> mgm3_to_ppmv(1.635, 40)1.0000230371625833
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.
1.1. thermo package 285
thermo Documentation, Release 0.1
>>> TWA('98-00-0')(10.0, 'ppm')>>> TWA('1303-00-0')(5.0742430905659505e-05, 'ppm')>>> TWA('7782-42-5', AvailableMethods=True)['Ontario Limits', 'None']
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.7489774978301237, 'ppm')>>> STEL('55720-99-5')(2.0, 'mg/m^3')>>> STEL('86290-81-5', AvailableMethods=True)['Ontario Limits', 'None']
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.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.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
286 Chapter 1. thermo
thermo Documentation, Release 0.1
Carcinogen status information [-]
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, [R489]. 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, [R490]. Has data on 226 chemicals.
References
[R489], [R490]
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.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)’ [R491], with the secondary source ‘NFPA 497 (2008)’ [R492]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
1.1. thermo package 287
thermo Documentation, Release 0.1
A string for the method name to use, as defined by constants in Tflash_methods
AvailableMethods : bool, optional
If True, function will determine which methods can be used to obtain Tflash for thedesired chemical, and will return methods instead of Tflash
References
[R491], [R492]
Examples
>>> Tflash(CASRN='64-17-5')285.15
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)’ [R493], with the secondary source ‘NFPA 497 (2008)’ [R494]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
[R493], [R494]
Examples
>>> Tautoignition(CASRN='71-43-2')771.15
288 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.safety.LFL(Hc=None, atoms=, CASRN=’‘, AvailableMethods=False, Method=None)This function handles the retrieval or calculation of a chemical’s Lower Flammability Limit. Lookup is basedon CASRNs. Two predictive methods are currently implemented. Will automatically select a data source to useif no Method is provided; returns None if the data is not available.
Prefered source is ‘IEC 60079-20-1 (2010)’ [R495], with the secondary source ‘NFPA 497 (2008)’ [R496]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, [mole 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
[R495], [R496]
Examples
>>> LFL(CASRN='71-43-2')0.012
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)’ [R497], with the secondary source ‘NFPA 497 (2008)’ [R498]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]
1.1. thermo package 289
thermo Documentation, Release 0.1
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, [mole 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
[R497], [R498]
Examples
>>> UFL(CASRN='71-43-2')0.086
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.
>>> 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.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'])
290 Chapter 1. thermo
thermo Documentation, Release 0.1
0.023964903630937385
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.Suzuki_LFL(Hc=None)Calculates lower flammability limit, using the Suzuki [R499] 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
[R499]
Examples
Pentane, 1.5 % LFL in literature
1.1. thermo package 291
thermo Documentation, Release 0.1
>>> Suzuki_LFL(-3536600)0.014276107095811815
thermo.safety.Suzuki_UFL(Hc=None)Calculates upper flammability limit, using the Suzuki [R500] 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
[R500]
Examples
Pentane, literature 7.8% UFL
>>> Suzuki_UFL(-3536600)0.0831119493052
thermo.safety.Crowl_Louvar_LFL(atoms)Calculates lower flammability limit, using the Crowl-Louvar [R501] 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
Dictionary of atoms and atom counts
Returns LFL : float
Lower flammability limit, mole fraction
292 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Coefficient of 0.55 taken from [R502]
References
[R501], [R502]
Examples
Hexane, example from [R501], 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 [R503] 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 [R504]
References
[R503], [R504]
Examples
Hexane, example from [R503], lit. 7.5 %
>>> Crowl_Louvar_UFL('H': 14, 'C': 6)0.07572479446127219
1.1. thermo package 293
thermo Documentation, Release 0.1
thermo.solubility module
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.
𝛿 =
√∆𝐻𝑣𝑎𝑝 −𝑅𝑇
𝑉𝑚
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
[R505]
294 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
Pentane at STP
>>> solubility_parameter(T=298.2, Hvapm=26403.3, Vml=0.000116055)14357.681538173534
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
[R506]
Examples
From [R506], matching example
>>> solubility_eutectic(T=260., Tm=278.68, Hm=9952., Cpl=0, Cps=0, gamma=3.0176)0.24340068761677464
1.1. thermo package 295
thermo Documentation, Release 0.1
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
[R507]
Examples
From [R507], matching example.
>>> Tm_depression_eutectic(353.35, 19110, .02)1.0864594900639515
thermo.temperature module
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.
296 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
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
[R508], [R509]
Examples
>>> T_converter(500, 'ITS-68', 'ITS-48')499.9470092992346
thermo.temperature.ITS90_68_difference(T)Calculates the difference between ITS-90 and ITS-68 scales using a series of models listed in [R510], [R511],and [R512].
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/∘𝐶]𝑖
1.1. thermo package 297
thermo Documentation, Release 0.1
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 [R513], the difference is under 0.05 mK from 73.15 K to903.15 K, and under 0.26 mK up to 1337.33 K.
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
[R510], [R511], [R512], [R513]
Examples
>>> ITS90_68_difference(1000.)0.01231818956580355
thermo.thermal_conductivity module
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
298 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters T : float
Temperature of the fluid [K]
M : float
Molecular weight of the fluid [g/mol]
Tm : float
Melting point of the fluid [K]
Returns kl : float
Thermal conductivity of the fluid, W/m/k
Notes
The origin of this equation has been challenging to trace. It is presently unknown, and untested.
References
[R514]
Examples
>>> Sheffy_Johnson(300, 47, 280)0.17740150413112196
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[R515], [R516], published in Reid [R517]. 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]
1.1. thermo package 299
thermo Documentation, Release 0.1
Notes
This equation has a complicated history. It is proposed by Reid [R517]. Limited accuracy should be expected.Uncheecked.
References
[R515], [R516], [R517]
Examples
>>> Sato_Riedel(300, 47, 390, 520)0.21037692461337687
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
[R518]
Examples
>>> Lakshmi_Prasad(273.15, 100)0.013664450000000009
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[R519]. A convoluted method claiming high-accuracy and using only statistically significant variable followinganalalysis.
300 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
References
[R519]
Examples
>>> Gharagheizi_liquid(300, 40, 350, 1E6, 0.27)0.2171113029534838
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[R520]. 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
1.1. thermo package 301
thermo Documentation, Release 0.1
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.
References
[R520]
Examples
>>> Nicola_original(300, 142.3, 611.7, 0.49, 201853)0.2305018632230984
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 [R521]. 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]
302 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float
Acentric factor of the fluid [-]
Returns kl : float
Estimated liquid thermal conductivity [W/m/k]
Notes
A statistical correlation. A revision of an original correlation.
References
[R521]
Examples
>>> Nicola(300, 142.3, 611.7, 2110000.0, 0.49)0.10863821554584034
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
[R522]
1.1. thermo package 303
thermo Documentation, Release 0.1
Examples
Data point from [R522].
>>> Bahadori_liquid(273.15, 170)0.14274278108272603
thermo.thermal_conductivity.thermal_conductivity_liquid_methods = [’COOLPROP’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘GHARAGHEIZI_L’, ‘SHEFFY_JOHNSON’, ‘SATO_RIEDEL’, ‘LAKSHMI_PRASAD’, ‘BAHADORI_L’, ‘NICOLA’, ‘NICOLA_ORIGINAL’]Holds all low-pressure methods available for the ThermalConductivityLiquid class, for use in iterating overthem.
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, thereis one source of tabular information, one polynomial-based method, 7 corresponding-states estimators, and theexternal library CoolProp.
For high-pressure liquids (also, <1 atm liquids), there are two corresponding-states estimator, and the externallibrary CoolProp.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
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
304 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
To iterate over all methods, use the lists stored in thermal_conductivity_liquid_methods andthermal_conductivity_liquid_methods_P for low and high pressure methods respectively.
Low pressure methods:
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.
DIPPR_PERRY_8E: A collection of 340 coefficient sets from the DIPPR database published openly in[R525]. Provides temperature limits for all its fluids. thermo.dippr.EQ100 is used for its fluids.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R524]. Covers alarge temperature range, but does not extrapolate well at very high or very low temperatures. 271 com-pounds.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R523]. Very slow.
VDI_TABULAR: Tabular data in [R524] 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 [R523]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R523], [R524], [R525]
1.1. thermo package 305
thermo Documentation, Release 0.1
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
calculate(T, method) Method to calculate low-pressure liquid thermal con-ductivity at tempearture T with a given method.
calculate_P(T, P, method) Method to calculate pressure-dependent liquid thermalconductivity at temperature T and pressure P with agiven method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
Continued on next page
306 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.43 – continued from previous pagecalculate_integral(T1, T2, method) Method to calculate the integral of a property with re-
spect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-
perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis 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 liquid thermal conductivity above.
Tmin = NoneMinimum temperature at which no method can calculate the liquid thermal conductivity 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 by
1.1. thermo package 307
thermo Documentation, Release 0.1
load_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.
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.
308 Chapter 1. thermo
thermo Documentation, Release 0.1
property_min = 0Mimimum valid value of liquid thermal conductivity.
ranked_methods = [’COOLPROP’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘GHARAGHEIZI_L’, ‘SHEFFY_JOHNSON’, ‘SATO_RIEDEL’, ‘LAKSHMI_PRASAD’, ‘BAHADORI_L’, ‘NICOLA’, ‘NICOLA_ORIGINAL’]Default rankings of the low-pressure methods.
ranked_methods_P = [’COOLPROP’, ‘DIPPR_9G’, ‘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.
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
1.1. thermo package 309
thermo Documentation, Release 0.1
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
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.DIPPR9G(T, P, Tc, Pc, kl)Adjustes for pressure the thermal conductivity of a liquid using an emperical formula based on [R526], but asgiven in [R527].
𝑘 = 𝑘*[0.98 + 0.0079𝑃𝑟𝑇
1.4𝑟 + 0.63𝑇 1.2
𝑟
(𝑃𝑟
30 + 𝑃𝑟
)]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]
310 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R526], [R527]
Examples
From [R527], for butyl acetate.
>>> DIPPR9G(515.05, 3.92E7, 579.15, 3.212E6, 7.085E-2)0.0864419738671184
thermo.thermal_conductivity.Missenard(T, P, Tc, Pc, kl)Adjustes for pressure the thermal conductivity of a liquid using an emperical formula based on [R528], but asgiven in [R529].
𝑘
𝑘*= 1 +𝑄𝑃 0.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]
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.
1.1. thermo package 311
thermo Documentation, Release 0.1
References
[R528], [R529]
Examples
Example from [R529], toluene; matches.
>>> Missenard(304., 6330E5, 591.8, 41E5, 0.129)0.2198375777069657
thermo.thermal_conductivity.DIPPR9H(ws, ks)Calculates thermal conductivity of a liquid mixture according to mixing rules in [R530] and also in [R531].
𝜆𝑚 =
(∑𝑖
𝑤𝑖𝜆−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]
Notes
This equation is entirely dimensionless; all dimensions cancel. The example is from [R531]; 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
[R530], [R531]
Examples
>>> DIPPR9H([0.258, 0.742], [0.1692, 0.1528])0.15657104706719646
thermo.thermal_conductivity.Filippov(ws, ks)Calculates thermal conductivity of a binary liquid mixture according to mixing rules in [R533] as found in[R532].
𝜆𝑚 = 𝑤1𝜆1 + 𝑤2𝜆2 − 0.72𝑤1𝑤2(𝜆2 − 𝜆1)
312 Chapter 1. thermo
thermo Documentation, Release 0.1
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]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed. Onlyuseful for binary mixtures.
References
[R532], [R533]
Examples
>>> Filippov([0.258, 0.742], [0.1692, 0.1528])0.15929167628799998
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[R534].
𝜆𝑀
𝜂𝐶𝑣= 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.
1.1. thermo package 313
thermo Documentation, Release 0.1
References
[R534]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R534].
>>> 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 [R535].
𝜆𝑀
𝜂𝐶𝑣= 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
[R535]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R535].
>>> Eucken_modified(MW=72.151, Cvm=135.9, mu=8.77E-6)0.023593536999201956
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 [R536],[R537], and presented in [R538].
314 Chapter 1. thermo
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
[R536], [R537], [R538]
Examples
CO:
>>> DIPPR9B(200., 28.01, 20.826, 1.277E-5, 132.92, chemtype='linear')0.01813208676438415
1.1. thermo package 315
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 [R539].
𝜆𝑀
𝜂𝐶𝑣=
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
[R539], [R540]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R540].
>>> Chung(T=373.15, MW=72.151, Tc=460.4, omega=0.227, Cvm=135.9, mu=8.77E-6)0.023015653729496946
316 Chapter 1. thermo
thermo Documentation, Release 0.1
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 Eliand Hanley [R541] as shown in [R542].
𝜆 = 𝜆* +𝜂*
𝑀𝑊(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]
1.1. thermo package 317
thermo Documentation, Release 0.1
Notes
Reference fluid is Methane. MW internally converted to kg/g-mol.
References
[R541], [R542]
Examples
2-methylbutane at low pressure, 373.15 K. Mathes calculation in [R542].
>>> 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.02247951789135337
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[R543]. 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]
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 [R543] is the firstpoint in the supportinf info, for CH4.
318 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R543]
Examples
>>> Gharagheizi_gas(580., 16.04246, 111.66, 4599000.0, 0.0115478000)0.09594861261873211
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]
Notes
The accuracy of this equation has not been reviewed.
References
[R544]
Examples
>>> Bahadori_gas(40+273.15, 20) # Point from article0.031968165337873326
thermo.thermal_conductivity.thermal_conductivity_gas_methods = [’LINDSAY_BROMLEY’, ‘SIMPLE’]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_DENSE’]Holds all high-pressure methods available for the ThermalConductivityGas class, for use in iterating over them.
1.1. thermo package 319
thermo Documentation, Release 0.1
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 CASs : list[str], optional
The CAS numbers of all species in the mixture
MW : float, optional
Molecular weight, [g/mol]
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 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]
320 Chapter 1. thermo
thermo Documentation, Release 0.1
See also:
Bahadori_gas, Gharagheizi_gas, eli_hanley , Chung, DIPPR9B, Eucken_modified,Eucken, stiel_thodos_dense, eli_hanley_dense, chung_dense
Notes
To iterate over all methods, use the lists stored in thermal_conductivity_gas_methods andthermal_conductivity_gas_methods_P for low 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.
DIPPR_PERRY_8E: A collection of 345 coefficient sets from the DIPPR database published openly in[R547]. Provides temperature limits for all its fluids. thermo.dippr.EQ102 is used for its fluids.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R546]. Covers alarge temperature range, but does not extrapolate well at very high or very low temperatures. 275 com-pounds.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R545]. Very slow.
VDI_TABULAR: Tabular data in [R546] 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 [R545]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R545], [R546], [R547]
1.1. thermo package 321
thermo Documentation, Release 0.1
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
calculate(T, method) Method to calculate low-pressure gas thermal conduc-tivity at tempearture T with a given method.
calculate_P(T, P, method) Method to calculate pressure-dependent gas thermalconductivity at temperature T and pressure P with agiven method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
Continued on next page
322 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.44 – continued from previous pagecalculate_integral(T1, T2, method) Method to calculate the integral of a property with re-
spect to temperature, using a specified method.calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-
perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis 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 gas thermal conductivity above.
Tmin = NoneMinimum temperature at which no method can calculate the gas thermal conductivity 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 by
1.1. thermo package 323
thermo Documentation, Release 0.1
load_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
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.
324 Chapter 1. thermo
thermo Documentation, Release 0.1
property_min = 0Mimimum valid value of gas thermal conductivity.
ranked_methods = [’COOLPROP’, ‘VDI_PPDS’, ‘DIPPR_PERRY_8E’, ‘VDI_TABULAR’, ‘GHARAGHEIZI_G’, ‘DIPPR_9B’, ‘CHUNG’, ‘ELI_HANLEY’, ‘EUCKEN_MOD’, ‘EUCKEN’, ‘BAHADORI_G’]Default rankings of the low-pressure methods.
ranked_methods_P = [’COOLPROP’, ‘ELI_HANLEY_DENSE’, ‘CHUNG_DENSE’, ‘STIEL_THODOS_DENSE’]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 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
1.1. thermo package 325
thermo Documentation, Release 0.1
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.
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.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 [R548] as shown in [R549].
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
Parameters T : float
Temperature of the gas [K]
MW : float
Molecular weight of the gas [g/mol]
326 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R548], [R549]
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.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 reference
1.1. thermo package 327
thermo Documentation, Release 0.1
fluid method of Eli and Hanley [R550] as shown in [R551].
𝑇𝑟 = 𝑚𝑖𝑛(𝑇𝑟, 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]
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
328 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R550], [R551]
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.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 [R552] as shown in [R553].
𝜆 =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
1.1. thermo package 329
thermo Documentation, Release 0.1
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
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. [R552] is not the latest form aspresented in [R552]. 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
[R552], [R553]
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
330 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.thermal_conductivity.Lindsay_Bromley(T, ys, ks, mus, Tbs, MWs)Calculates thermal conductivity of a gas mixture according to mixing rules in [R554] and also in [R555].
𝑘 =∑ 𝑦𝑖𝑘𝑖∑
𝑦𝑖𝐴𝑖𝑗
𝐴𝑖𝑗 =1
4
⎧⎨⎩1 +
[𝜂𝑖𝜂𝑗
(𝑀𝑊𝑗
𝑀𝑊𝑖
)0.75(𝑇 + 𝑆𝑖
𝑇 + 𝑆𝑗
)]0.5⎫⎬⎭2(
𝑇 + 𝑆𝑖𝑗
𝑇 + 𝑆𝑖
)𝑆𝑖𝑗 = 𝑆𝑗𝑖 = (𝑆𝑖𝑆𝑗)
0.5
Parameters T : float
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 [R555]; 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 [R555], from 1342 points; also six ternarymixtures (70 points); max deviation observed was 40%. (DIPPR)
TODO: Finish documenting this.
References
[R554], [R555]
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
1.1. thermo package 331
thermo Documentation, Release 0.1
class thermo.thermal_conductivity.ThermalConductivityGasMixture(MWs=[], Tbs=[],CASs=[], Ther-malConductivity-Gases=[], Viscos-ityGases=[])
Bases: thermo.utils.MixtureProperty
Class for dealing with thermal conductivity of a gas mixture as a function of temperature, pressure, and compo-sition. Consists of one mixing rule specific to gas thremal conductivity, and mole weighted averaging.
Prefered method is Lindsay_Bromley which requires mole fractions, pure component viscosities and ther-mal conductivities, and the boiling point and molecular weight of each pure component. This is substantiallybetter than the ideal mixing rule based on mole fractions, SIMPLE which is also available.
Parameters MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
Tbs : list[float], optional
Boiling points of all species in the mixture, [K]
CASs : str, optional
The CAS numbers of all species in the mixture
ThermalConductivityGases : list[ThermalConductivityGas], optional
ThermalConductivityGas objects created for all species in the mixture, normally createdby thermo.chemical.Chemical.
ViscosityGases : list[ViscosityGas], optional
ViscosityGas objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
See also:
Lindsay_Bromley
Notes
To iterate over all methods, use the list stored in thermal_conductivity_gas_methods.
LINDSAY_BROMLEY: Mixing rule described in Lindsay_Bromley .
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
References
[R556]
Attributes
TP_zs_ws_cachedmethodprop_cached
332 Chapter 1. thermo
thermo Documentation, Release 0.1
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate thermal conductivity of a gas mix-ture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the gas thermal conductivity above.
Tmin = NoneMinimum temperature at which no method can calculate the gas thermal conductivity under.
all_methods = NoneSet of all methods available for a given set of information; filled by load_all_methods.
1.1. thermo package 333
thermo Documentation, Release 0.1
calculate(T, P, zs, ws, method)Method to calculate thermal conductivity of a gas mixture at temperature T, pressure P, mole fractions zsand weight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns kg : float
Thermal conductivity of gas mixture, [W/m/K]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 = 10.0Maximum valid value of gas thermal conductivity. Generous limit.
property_min = 0.0Mimimum valid value of gas thermal conductivity.
ranked_methods = [’LINDSAY_BROMLEY’, ‘SIMPLE’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
334 Chapter 1. thermo
thermo Documentation, Release 0.1
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
thermo.triple module
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 [R557], or a chemical’s melting point if available.
Parameters CASRN : string
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
[R557]
1.1. thermo package 335
thermo Documentation, Release 0.1
Examples
Ammonia
>>> Tt('7664-41-7')195.47999999999999
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 [R558], 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
[R558]
Examples
Ammonia
>>> Pt('7664-41-7')6079.5
thermo.unifac module
thermo.unifac.UNIFAC(T, xs, chemgroups, cached=None, subgroup_data=None, interac-tion_data=None, modified=False)
Calculates activity coefficients using the UNIFAC model (optionally modified), given a mixture’s temperature,liquid mole fractions, and optionally the subgroup data and interaction parameter data of your choice. Thedefault is to use the original UNIFAC model, with the latest parameters published by DDBST. The modelsupports modified forms (Dortmund, NIST) when the modified parameter is True.
Parameters T : float
Temperature of the system, [K]
336 Chapter 1. thermo
thermo Documentation, Release 0.1
xs : list[float]
Mole fractions of all species in the system in the liquid phase, [-]
chemgroups : list[dict]
List of dictionaries of subgroup IDs and their counts for all species in the mixture, [-]
subgroup_data : dict[UNIFAC_subgroup]
UNIFAC subgroup data; available dictionaries in this module are UFSG (original),DOUFSG (Dortmund), or NISTUFSG ([R562]).
interaction_data : dict[dict[tuple(a_mn, b_mn, c_mn)]]
UNIFAC interaction parameter data; available dictionaries in this module are UFIP(original), DOUFIP2006 (Dortmund parameters as published by 2006), DOUFIP2016(Dortmund parameters as published by 2016), and NISTUFIP ([R562]).
modified : bool
True if using the modified form and temperature dependence, otherwise False.
Returns gammas : list[float]
Activity coefficients of all species in the mixture, [-]
Notes
The actual implementation of UNIFAC is formulated slightly different than the formulas above for computa-tional efficiency. DDBST switched to using the more efficient forms in their publication, but the numericalresults are identical.
The model is as follows:
ln 𝛾𝑖 = ln 𝛾𝑐𝑖 + ln 𝛾𝑟𝑖
Combinatorial component
ln 𝛾𝑐𝑖 = ln𝜑𝑖𝑥𝑖
+𝑧
2𝑞𝑖 ln
𝜃𝑖𝜑𝑖
+ 𝐿𝑖 −𝜑𝑖𝑥𝑖
𝑛∑𝑗=1
𝑥𝑗𝐿𝑗
𝜃𝑖 =𝑥𝑖𝑞𝑖∑𝑛
𝑗=1 𝑥𝑗𝑞𝑗
𝜑𝑖 =𝑥𝑖𝑟𝑖∑𝑛
𝑗=1 𝑥𝑗𝑟𝑗
𝐿𝑖 = 5(𝑟𝑖 − 𝑞𝑖) − (𝑟𝑖 − 1)
Residual component
ln 𝛾𝑟𝑖 =
𝑛∑𝑘
𝜈(𝑖)𝑘
[ln Γ𝑘 − ln Γ
(𝑖)𝑘
]ln Γ𝑘 = 𝑄𝑘
[1 − ln
∑𝑚
Θ𝑚Ψ𝑚𝑘 −∑𝑚
Θ𝑚Ψ𝑘𝑚∑𝑛 Θ𝑛Ψ𝑛𝑚
]
Θ𝑚 =𝑄𝑚𝑋𝑚∑𝑛𝑄𝑛𝑋𝑛
𝑋𝑚 =
∑𝑗 𝜈
𝑗𝑚𝑥𝑗∑
𝑗
∑𝑛 𝜈
𝑗𝑛𝑥𝑗
1.1. thermo package 337
thermo Documentation, Release 0.1
R and Q
𝑟𝑖 =
𝑛∑𝑘=1
𝜈𝑘𝑅𝑘
𝑞𝑖 =
𝑛∑𝑘=1
𝜈𝑘𝑄𝑘
The newer forms of UNIFAC (Dortmund, NIST) calculate the combinatorial part slightly differently:
ln 𝛾𝑐𝑖 = 1 − 𝑉 ′𝑖 + ln(𝑉 ′
𝑖) − 5𝑞𝑖
(1 − 𝑉𝑖
𝐹𝑖+ ln
(𝑉𝑖𝐹𝑖
))𝑉 ′𝑖 =
𝑟3/4𝑖∑
𝑗 𝑟3/4𝑗 𝑥𝑗
This is more clear when looking at the full rearranged form as in [R561].
References
[R559], [R560], [R561], [R562]
Examples
>>> UNIFAC(T=333.15, xs=[0.5, 0.5], chemgroups=[1:2, 2:4, 1:1, 2:1, 18:1])[1.4276025835624173, 1.3646545010104225]
>>> UNIFAC(373.15, [0.2, 0.3, 0.2, 0.2],... [9:6, 78:6, 1:1, 18:1, 1:1, 2:1, 14:1],... subgroup_data=DOUFSG, interaction_data=DOUFIP2006, modified=True)[1.186431113706829, 1.440280133911197, 1.204479833499608, 1.9720706090299824]
thermo.unifac.UNIFAC_psi(T, subgroup1, subgroup2, subgroup_data, interaction_data, modi-fied=False)
Calculates the interaction parameter psi(m, n) for two UNIFAC subgroups, given the system temperature, theUNIFAC subgroups considered for the variant of UNIFAC used, the interaction parameters for the variant ofUNIFAC used, and whether or not the temperature dependence is modified from the original form, as shownbelow.
Original temperature dependence:
Ψ𝑚𝑛 = exp
(−𝑎𝑚𝑛
𝑇
)Modified temperature dependence:
Ψ𝑚𝑛 = exp
(−𝑎𝑚𝑛 − 𝑏𝑚𝑛𝑇 − 𝑐𝑚𝑛𝑇
2
𝑇
)Parameters T : float
Temperature of the system, [K]
subgroup1 : int
First UNIFAC subgroup for identifier, [-]
338 Chapter 1. thermo
thermo Documentation, Release 0.1
subgroup2 : int
Second UNIFAC subgroup for identifier, [-]
subgroup_data : dict[UNIFAC_subgroup]
Normally provided as inputs to UNIFAC.
interaction_data : dict[dict[tuple(a_mn, b_mn, c_mn)]]
Normally provided as inputs to UNIFAC.
modified : bool
True if the modified temperature dependence is used by the interaction parameters, oth-erwise False
Returns psi : float
UNIFAC interaction parameter term, [-]
Notes
UNIFAC interaction parameters are asymmetric. No warning is raised if an interaction parameter is missing.
References
[R563], [R564]
Examples
>>> from thermo.unifac import UFSG, UFIP, DOUFSG, DOUFIP2006
>>> UNIFAC_psi(307, 18, 1, UFSG, UFIP)0.9165248264184787
>>> UNIFAC_psi(373.15, 9, 78, DOUFSG, DOUFIP2006, modified=True)1.3703140538273264
thermo.unifac.UNIFAC_RQ(groups, subgroup_data=None)Calculates UNIFAC parameters R and Q for a chemical, given a dictionary of its groups, as shown in [R565].Most UNIFAC methods use the same subgroup values; however, a dictionary of UNIFAC_subgroup instancesmay be specified as an optional second parameter.
𝑟𝑖 =
𝑛∑𝑘=1
𝜈𝑘𝑅𝑘
𝑞𝑖 =
𝑛∑𝑘=1
𝜈𝑘𝑄𝑘
Parameters groups : dict[count]
Dictionary of numeric subgroup IDs : their counts
subgroup_data : None or dict[UNIFAC_subgroup]
1.1. thermo package 339
thermo Documentation, Release 0.1
Optional replacement for standard subgroups; leave as None to use the original UNIFACsubgroup r and q values.
Returns R : float
R UNIFAC parameter (normalized Van der Waals Volume) [-]
Q : float
Q UNIFAC parameter (normalized Van der Waals Area) [-]
Notes
These parameters have some predictive value for other chemical properties.
References
[R565]
Examples
Hexane
>>> UNIFAC_RQ(1:2, 2:4)(4.4998000000000005, 3.856)
thermo.unifac.Van_der_Waals_volume(R)Calculates a species Van der Waals molar volume with the UNIFAC method, given a species’s R parameter.
𝑉𝑤𝑘 = 15.17𝑅𝑘
Parameters R : float
R UNIFAC parameter (normalized Van der Waals Volume) [-]
Returns V_vdw : float
Unnormalized Van der Waals volume, [m^3/mol]
Notes
The volume was originally given in cm^3/mol, but is converted to SI here.
References
[R566]
Examples
>>> Van_der_Waals_volume(4.4998)6.826196599999999e-05
340 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.unifac.Van_der_Waals_area(Q)Calculates a species Van der Waals molar surface area with the UNIFAC method, given a species’s Q parameter.
𝐴𝑤𝑘 = 2.5 × 109𝑄𝑘
Parameters Q : float
Q UNIFAC parameter (normalized Van der Waals Area) [-]
Returns A_vdw : float
Unnormalized Van der Waals surface area, [m^2/mol]
Notes
The volume was originally given in cm^2/mol, but is converted to SI here.
References
[R567]
Examples
>>> Van_der_Waals_area(3.856)964000.0
thermo.unifac.load_group_assignments_DDBST()Data is stored in the format InChI key bool bool bool subgroup count ... subgroup count subgroup count... wherethe bools refer to whether or not the original UNIFAC, modified UNIFAC, and PSRK group assignments werecompleted correctly. The subgroups and their count have an indefinite length.
thermo.utils module
thermo.utils.isobaric_expansion(V, dV_dT)Calculate the isobaric coefficient of a thermal expansion, given its molar volume at a certain T and P, and itsderivative of molar volume with respect to T.
𝛽 =1
𝑉
(𝜕𝑉
𝜕𝑇
)𝑃
Parameters V : float
Molar volume at T and P, [m^3/mol]
dV_dT : float
Derivative of molar volume with respect to T, [m^3/mol/K]
Returns beta : float
Isobaric coefficient of a thermal expansion, [1/K]
1.1. thermo package 341
thermo Documentation, Release 0.1
Notes
For an ideal gas, this expression simplified to:
𝛽 =1
𝑇
References
[R568]
Examples
Calculated for hexane from the PR EOS at 299 K and 1 MPa (liquid):
>>> isobaric_expansion(0.000130229900873546, 1.58875261849113e-7)0.0012199599384121608
thermo.utils.isothermal_compressibility(V, dV_dP)Calculate the isothermal coefficient of a compressibility, given its molar volume at a certain T and P, and itsderivative of molar volume with respect to P.
𝜅 = − 1
𝑉
(𝜕𝑉
𝜕𝑃
)𝑇
Parameters V : float
Molar volume at T and P, [m^3/mol]
dV_dP : float
Derivative of molar volume with respect to P, [m^3/mol/Pa]
Returns kappa : float
Isothermal coefficient of a compressibility, [1/Pa]
Notes
For an ideal gas, this expression simplified to:
𝜅 =1
𝑃
References
[R569]
Examples
Calculated for hexane from the PR EOS at 299 K and 1 MPa (liquid):
342 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> isothermal_compressibility(0.000130229900873546, -2.72902118209903e-13)2.095541165119158e-09
thermo.utils.Cp_minus_Cv(T, dP_dT, dP_dV)Calculate the difference between a real gas’s constant-pressure heat capacity and constant-volume heat capacity,as given in [R570], [R571], and [R572]. The required derivatives should be calculated with an equation of state.
𝐶𝑝 − 𝐶𝑣 = −𝑇(𝜕𝑃
𝜕𝑇
)2
𝑉
/
(𝜕𝑃
𝜕𝑉
)𝑇
Parameters T : float
Temperature of fluid [K]
dP_dT : float
Derivative of P with respect to T, [Pa/K]
dP_dV : float
Derivative of P with respect to V, [Pa*mol/m^3]
Returns Cp_minus_Cv : float
Cp - Cv for a real gas, [J/mol/K]
Notes
Equivalent expressions are:
𝐶𝑝 − 𝐶𝑣 = −𝑇(𝜕𝑉
𝜕𝑇
)2
𝑃
/
(𝜕𝑉
𝜕𝑃
)𝑇
𝐶𝑝 − 𝐶𝑣 = 𝑇
(𝜕𝑃
𝜕𝑇
)(𝜕𝑉
𝜕𝑇
)Note that these are not second derivatives, only first derivatives, some of which are squared.
References
[R570], [R571], [R572]
Examples
Calculated for hexane from the PR EOS at 299 K and 1 MPa (liquid):
>>> Cp_minus_Cv(299, 582232.475794113, -3665180614672.253)27.654681381642394
thermo.utils.speed_of_sound(V, dP_dV, Cp, Cv, MW=None)Calculate a real fluid’s speed of sound. The required derivatives should be calculated with an equation of state,and Cp and Cv are both the real fluid versions. Expression is given in [R573] and [R574]; a unit conver-sion is further performed to obtain a result in m/s. If MW is not provided the result is returned in units ofm*kg^0.5/s/mol^0.5.
𝑤 =
[−𝑉 2
(𝜕𝑃
𝜕𝑉
)𝑇
𝐶𝑝
𝐶𝑣
]1/2
1.1. thermo package 343
thermo Documentation, Release 0.1
Parameters V : float
Molar volume of fluid, [m^3/mol]
dP_dV : float
Derivative of P with respect to V, [Pa*mol/m^3]
Cp : float
Real fluid heat capacity at constant pressure, [J/mol/K]
Cv : float
Real fluid heat capacity at constant volume, [J/mol/K]
MW : float, optional
Molecular weight, [g/mol]
Returns w : float
Speed of sound for a real gas, [m/s or m*kg^0.5/s/mol^0.5 or MW missing]
Notes
An alternate expression based on molar density is as follows:
𝑤 =
[(𝜕𝑃
𝜕𝜌
)𝑇
𝐶𝑝
𝐶𝑣
]1/2The form with the unit conversion performed inside it is as follows:
𝑤 =
[−𝑉 2 1000
𝑀𝑊
(𝜕𝑃
𝜕𝑉
)𝑇
𝐶𝑝
𝐶𝑣
]1/2
References
[R573], [R574]
Examples
Example from [R574]:
>>> speed_of_sound(V=0.00229754, dP_dV=-3.5459e+08, Cp=153.235, Cv=132.435, MW=67.→˓152)179.5868138460819
thermo.utils.Joule_Thomson(T, V, Cp, dV_dT=None, beta=None)Calculate a real fluid’s Joule Thomson coefficient. The required derivative should be calculated with an equationof state, and Cp is the real fluid versions. This can either be calculated with dV_dT directly, or with beta if it isalready known.
𝜇𝐽𝑇 =
(𝜕𝑇
𝜕𝑃
)𝐻
=1
𝐶𝑝
[𝑇
(𝜕𝑉
𝜕𝑇
)𝑃
− 𝑉
]=
𝑉
𝐶𝑝(𝛽𝑇 − 1)
Parameters T : float
344 Chapter 1. thermo
thermo Documentation, Release 0.1
Temperature of fluid, [K]
V : float
Molar volume of fluid, [m^3/mol]
Cp : float
Real fluid heat capacity at constant pressure, [J/mol/K]
dV_dT : float, optional
Derivative of V with respect to T, [m^3/mol/K]
beta : float, optional
Isobaric coefficient of a thermal expansion, [1/K]
Returns mu_JT : float
Joule-Thomson coefficient [K/Pa]
References
[R575], [R576]
Examples
Example from [R576]:
>>> Joule_Thomson(T=390, V=0.00229754, Cp=153.235, dV_dT=1.226396e-05)1.621956080529905e-05
thermo.utils.phase_identification_parameter(V, dP_dT, dP_dV, d2P_dV2, d2P_dVdT)Calculate the Phase Identification Parameter developed in [R577] for the accurate and efficient determination ofwhether a fluid is a liquid or a gas based on the results of an equation of state. For supercritical conditions, thisprovides a good method for choosing which property correlations to use.
Π = 𝑉
[𝜕2𝑃𝜕𝑉 𝜕𝑇𝜕𝑃𝜕𝑇
−𝜕2𝑃𝜕𝑉 2
𝜕𝑃𝜕𝑉
]Parameters V : float
Molar volume at T and P, [m^3/mol]
dP_dT : float
Derivative of P with respect to T, [Pa/K]
dP_dV : float
Derivative of P with respect to V, [Pa*mol/m^3]
d2P_dV2 : float
Second derivative of P with respect to V, [Pa*mol^2/m^6]
d2P_dVdT : float
Second derivative of P with respect to both V and T, [Pa*mol/m^3/K]
Returns PIP : float
Phase Identification Parameter, [-]
1.1. thermo package 345
thermo Documentation, Release 0.1
Notes
Heuristics were used by process simulators before the invent of this parameter.
The criteria for liquid is Pi > 1; for vapor, Pi <= 1.
There is also a solid phase mechanism available. For solids, the Solid Phase Identification Parameter is greaterthan 1, like liquids; however, unlike liquids, d2P_dVdT is always >0; it is < 0 for liquids and gases.
References
[R577], [R578]
Examples
Calculated for hexane from the PR EOS at 299 K and 1 MPa (liquid):
>>> phase_identification_parameter(0.000130229900874, 582169.397484,... -3.66431747236e+12, 4.48067893805e+17, -20518995218.2)11.33428990564796
thermo.utils.phase_identification_parameter_phase(d2P_dVdT, V=None, dP_dT=None,dP_dV=None, d2P_dV2=None)
Uses the Phase Identification Parameter concept developed in [R579] and [R580] to determine if a chemical isa solid, liquid, or vapor given the appropriate thermodynamic conditions.
The criteria for liquid is PIP > 1; for vapor, PIP <= 1.
For solids, PIP(solid) is defined to be d2P_dVdT. If it is larger than 0, the species is a solid. It is less than 0 forall liquids and gases.
Parameters d2P_dVdT : float
Second derivative of P with respect to both V and T, [Pa*mol/m^3/K]
V : float, optional
Molar volume at T and P, [m^3/mol]
dP_dT : float, optional
Derivative of P with respect to T, [Pa/K]
dP_dV : float, optional
Derivative of P with respect to V, [Pa*mol/m^3]
d2P_dV2 : float, optionsl
Second derivative of P with respect to V, [Pa*mol^2/m^6]
Returns phase : str
Either ‘s’, ‘l’ or ‘g’
Notes
The criteria for being a solid phase is checked first, which only requires d2P_dVdT. All other inputs are optionalfor this reason. However, an exception will be raised if the other inputs become needed to determine if a speciesis a liquid or a gas.
346 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R579], [R580]
Examples
Calculated for hexane from the PR EOS at 299 K and 1 MPa (liquid):
>>> phase_identification_parameter_phase(-20518995218.2, 0.000130229900874,... 582169.397484, -3.66431747236e+12, 4.48067893805e+17)'l'
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
[R581]
Examples
>>> isentropic_exponent(33.6, 25.27)1.329639889196676
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
Molecular weight, [g/mol]
Returns rho : float
Density, [kg/m^3]
1.1. thermo package 347
thermo Documentation, Release 0.1
References
[R582]
Examples
>>> Vm_to_rho(0.000132, 86.18)652.8787878787879
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
[R583]
Examples
>>> rho_to_Vm(652.9, 86.18)0.00013199571144126206
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, [-]
348 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R584]
Examples
>>> Z(600, P=1E6, V=0.00463)0.9281019876560912
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
[R585]
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
1.1. thermo package 349
thermo Documentation, Release 0.1
Temperature, [K]
P : float
Pressure [Pa]
Returns B : float
Second virial coefficient, [m^3/mol]
Notes
Other forms of the virial coefficient exist.
References
[R586]
Examples
>>> B_from_Z(0.94, 300, 1E5)-0.0014966027640000014
thermo.utils.Z_from_virial_density_form(T, P, *args)Calculates the compressibility factor of a gas given its temperature, pressure, and molar density-form virialcoefficients. Any number of coefficients is supported.
𝑍 =𝑃𝑉
𝑅𝑇= 1 +
𝐵
𝑉+
𝐶
𝑉 2+
𝐷
𝑉 3+
𝐸
𝑉 4. . .
Parameters T : float
Temperature, [K]
P : float
Pressure, [Pa]
B to Z : float, optional
Virial coefficients, [various]
Returns Z : float
Compressibility factor at T, P, and with given virial coefficients, [-]
Notes
For use with B or with B and C or with B and C and D, optimized equations are used to obtain the compressibilityfactor directly. If more coefficients are provided, uses numpy’s roots function to solve this equation. This takessubstantially longer as the solution is numerical.
If no virial coefficients are given, returns 1, as per the ideal gas law.
The units of each virial coefficient are as follows, where for B, n=1, and C, n=2, and so on.(m3
mol
)𝑛
350 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R587], [R588]
Examples
>>> Z_from_virial_density_form(300, 122057.233762653, 1E-4, 1E-5, 1E-6, 1E-7)1.2843496002100001
thermo.utils.Z_from_virial_pressure_form(P, *args)Calculates the compressibility factor of a gas given its pressure, and pressure-form virial coefficients. Anynumber of coefficients is supported.
𝑍 =𝑃𝑣
𝑅𝑇= 1 +𝐵′𝑃 + 𝐶 ′𝑃 2 +𝐷′𝑃 3 + 𝐸′𝑃 4 . . .
Parameters P : float
Pressure, [Pa]
B to Z : float, optional
Pressure form Virial coefficients, [various]
Returns Z : float
Compressibility factor at P, and with given virial coefficients, [-]
Notes
Note that although this function does not require a temperature input, it is still dependent on it because thecoefficients themselves normally are regressed in terms of temperature.
The use of this form is less common than the density form. Its coefficients are normally indicated with the “”’suffix.
If no virial coefficients are given, returns 1, as per the ideal gas law.
The units of each virial coefficient are as follows, where for B, n=1, and C, n=2, and so on.(1
Pa
)𝑛
References
[R589], [R590]
Examples
>>> Z_from_virial_pressure_form(102919.99946855308, 4.032286555169439e-09, 1.→˓6197059494442215e-13, 6.483855042486911e-19)1.00283753944
1.1. thermo package 351
thermo Documentation, Release 0.1
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.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]
352 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
Examples
Acetone and benzene example
>>> zs_to_Vfs([0.637, 0.363], [8.0234e-05, 9.543e-05])[0.5960229712956298, 0.4039770287043703]
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.
1.1. thermo package 353
thermo Documentation, Release 0.1
Examples
Acetone and benzene example
>>> Vfs_to_zs([0.596, 0.404], [8.0234e-05, 9.543e-05])[0.6369779395901142, 0.3630220604098858]
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 [-]
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]
354 Chapter 1. thermo
thermo Documentation, Release 0.1
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.019000000000000003
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
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
1.1. thermo package 355
thermo Documentation, Release 0.1
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
>>> to_num(['1', '1.1', '1E5', '0xB4', ''])[1.0, 1.1, 100000.0, '0xB4', None]
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.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 [-]
Notes
Handles CAS numbers with an unspecified number of digits. Does not work on floats.
356 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> int2CAS(7704349)'7704-34-9'
thermo.utils.Parachor(MW, rhol, rhog, sigma)Calculate Parachor for a pure species, using its density in the liquid and gas phases, surface tension, and molec-ular weight.
𝑃 =𝜎0.25𝑀𝑊
𝜌𝐿 − 𝜌𝑉
Parameters MW : float
Molecular weight, [g/mol]
rhol : float
Liquid density [kg/m^3]
rhog : float
Gas density [kg/m^3]
sigma : float
Surface tension, [N/m]
Returns P : float
Parachor, [N^0.25*m^2.75/mol]
Notes
To convert the output of this function to units of [mN^0.25*m^2.75/kmol], multiply by 5623.4132519.
Values in group contribution tables for Parachor are often listed as dimensionless, in which they are multipliedby 5623413 and the appropriate units to make them dimensionless.
References
[R591], [R592], [R593]
Examples
Calculating Parachor from a known surface tension for methyl isobutyl ketone at 293.15 K
>>> Parachor(100.15888, 800.8088185536124, 4.97865317223119, 0.02672166960656005)5.088443542210164e-05
Converting to the dimensionless form:
>>> 5623413*5.088443542210164e-05286.14419565030687
Compared to 274.9 according to a group contribution method described in [R593].
1.1. thermo package 357
thermo Documentation, Release 0.1
thermo.utils.property_molar_to_mass(A_molar, MW)
thermo.utils.property_mass_to_molar(A_mass, MW)
thermo.utils.phase_select_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
Notes
Could calculate mole-fraction weighted properties for the two phase regime. Could also implement equilibriawith solid phases.
Examples
>>> phase_select_property(phase='g', l=1560.14, g=3312.)3312.0
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
358 Chapter 1. thermo
thermo Documentation, Release 0.1
valid have been exhausted. Furthermore, all properties returned by the method are checked by a sanity functiontest_property_validity , which has sanity checks for all properties.
Works nicely with tabular data, which is interpolated from if specified. Interpolation is cubic-spline basedif 5 or more points are given, and linearly interpolated with if few points are given. Extrapolation is per-mitted if tabular_extrapolation_permitted is set to True. For both interpolation and extrap-olation, a transform may be applied so that a property such as vapor pressure can be interpolated non-linearly. These are functions or lambda expressions which must be set for the variables interpolation_T,interpolation_property , and interpolation_property_inv .
Attributes
name (str) The name of the property being calculatedunits (str) The units of the propertymethod (str) The method was which was last used successfully to calculate a property; set only
after the first property calculation.forced (bool) If True, only user specified methods will be considered; otherwise all methods
will be considered if none of the user specified methods succeedinterpolation_T (function) A function or lambda expression to transform the temperatures of tabular
data for interpolation; e.g. ‘lambda self, T: 1./T’interpola-tion_property
(function) A function or lambda expression to transform tabular property values prior tointerpolation; e.g. ‘lambda self, P: log(P)’
interpola-tion_property_inv
(function) A function or property expression to transform interpolated property valuesfrom the transform performed by interpolation_property back to their actual form, e.g.‘lambda self, P: exp(P)’
tabu-lar_extrapolation_permitted
(bool) Whether or not to allow extrapolation from tabulated data for a property
Tmin (float) Maximum temperature at which no method can calculate the property above; setbased on rough rules for some methods. Used to solve for a particular property value,and as a default minimum for plotting. Often higher than where the property istheoretically higher, i.e. liquid density above the triple point, but this information maystill be needed for liquid mixtures with elevated critical points.
Tmax (float) Minimum temperature at which no method can calculate the property under; setbased on rough rules for some methods. Used to solve for a particular property value,and as a default minimum for plotting. Often lower than where the property istheoretically higher, i.e. liquid density beneath the triple point, but this information maystill be needed for subcooled liquids or mixtures with depressed freezing points.
property_min (float) Lowest value expected for a property while still being valid; this is a criteria usedby test_method_validity.
property_max (float) Highest value expected for a property while still being valid; this is a criteriaused by test_method_validity.
ranked_methods (list) Constant list of ranked methods by defaulttabular_data (dict) Stores all user-supplied property data for interpolation in format name: (Ts,
properties)tabu-lar_data_interpolators
(dict) Stores all interpolation objects, idexed by name and property transform methodswith the format (name, interpolation_T, interpolation_property,interpolation_property_inv): (extrapolator, spline)
sorted_valid_methods(list) Sorted and valid methods stored from the last T_dependent_property calluser_methods (list) Sorted methods as specified by the user
Methods
1.1. thermo package 359
thermo Documentation, Release 0.1
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property .
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 re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method to load all data, and set all_methods based onthe available data and properties.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing 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_cached = None
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 the 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.
360 Chapter 1. thermo
thermo Documentation, Release 0.1
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
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𝑇
𝑑𝑇
1.1. thermo package 361
thermo Documentation, Release 0.1
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
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]
method : str
Method for which to find the derivative
order : int
Order of the derivative, >= 1
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.
362 Chapter 1. thermo
thermo Documentation, Release 0.1
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]
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
1.1. thermo package 363
thermo Documentation, Release 0.1
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]
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 of methods which are valid at T according to test_method_validity. Con-siders 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
364 Chapter 1. thermo
thermo Documentation, Release 0.1
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
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 testing
1.1. thermo package 365
thermo Documentation, Release 0.1
only; 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.
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)Continued on next page
366 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.47 – 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[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property .
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 re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method to load all data, and set all_methods based onthe available data and properties.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat T according to test_method_validity.
Continued on next page
1.1. thermo package 367
thermo Documentation, Release 0.1
Table 1.47 – continued from previous pageset_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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis at a specified value.
test_method_validity(T, method) Method to test the validity of a specified method for agiven temperature.
test_property_validity(prop) Method to test the validity of a calculated property.
TP_cached = None
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.
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, [Pa]
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
368 Chapter 1. thermo
thermo Documentation, Release 0.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]
TP_or_T_dependent_property(T, P)
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]
method : str
Method for which to find the derivative
order : int
Order of the derivative, >= 1
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.
1.1. thermo package 369
thermo Documentation, Release 0.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]
method : str
Method for which to find the derivative
order : int
Order of the derivative, >= 1
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.
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_TP_dependent_property(Tmin=None, Tmax=None, Pmin=None, Pmax=None, meth-ods_P=[], pts=15, only_valid=True)
Method to create a plot of the property vs temperature and pressure according to either a specified list ofmethods, or user methods (if set), or all methods. User-selectable number of points for each variable. Ifonly_valid is set,‘test_method_validity_P‘ will be used to check if each condition 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 any method fails for any point.
370 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters Tmin : float
Minimum temperature, to begin calculating the property, [K]
Tmax : float
Maximum temperature, to stop calculating the property, [K]
Pmin : float
Minimum pressure, to begin calculating the property, [Pa]
Pmax : float
Maximum pressure, to stop calculating the property, [Pa]
methods_P : list, optional
List of methods to consider
pts : int, optional
A list of points to calculate the property at for both temperature and pressure; pts^2points will be calculated.
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_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 condition in the specifiedrange is valid, and test_property_validity will be used to test the answer, and the method is allowed to fail;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 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_P : 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
1.1. thermo package 371
thermo Documentation, Release 0.1
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 condition in the specifiedrange is valid, and test_property_validity will be used to test the answer, and the method is allowed to fail;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 T : float
Temperature at which to create the plot, [K]
Pmin : float
Minimum pressure, to begin calculating the property, [Pa]
Pmax : float
Maximum pressure, to stop calculating the property, [Pa]
methods_P : 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]
372 Chapter 1. thermo
thermo Documentation, Release 0.1
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_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 preferred 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.
class thermo.utils.MixturePropertyBases: object
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property .
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
Continued on next page
1.1. thermo package 373
thermo Documentation, Release 0.1
Table 1.48 – continued from previous pageplot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure at
a specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_property_validity(prop) Method to test the validity of a calculated property.
TP_zs_ws_cached = None
calculate_derivative_P(P, T, zs, ws, method, order=1)Method to calculate a derivative of a mixture property with respect to pressure at constant temperature andcomposition of a given order using a specified method. Uses SciPy’s derivative function, with a delta of0.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]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method for which to find the derivative
order : int
Order of the derivative, >= 1
Returns d_prop_d_P_at_T : float
Calculated derivative property at constant temperature, [units/Pa^order]
374 Chapter 1. thermo
thermo Documentation, Release 0.1
calculate_derivative_T(T, P, zs, ws, method, order=1)Method to calculate a derivative of a mixture property with respect to temperature at constant pressure andcomposition of a given order using a specified method. Uses SciPy’s derivative function, with a delta of1E-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]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method for which to find the derivative
order : int
Order of the derivative, >= 1
Returns d_prop_d_T_at_P : float
Calculated derivative property at constant pressure, [units/K^order]
forced = False
method = None
mixture_property(T, P, zs, ws)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 the 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]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
1.1. thermo package 375
thermo Documentation, Release 0.1
Weight fractions of all species in the mixture, [-]
Returns prop : float
Calculated property, [units]
name = ‘Test’
plot_isobar(P, zs, ws, Tmin=None, Tmax=None, methods=[], pts=50, only_valid=True)Method to create a plot of the property vs temperature at a specific pressure and composition accordingto either a specified list of methods, or user methods (if set), or all methods. User-selectable number ofpoints, and temperature range. If only_valid is set,‘test_method_validity‘ will be used to check if eachcondition in the specified range is valid, and test_property_validity will be used to test the answer, and themethod is allowed to fail; only the valid points will be plotted. Otherwise, the result will be calculated anddisplayed as-is. This will not suceed if the method fails.
Parameters P : float
Pressure for the isobar, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
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, zs, ws, Pmin=None, Pmax=None, methods=[], pts=50, only_valid=True)Method to create a plot of the property vs pressure at a specified temperature and composition accordingto either a specified list of methods, or the user methods (if set), or all methods. User-selectable
number of points, and pressure range. If only_valid is set,
test_method_validity will be used to check if each condition in the specified range is valid, andtest_property_validity will be used to test the answer, and the method is allowed to fail; only the validpoints will be plotted. Otherwise, the result will be calculated and displayed as-is. This will not suceed ifthe method fails.
Parameters T : float
Temperature at which to create the plot, [K]
zs : list[float]
376 Chapter 1. thermo
thermo Documentation, Release 0.1
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
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
plot_property(zs, ws, Tmin=None, Tmax=None, Pmin=100000.0, Pmax=1000000.0, methods=[],pts=15, only_valid=True)
Method to create a plot of the property vs temperature and pressure according to either a specified list ofmethods, or user methods (if set), or all methods. User-selectable number of points for each variable. Ifonly_valid is set,‘test_method_validity‘ will be used to check if each condition 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 any method fails for any point.
Parameters Tmin : float
Minimum temperature, to begin calculating the property, [K]
Tmax : float
Maximum temperature, to stop calculating the property, [K]
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 for both temperature and pressure; pts^2points will be calculated.
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
1.1. thermo package 377
thermo Documentation, Release 0.1
prop_cached = None
property_derivative_P(T, P, zs, ws, order=1)Method to calculate a derivative of a mixture property with respect to pressure at constant temperature andcomposition, of a given order. Methods found valid by select_valid_methods are attempted until a methodsucceeds. 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]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
order : int
Order of the derivative, >= 1
Returns d_prop_d_P_at_T : float
Calculated derivative property, [units/Pa^order]
property_derivative_T(T, P, zs, ws, order=1)Method to calculate a derivative of a mixture property with respect to temperature at constant pressure andcomposition, of a given order. Methods found valid by select_valid_methods are attempted until a methodsucceeds. 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]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
order : int
Order of the derivative, >= 1
Returns d_prop_d_T_at_P : float
Calculated derivative property, [units/K^order]
378 Chapter 1. thermo
thermo Documentation, Release 0.1
property_max = 10
property_min = 0
ranked_methods = []
select_valid_methods(T, P, zs, ws)Method to obtain a sorted list of methods which are valid at T, P, zs, ws, and possibly Vfls, according totest_method_validity. Considers either only user methods if forced is True, or all methods. User methodsare first tested according to their listed order, and unless forced is True, then all methods are tested andsorted by their order in ranked_methods.
Parameters T : float
Temperature at which to test the methods, [K]
P : float
Pressure at which to test the methods, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
Returns sorted_valid_methods : list
Sorted lists of methods valid at the given conditions according to test_method_validity
set_user_method(user_methods, forced=False)Method to set the T, P, and composition dependent property methods desired for consideration by the user.Can be used to 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 : str or list
Methods by name to be considered for calculation of the mixture property, ordered bypreference.
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.
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 = ‘test units’
thermo.utils.allclose_variable(a, b, limits, rtols=None, atols=None)Returns True if two arrays are element-wise equal within several different tolerances. Tolerance values arealways positive, usually very small. Based on numpy’s allclose function.
1.1. thermo package 379
thermo Documentation, Release 0.1
Only atols or rtols needs to be specified; both are used if given.
Parameters a, b : array_like
Input arrays to compare.
limits : array_like
Fractions of elements allowed to not match to within each tolerance.
rtols : array_like
The relative tolerance parameters.
atols : float
The absolute tolerance parameters.
Returns allclose : bool
Returns True if the two arrays are equal within the given tolerances; False otherwise.
Examples
10 random similar variables, all of them matching to within 1E-5, allowing up to half to match up to 1E-6.
>>> x = [2.7244322249597719e-08, 3.0105683900110473e-10, 2.7244124924802327e-08,→˓3.0105259397637556e-10, 2.7243929226310193e-08, 3.0104990272770901e-10, 2.→˓7243666849384451e-08, 3.0104101821236015e-10, 2.7243433745917367e-08, 3.→˓0103707421519949e-10]>>> y = [2.7244328304561904e-08, 3.0105753470546008e-10, 2.724412872417824e-08,→˓3.0105303055834564e-10, 2.7243914341030203e-08, 3.0104819238021998e-10, 2.→˓7243684057561379e-08, 3.0104299541023674e-10, 2.7243436694839306e-08, 3.→˓010374130526363e-10]>>> allclose_variable(x, y, limits=[.0, .5], rtols=[1E-5, 1E-6])True
thermo.utils.horner(coeffs, x)Simple function to calculate the value of a polynomial at a specific value of x, using the Horner evaluationscheme
Parameters coeffs : array-like
Coefficients, where coeffs[0] is multiplied by the largest power of x, and coeffs[-1] isadded to the sum with no multiplication.
x : float
Value to evaluate the polynomial at
Returns y : float
Evaluated result
Notes
Efficient. Faster than numpy.polyval.
380 Chapter 1. thermo
thermo Documentation, Release 0.1
Examples
>>> horner([1,2,3], 3)18
thermo.utils.polylog2(x)Simple function to calculate PolyLog(2, x) from ranges 0 <= x <= 1, with relative error guaranteed to be < 1E-7from 0 to 0.99999. This is a Pade approximation, with three coefficient sets with splits at 0.7 and 0.99. Anexception is raised if x is under 0 or above 1.
Parameters x : float
Value to evaluate PolyLog(2, x) T
Returns y : float
Evaluated result
Notes
Efficient (2-4 microseconds). No implementation of this function exists in SciPy. Derived withmpmath’s pade approximation. Required for the entropy integral of thermo.heat_capacity.Zabransky_quasi_polynomial.
Examples
>>> polylog2(0.5)0.5822405264516294
thermo.utils.acos(x)Return the arc cosine (measured in radians) of x.
thermo.utils.acosh(x)Return the inverse hyperbolic cosine of x.
thermo.utils.asin(x)Return the arc sine (measured in radians) of x.
thermo.utils.asinh(x)Return the inverse hyperbolic sine of x.
thermo.utils.atan(x)Return the arc tangent (measured in radians) of x.
thermo.utils.atan2(y, x)Return the arc tangent (measured in radians) of y/x. Unlike atan(y/x), the signs of both x and y are considered.
thermo.utils.atanh(x)Return the inverse hyperbolic tangent of x.
thermo.utils.ceil(x)Return the ceiling of x as an Integral. This is the smallest integer >= x.
thermo.utils.copysign(x, y)Return a float with the magnitude (absolute value) of x but the sign of y. On platforms that support signed zeros,copysign(1.0, -0.0) returns -1.0.
1.1. thermo package 381
thermo Documentation, Release 0.1
thermo.utils.cos(x)Return the cosine of x (measured in radians).
thermo.utils.cosh(x)Return the hyperbolic cosine of x.
thermo.utils.degrees(x)Convert angle x from radians to degrees.
thermo.utils.erf(x)Error function at x.
thermo.utils.erfc(x)Complementary error function at x.
thermo.utils.exp(x)Return e raised to the power of x.
thermo.utils.expm1(x)Return exp(x)-1. This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for smallx.
thermo.utils.fabs(x)Return the absolute value of the float x.
thermo.utils.factorial(x)→ IntegralFind x!. Raise a ValueError if x is negative or non-integral.
thermo.utils.floor(x)Return the floor of x as an Integral. This is the largest integer <= x.
thermo.utils.fmod(x, y)Return fmod(x, y), according to platform C. x % y may differ.
thermo.utils.frexp(x)Return the mantissa and exponent of x, as pair (m, e). m is a float and e is an int, such that x = m * 2.**e. If x is0, m and e are both 0. Else 0.5 <= abs(m) < 1.0.
thermo.utils.fsum(iterable)Return an accurate floating point sum of values in the iterable. Assumes IEEE-754 floating point arithmetic.
thermo.utils.gamma(x)Gamma function at x.
thermo.utils.hypot(x, y)Return the Euclidean distance, sqrt(x*x + y*y).
thermo.utils.isinf(x)→ boolReturn True if x is a positive or negative infinity, and False otherwise.
thermo.utils.isnan(x)→ boolReturn True if x is a NaN (not a number), and False otherwise.
thermo.utils.ldexp(x, i)Return x * (2**i).
thermo.utils.lgamma(x)Natural logarithm of absolute value of Gamma function at x.
thermo.utils.log(x[, base])Return the logarithm of x to the given base. If the base not specified, returns the natural logarithm (base e) of x.
thermo.utils.log10(x)Return the base 10 logarithm of x.
382 Chapter 1. thermo
thermo Documentation, Release 0.1
thermo.utils.log1p(x)Return the natural logarithm of 1+x (base e). The result is computed in a way which is accurate for x near zero.
thermo.utils.modf(x)Return the fractional and integer parts of x. Both results carry the sign of x and are floats.
thermo.utils.pow(x, y)Return x**y (x to the power of y).
thermo.utils.radians(x)Convert angle x from degrees to radians.
thermo.utils.sin(x)Return the sine of x (measured in radians).
thermo.utils.sinh(x)Return the hyperbolic sine of x.
thermo.utils.sqrt(x)Return the square root of x.
thermo.utils.tan(x)Return the tangent of x (measured in radians).
thermo.utils.tanh(x)Return the hyperbolic tangent of x.
thermo.utils.trunc(x:Real)→ IntegralTruncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.
thermo.vapor_pressure module
thermo.vapor_pressure.Antoine(T, A, B, C, base=10.0)Calculates vapor pressure of a chemical using the Antoine equation. Parameters A, B, and C are chemical-dependent. Parameters can be found in numerous sources; however units of the coefficients used vary. Originallyproposed by Antoine (1888) [R595].
logbase 𝑃sat = 𝐴− 𝐵
𝑇 + 𝐶
Parameters T : float
Temperature of fluid, [K]
A, B, C : floats
Regressed coefficients for Antoine equation for a chemical
Returns Psat : float
Vapor pressure calculated with coefficients [Pa]
Other Parameters Base : float
Optional base of logarithm; 10 by default
Notes
Assumes coefficients are for calculating vapor pressure in Pascal. Coefficients should be consistent with inputtemperatures in Kelvin; however, if both the given temperature and units are specific to degrees Celcius, theresult will still be correct.
1.1. thermo package 383
thermo Documentation, Release 0.1
Converting units in input coefficients:
•ln to log10: Divide A and B by ln(10)=2.302585 to change parameters for a ln equation to a log10 equation.
•log10 to ln: Multiply A and B by ln(10)=2.302585 to change parameters for a log equation to a ln equation.
•mmHg to Pa: Add log10(101325/760)= 2.1249 to A.
•kPa to Pa: Add log_base(1000)= 6.908 to A for log(base)
•°C to K: Subtract 273.15 from C only!
References
[R594], [R595], [R596]
Examples
Methane, coefficients from [R594], at 100 K:
>>> Antoine(100.0, 8.7687, 395.744, -6.469)34478.367349639906
Tetrafluoromethane, coefficients from [R594], at 180 K
>>> Antoine(180, A=8.95894, B=510.595, C=-15.95)702271.0518579542
Oxygen at 94.91 K, with coefficients from [R596] in units of °C, mmHg, log10, showing the conversion ofcoefficients A (mmHg to Pa) and C (°C to K)
>>> Antoine(94.91, 6.83706+2.1249, 339.2095, 268.70-273.15)162978.88655572367
thermo.vapor_pressure.Wagner_original(T, Tc, Pc, a, b, c, d)Calculates vapor pressure using the Wagner equation (3, 6 form).
Requires critical temperature and pressure as well as four coefficients specific to each chemical.
ln𝑃 𝑠𝑎𝑡 = ln𝑃𝑐 +𝑎𝜏 + 𝑏𝜏1.5 + 𝑐𝜏3 + 𝑑𝜏6
𝑇𝑟
𝜏 = 1 − 𝑇
𝑇𝑐
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 each chemical. [-]
Returns Psat : float
384 Chapter 1. thermo
thermo Documentation, Release 0.1
Vapor pressure at T [Pa]
Notes
Warning: Pc is often treated as adjustable constant.
References
[R597], [R598]
Examples
Methane, coefficients from [R598], at 100 K.
>>> Wagner_original(100.0, 190.53, 4596420., a=-6.00435, b=1.1885,... c=-0.834082, d=-1.22833)34520.44601450496
thermo.vapor_pressure.Wagner(T, Tc, Pc, a, b, c, d)Calculates vapor pressure using the Wagner equation (2.5, 5 form).
Requires critical temperature and pressure as well as four coefficients specific to each chemical.
ln𝑃 𝑠𝑎𝑡 = ln𝑃𝑐 +𝑎𝜏 + 𝑏𝜏1.5 + 𝑐𝜏2.5 + 𝑑𝜏5
𝑇𝑟
𝜏 = 1 − 𝑇
𝑇𝑐
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 each chemical. [-]
Returns Psat : float
Vapor pressure at T [Pa]
Notes
Warning: Pc is often treated as adjustable constant.
References
[R599], [R600]
1.1. thermo package 385
thermo Documentation, Release 0.1
Examples
Methane, coefficients from [R600], at 100 K.
>>> Wagner(100., 190.551, 4599200, -6.02242, 1.26652, -0.5707, -1.366)34415.00476263708
thermo.vapor_pressure.TRC_Antoine_extended(T, Tc, to, A, B, C, n, E, F)Calculates vapor pressure of a chemical using the TRC Extended Antoine equation. Parameters are chemicaldependent, and said to be from the Thermodynamics Research Center (TRC) at Texas A&M. Coefficients forvarious chemicals can be found in [R601].
log10 𝑃𝑠𝑎𝑡 = 𝐴− 𝐵
𝑇 + 𝐶+ 0.43429𝑥𝑛 + 𝐸𝑥8 + 𝐹𝑥12
𝑥 = max
(𝑇 − 𝑡𝑜 − 273.15
𝑇𝑐, 0
)Parameters T : float
Temperature of fluid, [K]
A, B, C, n, E, F : floats
Regressed coefficients for the Antoine Extended (TRC) equation, specific for eachchemical, [-]
Returns Psat : float
Vapor pressure calculated with coefficients [Pa]
Notes
Assumes coefficients are for calculating vapor pressure in Pascal. Coefficients should be consistent with inputtemperatures in Kelvin;
References
[R601]
Examples
Tetrafluoromethane, coefficients from [R601], at 180 K:
>>> TRC_Antoine_extended(180.0, 227.51, -120., 8.95894, 510.595, -15.95,... 2.41377, -93.74, 7425.9)706317.0898414153
thermo.vapor_pressure.vapor_pressure_methods = [’WAGNER_MCGARRY’, ‘WAGNER_POLING’, ‘ANTOINE_EXTENDED_POLING’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘COOLPROP’, ‘ANTOINE_POLING’, ‘VDI_TABULAR’, ‘AMBROSE_WALTON’, ‘LEE_KESLER_PSAT’, ‘Edalat’, ‘EOS’, ‘BOILING_CRITICAL’, ‘SANJARI’]Holds all methods available for the VaporPressure class, for use in iterating over them.
class thermo.vapor_pressure.VaporPressure(Tb=None, Tc=None, Pc=None, omega=None,CASRN=’‘, eos=None)
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, any providedequation of state, and the external library CoolProp.
386 Chapter 1. thermo
thermo Documentation, Release 0.1
Parameters Tb : float, optional
Boiling point, [K]
Tc : float, optional
Critical temperature, [K]
Pc : float, optional
Critical pressure, [Pa]
omega : float, optional
Acentric factor, [-]
CASRN : str, optional
The CAS number of the chemical
eos : object, optional
Equation of State object after thermo.eos.GCEOS
See also:
Wagner_original, Wagner, TRC_Antoine_extended, Antoine,boiling_critical_relation, Lee_Kesler, Ambrose_Walton, Sanjari, Edalat
Notes
To iterate over all methods, use the list stored in vapor_pressure_methods.
WAGNER_MCGARRY: The Wagner 3,6 original model equation documented in Wagner_original, withdata for 245 chemicals, from [R602],
WAGNER_POLING: The Wagner 2.5, 5 model equation documented in Wagner in [R603], with data for104 chemicals.
ANTOINE_EXTENDED_POLING: The TRC extended Antoine model equation documented inTRC_Antoine_extended with data for 97 chemicals in [R603].
ANTOINE_POLING: Standard Antoine equation, as documented in the function Antoine and with data for325 fluids from [R603]. Coefficients were altered to be in units of Pa and Celcius.
DIPPR_PERRY_8E: A collection of 341 coefficient sets from the DIPPR database published openly in[R606]. Provides temperature limits for all its fluids. thermo.dippr.EQ101 is used for its fluids.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R605].
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R604]. 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.
EDALAT: CSP method documented in Edalat.
VDI_TABULAR: Tabular data in [R605] along the saturation curve; interpolation is as set by the user or thedefault.
1.1. thermo package 387
thermo Documentation, Release 0.1
EOS: Equation of state provided by user; must implement thermo.eos.GCEOS.Psat
References
[R602], [R603], [R604], [R605], [R606]
Attributes
T_cachedmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate vapor pressure of a fluid at temper-ature T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset 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 DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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
388 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.49 – continued from previous pageset_user_methods(user_methods[, forced]) Method used to select certain property methods as hav-
ing 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 .
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.
1.1. thermo package 389
thermo Documentation, Release 0.1
property_min = 0Mimimum valid value of vapor pressure.
ranked_methods = [’WAGNER_MCGARRY’, ‘WAGNER_POLING’, ‘ANTOINE_EXTENDED_POLING’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘COOLPROP’, ‘ANTOINE_POLING’, ‘VDI_TABULAR’, ‘AMBROSE_WALTON’, ‘LEE_KESLER_PSAT’, ‘Edalat’, ‘BOILING_CRITICAL’, ‘EOS’, ‘SANJARI’]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’
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.boiling_critical_relation(T, Tb, Tc, Pc)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship as in [R607]; 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]
390 Chapter 1. thermo
thermo Documentation, Release 0.1
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 at T [Pa]
Notes
Units are Pa. Formulation makes intuitive sense; a logarithmic form of interpolation.
References
[R607]
Examples
Example as in [R607] for ethylbenzene
>>> boiling_critical_relation(347.2, 409.3, 617.1, 36E5)15209.467273093938
thermo.vapor_pressure.Lee_Kesler(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R608]; requires achemical’s critical temperature and acentric factor.
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
1.1. thermo package 391
thermo Documentation, Release 0.1
Vapor pressure at T [Pa]
Notes
This equation appears in [R608] in expanded form. The reduced pressure form of the equation ensures predictedvapor pressure cannot surpass the critical pressure.
References
[R608], [R609]
Examples
Example from [R609]; ethylbenzene at 347.2 K.
>>> Lee_Kesler(347.2, 617.1, 36E5, 0.299)13078.694162949312
thermo.vapor_pressure.Ambrose_Walton(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R610]; requires achemical’s critical temperature and acentric factor.
The vapor pressure is given by:
ln𝑃𝑟 = 𝑓 (0) + 𝜔𝑓 (1) + 𝜔2𝑓 (2)
𝑓 (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
𝑇𝑟𝜏 = 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 at T [Pa]
392 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
Somewhat more accurate than the Lee_Kesler formulation.
References
[R610], [R611]
Examples
Example from [R611]; ethylbenzene at 347.25 K.
>>> Ambrose_Walton(347.25, 617.15, 36.09E5, 0.304)13278.878504306222
thermo.vapor_pressure.Edalat(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R612]. Requiresa chemical’s critical temperature, pressure, and acentric factor. Claimed to have a higher accuracy than theLee-Kesler CSP relationship.
The vapor pressure of a chemical at T is given by:
ln(𝑃 𝑠𝑎𝑡/𝑃𝑐) =𝑎𝜏 + 𝑏𝜏1.5 + 𝑐𝜏3 + 𝑑𝜏6
1 − 𝜏
𝑎 = −6.1559 − 4.0855𝜔
𝑏 = 1.5737 − 1.0540𝜔 − 4.4365 × 10−3𝑑
𝑐 = −0.8747 − 7.8874𝜔
𝑑 =1
−0.4893 − 0.9912𝜔 + 3.1551𝜔2
𝜏 = 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
[R612] found an average error of 6.06% on 94 compounds and 1106 data points.
1.1. thermo package 393
thermo Documentation, Release 0.1
References
[R612]
Examples
>>> Edalat(347.2, 617.1, 36E5, 0.299)13461.273080743307
thermo.vapor_pressure.Sanjari(T, Tc, Pc, omega)Calculates vapor pressure of a fluid at arbitrary temperatures using a CSP relationship by [R613]. Requires achemical’s critical temperature, pressure, and acentric factor. Although developed for refrigerants, this modelshould have some general predictive ability.
The vapor pressure of a chemical at T 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𝑟
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 [R613].
For Tc=808 K, Pc=1100000 Pa, omega=1.1571, this function actually declines after 770 K.
394 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R613]
Examples
>>> Sanjari(347.2, 617.1, 36E5, 0.299)13651.916109552498
thermo.virial module
thermo.virial.BVirial_Pitzer_Curl(T, Tc, Pc, omega, order=0)Calculates the second virial coefficient using the model in [R614]. 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, [-]
order : int, optional
Order of the calculation. 0 for the calculation of B itself; for 1/2/3, the first/second/thirdderivative of B with respect to temperature; and for -1/-2, the first/second indefinite inte-gral of B with respect to temperature. No other integrals or derivatives are implemented,and an exception will be raised if any other order is given.
Returns B : float
Second virial coefficient in density form or its integral/derivative if specified, [m^3/molor m^3/mol/K^order]
Notes
Analytical models for derivatives and integrals are available for orders -2, -1, 1, 2, and 3, all obtained withSymPy.
For first temperature derivative of B:
𝑑𝐵(0)
𝑑𝑇=
33𝑇𝑐
100𝑇 2+
277𝑇𝑐2
1000𝑇 3+
363𝑇𝑐3
10000𝑇 4
𝑑𝐵(1)
𝑑𝑇= −23𝑇𝑐
50𝑇 2+𝑇𝑐2
𝑇 3+
291𝑇𝑐3
1000𝑇 4+
73𝑇𝑐8
1250𝑇 9
1.1. thermo package 395
thermo Documentation, Release 0.1
For the second temperature derivative of B:
𝑑2𝐵(0)
𝑑𝑇 2= − 3𝑇𝑐
5000𝑇 3
(1100 +
1385𝑇𝑐
𝑇+
242𝑇𝑐2
𝑇 2
)𝑑2𝐵(1)
𝑑𝑇 2=𝑇𝑐
𝑇 3
(23
25− 3𝑇𝑐
𝑇− 291𝑇𝑐2
250𝑇 2− 657𝑇𝑐7
1250𝑇 7
)For the third temperature derivative of B:
𝑑3𝐵(0)
𝑑𝑇 3=
3𝑇𝑐
500𝑇 4
(330 +
554𝑇𝑐
𝑇+
121𝑇𝑐2
𝑇 2
)𝑑3𝐵(1)
𝑑𝑇 3=
3𝑇𝑐
𝑇 4
(−23
25+
4𝑇𝑐
𝑇+
97𝑇𝑐2
50𝑇 2+
219𝑇𝑐7
125𝑇 7
)For the first indefinite integral of B:∫
𝐵(0)𝑑𝑇 =289𝑇
2000− 33𝑇𝑐
100log (𝑇 ) +
1
20000𝑇 2
(2770𝑇𝑇𝑐2 + 121𝑇𝑐3
)∫𝐵(1)𝑑𝑇 =
73𝑇
1000+
23𝑇𝑐
50log (𝑇 ) +
1
70000𝑇 7
(35000𝑇 6𝑇𝑐2 + 3395𝑇 5𝑇𝑐3 + 73𝑇𝑐8
)For the second indefinite integral of B:∫ ∫
𝐵(0)𝑑𝑇𝑑𝑇 =289𝑇 2
4000− 33𝑇
100𝑇𝑐 log (𝑇 ) +
33𝑇
100𝑇𝑐+
277𝑇𝑐2
2000log (𝑇 ) − 121𝑇𝑐3
20000𝑇∫ ∫𝐵(1)𝑑𝑇𝑑𝑇 =
73𝑇 2
2000+
23𝑇
50𝑇𝑐 log (𝑇 ) − 23𝑇
50𝑇𝑐+
𝑇𝑐2
2log (𝑇 ) − 1
420000𝑇 6
(20370𝑇 5𝑇𝑐3 + 73𝑇𝑐8
)References
[R614]
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, order=0)Calculates the second virial coefficient using the model in [R615]. 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]
396 Chapter 1. thermo
thermo Documentation, Release 0.1
Pc : float
Critical pressure of the fluid [Pa]
omega : float
Acentric factor for fluid, [-]
order : int, optional
Order of the calculation. 0 for the calculation of B itself; for 1/2/3, the first/second/thirdderivative of B with respect to temperature; and for -1/-2, the first/second indefinite inte-gral of B with respect to temperature. No other integrals or derivatives are implemented,and an exception will be raised if any other order is given.
Returns B : float
Second virial coefficient in density form or its integral/derivative if specified, [m^3/molor m^3/mol/K^order]
Notes
Analytical models for derivatives and integrals are available for orders -2, -1, 1, 2, and 3, all obtained withSymPy.
For first temperature derivative of B:
𝑑𝐵(0)
𝑑𝑇=
0.6752
𝑇(
𝑇𝑇𝑐
)1.6𝑑𝐵(1)
𝑑𝑇=
0.7224
𝑇(
𝑇𝑇𝑐
)4.2For the second temperature derivative of B:
𝑑2𝐵(0)
𝑑𝑇 2= − 1.75552
𝑇 2(
𝑇𝑇𝑐
)1.6𝑑2𝐵(1)
𝑑𝑇 2= − 3.75648
𝑇 2(
𝑇𝑇𝑐
)4.2For the third temperature derivative of B:
𝑑3𝐵(0)
𝑑𝑇 3=
6.319872
𝑇 3(
𝑇𝑇𝑐
)1.6𝑑3𝐵(1)
𝑑𝑇 3=
23.290176
𝑇 3(
𝑇𝑇𝑐
)4.2For the first indefinite integral of B: ∫
𝐵(0)𝑑𝑇 = 0.083𝑇 +211300𝑇𝑐(𝑇𝑇𝑐
)0.6∫𝐵(1)𝑑𝑇 = 0.139𝑇 +
0.05375𝑇𝑐(𝑇𝑇𝑐
)3.2
1.1. thermo package 397
thermo Documentation, Release 0.1
For the second indefinite integral of B:∫ ∫𝐵(0)𝑑𝑇𝑑𝑇 = 0.0415𝑇 2 +
211
120𝑇𝑐2
(𝑇
𝑇𝑐
)0.4
∫ ∫𝐵(1)𝑑𝑇𝑑𝑇 = 0.0695𝑇 2 −
431760𝑇𝑐
2(𝑇𝑇𝑐
)2.2References
[R615]
Examples
Example is from [R615], 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, order=0)Calculates the second virial coefficient using the model in [R616].
𝐵𝑟 = 𝐵(0) + 𝜔𝐵(1)
𝐵(0) = 0.1445 − 0.330/𝑇𝑟 − 0.1385/𝑇 2𝑟 − 0.0121/𝑇 3
𝑟 − 0.000607/𝑇 8𝑟
𝐵(1) = 0.0637 + 0.331/𝑇 2𝑟 − 0.423/𝑇 3
𝑟 − 0.423/𝑇 3𝑟 − 0.008/𝑇 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, [-]
order : int, optional
Order of the calculation. 0 for the calculation of B itself; for 1/2/3, the first/second/thirdderivative of B with respect to temperature; and for -1/-2, the first/second indefinite inte-gral of B with respect to temperature. No other integrals or derivatives are implemented,and an exception will be raised if any other order is given.
Returns B : float
Second virial coefficient in density form or its integral/derivative if specified, [m^3/molor m^3/mol/K^order]
398 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
A more complete expression is also available, in BVirial_Tsonopoulos_extended.
Analytical models for derivatives and integrals are available for orders -2, -1, 1, 2, and 3, all obtained withSymPy.
For first temperature derivative of B:
𝑑𝐵(0)
𝑑𝑇=
33𝑇𝑐
100𝑇 2+
277𝑇𝑐2
1000𝑇 3+
363𝑇𝑐3
10000𝑇 4+
607𝑇𝑐8
125000𝑇 9
𝑑𝐵(1)
𝑑𝑇= −331𝑇𝑐2
500𝑇 3+
1269𝑇𝑐3
1000𝑇 4+
8𝑇𝑐8
125𝑇 9
For the second temperature derivative of B:
𝑑2𝐵(0)
𝑑𝑇 2= − 3𝑇𝑐
125000𝑇 3
(27500 +
34625𝑇𝑐
𝑇+
6050𝑇𝑐2
𝑇 2+
1821𝑇𝑐7
𝑇 7
)𝑑2𝐵(1)
𝑑𝑇 2=
3𝑇𝑐2
500𝑇 4
(331 − 846𝑇𝑐
𝑇− 96𝑇𝑐6
𝑇 6
)For the third temperature derivative of B:
𝑑3𝐵(0)
𝑑𝑇 3=
3𝑇𝑐
12500𝑇 4
(8250 +
13850𝑇𝑐
𝑇+
3025𝑇𝑐2
𝑇 2+
1821𝑇𝑐7
𝑇 7
)𝑑3𝐵(1)
𝑑𝑇 3=
3𝑇𝑐2
250𝑇 5
(−662 +
2115𝑇𝑐
𝑇+
480𝑇𝑐6
𝑇 6
)For the first indefinite integral of B:∫
𝐵(0)𝑑𝑇 =289𝑇
2000− 33𝑇𝑐
100log (𝑇 ) +
1
7000000𝑇 7
(969500𝑇 6𝑇𝑐2 + 42350𝑇 5𝑇𝑐3 + 607𝑇𝑐8
)∫𝐵(1)𝑑𝑇 =
637𝑇
10000− 1
70000𝑇 7
(23170𝑇 6𝑇𝑐2 − 14805𝑇 5𝑇𝑐3 − 80𝑇𝑐8
)For the second indefinite integral of B:∫ ∫
𝐵(0)𝑑𝑇𝑑𝑇 =289𝑇 2
4000− 33𝑇
100𝑇𝑐 log (𝑇 ) +
33𝑇
100𝑇𝑐+
277𝑇𝑐2
2000log (𝑇 ) − 1
42000000𝑇 6
(254100𝑇 5𝑇𝑐3 + 607𝑇𝑐8
)∫ ∫
𝐵(1)𝑑𝑇𝑑𝑇 =637𝑇 2
20000− 331𝑇𝑐2
1000log (𝑇 ) − 1
210000𝑇 6
(44415𝑇 5𝑇𝑐3 + 40𝑇𝑐8
)References
[R616]
Examples
Example matching that in BVirial_Abbott, for isobutane.
>>> BVirial_Tsonopoulos(510., 425.2, 38E5, 0.193)-0.00020935288308483694
1.1. thermo package 399
thermo Documentation, Release 0.1
thermo.virial.BVirial_Tsonopoulos_extended(T, Tc, Pc, omega, a=0, b=0, species_type=’‘,dipole=0, order=0)
Calculates the second virial coefficient using the comprehensive model in [R617]. See the notes for the calcula-tion of a and b.
𝐵𝑃𝑐
𝑅𝑇𝑐= 𝐵(0) + 𝜔𝐵(1) + 𝑎𝐵(2) + 𝑏𝐵(3)
𝐵(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
𝑟
𝐵(2) = 1/𝑇 6𝑟
𝐵(3) = −1/𝑇 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, [-]
a : float, optional
Fit parameter, calculated based on species_type if a is not given and species_typematches on of the supported chemical classes.
b : float, optional
Fit parameter, calculated based on species_type if a is not given and species_typematches on of the supported chemical classes.
species_type : str, optional
One of .
dipole : float
dipole moment, optional, [Debye]
order : int, optional
Order of the calculation. 0 for the calculation of B itself; for 1/2/3, the first/second/thirdderivative of B with respect to temperature; and for -1/-2, the first/second indefinite inte-gral of B with respect to temperature. No other integrals or derivatives are implemented,and an exception will be raised if any other order is given.
Returns B : float
Second virial coefficient in density form or its integral/derivative if specified, [m^3/molor m^3/mol/K^order]
Notes
Analytical models for derivatives and integrals are available for orders -2, -1, 1, 2, and 3, all obtained withSymPy.
400 Chapter 1. thermo
thermo Documentation, Release 0.1
To calculate a or b, the following rules are used:
For ‘simple’ or ‘normal’ fluids:
𝑎 = 0
𝑏 = 0
For ‘ketone’, ‘aldehyde’, ‘alkyl nitrile’, ‘ether’, ‘carboxylic acid’, or ‘ester’ types of chemicals:
𝑎 = −2.14 × 10−4𝜇𝑟 − 4.308 × 10−21(𝜇𝑟)8
𝑏 = 0
For ‘alkyl halide’, ‘mercaptan’, ‘sulfide’, or ‘disulfide’ types of chemicals:
𝑎 = −2.188 × 10−4(𝜇𝑟)4 − 7.831 × 10−21(𝜇𝑟)8
𝑏 = 0
For ‘alkanol’ types of chemicals (except methanol):
𝑎 = 0.0878
𝑏 = 0.00908 + 0.0006957𝜇𝑟
For methanol:
𝑎 = 0.0878
𝑏 = 0.0525
For water:
𝑎 = −0.0109
𝑏 = 0
If required, the form of dipole moment used in the calculation of some types of a and b values is as follows:
𝜇𝑟 = 100000𝜇2(𝑃𝑐/101325.0)
𝑇𝑐2
For first temperature derivative of B:
𝑑𝐵(0)
𝑑𝑇=
33𝑇𝑐
100𝑇 2+
277𝑇𝑐2
1000𝑇 3+
363𝑇𝑐3
10000𝑇 4+
607𝑇𝑐8
125000𝑇 9
𝑑𝐵(1)
𝑑𝑇= −331𝑇𝑐2
500𝑇 3+
1269𝑇𝑐3
1000𝑇 4+
8𝑇𝑐8
125𝑇 9
𝑑𝐵(2)
𝑑𝑇= −6𝑇𝑐6
𝑇 7
𝑑𝐵(3)
𝑑𝑇=
8𝑇𝑐8
𝑇 9
For the second temperature derivative of B:
𝑑2𝐵(0)
𝑑𝑇 2= − 3𝑇𝑐
125000𝑇 3
(27500 +
34625𝑇𝑐
𝑇+
6050𝑇𝑐2
𝑇 2+
1821𝑇𝑐7
𝑇 7
)𝑑2𝐵(1)
𝑑𝑇 2=
3𝑇𝑐2
500𝑇 4
(331 − 846𝑇𝑐
𝑇− 96𝑇𝑐6
𝑇 6
)𝑑2𝐵(2)
𝑑𝑇 2=
42𝑇𝑐6
𝑇 8
𝑑2𝐵(3)
𝑑𝑇 2= −72𝑇𝑐8
𝑇 10
1.1. thermo package 401
thermo Documentation, Release 0.1
For the third temperature derivative of B:
𝑑3𝐵(0)
𝑑𝑇 3=
3𝑇𝑐
12500𝑇 4
(8250 +
13850𝑇𝑐
𝑇+
3025𝑇𝑐2
𝑇 2+
1821𝑇𝑐7
𝑇 7
)𝑑3𝐵(1)
𝑑𝑇 3=
3𝑇𝑐2
250𝑇 5
(−662 +
2115𝑇𝑐
𝑇+
480𝑇𝑐6
𝑇 6
)𝑑3𝐵(2)
𝑑𝑇 3= −336𝑇𝑐6
𝑇 9
𝑑3𝐵(3)
𝑑𝑇 3=
720𝑇𝑐8
𝑇 11
For the first indefinite integral of B:∫𝐵(0)𝑑𝑇 =
289𝑇
2000− 33𝑇𝑐
100log (𝑇 ) +
1
7000000𝑇 7
(969500𝑇 6𝑇𝑐2 + 42350𝑇 5𝑇𝑐3 + 607𝑇𝑐8
)∫𝐵(1)𝑑𝑇 =
637𝑇
10000− 1
70000𝑇 7
(23170𝑇 6𝑇𝑐2 − 14805𝑇 5𝑇𝑐3 − 80𝑇𝑐8
)∫𝐵(2)𝑑𝑇 = −𝑇𝑐
6
5𝑇 5∫𝐵(3)𝑑𝑇 =
𝑇𝑐8
7𝑇 7
For the second indefinite integral of B:∫ ∫𝐵(0)𝑑𝑇𝑑𝑇 =
289𝑇 2
4000− 33𝑇
100𝑇𝑐 log (𝑇 ) +
33𝑇
100𝑇𝑐+
277𝑇𝑐2
2000log (𝑇 ) − 1
42000000𝑇 6
(254100𝑇 5𝑇𝑐3 + 607𝑇𝑐8
)∫ ∫
𝐵(1)𝑑𝑇𝑑𝑇 =637𝑇 2
20000− 331𝑇𝑐2
1000log (𝑇 ) − 1
210000𝑇 6
(44415𝑇 5𝑇𝑐3 + 40𝑇𝑐8
)∫ ∫
𝐵(2)𝑑𝑇𝑑𝑇 =𝑇𝑐6
20𝑇 4∫ ∫𝐵(3)𝑑𝑇𝑑𝑇 = − 𝑇𝑐8
42𝑇 6
References
[R617], [R618]
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,→˓species_type='ketone', dipole=1.469)-9.679715056695323e-05
thermo.viscosity module
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.
402 Chapter 1. thermo
thermo Documentation, Release 0.1
# 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.
>>> 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 [R619]. Requiresinput coefficients. The A coefficient is assumed to yield coefficients in centipoise, as all coefficients found sofar have been.
log10 𝜇 = 𝐴+𝐵/(𝑇 + 𝐶)
Parameters T : float
Temperature of fluid [K]
Returns mu : float
Liquid viscosity, [Pa*s]
Notes
No other source for these coefficients has been found.
References
[R619]
Examples
>>> ViswanathNatarajan3(298.15, -2.7173, -1071.18, -129.51)0.0006129806445142112
thermo.viscosity.Letsou_Stiel(T, MW, Tc, Pc, omega)Calculates the viscosity of a liquid using an emperical model developed in [R620]. 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]
1.1. thermo package 403
thermo Documentation, Release 0.1
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. [R620]‘s units were different. DIPPR test value for ethanol is used.
Average error 34%. Range of applicability is 0.76 < Tr < 0.98.
References
[R620]
Examples
>>> Letsou_Stiel(400., 46.07, 516.25, 6.383E6, 0.6371)0.0002036150875308151
thermo.viscosity.Przedziecki_Sridhar(T, Tm, Tc, Pc, Vc, Vm, omega, MW)Calculates the viscosity of a liquid using an emperical formula developed in [R621].
𝜇 =𝑉𝑜
𝐸(𝑉 − 𝑉𝑜)
𝐸 = −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]
404 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
References
[R621]
Examples
>>> Przedziecki_Sridhar(383., 178., 591.8, 41E5, 316E-6, 95E-6, .263, 92.14)0.0002198147995603383
thermo.viscosity.viscosity_liquid_methods = [’COOLPROP’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘DUTT_PRASAD’, ‘VISWANATH_NATARAJAN_3’, ‘VISWANATH_NATARAJAN_2’, ‘VISWANATH_NATARAJAN_2E’, ‘VDI_TABULAR’, ‘LETSOU_STIEL’, ‘PRZEDZIECKI_SRIDHAR’]Holds all low-pressure methods available for the ViscosityLiquid class, for use in iterating over them.
thermo.viscosity.viscosity_liquid_methods_P = [’COOLPROP’, ‘LUCAS’]Holds all high-pressure methods available for the ViscosityLiquid class, for use in iterating over them.
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, there aresix coefficient-based methods from three data sources, 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 405
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
To iterate over all methods, use the lists stored in viscosity_liquid_methods andviscosity_liquid_methods_P for low and high pressure methods respectively.
Low pressure methods:
DUTT_PRASAD: A simple function as expressed in [R622], 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 [R622], 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 [R622], 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 [R622], with data available for 14 fluids.Temperature limits are available for all fluids. See ViswanathNatarajan2Exponential for details.
DIPPR_PERRY_8E: A collection of 337 coefficient sets from the DIPPR database published openly in[R625]. Provides temperature limits for all its fluids. thermo.dippr.EQ101 is used for its fluids.
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 [R623]. Very slow.
406 Chapter 1. thermo
thermo Documentation, Release 0.1
VDI_TABULAR: Tabular data in [R624] along the saturation curve; interpolation is as set by the user or thedefault.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R624]. Provides notemperature limits, but has been designed for extrapolation. Extrapolated to low temperatures it providesa smooth exponential increase. However, for some chemicals such as glycerol, extrapolated to highertemperatures viscosity is predicted to increase above a certain point.
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
[R622], [R623], [R624], [R625]
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
Continued on next page
1.1. thermo package 407
thermo Documentation, Release 0.1
Table 1.50 – continued from previous pageT_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
calculate(T, method) Method to calculate low-pressure liquid viscosity attempearture T with a given method.
calculate_P(T, P, method) Method to calculate pressure-dependent liquid viscosityat temperature T and pressure P with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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.
Continued on next page
408 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.50 – continued from previous pageset_user_methods(user_methods[, forced]) Method used to select certain property methods as hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis 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 viscosity 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]
1.1. thermo package 409
thermo Documentation, Release 0.1
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 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’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘DUTT_PRASAD’, ‘VISWANATH_NATARAJAN_3’, ‘VISWANATH_NATARAJAN_2’, ‘VISWANATH_NATARAJAN_2E’, ‘VDI_TABULAR’, ‘LETSOU_STIEL’, ‘PRZEDZIECKI_SRIDHAR’]Default rankings of the low-pressure methods.
ranked_methods_P = [’COOLPROP’, ‘LUCAS’]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.
410 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
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.
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.
1.1. thermo package 411
thermo Documentation, Release 0.1
For gases at atmospheric pressure, there are 4 corresponding-states estimators, two sources of coefficient-basedmodels, 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 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_viscosity , 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_viscosity .
YOON_THODOS: CSP method, described in Yoon_Thodos.
STIEL_THODOS: CSP method, described in Stiel_Thodos.
LUCAS_GAS: CSP method, described in lucas_gas.
DIPPR_PERRY_8E: A collection of 345 coefficient sets from the DIPPR database published openly in[R628]. Provides temperature limits for all its fluids. thermo.dippr.EQ102 is used for its fluids.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R627]. Providesno temperature limits, but provides reasonable values at fairly high and very low temperatures.
COOLPROP: CoolProp external library; with select fluids from its library. Range is limited to that of theequations of state it uses, as described in [R626]. Very slow.
VDI_TABULAR: Tabular data in [R627] along the saturation curve; interpolation is as set by the user or thedefault.
412 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R626]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R626], [R627], [R628]
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
calculate(T, method) Method to calculate low-pressure gas viscosity at tem-pearture T with a given method.
calculate_P(T, P, method) Method to calculate pressure-dependent gas viscosity attemperature T and pressure P with a given method.
Continued on next page
1.1. thermo package 413
thermo Documentation, Release 0.1
Table 1.51 – continued from previous pagecalculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-
spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis 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.
414 Chapter 1. thermo
thermo Documentation, Release 0.1
Tmax = NoneMaximum temperature at which no method can calculate the gas viscosity above.
Tmin = NoneMinimum temperature at which no method can calculate the gas 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 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 and
1.1. thermo package 415
thermo Documentation, Release 0.1
DataFrames 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 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’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘GHARAGHEIZI’, ‘YOON_THODOS’, ‘STIEL_THODOS’, ‘LUCAS_GAS’]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.
416 Chapter 1. thermo
thermo Documentation, Release 0.1
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 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.
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 [R629], but as discussedin [R630] 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
1.1. thermo package 417
thermo Documentation, Release 0.1
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.
References
[R629], [R630]
Examples
>>> Lucas(300., 500E5, 572.2, 34.7E5, 0.236, 0, 0.00068) # methylcyclohexane0.0010683738499316518
thermo.viscosity.Yoon_Thodos(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R631].
𝜂𝜉 × 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
418 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R631]
Examples
>>> Yoon_Thodos(300., 556.35, 4.5596E6, 153.8)1.0194885727776819e-05
thermo.viscosity.Stiel_Thodos(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R632].
𝑇𝑂𝐷𝑂
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.
1.1. thermo package 419
thermo Documentation, Release 0.1
References
[R632]
Examples
>>> Stiel_Thodos(300., 556.35, 4.5596E6, 153.8) #CCl41.0408926223608723e-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[R633] as the original sources are in German or merely personal communications with the authors of [R633].
𝜂 =[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 [R633]; 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.
420 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R633]
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.Gharagheizi_gas_viscosity(T, Tc, Pc, MW)Calculates the viscosity of a gas using an emperical formula developed in [R634].
𝜇 = 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
[R634]
Examples
>>> Gharagheizi_gas_viscosity(120., 190.564, 45.99E5, 16.04246)5.215761625399613e-06
thermo.viscosity.viscosity_gas_methods = [’COOLPROP’, ‘DIPPR_PERRY_8E’, ‘VDI_PPDS’, ‘VDI_TABULAR’, ‘GHARAGHEIZI’, ‘YOON_THODOS’, ‘STIEL_THODOS’, ‘LUCAS_GAS’]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.
1.1. thermo package 421
thermo Documentation, Release 0.1
thermo.viscosity.Herning_Zipperer(zs, mus, MWs)Calculates viscosity of a gas mixture according to mixing rules in [R635].
𝑇𝑂𝐷𝑂
Parameters zs : float
Mole fractions of 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]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed.
References
[R635]
thermo.viscosity.Wilke(ys, mus, MWs)Calculates viscosity of a gas mixture according to mixing rules in [R636].
𝜂𝑚𝑖𝑥 =
𝑛∑𝑖=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]
Notes
This equation is entirely dimensionless; all dimensions cancel. The original source has not been reviewed orfound.
422 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R636]
Examples
>>> Wilke([0.05, 0.95], [1.34E-5, 9.5029E-6], [64.06, 46.07])9.701614885866193e-06
thermo.viscosity.Brokaw(T, ys, mus, MWs, molecular_diameters, Stockmayers)Calculates viscosity of a gas mixture according to mixing rules in [R637].
𝜂𝑚𝑖𝑥 =
𝑛∑𝑖=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]
1.1. thermo package 423
thermo Documentation, Release 0.1
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
[R637], [R638], [R639]
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.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]
rounding : bool, optional
Whether to round the value or not.
Returns VI: float
Viscosity index [-]
424 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
Note that viscosity is a pressure-dependent property, and that the viscosity index is defined for a fluid at whateverpressure it is at. The viscosity index is thus also a function of pressure.
References
[R640]
Examples
>>> viscosity_index(73.3E-6, 8.86E-6, rounding=True)92
class thermo.viscosity.ViscosityLiquidMixture(CASs=[], ViscosityLiquids=[])Bases: thermo.utils.MixtureProperty
Class for dealing with the viscosity of a liquid mixture as a function of temperature, pressure, and composi-tion. Consists of one electrolyte-specific method, and logarithmic rules based on either mole fractions of massfractions.
Prefered method is mixing_logarithmic with mole fractions, or Laliberte if the mixture is aqueous andhas electrolytes.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
ViscosityLiquids : list[ViscosityLiquid], optional
ViscosityLiquid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
See also:
thermo.electrochem.Laliberte_viscosity
Notes
To iterate over all methods, use the list stored in viscosity_liquid_mixture_methods.
LALIBERTE_MU: Electrolyte model equation with coefficients; see thermo.electrochem.Laliberte_viscosity for more details.
MIXING_LOG_MOLAR: Logarithmic mole fraction mixing rule described in thermo.utils.mixing_logarithmic.
MIXING_LOG_MASS: Logarithmic mole fraction mixing rule described in thermo.utils.mixing_logarithmic.
References
[R641]
1.1. thermo package 425
thermo Documentation, Release 0.1
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate viscosity of a liquid mixture at tem-perature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
test_property_validity(prop) Method to test the validity of a calculated property.
426 Chapter 1. thermo
thermo Documentation, Release 0.1
Tmax = NoneMaximum temperature at which no method can calculate the liquid viscosity above.
Tmin = NoneMinimum temperature at which no method can calculate the liquid viscosity under.
all_methods = NoneSet of all methods available for a given set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate viscosity of a liquid mixture at temperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns mu : float
Viscosity of the liquid mixture, [Pa*s]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 = [’Laliberte’, ‘Logarithmic mixing, molar’, ‘Logarithmic mixing, mass’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. If Laliberte is applicable, allother methods are returned as inapplicable. Otherwise, there are no checks or strict ranges of validity.
1.1. thermo package 427
thermo Documentation, Release 0.1
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
class thermo.viscosity.ViscosityGasMixture(MWs=[], molecular_diameters=[], Stockmay-ers=[], CASs=[], ViscosityGases=[])
Bases: thermo.utils.MixtureProperty
Class for dealing with the viscosity of a gas mixture as a function of temperature, pressure, and composition.Consists of three gas viscosity specific mixing rules and a mole-weighted simple mixing rule.
Prefered method is Brokaw .
Parameters MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
molecular_diameters : list[float], optional
Lennard-Jones molecular diameters, [Angstrom]
Stockmayers : list[float], optional
Lennard-Jones depth of potential-energy minimum over k or epsilon_k, [K]
CASs : list[str], optional
The CAS numbers of all species in the mixture
ViscosityGass : list[ViscosityGas], optional
ViscosityGas objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
See also:
Brokaw , Herning_Zipperer, Wilke
428 Chapter 1. thermo
thermo Documentation, Release 0.1
Notes
To iterate over all methods, use the list stored in viscosity_liquid_mixture_methods.
Brokaw: Mixing rule described in Brokaw .
Herning-Zipperer: Mixing rule described in Herning_Zipperer.
Wilke: Mixing rule described in Wilke.
SIMPLE: Mixing rule described in thermo.utils.mixing_simple.
References
[R642]
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate viscosity of a gas mixture at temper-ature T, pressure P, mole fractions zs and weight frac-tions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
Continued on next page
1.1. thermo package 429
thermo Documentation, Release 0.1
Table 1.53 – continued from previous pageplot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperature
and pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
test_property_validity(prop) Method to test the validity of a calculated property.
Tmax = NoneMaximum temperature at which no method can calculate the gas viscosity above.
Tmin = NoneMinimum temperature at which no method can calculate the gas viscosity under.
all_methods = NoneSet of all methods available for a given set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate viscosity of a gas mixture at temperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns mu : float
Viscosity of gas mixture, [Pa*s]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
430 Chapter 1. thermo
thermo Documentation, Release 0.1
Called on initialization only. See the source code for the variables at which the coefficients are stored. Thecoefficients can safely be altered once the class is initialized. This method can be called again to reset theparameters.
name = ‘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 = [’Brokaw’, ‘Herning-Zipperer’, ‘Simple’, ‘Wilke’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid 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 mixture_property.
thermo.volume module
thermo.volume.Yen_Woods_saturation(T, Tc, Vc, Zc)Calculates saturation liquid volume, using the Yen and Woods [R643] CSP method and a chemical’s criticalproperties.
1.1. thermo package 431
thermo Documentation, Release 0.1
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
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
[R643]
Examples
>>> Yen_Woods_saturation(300, 647.14, 55.45E-6, 0.245)1.7695330765295693e-05
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]
432 Chapter 1. thermo
thermo Documentation, Release 0.1
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
[R644]
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.Yamada_Gunn(T, Tc, Pc, omega)Calculates saturation liquid volume, using Yamada and Gunn CSP method and a chemical’s critical propertiesand acentric factor.
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]
1.1. thermo package 433
thermo Documentation, Release 0.1
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
[R645], [R646]
Examples
>>> Yamada_Gunn(300, 647.14, 22048320.0, 0.245)2.1882836429895796e-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
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
[R647]
Examples
434 Chapter 1. thermo
thermo Documentation, Release 0.1
>>> Townsend_Hales(300, 647.14, 55.95E-6, 0.3449)1.8007361992619923e-05
thermo.volume.Bhirud_normal(T, Tc, Pc, omega)Calculates saturation liquid density using the Bhirud [R648] 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]
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
[R648]
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.
1.1. thermo package 435
thermo Documentation, Release 0.1
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.
Returns Vs : float
Saturation liquid volume
Notes
196 constants are fit to this function in [R649]. 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
[R649]
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.Campbell_Thodos(T, Tb, Tc, Pc, M, dipole=None, hydroxyl=False)Calculate saturation liquid density using the Campbell-Thodos [R650] CSP method.
436 Chapter 1. thermo
thermo Documentation, Release 0.1
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
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.
1.1. thermo package 437
thermo Documentation, Release 0.1
References
[R650]
Examples
Ammonia, from [R650].
>>> 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.SNM0(T, Tc, Vc, omega, delta_SRK=None)Calculates saturated liquid density using the Mchaweh, Moshfeghian model [R651]. 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
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
[R651]
438 Chapter 1. thermo
thermo Documentation, Release 0.1
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.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
[R652] 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.
References
[R652]
Examples
>>> CRC_inorganic(300, 2370.0, 2.687, 239.08)2206.30796
1.1. thermo package 439
thermo Documentation, Release 0.1
thermo.volume.volume_liquid_methods = [’PERRYDIPPR’, ‘VDI_PPDS’, ‘COOLPROP’, ‘MMSNM0FIT’, ‘VDI_TABULAR’, ‘HTCOSTALDFIT’, ‘RACKETTFIT’, ‘CRC_INORG_L’, ‘CRC_INORG_L_CONST’, ‘MMSNM0’, ‘HTCOSTALD’, ‘YEN_WOODS_SAT’, ‘RACKETT’, ‘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’, ‘COSTALD_COMPRESSED’, ‘EOS’]Holds all high-pressure methods available for the VolumeLiquid class, for use in iterating over them.
class thermo.volume.VolumeLiquid(MW=None, Tb=None, Tc=None, Pc=None, Vc=None,Zc=None, omega=None, dipole=None, Psat=None, CASRN=’‘,eos=None)
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 aresix 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]
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]
eos : object, optional
Equation of State object after thermo.eos.GCEOS
See also:
Yen_Woods_saturation, Rackett, Yamada_Gunn, Townsend_Hales, Bhirud_normal,COSTALD, Campbell_Thodos, SNM0, CRC_inorganic, COSTALD_compressed
440 Chapter 1. thermo
thermo Documentation, Release 0.1
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 [R653], with data available for 344 fluids. Temperaturelimits are available for all fluids. Believed very accurate.
VDI_PPDS: Coefficients for a equation form developed by the PPDS, published openly in [R655]. Valid up tothe critical temperature, and extrapolates to very low temperatures well.
MMSNM0FIT: Uses a fit coefficient for better accuracy in the SNM0 method, Coefficients available for 73fluids from [R654]. Valid to the critical point.
HTCOSTALDFIT: A method with two fit coefficients to the COSTALD method. Coefficients available for192 fluids, from [R655]. Valid to the critical point.
RACKETTFIT: The Racket method, with a fit coefficient Z_RA. Data is available for 186 fluids, from[R655]. 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 [R656]; described in CRC_inorganic.
MMSNM0: CSP method, described in SNM0.
HTCOSTALD: CSP method, described in COSTALD.
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 [R657]. Very slow.
CRC_INORG_L_CONST: Constant inorganic liquid densities, in [R656].
VDI_TABULAR: Tabular data in [R658] 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 [R657]. Very slow, but unparalled in accuracy for pressuredependence.
EOS: Equation of state provided by user.
1.1. thermo package 441
thermo Documentation, Release 0.1
References
[R653], [R654], [R655], [R656], [R657], [R658]
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
calculate(T, method) Method to calculate low-pressure liquid molar volumeat tempearture T with a given method.
calculate_P(T, P, method) Method to calculate pressure-dependent liquid molarvolume at temperature T and pressure P with a givenmethod.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
Continued on next page
442 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.54 – continued from previous pagecalculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature and
pressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis 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.
1.1. thermo package 443
thermo Documentation, Release 0.1
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
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’
444 Chapter 1. thermo
thermo Documentation, Release 0.1
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 = [’PERRYDIPPR’, ‘VDI_PPDS’, ‘COOLPROP’, ‘MMSNM0FIT’, ‘VDI_TABULAR’, ‘HTCOSTALDFIT’, ‘RACKETTFIT’, ‘CRC_INORG_L’, ‘CRC_INORG_L_CONST’, ‘MMSNM0’, ‘HTCOSTALD’, ‘YEN_WOODS_SAT’, ‘RACKETT’, ‘YAMADA_GUNN’, ‘BHIRUD_NORMAL’, ‘TOWNSEND_HALES’, ‘CAMPBELL_THODOS’, ‘EOS’]Default rankings of the low-pressure methods.
ranked_methods_P = [’COOLPROP’, ‘COSTALD_COMPRESSED’, ‘EOS’]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 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
1.1. thermo package 445
thermo Documentation, Release 0.1
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
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.
thermo.volume.COSTALD_compressed(T, P, Psat, Tc, Pc, omega, Vs)Calculates compressed-liquid volume, using the COSTALD [R659] 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]
446 Chapter 1. thermo
thermo Documentation, Release 0.1
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
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
[R659]
Examples
>>> COSTALD_compressed(303., 9.8E7, 85857.9, 466.7, 3640000.0, 0.281, 0.000105047)9.287482879788506e-05
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]
1.1. thermo package 447
thermo Documentation, Release 0.1
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.Rackett_mixture(T, xs, MWs, Tcs, Pcs, Zrs)Calculate mixture liquid density using the Rackett-derived mixing rule as shown in [R661].
𝑉𝑚 =∑𝑖
𝑥𝑖𝑇𝑐𝑖𝑀𝑊𝑖𝑃𝑐𝑖
𝑍(1+(1−𝑇𝑟)
2/7)𝑅,𝑚 𝑅
∑𝑖
𝑥𝑖𝑀𝑊𝑖
Parameters T : float
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 [R660] forms the basis for this model, shown in [R661]. Molecular weights areused as weighing by such has been found to provide higher accuracy in [R661]. 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.
448 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R660], [R661]
Examples
Calculation in [R661] 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.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.
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.
1.1. thermo package 449
thermo Documentation, Release 0.1
References
[R662]
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.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]
Examples
>>> ideal_gas(298.15, 101325.)0.02446539540458919
thermo.volume.volume_gas_methods = [’COOLPROP’, ‘EOS’, ‘CRC_VIRIAL’, ‘TSONOPOULOS_EXTENDED’, ‘TSONOPOULOS’, ‘ABBOTT’, ‘PITZER_CURL’, ‘IDEAL’]Holds all methods available for the VolumeGas class, for use in iterating over them.
class thermo.volume.VolumeGas(CASRN=’‘, MW=None, Tc=None, Pc=None, omega=None,dipole=None, eos=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]
450 Chapter 1. thermo
thermo Documentation, Release 0.1
omega : float, optional
Acentric factor, [-]
dipole : float, optional
Dipole, [debye]
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 [R663]. The full expression is:
𝐵 =
4∑1
𝑎𝑖 [𝑇0/298.15 − 1]𝑖−1
TSONOPOULOS_EXTENDED: CSP method for second virial coefficients, described in thermo.virial.BVirial_Tsonopoulos_extended
TSONOPOULOS: CSP method for second virial coefficients, described in thermo.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 in thermo.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 [R664]. Very slow, but unparalled in accuracy for pressuredependence.
References
[R663], [R664]
Attributes
TP_cachedT_cachedinterpolation_Pinterpolation_Tinterpolation_propertyinterpolation_property_invmethodmethod_P
1.1. thermo package 451
thermo Documentation, Release 0.1
Methods
TP_dependent_property(T, P) Method to calculate the property with sanity checkingand without specifying a specific method.
TP_dependent_property_derivative_P(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order.
TP_dependent_property_derivative_T(T,P[, order])
Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order.
TP_or_T_dependent_property(T, P)T_dependent_property(T) Method to calculate the property with sanity checking
and without specifying a specific method.T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T, P) Convenience method to calculate the property; callsTP_dependent_property.
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 vol-ume at temperature T and pressure P with a givenmethod.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_derivative_P(P, T, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to pressure atconstant temperature, of a given order using a specifiedmethod.
calculate_derivative_T(T, P, method[, order]) Method to calculate a derivative of a temperature andpressure dependent property with respect to temperatureat constant pressure, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
interpolate_P(T, P, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data_P.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
Continued on next page
452 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.55 – continued from previous pageplot_TP_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
plot_isobar(P[, Tmin, Tmax, methods_P, pts, ...]) Method to create a plot of the property vs temperatureat a specific pressure according to either a specified listof 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 aspecified temperature according to either a specified listof methods, or the user methods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid at T according to test_method_validity.
select_valid_methods_P(T, P) Method to obtain a sorted list methods which are validat 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 hav-
ing a higher priority than were set by default.set_user_methods_P(user_methods_P[,forced_P])
Method to set the pressure-dependent property methodsdesired for consideration by the user.
solve_prop(goal[, reset_method]) Method to solve for the temperature at which a propertyis at a specified value.
test_method_validity(T, method) Method to test the validity of a specified method for agiven temperature.
test_method_validity_P(T, P, method) Method to check the validity of a pressure and tempera-ture 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]
1.1. thermo package 453
thermo Documentation, Release 0.1
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 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 = [’COOLPROP’, ‘EOS’, ‘TSONOPOULOS_EXTENDED’, ‘TSONOPOULOS’, ‘ABBOTT’, ‘PITZER_CURL’, ‘CRC_VIRIAL’, ‘IDEAL’]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.
454 Chapter 1. thermo
thermo Documentation, Release 0.1
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_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.
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]
1.1. thermo package 455
thermo Documentation, Release 0.1
Returns rhos : float
Solid volume, [m^3/mol]
Notes
Works to the next solid transition temperature or to approximately 0.3Tt.
References
[R665]
Examples
>>> Goodman(281.46, 353.43, 7.6326)8.797191839062899
thermo.volume.volume_solid_methods = [’GOODMAN’, ‘CRC_INORG_S’]Holds all methods available for the VolumeSolid class, for use in iterating over them.
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 [R666], for 1872 chemicals.
GOODMAN: Simple method using the liquid molar volume. Good up to 0.3*Tt. See Goodman for details.
456 Chapter 1. thermo
thermo Documentation, Release 0.1
References
[R666]
Attributes
T_cachedinterpolation_Tinterpolation_propertyinterpolation_property_invmethod
Methods
T_dependent_property(T) Method to calculate the property with sanity checkingand without specifying a specific method.
T_dependent_property_derivative(T[, or-der])
Method to obtain a derivative of a property with respectto temperature, of a given order.
T_dependent_property_integral(T1, T2) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
T_dependent_property_integral_over_T(T1,T2)
Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
__call__(T) Convenience method to calculate the property; callsT_dependent_property.
calculate(T, method) Method to calculate the molar volume of a solid at tem-pearture T with a given method.
calculate_derivative(T, method[, order]) Method to calculate a derivative of a property with re-spect to temperature, of a given order using a specifiedmethod.
calculate_integral(T1, T2, method) Method to calculate the integral of a property with re-spect to temperature, using a specified method.
calculate_integral_over_T(T1, T2, method) Method to calculate the integral of a property over tem-perature with respect to temperature, using a specifiedmethod.
interpolate(T, name) Method to perform interpolation on a given tabular dataset previously added via set_tabular_data.
load_all_methods() Method which picks out coefficients for the specifiedchemical from the various dictionaries and DataFramesstoring it.
plot_T_dependent_property([Tmin, Tmax,...])
Method to create a plot of the property vs temperatureaccording to either a specified list of methods, or usermethods (if set), or all methods.
select_valid_methods(T) Method to obtain a sorted list of methods which arevalid 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 hav-
ing a higher priority than were set by default.Continued on next page
1.1. thermo package 457
thermo Documentation, Release 0.1
Table 1.56 – continued from previous pagesolve_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 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 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_INORG_S’]Default rankings of the available methods.
458 Chapter 1. thermo
thermo Documentation, Release 0.1
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.
class thermo.volume.VolumeLiquidMixture(MWs=[], Tcs=[], Pcs=[], Vcs=[], Zcs=[],omegas=[], CASs=[], VolumeLiquids=[])
Bases: thermo.utils.MixtureProperty
Class for dealing with the molar volume of a liquid mixture as a function of temperature, pressure, and com-position. Consists of one electrolyte-specific method, four corresponding states methods which do not usepure-component volumes, and one mole-weighted averaging method.
Prefered method is SIMPLE, or Laliberte if the mixture is aqueous and has electrolytes.
Parameters MWs : list[float], optional
Molecular weights of all species in the mixture, [g/mol]
Tcs : list[float], optional
Critical temperatures of all species in the mixture, [K]
Pcs : list[float], optional
Critical pressures of all species in the mixture, [Pa]
Vcs : list[float], optional
1.1. thermo package 459
thermo Documentation, Release 0.1
Critical molar volumes of all species in the mixture, [m^3/mol]
Zcs : list[float], optional
Critical compressibility factors of all species in the mixture, [Pa]
omegas : list[float], optional
Accentric factors of all species in the mixture, [-]
CASs : list[str], optional
The CAS numbers of all species in the mixture
VolumeLiquids : list[VolumeLiquid], optional
VolumeLiquid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
Notes
To iterate over all methods, use the list stored in volume_liquid_mixture_methods.
Laliberte: Aqueous electrolyte model equation with coefficients; see thermo.electrochem.Laliberte_density for more details.
COSTALD mixture: CSP method described in COSTALD_mixture.
COSTALD mixture parameters: CSP method described in COSTALD_mixture, with two mixture compo-sition independent fit coefficients, Vc and omega.
RACKETT: CSP method described in Rackett_mixture.
RACKETT Parameters: CSP method described in Rackett_mixture, but with a mixture independent fitcoefficient for compressibility factor for each species.
SIMPLE: Linear mole fraction mixing rule described in thermo.utils.mixing_simple; also knownas Amgat’s law.
References
[R667]
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
Continued on next page
460 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.57 – continued from previous pagecalculate(T, P, zs, ws, method) Method to calculate molar volume of a liquid mixture at
temperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
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 methods available for a given set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate molar volume of a liquid mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
1.1. thermo package 461
thermo Documentation, Release 0.1
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the liquid mixture at the given conditions, [m^3/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 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 = [’Laliberte’, ‘SIMPLE’, ‘COSTALD mixture parameters’, ‘RACKETT Parameters’, ‘COSTALD mixture’, ‘RACKETT’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
462 Chapter 1. thermo
thermo Documentation, Release 0.1
method : str
Method name to use
Returns validity : bool
Whether or not a specifid method is valid
units = ‘m^3/mol’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby mixture_property.
class thermo.volume.VolumeGasMixture(eos=None, CASs=[], VolumeGases=[])Bases: thermo.utils.MixtureProperty
Class for dealing with the molar volume of a gas mixture as a function of temperature, pressure, and composition.Consists of an equation of state, the ideal gas law, and one mole-weighted averaging method.
Prefered method is EOS, or IDEAL if critical properties of components are unavailable.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
VolumeGases : list[VolumeGas], optional
VolumeGas objects created for all species in the mixture, normally created by thermo.chemical.Chemical.
eos : container[EOS Object], optional
Equation of state object, normally created by thermo.chemical.Mixture.
See also:
ideal_gas, thermo.eos_mix
Notes
To iterate over all methods, use the list stored in volume_gas_mixture_methods.
EOS: Equation of State object, normally provided by thermo.chemical.Mixture. See thermo.eos_mix for more details.
SIMPLE: Linear mole fraction mixing rule described in thermo.utils.mixing_simple; more correctthan the ideal gas law.
IDEAL: The ideal gas law.
References
[R668]
Attributes
TP_zs_ws_cachedmethodprop_cached
1.1. thermo package 463
thermo Documentation, Release 0.1
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate molar volume of a gas mixture attemperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
calculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
test_property_validity(prop) Method to test the validity of a calculated property.
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 = NoneSet of all methods available for a given set of information; filled by load_all_methods.
464 Chapter 1. thermo
thermo Documentation, Release 0.1
calculate(T, P, zs, ws, method)Method to calculate molar volume of a gas mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the gas mixture at the given conditions, [m^3/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 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 = [’EOS’, ‘SIMPLE’, ‘IDEAL’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
1.1. thermo package 465
thermo Documentation, Release 0.1
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
Returns validity : bool
Whether or not a specifid method is valid
units = ‘m^3/mol’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby mixture_property.
class thermo.volume.VolumeSolidMixture(CASs=[], VolumeSolids=[])Bases: thermo.utils.MixtureProperty
Class for dealing with the molar volume of a solid mixture as a function of temperature, pressure, and composi-tion. Consists of only mole-weighted averaging.
Parameters CASs : list[str], optional
The CAS numbers of all species in the mixture
VolumeSolids : list[VolumeSolid], optional
VolumeSolid objects created for all species in the mixture, normally created bythermo.chemical.Chemical.
Notes
To iterate over all methods, use the list stored in volume_solid_mixture_methods.
SIMPLE: Linear mole fraction mixing rule described in thermo.utils.mixing_simple.
Attributes
TP_zs_ws_cachedmethodprop_cached
Methods
__call__(T, P, zs, ws) Convenience method to calculate the property; callsmixture_property.
calculate(T, P, zs, ws, method) Method to calculate molar volume of a solid mixture attemperature T, pressure P, mole fractions zs and weightfractions ws with a given method.
Continued on next page
466 Chapter 1. thermo
thermo Documentation, Release 0.1
Table 1.59 – continued from previous pagecalculate_derivative_P(P, T, zs, ws, method) Method to calculate a derivative of a mixture property
with respect to pressure at constant temperature andcomposition of a given order using a specified method.
calculate_derivative_T(T, P, zs, ws, method) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition of a given order using a specified method.
load_all_methods() Method to initialize the object by precomputing any val-ues which may be used repeatedly and by retrievingmixture-specific variables.
mixture_property(T, P, zs, ws) Method to calculate the property with sanity checkingand without specifying a specific method.
plot_isobar(P, zs, ws[, Tmin, Tmax, ...]) Method to create a plot of the property vs temperature ata specific pressure and composition according to eithera specified list of methods, or user methods (if set), orall methods.
plot_isotherm(T, zs, ws[, Pmin, Pmax, ...]) Method to create a plot of the property vs pressure ata specified temperature and composition according toeither a specified list of methods, or the user methods (ifset), or all methods.
plot_property(zs, ws[, Tmin, Tmax, Pmin, ...]) Method to create a plot of the property vs temperatureand pressure according to either a specified list of meth-ods, or user methods (if set), or all methods.
property_derivative_P(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to pressure at constant temperature andcomposition, of a given order.
property_derivative_T(T, P, zs, ws[, order]) Method to calculate a derivative of a mixture propertywith respect to temperature at constant pressure andcomposition, of a given order.
select_valid_methods(T, P, zs, ws) Method to obtain a sorted list of methods which arevalid at T, P, zs, ws, and possibly Vfls, according totest_method_validity.
set_user_method(user_methods[, forced]) Method to set the T, P, and composition dependent prop-erty methods desired for consideration by the user.
test_method_validity(T, P, zs, ws, method) Method to test the validity of a specified method for thegiven conditions.
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 set of information; filled by load_all_methods.
calculate(T, P, zs, ws, method)Method to calculate molar volume of a solid mixture at temperature T, pressure P, mole fractions zs andweight fractions ws with a given method.
This method has no exception handling; see mixture_property for that.
Parameters T : float
1.1. thermo package 467
thermo Documentation, Release 0.1
Temperature at which to calculate the property, [K]
P : float
Pressure at which to calculate the property, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Name of the method to use
Returns Vm : float
Molar volume of the solid mixture at the given conditions, [m^3/mol]
load_all_methods()Method to initialize the object by precomputing any values which may be used repeatedly and by retrievingmixture-specific variables. All data are stored as attributes. This method also sets Tmin, Tmax, andall_methods as a set of methods which should work to calculate the property.
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 = [’SIMPLE’]
sorted_valid_methods = Nonesorted_valid_methods, list: Stored methods which were found valid at a specific temperature; set by mix-ture_property.
test_method_validity(T, P, zs, ws, method)Method to test the validity of a specified method for the given conditions. No methods have implementedchecks or strict ranges of validity.
Parameters T : float
Temperature at which to check method validity, [K]
P : float
Pressure at which to check method validity, [Pa]
zs : list[float]
Mole fractions of all species in the mixture, [-]
ws : list[float]
Weight fractions of all species in the mixture, [-]
method : str
Method name to use
468 Chapter 1. thermo
thermo Documentation, Release 0.1
Returns validity : bool
Whether or not a specifid method is valid
units = ‘m^3/mol’
user_methods = Noneuser_methods, list: Stored methods which were specified by the user in a ranked order of preference; setby mixture_property.
1.1. thermo package 469
thermo Documentation, Release 0.1
470 Chapter 1. thermo
CHAPTER 2
Indices and tables
• genindex
• modindex
• search
471
thermo Documentation, Release 0.1
472 Chapter 2. Indices and tables
Bibliography
[R1] Pitzer, K. S., D. Z. Lippmann, R. F. Curl, C. M. Huggins, and D. E. Petersen: The Volumetric and Thermody-namic Properties of Fluids. II. Compressibility Factor, Vapor Pressure and Entropy of Vaporization. J. Am. Chem.Soc., 77: 3433 (1955).
[R2] Horstmann, Sven, Anna Jabłoniec, Jörg Krafczyk, Kai Fischer, and Jürgen Gmehling. “PSRK Group Con-tribution Equation of State: Comprehensive Revision and Extension IV, Including Critical Constants and A-Function Parameters for 1000 Components.” Fluid Phase Equilibria 227, no. 2 (January 25, 2005): 157-64.doi:10.1016/j.fluid.2004.11.002.
[R3] Passut, Charles A., and Ronald P. Danner. “Acentric Factor. A Valuable Correlating Parameter for the Propertiesof Hydrocarbons.” Industrial & Engineering Chemistry Process Design and Development 12, no. 3 (July 1, 1973):365-68. doi:10.1021/i260047a026.
[R4] Yaws, Carl L. Thermophysical Properties of Chemicals and Hydrocarbons, Second Edition. Amsterdam Boston:Gulf Professional Publishing, 2014.
[R5] Lee, Byung Ik, and Michael G. Kesler. “A Generalized Thermodynamic Correlation Based on Three-ParameterCorresponding States.” AIChE Journal 21, no. 3 (1975): 510-527. doi:10.1002/aic.690210313.
[R6] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
[R7] Halm, Roland L., and Leonard I. Stiel. “A Fourth Parameter for the Vapor Pressure and Entropy of Vaporizationof Polar Fluids.” AIChE Journal 13, no. 2 (1967): 351-355. doi:10.1002/aic.690130228.
[R8] D, Kukoljac Miloš, and Grozdanic Dušan K. “New Values of the Polarity Factor.” Journal of the Serbian Chem-ical Society 65, no. 12 (January 1, 2000). http://www.shd.org.rs/JSCS/Vol65/No12-Pdf/JSCS12-07.pdf
[R9] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R10] Skogestad, Sigurd. Chemical and Energy Process Engineering. 1st edition. Boca Raton, FL: CRC Press, 2008.
[R11] Rachford, H. H. Jr, and J. D. Rice. “Procedure for Use of Electronic Digital Computers in Calculating FlashVaporization Hydrocarbon Equilibrium.” Journal of Petroleum Technology 4, no. 10 (October 1, 1952): 19-3.doi:10.2118/952327-G.
[R12] Rachford, H. H. Jr, and J. D. Rice. “Procedure for Use of Electronic Digital Computers in Calculating FlashVaporization Hydrocarbon Equilibrium.” Journal of Petroleum Technology 4, no. 10 (October 1, 1952): 19-3.doi:10.2118/952327-G.
473
thermo Documentation, Release 0.1
[R13] Li, Yinghui, Russell T. Johns, and Kaveh Ahmadi. “A Rapid and Robust Alternative to Rachford-Rice in FlashCalculations.” Fluid Phase Equilibria 316 (February 25, 2012): 85-97. doi:10.1016/j.fluid.2011.12.005.
[R14] Whitson, Curtis H., and Michael L. Michelsen. “The Negative Flash.” Fluid Phase Equilibria, Proceedings ofthe Fifth International Conference, 53 (December 1, 1989): 51-71. doi:10.1016/0378-3812(89)80072-X.
[R15] Li, Yinghui, Russell T. Johns, and Kaveh Ahmadi. “A Rapid and Robust Alternative to Rachford-Rice in FlashCalculations.” Fluid Phase Equilibria 316 (February 25, 2012): 85-97. doi:10.1016/j.fluid.2011.12.005.
[R16] Renon, Henri, and J. M. Prausnitz. “Local Compositions in Thermodynamic Excess Functions for Liquid Mix-tures.” AIChE Journal 14, no. 1 (1968): 135-144. doi:10.1002/aic.690140124.
[R17] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R18] Wilson, Grant M. “Vapor-Liquid Equilibrium. XI. A New Expression for the Excess Free Energy of Mixing.”Journal of the American Chemical Society 86, no. 2 (January 1, 1964): 127-130. doi:10.1021/ja01056a002.
[R19] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R20] Abrams, Denis S., and John M. Prausnitz. “Statistical Thermodynamics of Liquid Mixtures: A New Expressionfor the Excess Gibbs Energy of Partly or Completely Miscible Systems.” AIChE Journal 21, no. 1 (January 1,1975): 116-28. doi:10.1002/aic.690210115.
[R21] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R22] Maurer, G., and J. M. Prausnitz. “On the Derivation and Extension of the Uniquac Equation.” Fluid PhaseEquilibria 2, no. 2 (January 1, 1978): 91-99. doi:10.1016/0378-3812(78)85002-X.
[R23] 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.
[R24] 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.
[R25] 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.
[R26] 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.
[R27] 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.
[R28] 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.
[R29] 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.
[R30] 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.
474 Bibliography
thermo Documentation, Release 0.1
[R31] 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.
[R32] 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.
[R33] 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.
[R34] 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.
[R35] 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.
[R36] 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.
[R37] 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.
[R38] 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.
[R39] 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.
[R40] 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.
[R41] 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.
[R42] 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.
[R43] 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.
[R44] 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.
[R45] 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.
Bibliography 475
thermo Documentation, Release 0.1
[R46] 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.
[R47] 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.
[R48] 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.
[R49] 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.
[R50] 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.
[R51] 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.
[R52] 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.
[R53] 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.
[R54] 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.
[R55] 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.
[R56] 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.
[R57] 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.
[R58] 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.
[R59] Ihmels, E. Christian. “The Critical Surface.” Journal of Chemical & Engineering Data 55, no. 9 (September 9,2010): 3474-80. doi:10.1021/je100167w.
[R60] 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.
[R61] 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
476 Bibliography
thermo Documentation, Release 0.1
[R62] 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.
[R63] 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.
[R64] 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.
[R65] 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.
[R66] 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.
[R67] 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.
[R68] 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.
[R69] 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.
[R70] 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.
[R71] 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.
[R72] 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.
[R73] 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/
[R74] 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.
[R75] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional, 2000.
[R76] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R77] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R78] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R79] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R80] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R81] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R82] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
Bibliography 477
thermo Documentation, Release 0.1
[R83] 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.
[R84] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R85] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R86] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R87] Design Institute for Physical Properties, 1996. DIPPR Project 801 DIPPR/AIChE
[R88] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
[R89] 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
[R90] 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
[R91] 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
[R92] 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
[R93] 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
[R94] 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
[R95] 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
[R96] 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
[R97] 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
[R98] 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.
[R99] 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
[R100] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
478 Bibliography
thermo Documentation, Release 0.1
[R101] 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.
[R102] 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
[R103] 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
[R104] N M O’Boyle, M Banck, C A James, C Morley, T Vandermeersch, and G R Hutchison. “Open Babel: Anopen chemical toolbox.” J. Cheminf. (2011), 3, 33. DOI:10.1186/1758-2946-3-33
[R105] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R106] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R107] RDKit: Open-source cheminformatics; http://www.rdkit.org
[R108] Laštovka, Václav, Nasser Sallamie, and John M. Shaw. “A Similarity Variable for Estimating the Heat Ca-pacity of 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.
[R109] 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.
[R116] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R117] Soave, G. “Direct Calculation of Pure-Compound Vapour Pressures through Cubic Equations of State.” FluidPhase Equilibria 31, no. 2 (January 1, 1986): 203-7. doi:10.1016/0378-3812(86)90013-0.
[R118] Thorade, Matthis, and Ali Saadat. “Partial Derivatives of Thermodynamic State Properties for Dynamic Sim-ulation.” Environmental Earth Sciences 70, no. 8 (April 10, 2013): 3497-3503. doi:10.1007/s12665-013-2394-z.
[R119] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R120] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R121] Peng, Ding-Yu, and Donald B. Robinson. “A New Two-Constant Equation of State.” Industrial & EngineeringChemistry Fundamentals 15, no. 1 (February 1, 1976): 59-64. doi:10.1021/i160057a011.
[R122] Robinson, Donald B., Ding-Yu Peng, and Samuel Y-K Chung. “The Development of the Peng - RobinsonEquation and Its Application to Phase Equilibrium in a System Containing Methanol.” Fluid Phase Equilibria 24,no. 1 (January 1, 1985): 25-41. doi:10.1016/0378-3812(85)87035-7.
[R123] Privat, R., and J.-N. Jaubert. “PPR78, a Thermodynamic Model for the Prediction of Petroleum Fluid-PhaseBehaviour,” 11. EDP Sciences, 2011. doi:10.1051/jeep/201100011.
[R124] Soave, Giorgio. “Equilibrium Constants from a Modified Redlich-Kwong Equation of State.” Chemical Engi-neering Science 27, no. 6 (June 1972): 1197-1203. doi:10.1016/0009-2509(72)80096-4.
[R125] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R126] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R127] Robinson, Donald B, and Ding-Yu Peng. The Characterization of the Heptanes and Heavier Fractions for theGPA Peng-Robinson Programs. Tulsa, Okla.: Gas Processors Association, 1978.
Bibliography 479
thermo Documentation, Release 0.1
[R128] Robinson, Donald B., Ding-Yu Peng, and Samuel Y-K Chung. “The Development of the Peng - RobinsonEquation and Its Application to Phase Equilibrium in a System Containing Methanol.” Fluid Phase Equilibria 24,no. 1 (January 1, 1985): 25-41. doi:10.1016/0378-3812(85)87035-7.
[R129] Stryjek, R., and J. H. Vera. “PRSV: An Improved Peng-Robinson Equation of State for Pure Com-pounds and Mixtures.” The Canadian Journal of Chemical Engineering 64, no. 2 (April 1, 1986): 323-33.doi:10.1002/cjce.5450640224.
[R130] Stryjek, R., and J. H. Vera. “PRSV - An Improved Peng-Robinson Equation of State with New Mixing Rulesfor Strongly Nonideal Mixtures.” The Canadian Journal of Chemical Engineering 64, no. 2 (April 1, 1986): 334-40. doi:10.1002/cjce.5450640225.
[R131] Stryjek, R., and J. H. Vera. “Vapor-liquid Equilibrium of Hydrochloric Acid Solutions with the PRSV Equationof State.” Fluid Phase Equilibria 25, no. 3 (January 1, 1986): 279-90. doi:10.1016/0378-3812(86)80004-8.
[R132] Proust, P., and J. H. Vera. “PRSV: The Stryjek-Vera Modification of the Peng-Robinson Equation of State.Parameters for Other Pure Compounds of Industrial Interest.” The Canadian Journal of Chemical Engineering 67,no. 1 (February 1, 1989): 170-73. doi:10.1002/cjce.5450670125.
[R133] Stryjek, R., and J. H. Vera. “PRSV2: A Cubic Equation of State for Accurate Vapor-liquid Equilib-ria Calculations.” The Canadian Journal of Chemical Engineering 64, no. 5 (October 1, 1986): 820-26.doi:10.1002/cjce.5450640516.
[R134] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R135] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R136] Redlich, Otto., and J. N. S. Kwong. “On the Thermodynamics of Solutions. V. An Equation of State. Fugacitiesof Gaseous Solutions.” Chemical Reviews 44, no. 1 (February 1, 1949): 233-44. doi:10.1021/cr60137a013.
[R137] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R138] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R139] API Technical Data Book: General Properties & Characterization. American Petroleum Institute, 7E, 2005.
[R140] Twu, Chorng H., John E. Coon, and John R. Cunningham. “A New Generalized Alpha Function for a CubicEquation of State Part 1. Peng-Robinson Equation.” Fluid Phase Equilibria 105, no. 1 (March 15, 1995): 49-59.doi:10.1016/0378-3812(94)02601-V.
[R141] Twu, Chorng H., John E. Coon, and John R. Cunningham. “A New Generalized Alpha Function for a CubicEquation of State Part 2. Redlich-Kwong Equation.” Fluid Phase Equilibria 105, no. 1 (March 15, 1995): 61-69.doi:10.1016/0378-3812(94)02602-W.
[R142] Young, André F., Fernando L. P. Pessoa, and Victor R. R. Ahón. “Comparison of 20 Alpha Functions Appliedin the Peng–Robinson Equation of State for Vapor Pressure Estimation.” Industrial & Engineering ChemistryResearch 55, no. 22 (June 8, 2016): 6506-16. doi:10.1021/acs.iecr.6b00721.
[R143] Almeida, G. S., M. Aznar, and A. S. Telles. “Uma Nova Forma de Dependência Com a Temperatura Do TermoAtrativo de Equações de Estado Cúbicas.” RBE, Rev. Bras. Eng., Cad. Eng. Quim 8 (1991): 95.
[R144] Androulakis, I. P., N. S. Kalospiros, and D. P. Tassios. “Thermophysical Properties of Pure Polar and NonpolarCompounds with a Modified VdW-711 Equation of State.” Fluid Phase Equilibria 45, no. 2 (April 1, 1989): 135-63. doi:10.1016/0378-3812(89)80254-7.
[R145] Coquelet, C., A. Chapoy, and D. Richon. “Development of a New Alpha Function for the Peng–RobinsonEquation of State: Comparative Study of Alpha Function Models for Pure Gases (Natural Gas Compo-nents) and Water-Gas Systems.” International Journal of Thermophysics 25, no. 1 (January 1, 2004): 133-58.doi:10.1023/B:IJOT.0000022331.46865.2f.
480 Bibliography
thermo Documentation, Release 0.1
[R146] Gasem, K. A. M, W Gao, Z Pan, and R. L Robinson Jr. “A Modified Temperature Dependence for the Peng-Robinson Equation of State.” Fluid Phase Equilibria 181, no. 1–2 (May 25, 2001): 113-25. doi:10.1016/S0378-3812(01)00488-5.
[R147] Gibbons, Richard M., and Andrew P. Laughton. “An Equation of State for Polar and Non-Polar Substancesand Mixtures” 80, no. 9 (January 1, 1984): 1019-38. doi:10.1039/F29848001019.
[R148] Haghtalab, A., M. J. Kamali, S. H. Mazloumi, and P. Mahmoodi. “A New Three-Parameter Cubic Equationof State for Calculation Physical Properties and Vapor-liquid Equilibria.” Fluid Phase Equilibria 293, no. 2 (June25, 2010): 209-18. doi:10.1016/j.fluid.2010.03.029.
[R149] Harmens, A., and H. Knapp. “Three-Parameter Cubic Equation of State for Normal Substances.” Industrial &Engineering Chemistry Fundamentals 19, no. 3 (August 1, 1980): 291-94. doi:10.1021/i160075a010.
[R150] Heyen, G. Liquid and Vapor Properties from a Cubic Equation of State. In “Proceedings of the 2nd Interna-tional Conference on Phase Equilibria and Fluid Properties in the Chemical Industry”. DECHEMA: Frankfurt,1980; p 9-13.
[R151] Mathias, Paul M. “A Versatile Phase Equilibrium Equation of State.” Industrial & Engineering ChemistryProcess Design and Development 22, no. 3 (July 1, 1983): 385-91. doi:10.1021/i200022a008.
[R152] Mathias, Paul M., and Thomas W. Copeman. “Extension of the Peng-Robinson Equation of State to ComplexMixtures: Evaluation of the Various Forms of the Local Composition Concept.” Fluid Phase Equilibria 13 (January1, 1983): 91-108. doi:10.1016/0378-3812(83)80084-3.
[R153] Melhem, Georges A., Riju Saini, and Bernard M. Goodwin. “A Modified Peng-Robinson Equation of State.”Fluid Phase Equilibria 47, no. 2 (August 1, 1989): 189-237. doi:10.1016/0378-3812(89)80176-1.
[R154] Saffari, Hamid, and Alireza Zahedi. “A New Alpha-Function for the Peng-Robinson Equation of State: Ap-plication to Natural Gas.” Chinese Journal of Chemical Engineering 21, no. 10 (October 1, 2013): 1155-61.doi:10.1016/S1004-9541(13)60581-9.
[R155] J. Schwartzentruber, H. Renon, and S. Watanasiri, “K-values for Non-Ideal Systems:An Easier Way,” Chem.Eng., March 1990, 118-124.
[R156] Soave, Giorgio. “Equilibrium Constants from a Modified Redlich- Kwong Equation of State.” Chemical En-gineering Science 27, no. 6 (June 1972): 1197-1203. doi:10.1016/0009-2509(72)80096-4.
[R157] Soave, G. “Improvement of the Van Der Waals Equation of State.” Chemical Engineering Science 39, no. 2(January 1, 1984): 357-69. doi:10.1016/0009-2509(84)80034-2.
[R158] Soave, G. “Improving the Treatment of Heavy Hydrocarbons by the SRK EOS.” Fluid Phase Equilibria 84(April 1, 1993): 339-42. doi:10.1016/0378-3812(93)85131-5.
[R159] Trebble, M. A., and P. R. Bishnoi. “Development of a New Four- Parameter Cubic Equation of State.” FluidPhase Equilibria 35, no. 1 (September 1, 1987): 1-18. doi:10.1016/0378-3812(87)80001-8.
[R160] Twu, Chorng H., David Bluck, John R. Cunningham, and John E. Coon. “A Cubic Equation of State witha New Alpha Function and a New Mixing Rule.” Fluid Phase Equilibria 69 (December 10, 1991): 33-50.doi:10.1016/0378-3812(91)90024-2.
[R161] Yu, Jin-Min, and Benjamin C. -Y. Lu. “A Three-Parameter Cubic Equation of State for AsymmetricMixture Density Calculations.” Fluid Phase Equilibria 34, no. 1 (January 1, 1987): 1-19. doi:10.1016/0378-3812(87)85047-1.
[R246] Hu, Jiawen, Rong Wang, and Shide Mao. “Some Useful Expressions for Deriving Component FugacityCoefficients from Mixture Fugacity Coefficient.” Fluid Phase Equilibria 268, no. 1-2 (June 25, 2008): 7-13.doi:10.1016/j.fluid.2008.03.007.
[R247] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R248] Peng, Ding-Yu, and Donald B. Robinson. “A New Two-Constant Equation of State.” Industrial & EngineeringChemistry Fundamentals 15, no. 1 (February 1, 1976): 59-64. doi:10.1021/i160057a011.
Bibliography 481
thermo Documentation, Release 0.1
[R249] Robinson, Donald B., Ding-Yu Peng, and Samuel Y-K Chung. “The Development of the Peng - RobinsonEquation and Its Application to Phase Equilibrium in a System Containing Methanol.” Fluid Phase Equilibria 24,no. 1 (January 1, 1985): 25-41. doi:10.1016/0378-3812(85)87035-7.
[R250] Peng, Ding-Yu, and Donald B. Robinson. “A New Two-Constant Equation of State.” Industrial & EngineeringChemistry Fundamentals 15, no. 1 (February 1, 1976): 59-64. doi:10.1021/i160057a011.
[R251] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R252] Soave, Giorgio. “Equilibrium Constants from a Modified Redlich-Kwong Equation of State.” Chemical Engi-neering Science 27, no. 6 (June 1972): 1197-1203. doi:10.1016/0009-2509(72)80096-4.
[R253] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R254] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R255] Soave, Giorgio. “Equilibrium Constants from a Modified Redlich-Kwong Equation of State.” Chemical Engi-neering Science 27, no. 6 (June 1972): 1197-1203. doi:10.1016/0009-2509(72)80096-4.
[R256] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R257] Peng, Ding-Yu, and Donald B. Robinson. “A New Two-Constant Equation of State.” Industrial & EngineeringChemistry Fundamentals 15, no. 1 (February 1, 1976): 59-64. doi:10.1021/i160057a011.
[R258] Robinson, Donald B., Ding-Yu Peng, and Samuel Y-K Chung. “The Development of the Peng - RobinsonEquation and Its Application to Phase Equilibrium in a System Containing Methanol.” Fluid Phase Equilibria 24,no. 1 (January 1, 1985): 25-41. doi:10.1016/0378-3812(85)87035-7.
[R259] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R260] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R261] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R262] Stryjek, R., and J. H. Vera. “PRSV: An Improved Peng-Robinson Equation of State for Pure Com-pounds and Mixtures.” The Canadian Journal of Chemical Engineering 64, no. 2 (April 1, 1986): 323-33.doi:10.1002/cjce.5450640224.
[R263] Stryjek, R., and J. H. Vera. “PRSV - An Improved Peng-Robinson Equation of State with New Mixing Rulesfor Strongly Nonideal Mixtures.” The Canadian Journal of Chemical Engineering 64, no. 2 (April 1, 1986): 334-40. doi:10.1002/cjce.5450640225.
[R264] Stryjek, R., and J. H. Vera. “Vapor-liquid Equilibrium of Hydrochloric Acid Solutions with the PRSV Equationof State.” Fluid Phase Equilibria 25, no. 3 (January 1, 1986): 279-90. doi:10.1016/0378-3812(86)80004-8.
[R265] Proust, P., and J. H. Vera. “PRSV: The Stryjek-Vera Modification of the Peng-Robinson Equation of State.Parameters for Other Pure Compounds of Industrial Interest.” The Canadian Journal of Chemical Engineering 67,no. 1 (February 1, 1989): 170-73. doi:10.1002/cjce.5450670125.
[R266] Stryjek, R., and J. H. Vera. “PRSV2: A Cubic Equation of State for Accurate Vapor-liquid Equilib-ria Calculations.” The Canadian Journal of Chemical Engineering 64, no. 5 (October 1, 1986): 820-26.doi:10.1002/cjce.5450640516.
[R267] Twu, Chorng H., John E. Coon, and John R. Cunningham. “A New Generalized Alpha Function for a CubicEquation of State Part 1. Peng-Robinson Equation.” Fluid Phase Equilibria 105, no. 1 (March 15, 1995): 49-59.doi:10.1016/0378-3812(94)02601-V.
[R268] Twu, Chorng H., John E. Coon, and John R. Cunningham. “A New Generalized Alpha Function for a CubicEquation of State Part 2. Redlich-Kwong Equation.” Fluid Phase Equilibria 105, no. 1 (March 15, 1995): 61-69.doi:10.1016/0378-3812(94)02602-W.
[R269] API Technical Data Book: General Properties & Characterization. American Petroleum Institute, 7E, 2005.
482 Bibliography
thermo Documentation, Release 0.1
[R110] 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.
[R112] US EPA, OAR. “Ozone-Depleting Substances.” Accessed April 26, 2016. https://www.epa.gov/ozone-layer-protection/ozone-depleting-substances.
[R113] WMO (World Meteorological Organization), 2011: Scientific Assessment of Ozone Depletion: 2010. GlobalOzone 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
[R114] Syrres. 2006. KOWWIN Data, SrcKowData2.zip. http://esc.syrres.com/interkow/Download/SrcKowData2.zip
[R115] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R357] 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.
[R358] 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.
[R359] 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.
[R360] 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.
[R361] 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.
[R362] 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.
[R363] 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.
[R364] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R365] 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/
[R366] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R367] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R368] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R369] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R370] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R371] J.S. Rowlinson, Liquids and Liquid Mixtures, 2nd Ed., Butterworth, London (1969).
Bibliography 483
thermo Documentation, Release 0.1
[R372] 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.
[R373] 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.
[R374] 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.
[R375] 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.
[R376] 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.
[R377] 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.
[R378] 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.
[R379] 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.
[R380] 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.
[R381] 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.
[R382] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R383] 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/
[R384] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R385] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R386] 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.
[R387] 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.
[R388] 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.
[R389] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R390] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R391] Pubchem.
484 Bibliography
thermo Documentation, Release 0.1
[R392] Pubchem.
[R393] 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.
[R394] 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.
[R395] 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.
[R396] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
[R397] 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
[R398] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R399] 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
[R400] Pitzer, K. S.: Thermodynamics, 3d ed., New York, McGraw-Hill, 1995, p. 521.
[R402] 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.
[R403] 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
[R404] 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.
[R406] 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.
[R407] Aleem, W., N. Mellon, S. Sufian, M. I. A. Mutalib, and D. Subbarao. “A Model for the Estimation of SurfaceTension of Pure Hydrocarbon Liquids.” Petroleum Science and Technology 33, no. 23-24 (December 17, 2015):1908-15. doi:10.1080/10916466.2015.1110593.
[R408] 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.
[R409] 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.
[R410] 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.
[R411] Speight, James. Lange’s Handbook of Chemistry. 16 edition. McGraw-Hill Professional, 2005.
[R412] 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.
[R413] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
Bibliography 485
thermo Documentation, Release 0.1
[R414] 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.
[R415] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R416] 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.
[R417] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R418] Government of Canada.. “Substances Lists” Feb 11, 2015. https://www.ec.gc.ca/subsnouvelles-newsubs/default.asp?n=47F768FE-1.
[R419] US EPA. “TSCA Chemical Substance Inventory.” Accessed April 2016. https://www.epa.gov/tsca-inventory.
[R420] ECHA. “EC Inventory”. Accessed March 2015. http://echa.europa.eu/information-on-chemicals/ec-inventory.
[R421] SPIN. “SPIN Substances in Products In Nordic Countries.” Accessed March 2015. http://195.215.202.233/DotNetNuke/default.aspx.
[R422] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R423] 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.
[R424] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R425] 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.
[R426] Flynn, L.W., M.S. thesis, Northwestern Univ., Evanston, Ill. (1960).
[R427] 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
[R428] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R429] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R430] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R431] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R432] 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
[R433] 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
486 Bibliography
thermo Documentation, Release 0.1
[R434] 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
[R435] 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
[R436] Flynn, L.W., M.S. thesis, Northwestern Univ., Evanston, Ill. (1960).
[R437] 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
[R438] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R439] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R440] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R441] 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
[R442] 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
[R443] 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
[R444] 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
[R446] 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.
[R448] Bird, R. Byron, Warren E. Stewart, and Edwin N. Lightfoot. Transport Phenomena, Revised 2nd Edition. NewYork: John Wiley & Sons, Inc., 2006
[R449] Gesellschaft, VDI, ed. VDI Heat Atlas. 2E. Berlin: Springer, 2010.
[R450] 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.
[R451] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R452] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R453] Yaws, Carl L. Thermophysical Properties of Chemicals and Hydrocarbons, Second Edition. AmsterdamBoston: Gulf Professional Publishing, 2014.
[R454] Bradley, Jean-Claude, Antony Williams, and Andrew Lang. “Jean-Claude Bradley Open MeltingPoint Dataset”, May 20, 2014. https://figshare.com/articles/Jean_Claude_Bradley_Open_Melting_Point_Datset/1031637.
Bibliography 487
thermo Documentation, Release 0.1
[R455] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R456] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R457] 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
[R458] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R459] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R460] 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.
[R461] 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.
[R462] 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.
[R463] 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.
[R464] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R465] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R466] 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
[R467] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R468] 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.
[R469] 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.
[R470] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R471] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R472] 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/
[R473] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
488 Bibliography
thermo Documentation, Release 0.1
[R474] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R475] 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.
[R476] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R477] Alibakhshi, Amin. “Enthalpy of Vaporization, Its Temperature Dependence and Correlation withSurface Tension: A Theoretical Approach.” Fluid Phase Equilibria 432 (January 25, 2017): 62-69.doi:10.1016/j.fluid.2016.10.013.
[R479] 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.
[R480] 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.
[R481] 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.
[R482] 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.
[R483] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. BocaRaton, FL: CRC press, 2014.
[R484] 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.
[R485] 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.
[R486] 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.
[R487] ACGIH. Industrial Ventilation: A Manual of Recommended Practice, 23rd Edition. American Conference ofGovernmental and Industrial Hygenists, 2004.
[R488] ACGIH. Industrial Ventilation: A Manual of Recommended Practice, 23rd Edition. American Conference ofGovernmental and Industrial Hygenists, 2004.
[R489] 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/
[R490] NTP (National Toxicology Program). 2014. Report on Carcinogens, Thirteenth Edition. Research Trian-gle Park, NC: U.S. Department of Health and Human Services, Public Health Service. http://ntp.niehs.nih.gov/pubhealth/roc/roc13/
[R491] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gas and vapourclassification - Test methods and data.” https://webstore.iec.ch/publication/635. See also https://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
Bibliography 489
thermo Documentation, Release 0.1
[R492] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R493] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gas and vapourclassification - Test methods and data.” https://webstore.iec.ch/publication/635. See also https://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R494] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R495] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gas and vapourclassification - Test methods and data.” https://webstore.iec.ch/publication/635. See also https://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R496] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R497] IEC. “IEC 60079-20-1:2010 Explosive atmospheres - Part 20-1: Material characteristics for gas and vapourclassification - Test methods and data.” https://webstore.iec.ch/publication/635. See also https://law.resource.org/pub/in/bis/S05/is.iec.60079.20.1.2010.pdf
[R498] National Fire Protection Association. NFPA 497: Recommended Practice for the Classification of FlammableLiquids, Gases, or Vapors and of Hazardous. NFPA, 2008.
[R499] 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.
[R500] 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.
[R501] Crowl, Daniel A., and Joseph F. Louvar. Chemical Process Safety: Fundamentals with Applications. 2E.Upper Saddle River, N.J: Prentice Hall, 2001.
[R502] 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
[R503] Crowl, Daniel A., and Joseph F. Louvar. Chemical Process Safety: Fundamentals with Applications. 2E.Upper Saddle River, N.J: Prentice Hall, 2001.
[R504] 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
[R505] Barton, Allan F. M. CRC Handbook of Solubility Parameters and Other Cohesion Parameters, Second Edition.CRC Press, 1991.
[R506] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R507] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R508] 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.
[R509] 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.
[R510] 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.
490 Bibliography
thermo Documentation, Release 0.1
[R511] 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.
[R512] 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.
[R513] 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.
[R514] 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
[R515] Riedel, L.: Chem. Ing. Tech., 21, 349 (1949); 23: 59, 321, 465 (1951)
[R516] Maejima, T., private communication, 1973
[R517] Properties of Gases and Liquids”, 3rd Ed., McGraw-Hill, 1977
[R518] 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
[R519] 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
[R520] 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
[R521] 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
[R522] Bahadori, Alireza, and Saeid Mokhatab. “Estimating Thermal Conductivity of Hydrocarbons.” Chemical En-gineering 115, no. 13 (December 2008): 52-54
[R523] 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/
[R524] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R525] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R526] Missenard, F. A., Thermal Conductivity of Organic Liquids of a Series or a Group of Liquids , Rev.Gen.Thermodyn., 101 649 (1970).
[R527] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R528] Missenard, F. A., Thermal Conductivity of Organic Liquids of a Series or a Group of Liquids , Rev.Gen.Thermodyn., 101 649 (1970).
[R529] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
Bibliography 491
thermo Documentation, Release 0.1
[R530] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R531] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R532] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R533] 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).
[R534] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R535] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R536] 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.
[R537] 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
[R538] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R539] 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
[R540] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R541] 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.
[R542] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R543] 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
[R544] Bahadori, Alireza, and Saeid Mokhatab. “Estimating Thermal Conductivity of Hydrocarbons.” Chemical En-gineering 115, no. 13 (December 2008): 52-54
[R545] 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/
[R546] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R547] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R548] 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.
492 Bibliography
thermo Documentation, Release 0.1
[R549] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R550] 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.
[R551] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R552] 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.
[R553] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R554] 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.
[R555] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R556] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R557] 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.
[R558] 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.
[R559] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R560] Fredenslund, Aage, Russell L. Jones, and John M. Prausnitz. “Group Contribution Estimation of Ac-tivity Coefficients in Nonideal Liquid Mixtures.” AIChE Journal 21, no. 6 (November 1, 1975): 1086-99.doi:10.1002/aic.690210607.
[R561] Jakob, Antje, Hans Grensemann, Jürgen Lohmann, and Jürgen Gmehling. “Further Development of Modi-fied UNIFAC (Dortmund): Revision and Extension 5.” Industrial & Engineering Chemistry Research 45, no. 23(November 1, 2006): 7924-33. doi:10.1021/ie060355c.
[R562] Kang, Jeong Won, Vladimir Diky, and Michael Frenkel. “New Modified UNIFAC Parameters UsingCritically Evaluated Phase Equilibrium Data.” Fluid Phase Equilibria 388 (February 25, 2015): 128-41.doi:10.1016/j.fluid.2014.12.042.
[R563] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R564] Fredenslund, Aage, Russell L. Jones, and John M. Prausnitz. “Group Contribution Estimation of Ac-tivity Coefficients in Nonideal Liquid Mixtures.” AIChE Journal 21, no. 6 (November 1, 1975): 1086-99.doi:10.1002/aic.690210607.
[R565] Gmehling, Jurgen. Chemical Thermodynamics: For Process Simulation. Weinheim, Germany: Wiley-VCH,2012.
[R566] Wei, James, Morton M. Denn, John H. Seinfeld, Arup Chakraborty, Jackie Ying, Nicholas Peppas, and GeorgeStephanopoulos. Molecular Modeling and Theory in Chemical Engineering. Academic Press, 2001.
[R567] Wei, James, Morton M. Denn, John H. Seinfeld, Arup Chakraborty, Jackie Ying, Nicholas Peppas, and GeorgeStephanopoulos. Molecular Modeling and Theory in Chemical Engineering. Academic Press, 2001.
Bibliography 493
thermo Documentation, Release 0.1
[R568] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R569] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R570] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R571] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R572] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R573] Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for ProcessSimulation. 1st edition. Weinheim: Wiley-VCH, 2012.
[R574] Pratt, R. M. “Thermodynamic Properties Involving Derivatives: Using the Peng-Robinson Equation of State.”Chemical Engineering Education 35, no. 2 (March 1, 2001): 112-115.
[R575] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R576] Pratt, R. M. “Thermodynamic Properties Involving Derivatives: Using the Peng-Robinson Equation of State.”Chemical Engineering Education 35, no. 2 (March 1, 2001): 112-115.
[R577] Venkatarathnam, G., and L. R. Oellrich. “Identification of the Phase of a Fluid Using Partial Derivatives ofPressure, Volume, and Temperature without Reference to Saturation Properties: Applications in Phase EquilibriaCalculations.” Fluid Phase Equilibria 301, no. 2 (February 25, 2011): 225-33. doi:10.1016/j.fluid.2010.12.001.
[R578] Jayanti, Pranava Chaitanya, and G. Venkatarathnam. “Identification of the Phase of a Substance from theDerivatives of Pressure, Volume and Temperature, without Prior Knowledge of Saturation Properties: Extensionto Solid Phase.” Fluid Phase Equilibria 425 (October 15, 2016): 269-277. doi:10.1016/j.fluid.2016.06.001.
[R579] Venkatarathnam, G., and L. R. Oellrich. “Identification of the Phase of a Fluid Using Partial Derivatives ofPressure, Volume, and Temperature without Reference to Saturation Properties: Applications in Phase EquilibriaCalculations.” Fluid Phase Equilibria 301, no. 2 (February 25, 2011): 225-33. doi:10.1016/j.fluid.2010.12.001.
[R580] Jayanti, Pranava Chaitanya, and G. Venkatarathnam. “Identification of the Phase of a Substance from theDerivatives of Pressure, Volume and Temperature, without Prior Knowledge of Saturation Properties: Extensionto Solid Phase.” Fluid Phase Equilibria 425 (October 15, 2016): 269-277. doi:10.1016/j.fluid.2016.06.001.
[R581] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R582] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R583] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R584] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R585] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R586] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R587] Prausnitz, John M., Rudiger N. Lichtenthaler, and Edmundo Gomes de Azevedo. Molecular Thermodynamicsof Fluid-Phase Equilibria. 3rd edition. Upper Saddle River, N.J: Prentice Hall, 1998.
[R588] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
494 Bibliography
thermo Documentation, Release 0.1
[R589] Prausnitz, John M., Rudiger N. Lichtenthaler, and Edmundo Gomes de Azevedo. Molecular Thermodynamicsof Fluid-Phase Equilibria. 3rd edition. Upper Saddle River, N.J: Prentice Hall, 1998.
[R590] Walas, Stanley M. Phase Equilibria in Chemical Engineering. Butterworth-Heinemann, 1985.
[R591] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R592] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, 8E. McGraw-Hill Professional, 2007.
[R593] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R594] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R595] Antoine, C. 1888. Tensions des Vapeurs: Nouvelle Relation Entre les Tensions et les Tempé. Compt.Rend.107:681-684.
[R596] Yaws, Carl L. The Yaws Handbook of Vapor Pressure: Antoine Coefficients. 1 edition. Houston, Tex: GulfPublishing Company, 2007.
[R597] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R598] 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.
[R599] 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
[R600] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R601] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R602] 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.
[R603] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R604] 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/
[R605] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R606] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R607] Reid, Robert C..; Prausnitz, John M.;; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
[R608] 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.
[R609] Reid, Robert C..; Prausnitz, John M.;; Poling, Bruce E. The Properties of Gases and Liquids. McGraw-HillCompanies, 1987.
Bibliography 495
thermo Documentation, Release 0.1
[R610] 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.
[R611] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R612] Edalat, M., R. B. Bozar-Jomehri, and G. A. Mansoori. “Generalized Equation Predicts Vapor Pressure ofHydrocarbons.” Oil and Gas Journal; 91:5 (February 1, 1993).
[R613] 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.
[R614] 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.
[R615] Smith, H. C. Van Ness Joseph M. Introduction to Chemical Engineering Thermodynamics 4E 1987.
[R616] Tsonopoulos, Constantine. “An Empirical Correlation of Second Virial Coefficients.” AIChE Journal 20, no.2 (March 1, 1974): 263-72. doi:10.1002/aic.690200209.
[R617] 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
[R618] 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.
[R619] Viswanath, Dabir S., and G. Natarajan. Databook On The Viscosity Of Liquids. New York: Taylor & Francis,1989
[R620] 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.
[R621] 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.
[R622] Viswanath, Dabir S., and G. Natarajan. Databook On The Viscosity Of Liquids. New York: Taylor & Francis,1989
[R623] 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/
[R624] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R625] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
[R626] 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/
[R627] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R628] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, Eighth Edition. McGraw-Hill Profes-sional, 2007.
496 Bibliography
thermo Documentation, Release 0.1
[R629] 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.
[R630] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R631] 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.
[R632] 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.
[R633] Reid, Robert C.; Prausnitz, John M.; Poling, Bruce E. Properties of Gases and Liquids. McGraw-Hill Compa-nies, 1987.
[R634] 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.
[R635] 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.
[R636] TODO
[R637] 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.
[R638] Brokaw, R. S. Viscosity of Gas Mixtures, NASA-TN-D-4496, 1968.
[R639] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R640] 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
[R641] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R642] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R643] 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
[R644] Rackett, Harold G. “Equation of State for Saturated Liquids.” Journal of Chemical & Engineering Data 15,no. 4 (1970): 514-517. doi:10.1021/je60047a012
[R645] 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
[R646] 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
[R647] 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
[R648] Bhirud, Vasant L. “Saturated Liquid Densities of Normal Fluids.” AIChE Journal 24, no. 6 (November 1,1978): 1127-31. doi:10.1002/aic.690240630
[R649] 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
Bibliography 497
thermo Documentation, Release 0.1
[R650] 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.
[R651] 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
[R652] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics, 95E. [BocaRaton, FL]: CRC press, 2014.
[R653] Green, Don, and Robert Perry. Perry’s Chemical Engineers’ Handbook, 8E. McGraw-Hill Professional, 2007.
[R654] 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
[R655] 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
[R656] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R657] 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/
[R658] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010.
[R659] 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
[R660] Rackett, Harold G. “Equation of State for Saturated Liquids.” Journal of Chemical & Engineering Data 15,no. 4 (1970): 514-517. doi:10.1021/je60047a012
[R661] Danner, Ronald P, and Design Institute for Physical Property Data. Manual for Predicting Chemical ProcessDesign Data. New York, N.Y, 1982.
[R662] 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
[R663] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R664] 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/
[R665] 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.
[R666] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton,FL]: CRC press, 2014.
[R667] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
[R668] Poling, Bruce E. The Properties of Gases and Liquids. 5th edition. New York: McGraw-Hill Professional,2000.
498 Bibliography
Python Module Index
tthermo.acentric, 3thermo.activity, 7thermo.chemical, 18thermo.combustion, 82thermo.critical, 83thermo.datasheet, 96thermo.dipole, 96thermo.dippr, 97thermo.electrochem, 103thermo.elements, 113thermo.environment, 185thermo.eos, 117thermo.eos_mix, 158thermo.heat_capacity, 188thermo.identifiers, 225thermo.interface, 227thermo.law, 245thermo.lennard_jones, 247thermo.miscdata, 260thermo.permittivity, 261thermo.phase_change, 265thermo.reaction, 279thermo.refractivity, 282thermo.safety, 284thermo.solubility, 294thermo.temperature, 296thermo.thermal_conductivity, 298thermo.triple, 335thermo.unifac, 336thermo.utils, 341thermo.vapor_pressure, 383thermo.virial, 395thermo.viscosity, 402thermo.volume, 431
499
thermo Documentation, Release 0.1
500 Python Module Index
Index
AA (thermo.chemical.Chemical attribute), 23a_alpha_and_derivatives() (thermo.eos.APISRK
method), 146a_alpha_and_derivatives() (thermo.eos.GCEOS method),
121a_alpha_and_derivatives() (thermo.eos.PR method), 128a_alpha_and_derivatives() (thermo.eos.PRSV method),
135a_alpha_and_derivatives() (thermo.eos.PRSV2 method),
138a_alpha_and_derivatives() (thermo.eos.RK method), 143a_alpha_and_derivatives() (thermo.eos.SRK method),
130a_alpha_and_derivatives() (thermo.eos.TWUPR method),
148a_alpha_and_derivatives() (thermo.eos.TWUSRK
method), 150a_alpha_and_derivatives() (thermo.eos.VDW method),
140a_alpha_and_derivatives() (thermo.eos_mix.GCEOSMIX
method), 159a_alpha_mro (thermo.eos_mix.APISRKMIX attribute),
185a_alpha_mro (thermo.eos_mix.PR78MIX attribute), 169a_alpha_mro (thermo.eos_mix.PRMIX attribute), 163a_alpha_mro (thermo.eos_mix.PRSV2MIX attribute),
177a_alpha_mro (thermo.eos_mix.PRSVMIX attribute), 174a_alpha_mro (thermo.eos_mix.SRKMIX attribute), 166a_alpha_mro (thermo.eos_mix.TWUPRMIX attribute),
179a_alpha_mro (thermo.eos_mix.TWUSRKMIX attribute),
182a_alpha_mro (thermo.eos_mix.VDWMIX attribute), 171acos() (in module thermo.utils), 381acosh() (in module thermo.utils), 381add_coeffs() (thermo.heat_capacity.Zabransky_spline
method), 205
Aleem() (in module thermo.interface), 235all_methods (thermo.heat_capacity.HeatCapacityGas at-
tribute), 194all_methods (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 220all_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 208all_methods (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 223all_methods (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 214all_methods (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218all_methods (thermo.interface.SurfaceTension attribute),
238all_methods (thermo.interface.SurfaceTensionMixture at-
tribute), 244all_methods (thermo.permittivity.Permittivity attribute),
263all_methods (thermo.phase_change.EnthalpyVaporization
attribute), 277all_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 323all_methods (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 333all_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 307all_methods (thermo.vapor_pressure.VaporPressure at-
tribute), 389all_methods (thermo.viscosity.ViscosityGas attribute),
415all_methods (thermo.viscosity.ViscosityGasMixture at-
tribute), 430all_methods (thermo.viscosity.ViscosityLiquid attribute),
409all_methods (thermo.viscosity.ViscosityLiquidMixture
attribute), 427all_methods (thermo.volume.VolumeGasMixture at-
tribute), 464all_methods (thermo.volume.VolumeLiquid attribute),
501
thermo Documentation, Release 0.1
443all_methods (thermo.volume.VolumeLiquidMixture at-
tribute), 461all_methods (thermo.volume.VolumeSolid attribute), 458all_methods (thermo.volume.VolumeSolidMixture
attribute), 467all_methods_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 323all_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 307all_methods_P (thermo.viscosity.ViscosityGas attribute),
415all_methods_P (thermo.viscosity.ViscosityLiquid at-
tribute), 409all_methods_P (thermo.volume.VolumeGas attribute),
453all_methods_P (thermo.volume.VolumeLiquid attribute),
444allclose_variable() (in module thermo.utils), 379Almeida() (thermo.eos.ALPHA_FUNCTIONS static
method), 153alpha (thermo.chemical.Chemical attribute), 34alpha (thermo.chemical.Mixture attribute), 62ALPHA_FUNCTIONS (class in thermo.eos), 150alphag (thermo.chemical.Chemical attribute), 34alphag (thermo.chemical.Mixture attribute), 63alphags (thermo.chemical.Mixture attribute), 63alphal (thermo.chemical.Chemical attribute), 34alphal (thermo.chemical.Mixture attribute), 63alphals (thermo.chemical.Mixture attribute), 63Am (thermo.chemical.Chemical attribute), 23Ambrose_Walton() (in module thermo.vapor_pressure),
392Amgat() (in module thermo.volume), 447Androulakis() (thermo.eos.ALPHA_FUNCTIONS static
method), 153Antoine() (in module thermo.vapor_pressure), 383APISRK (class in thermo.eos), 144APISRKMIX (class in thermo.eos_mix), 182aromatic_rings (thermo.chemical.Chemical attribute), 35asin() (in module thermo.utils), 381asinh() (in module thermo.utils), 381atan() (in module thermo.utils), 381atan2() (in module thermo.utils), 381atanh() (in module thermo.utils), 381atom_fractions (thermo.chemical.Chemical attribute), 35atom_fractions (thermo.chemical.Mixture attribute), 64atom_fractions() (in module thermo.elements), 115atom_fractionss (thermo.chemical.Mixture attribute), 64atoms_to_Hill() (in module thermo.elements), 116atomss (thermo.chemical.Mixture attribute), 64
BB_from_Z() (in module thermo.utils), 349
B_To_Z() (in module thermo.utils), 349Bahadori_gas() (in module
thermo.thermal_conductivity), 319Bahadori_liquid() (in module
thermo.thermal_conductivity), 303Bhirud_normal() (in module thermo.volume), 435blocks (in module thermo.elements), 117boiling_critical_relation() (in module
thermo.vapor_pressure), 390boiling_methods (thermo.phase_change.EnthalpyVaporization
attribute), 277Bond() (thermo.chemical.Chemical method), 24Bond() (thermo.chemical.Mixture method), 50Brock_Bird() (in module thermo.interface), 230Brokaw() (in module thermo.viscosity), 423bubble_at_T() (in module thermo.activity), 16Bvirial (thermo.chemical.Chemical attribute), 24Bvirial (thermo.chemical.Mixture attribute), 50BVirial_Abbott() (in module thermo.virial), 396BVirial_Pitzer_Curl() (in module thermo.virial), 395BVirial_Tsonopoulos() (in module thermo.virial), 398BVirial_Tsonopoulos_extended() (in module
thermo.virial), 399
Cc1 (thermo.eos.PR attribute), 128c1 (thermo.eos.RK attribute), 143c1 (thermo.eos.SRK attribute), 131c2 (thermo.eos.PR attribute), 128c2 (thermo.eos.RK attribute), 143c2 (thermo.eos.SRK attribute), 131calc_H() (thermo.chemical.Chemical method), 35calc_H_excess() (thermo.chemical.Chemical method), 35calc_S() (thermo.chemical.Chemical method), 35calc_S_excess() (thermo.chemical.Chemical method), 35calculate() (thermo.chemical.Chemical method), 35calculate() (thermo.chemical.Mixture method), 64calculate() (thermo.chemical.Stream method), 82calculate() (thermo.heat_capacity.HeatCapacityGas
method), 194calculate() (thermo.heat_capacity.HeatCapacityGasMixture
method), 220calculate() (thermo.heat_capacity.HeatCapacityLiquid
method), 208calculate() (thermo.heat_capacity.HeatCapacityLiquidMixture
method), 223calculate() (thermo.heat_capacity.HeatCapacitySolid
method), 214calculate() (thermo.heat_capacity.HeatCapacitySolidMixture
method), 218calculate() (thermo.heat_capacity.Zabransky_quasipolynomial
method), 203calculate() (thermo.heat_capacity.Zabransky_spline
method), 205
502 Index
thermo Documentation, Release 0.1
calculate() (thermo.interface.SurfaceTension method),238
calculate() (thermo.interface.SurfaceTensionMixturemethod), 244
calculate() (thermo.permittivity.Permittivity method), 263calculate() (thermo.phase_change.EnthalpyVaporization
method), 277calculate() (thermo.thermal_conductivity.ThermalConductivityGas
method), 324calculate() (thermo.thermal_conductivity.ThermalConductivityGasMixture
method), 333calculate() (thermo.thermal_conductivity.ThermalConductivityLiquid
method), 308calculate() (thermo.utils.TDependentProperty method),
362calculate() (thermo.vapor_pressure.VaporPressure
method), 389calculate() (thermo.viscosity.ViscosityGas method), 415calculate() (thermo.viscosity.ViscosityGasMixture
method), 430calculate() (thermo.viscosity.ViscosityLiquid method),
409calculate() (thermo.viscosity.ViscosityLiquidMixture
method), 427calculate() (thermo.volume.VolumeGasMixture method),
464calculate() (thermo.volume.VolumeLiquid method), 444calculate() (thermo.volume.VolumeLiquidMixture
method), 461calculate() (thermo.volume.VolumeSolid method), 458calculate() (thermo.volume.VolumeSolidMixture
method), 467calculate_derivative() (thermo.utils.TDependentProperty
method), 362calculate_derivative_P() (thermo.utils.MixtureProperty
method), 374calculate_derivative_P() (thermo.utils.TPDependentProperty
method), 369calculate_derivative_T() (thermo.utils.MixtureProperty
method), 374calculate_derivative_T() (thermo.utils.TPDependentProperty
method), 369calculate_integral() (thermo.heat_capacity.HeatCapacityGas
method), 194calculate_integral() (thermo.heat_capacity.HeatCapacityLiquid
method), 208calculate_integral() (thermo.heat_capacity.HeatCapacitySolid
method), 214calculate_integral() (thermo.heat_capacity.Zabransky_quasipolynomial
method), 203calculate_integral() (thermo.heat_capacity.Zabransky_spline
method), 205calculate_integral() (thermo.utils.TDependentProperty
method), 362
calculate_integral_over_T()(thermo.heat_capacity.HeatCapacityGasmethod), 195
calculate_integral_over_T()(thermo.heat_capacity.HeatCapacityLiquidmethod), 209
calculate_integral_over_T()(thermo.heat_capacity.HeatCapacitySolidmethod), 215
calculate_integral_over_T()(thermo.heat_capacity.Zabransky_quasipolynomialmethod), 203
calculate_integral_over_T()(thermo.heat_capacity.Zabransky_splinemethod), 205
calculate_integral_over_T()(thermo.utils.TDependentProperty method),363
calculate_P() (thermo.thermal_conductivity.ThermalConductivityGasmethod), 324
calculate_P() (thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 308
calculate_P() (thermo.viscosity.ViscosityGas method),415
calculate_P() (thermo.viscosity.ViscosityLiquid method),409
calculate_P() (thermo.volume.VolumeGas method), 453calculate_P() (thermo.volume.VolumeLiquid method),
444calculate_PH() (thermo.chemical.Chemical method), 35calculate_PH() (thermo.chemical.Mixture method), 64calculate_PS() (thermo.chemical.Chemical method), 35calculate_PS() (thermo.chemical.Mixture method), 64calculate_TH() (thermo.chemical.Chemical method), 35calculate_TH() (thermo.chemical.Mixture method), 64calculate_TS() (thermo.chemical.Chemical method), 35calculate_TS() (thermo.chemical.Mixture method), 64Campbell_Thodos() (in module thermo.volume), 436Capillary() (thermo.chemical.Chemical method), 24Capillary() (thermo.chemical.Mixture method), 51Carcinogen() (in module thermo.safety), 286CAS (thermo.heat_capacity.Zabransky_quasipolynomial
attribute), 203CAS (thermo.heat_capacity.Zabransky_spline attribute),
204CAS2int() (in module thermo.utils), 356CAS_by_number (in module thermo.elements), 117CAS_to_elements (thermo.elements.PeriodicTable
attribute), 114CASfromAny() (in module thermo.identifiers), 225ceil() (in module thermo.utils), 381Ceiling() (in module thermo.safety), 286charge (thermo.chemical.Chemical attribute), 35charges (thermo.chemical.Mixture attribute), 64
Index 503
thermo Documentation, Release 0.1
check_sufficient_inputs() (thermo.eos.GCEOS method),121
checkCAS() (in module thermo.identifiers), 225Chemical (class in thermo.chemical), 18Chen() (in module thermo.phase_change), 272Chueh_Prausnitz_Tc() (in module thermo.critical), 92Chueh_Prausnitz_Vc() (in module thermo.critical), 94Chung() (in module thermo.thermal_conductivity), 315chung_dense() (in module thermo.thermal_conductivity),
329Clapeyron() (in module thermo.phase_change), 267cleanup_a_alpha_and_derivatives()
(thermo.eos_mix.APISRKMIX method),185
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.PRMIX method), 163
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.PRSV2MIX method), 177
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.PRSVMIX method), 174
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.SRKMIX method), 166
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.TWUPRMIX method),179
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.TWUSRKMIX method),182
cleanup_a_alpha_and_derivatives()(thermo.eos_mix.VDWMIX method), 171
coeff_sets (thermo.heat_capacity.Zabransky_spline at-tribute), 205
coeffs (thermo.heat_capacity.Zabransky_quasipolynomialattribute), 204
collision_integral_Kim_Monroe() (in modulethermo.lennard_jones), 259
collision_integral_Neufeld_Janzen_Aziz() (in modulethermo.lennard_jones), 258
conductivity() (in module thermo.electrochem), 103copysign() (in module thermo.utils), 381Coquelet() (thermo.eos.ALPHA_FUNCTIONS static
method), 153cos() (in module thermo.utils), 381cosh() (in module thermo.utils), 382COSTALD() (in module thermo.volume), 435COSTALD_compressed() (in module thermo.volume),
446COSTALD_mixture() (in module thermo.volume), 449Cp (thermo.chemical.Chemical attribute), 24Cp (thermo.chemical.Mixture attribute), 51Cp_minus_Cv() (in module thermo.utils), 343Cpg (thermo.chemical.Chemical attribute), 24Cpg (thermo.chemical.Mixture attribute), 51Cpgm (thermo.chemical.Chemical attribute), 24
Cpgm (thermo.chemical.Mixture attribute), 51Cpgms (thermo.chemical.Mixture attribute), 51Cpgs (thermo.chemical.Mixture attribute), 51Cpl (thermo.chemical.Chemical attribute), 25Cpl (thermo.chemical.Mixture attribute), 52Cplm (thermo.chemical.Chemical attribute), 25Cplm (thermo.chemical.Mixture attribute), 52Cplms (thermo.chemical.Mixture attribute), 52Cpls (thermo.chemical.Mixture attribute), 52Cpm (thermo.chemical.Chemical attribute), 26Cpm (thermo.chemical.Mixture attribute), 53Cps (thermo.chemical.Chemical attribute), 26Cps (thermo.chemical.Mixture attribute), 53Cpsm (thermo.chemical.Chemical attribute), 26Cpsm (thermo.chemical.Mixture attribute), 53Cpsms (thermo.chemical.Mixture attribute), 53Cpss (thermo.chemical.Mixture attribute), 53CRC_inorganic() (in module thermo.volume), 439critical_surface() (in module thermo.critical), 88Crowl_Louvar_LFL() (in module thermo.safety), 292Crowl_Louvar_UFL() (in module thermo.safety), 293CSP_methods (thermo.phase_change.EnthalpyVaporization
attribute), 277Cvg (thermo.chemical.Chemical attribute), 26Cvg (thermo.chemical.Mixture attribute), 54Cvgm (thermo.chemical.Chemical attribute), 27Cvgm (thermo.chemical.Mixture attribute), 54Cvgms (thermo.chemical.Mixture attribute), 54Cvgs (thermo.chemical.Mixture attribute), 54
DDadgostar_Shaw() (in module thermo.heat_capacity),
198degrees() (in module thermo.utils), 382delta (thermo.eos.VDW attribute), 140derivatives_and_departures() (thermo.eos.GCEOS
method), 122dew_at_T() (in module thermo.activity), 16Diguilio_Teja() (in module thermo.interface), 240dipole_moment() (in module thermo.dipole), 96DIPPR9B() (in module thermo.thermal_conductivity),
314DIPPR9G() (in module thermo.thermal_conductivity),
310DIPPR9H() (in module thermo.thermal_conductivity),
312dPsat_dT() (thermo.eos.GCEOS method), 121draw_2d() (thermo.chemical.Chemical method), 35draw_2d() (thermo.chemical.Mixture method), 64draw_3d() (thermo.chemical.Chemical method), 36
Eeconomic_status (thermo.chemical.Chemical attribute),
36
504 Index
thermo Documentation, Release 0.1
economic_status() (in module thermo.law), 246economic_statuses (thermo.chemical.Mixture attribute),
65Edalat() (in module thermo.vapor_pressure), 393eli_hanley() (in module thermo.thermal_conductivity),
316eli_hanley_dense() (in module
thermo.thermal_conductivity), 327enthalpy_vaporization_methods (in module
thermo.phase_change), 274EnthalpyVaporization (class in thermo.phase_change),
274eos (thermo.chemical.Chemical attribute), 36eos (thermo.chemical.Mixture attribute), 65eos_in_a_box (thermo.chemical.Mixture attribute), 65epsilon (thermo.eos.RK attribute), 143epsilon (thermo.eos.SRK attribute), 131epsilon (thermo.eos.VDW attribute), 140epsilon_Bird_Stewart_Lightfoot_boiling() (in module
thermo.lennard_jones), 255epsilon_Bird_Stewart_Lightfoot_critical() (in module
thermo.lennard_jones), 255epsilon_Bird_Stewart_Lightfoot_melting() (in module
thermo.lennard_jones), 256epsilon_Flynn() (in module thermo.lennard_jones), 254epsilon_Stiel_Thodos() (in module
thermo.lennard_jones), 256epsilon_Tee_Gotoh_Steward_1() (in module
thermo.lennard_jones), 257epsilon_Tee_Gotoh_Steward_2() (in module
thermo.lennard_jones), 257EQ100() (in module thermo.dippr), 97EQ101() (in module thermo.dippr), 98EQ102() (in module thermo.dippr), 98EQ104() (in module thermo.dippr), 99EQ105() (in module thermo.dippr), 99EQ106() (in module thermo.dippr), 100EQ107() (in module thermo.dippr), 101EQ114() (in module thermo.dippr), 101EQ115() (in module thermo.dippr), 102EQ116() (in module thermo.dippr), 102EQ127() (in module thermo.dippr), 103erf() (in module thermo.utils), 382erfc() (in module thermo.utils), 382Eucken() (in module thermo.thermal_conductivity), 313Eucken_modified() (in module
thermo.thermal_conductivity), 314exp() (in module thermo.utils), 382expm1() (in module thermo.utils), 382
Ffabs() (in module thermo.utils), 382factorial() (in module thermo.utils), 382Filippov() (in module thermo.thermal_conductivity), 312
fire_mixing() (in module thermo.safety), 290flash() (in module thermo.activity), 16flash_inner_loop() (in module thermo.activity), 12floor() (in module thermo.utils), 382fmod() (in module thermo.utils), 382forced (thermo.utils.MixtureProperty attribute), 375forced (thermo.utils.TDependentProperty attribute), 363forced_P (thermo.utils.TPDependentProperty attribute),
370formula() (in module thermo.identifiers), 226formulas (thermo.chemical.Mixture attribute), 65frexp() (in module thermo.utils), 382fsum() (in module thermo.utils), 382fugacities() (thermo.eos_mix.GCEOSMIX method), 160fugacity_coefficients() (thermo.eos_mix.PRMIX
method), 163fugacity_coefficients() (thermo.eos_mix.SRKMIX
method), 166fugacity_coefficients() (thermo.eos_mix.VDWMIX
method), 171
Ggamma() (in module thermo.utils), 382Gasem() (thermo.eos.ALPHA_FUNCTIONS static
method), 153GCEOS (class in thermo.eos), 117GCEOS_DUMMY (class in thermo.eos), 157GCEOSMIX (class in thermo.eos_mix), 158Gharagheizi_gas() (in module
thermo.thermal_conductivity), 318Gharagheizi_gas_viscosity() (in module
thermo.viscosity), 421Gharagheizi_liquid() (in module
thermo.thermal_conductivity), 300Gibbons_Laughton() (thermo.eos.ALPHA_FUNCTIONS
static method), 153Goodman() (in module thermo.volume), 455Grashof() (thermo.chemical.Chemical method), 27Grashof() (thermo.chemical.Mixture method), 54Grieves_Thodos() (in module thermo.critical), 93Grigoras() (in module thermo.critical), 90groups (in module thermo.elements), 117GWP() (in module thermo.environment), 185
HHaghtalab() (thermo.eos.ALPHA_FUNCTIONS static
method), 154Hakim_Steinberg_Stiel() (in module thermo.interface),
233Harmens_Knapp() (thermo.eos.ALPHA_FUNCTIONS
static method), 154Hcombustion() (in module thermo.combustion), 82heat_capacity_gas_methods (in module
thermo.heat_capacity), 192
Index 505
thermo Documentation, Release 0.1
heat_capacity_liquid_methods (in modulethermo.heat_capacity), 205
heat_capacity_solid_methods (in modulethermo.heat_capacity), 212
HeatCapacityGas (class in thermo.heat_capacity), 192HeatCapacityGasMixture (class in
thermo.heat_capacity), 219HeatCapacityLiquid (class in thermo.heat_capacity), 205HeatCapacityLiquidMixture (class in
thermo.heat_capacity), 222HeatCapacitySolid (class in thermo.heat_capacity), 212HeatCapacitySolidMixture (class in
thermo.heat_capacity), 216Herning_Zipperer() (in module thermo.viscosity), 421Heyen() (thermo.eos.ALPHA_FUNCTIONS static
method), 154Hf() (in module thermo.reaction), 279Hf_g() (in module thermo.reaction), 281Hf_l() (in module thermo.reaction), 280Hfus() (in module thermo.phase_change), 279Hill (thermo.chemical.Chemical attribute), 27horner() (in module thermo.utils), 380Hsub() (in module thermo.phase_change), 279Hvap (thermo.chemical.Chemical attribute), 27Hvap() (thermo.eos.GCEOS method), 119Hvapm (thermo.chemical.Chemical attribute), 27Hvapms (thermo.chemical.Mixture attribute), 55Hvaps (thermo.chemical.Mixture attribute), 55hypot() (in module thermo.utils), 382
Iideal_gas() (in module thermo.volume), 450identify_phase() (in module thermo.activity), 16identify_phase_mixture() (in module thermo.activity), 17Ihmels() (in module thermo.critical), 88InChI() (in module thermo.identifiers), 227InChI_Key() (in module thermo.identifiers), 227InChI_Keys (thermo.chemical.Mixture attribute), 55InChIs (thermo.chemical.Mixture attribute), 55int2CAS() (in module thermo.utils), 356interpolate() (thermo.utils.TDependentProperty method),
363interpolate_P() (thermo.utils.TPDependentProperty
method), 370interpolation_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 324interpolation_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 308interpolation_P (thermo.utils.TPDependentProperty at-
tribute), 370interpolation_P (thermo.viscosity.ViscosityGas attribute),
415interpolation_P (thermo.viscosity.ViscosityLiquid at-
tribute), 409
interpolation_P (thermo.volume.VolumeGas attribute),454
interpolation_P (thermo.volume.VolumeLiquid attribute),444
interpolation_property (thermo.heat_capacity.HeatCapacityGasattribute), 195
interpolation_property (thermo.heat_capacity.HeatCapacityLiquidattribute), 209
interpolation_property (thermo.heat_capacity.HeatCapacitySolidattribute), 215
interpolation_property (thermo.interface.SurfaceTensionattribute), 239
interpolation_property (thermo.permittivity.Permittivityattribute), 264
interpolation_property (thermo.phase_change.EnthalpyVaporizationattribute), 277
interpolation_property (thermo.thermal_conductivity.ThermalConductivityGasattribute), 324
interpolation_property (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 308
interpolation_property (thermo.utils.TDependentPropertyattribute), 363
interpolation_property (thermo.viscosity.ViscosityGas at-tribute), 415
interpolation_property (thermo.viscosity.ViscosityLiquidattribute), 410
interpolation_property (thermo.volume.VolumeGas at-tribute), 454
interpolation_property (thermo.volume.VolumeLiquid at-tribute), 444
interpolation_property (thermo.volume.VolumeSolid at-tribute), 458
interpolation_property() (thermo.vapor_pressure.VaporPressuremethod), 389
interpolation_property_inv(thermo.heat_capacity.HeatCapacityGas at-tribute), 195
interpolation_property_inv(thermo.heat_capacity.HeatCapacityLiquidattribute), 209
interpolation_property_inv(thermo.heat_capacity.HeatCapacitySolidattribute), 215
interpolation_property_inv(thermo.interface.SurfaceTension attribute),239
interpolation_property_inv(thermo.permittivity.Permittivity attribute),264
interpolation_property_inv(thermo.phase_change.EnthalpyVaporizationattribute), 277
interpolation_property_inv(thermo.thermal_conductivity.ThermalConductivityGas
506 Index
thermo Documentation, Release 0.1
attribute), 324interpolation_property_inv
(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 308
interpolation_property_inv(thermo.utils.TDependentProperty attribute),364
interpolation_property_inv(thermo.viscosity.ViscosityGas attribute),415
interpolation_property_inv(thermo.viscosity.ViscosityLiquid attribute),410
interpolation_property_inv (thermo.volume.VolumeGasattribute), 454
interpolation_property_inv(thermo.volume.VolumeLiquid attribute),444
interpolation_property_inv (thermo.volume.VolumeSolidattribute), 458
interpolation_property_inv()(thermo.vapor_pressure.VaporPressuremethod), 389
interpolation_T (thermo.heat_capacity.HeatCapacityGasattribute), 195
interpolation_T (thermo.heat_capacity.HeatCapacityLiquidattribute), 209
interpolation_T (thermo.heat_capacity.HeatCapacitySolidattribute), 215
interpolation_T (thermo.interface.SurfaceTension at-tribute), 239
interpolation_T (thermo.permittivity.Permittivity at-tribute), 264
interpolation_T (thermo.phase_change.EnthalpyVaporizationattribute), 277
interpolation_T (thermo.thermal_conductivity.ThermalConductivityGasattribute), 324
interpolation_T (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 308
interpolation_T (thermo.utils.TDependentPropertyattribute), 363
interpolation_T (thermo.viscosity.ViscosityGas attribute),415
interpolation_T (thermo.viscosity.ViscosityLiquid at-tribute), 410
interpolation_T (thermo.volume.VolumeGas attribute),454
interpolation_T (thermo.volume.VolumeLiquid attribute),444
interpolation_T (thermo.volume.VolumeSolid attribute),458
interpolation_T() (thermo.vapor_pressure.VaporPressuremethod), 389
ionic_strength() (in module thermo.electrochem), 111
isentropic_exponent (thermo.chemical.Chemical at-tribute), 37
isentropic_exponent (thermo.chemical.Mixture attribute),65
isentropic_exponent() (in module thermo.utils), 347isentropic_exponents (thermo.chemical.Mixture at-
tribute), 65isinf() (in module thermo.utils), 382isnan() (in module thermo.utils), 382isobaric_expansion (thermo.chemical.Chemical at-
tribute), 37isobaric_expansion (thermo.chemical.Mixture attribute),
65isobaric_expansion() (in module thermo.utils), 341isobaric_expansion_g (thermo.chemical.Chemical
attribute), 37isobaric_expansion_gs (thermo.chemical.Mixture at-
tribute), 66isobaric_expansion_l (thermo.chemical.Chemical at-
tribute), 37isobaric_expansion_ls (thermo.chemical.Mixture at-
tribute), 66isothermal_compressibility() (in module thermo.utils),
342ITS90_68_difference() (in module thermo.temperature),
297IUPAC_name() (in module thermo.identifiers), 227IUPAC_names (thermo.chemical.Mixture attribute), 55
JJakob() (thermo.chemical.Chemical method), 29Jakob() (thermo.chemical.Mixture method), 57Jasper() (in module thermo.interface), 229Joule_Thomson() (in module thermo.utils), 344JT (thermo.chemical.Chemical attribute), 28JT (thermo.chemical.Mixture attribute), 55JTg (thermo.chemical.Chemical attribute), 28JTg (thermo.chemical.Mixture attribute), 56JTgs (thermo.chemical.Mixture attribute), 56JTl (thermo.chemical.Chemical attribute), 28JTl (thermo.chemical.Mixture attribute), 56JTls (thermo.chemical.Mixture attribute), 56
Kk (thermo.chemical.Chemical attribute), 38k (thermo.chemical.Mixture attribute), 66K_value() (in module thermo.activity), 7kappa1_Tr_limit (thermo.eos.PRSV attribute), 135kg (thermo.chemical.Chemical attribute), 38kg (thermo.chemical.Mixture attribute), 66kgs (thermo.chemical.Mixture attribute), 67kl (thermo.chemical.Chemical attribute), 38kl (thermo.chemical.Mixture attribute), 67kls (thermo.chemical.Mixture attribute), 67
Index 507
thermo Documentation, Release 0.1
kwargs (thermo.eos.GCEOS attribute), 122Kweq_1981() (in module thermo.electrochem), 111Kweq_IAPWS() (in module thermo.electrochem), 112Kweq_IAPWS_gas() (in module thermo.electrochem),
112
LLakshmi_Prasad() (in module
thermo.thermal_conductivity), 300Laliberte_density() (in module thermo.electrochem), 104Laliberte_density_i() (in module thermo.electrochem),
108Laliberte_density_w() (in module thermo.electrochem),
107Laliberte_heat_capacity() (in module
thermo.electrochem), 105Laliberte_heat_capacity_i() (in module
thermo.electrochem), 109Laliberte_heat_capacity_w() (in module
thermo.electrochem), 109Laliberte_viscosity() (in module thermo.electrochem),
106Laliberte_viscosity_i() (in module thermo.electrochem),
107Laliberte_viscosity_w() (in module thermo.electrochem),
106Lastovka_Shaw() (in module thermo.heat_capacity), 188Lastovka_Shaw_integral() (in module
thermo.heat_capacity), 188Lastovka_Shaw_integral_over_T() (in module
thermo.heat_capacity), 189Lastovka_solid() (in module thermo.heat_capacity), 210Lastovka_solid_integral() (in module
thermo.heat_capacity), 211Lastovka_solid_integral_over_T() (in module
thermo.heat_capacity), 212ldexp() (in module thermo.utils), 382Lee_Kesler() (in module thermo.vapor_pressure), 391legal_status (thermo.chemical.Chemical attribute), 39legal_status() (in module thermo.law), 245legal_statuses (thermo.chemical.Mixture attribute), 67Letsou_Stiel() (in module thermo.viscosity), 403LFL() (in module thermo.safety), 288LFL_mixture() (in module thermo.safety), 290lgamma() (in module thermo.utils), 382Li() (in module thermo.critical), 91Li_Johns_Ahmadi_solution() (in module
thermo.activity), 11Lindsay_Bromley() (in module
thermo.thermal_conductivity), 330Liu() (in module thermo.phase_change), 272LK_omega() (in module thermo.acentric), 4load_all_methods() (thermo.heat_capacity.HeatCapacityGas
method), 195
load_all_methods() (thermo.heat_capacity.HeatCapacityGasMixturemethod), 221
load_all_methods() (thermo.heat_capacity.HeatCapacityLiquidmethod), 209
load_all_methods() (thermo.heat_capacity.HeatCapacityLiquidMixturemethod), 224
load_all_methods() (thermo.heat_capacity.HeatCapacitySolidmethod), 215
load_all_methods() (thermo.heat_capacity.HeatCapacitySolidMixturemethod), 218
load_all_methods() (thermo.interface.SurfaceTensionmethod), 239
load_all_methods() (thermo.interface.SurfaceTensionMixturemethod), 244
load_all_methods() (thermo.permittivity.Permittivitymethod), 264
load_all_methods() (thermo.phase_change.EnthalpyVaporizationmethod), 277
load_all_methods() (thermo.thermal_conductivity.ThermalConductivityGasmethod), 324
load_all_methods() (thermo.thermal_conductivity.ThermalConductivityGasMixturemethod), 334
load_all_methods() (thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 308
load_all_methods() (thermo.utils.TDependentPropertymethod), 364
load_all_methods() (thermo.vapor_pressure.VaporPressuremethod), 389
load_all_methods() (thermo.viscosity.ViscosityGasmethod), 415
load_all_methods() (thermo.viscosity.ViscosityGasMixturemethod), 430
load_all_methods() (thermo.viscosity.ViscosityLiquidmethod), 410
load_all_methods() (thermo.viscosity.ViscosityLiquidMixturemethod), 427
load_all_methods() (thermo.volume.VolumeGasmethod), 454
load_all_methods() (thermo.volume.VolumeGasMixturemethod), 465
load_all_methods() (thermo.volume.VolumeLiquidmethod), 444
load_all_methods() (thermo.volume.VolumeLiquidMixturemethod), 462
load_all_methods() (thermo.volume.VolumeSolidmethod), 458
load_all_methods() (thermo.volume.VolumeSolidMixturemethod), 468
load_economic_data() (in module thermo.law), 247load_group_assignments_DDBST() (in module
thermo.unifac), 341load_law_data() (in module thermo.law), 247log() (in module thermo.utils), 382log10() (in module thermo.utils), 382
508 Index
thermo Documentation, Release 0.1
log1p() (in module thermo.utils), 382logP() (in module thermo.environment), 187Lucas() (in module thermo.viscosity), 417lucas_gas() (in module thermo.viscosity), 420
Mmain_derivatives_and_departures() (thermo.eos.GCEOS
static method), 122main_derivatives_and_departures() (thermo.eos.VDW
static method), 140mass_fractions (thermo.chemical.Chemical attribute), 39mass_fractions (thermo.chemical.Mixture attribute), 68mass_fractions() (in module thermo.elements), 114mass_fractionss (thermo.chemical.Mixture attribute), 68Mathias() (thermo.eos.ALPHA_FUNCTIONS static
method), 154Mathias_Copeman() (thermo.eos.ALPHA_FUNCTIONS
static method), 155Meissner() (in module thermo.critical), 89Melhem() (thermo.eos.ALPHA_FUNCTIONS static
method), 155method (thermo.utils.MixtureProperty attribute), 375method (thermo.utils.TDependentProperty attribute), 364method (thermo.vapor_pressure.VaporPressure attribute),
389method_P (thermo.utils.TPDependentProperty attribute),
370mgm3_to_ppmv() (in module thermo.safety), 285Miqueu() (in module thermo.interface), 234Missenard() (in module thermo.thermal_conductivity),
311mixing_logarithmic() (in module thermo.utils), 355mixing_simple() (in module thermo.utils), 354Mixture (class in thermo.chemical), 44mixture_from_any() (in module thermo.identifiers), 227mixture_property() (thermo.utils.MixtureProperty
method), 375MixtureProperty (class in thermo.utils), 373MK() (in module thermo.phase_change), 269modf() (in module thermo.utils), 383modified_Wilson_Tc() (in module thermo.critical), 93modified_Wilson_Vc() (in module thermo.critical), 95molar_refractivity_from_RI() (in module
thermo.refractivity), 283molecular_diameter() (in module thermo.lennard_jones),
248molecular_weight() (in module thermo.elements), 114mu (thermo.chemical.Chemical attribute), 39mu (thermo.chemical.Mixture attribute), 68mug (thermo.chemical.Chemical attribute), 39mug (thermo.chemical.Mixture attribute), 68mugs (thermo.chemical.Mixture attribute), 68mul (thermo.chemical.Chemical attribute), 39mul (thermo.chemical.Mixture attribute), 69
muls (thermo.chemical.Mixture attribute), 69MW() (in module thermo.identifiers), 226
Nn (thermo.heat_capacity.Zabransky_spline attribute), 205name (thermo.heat_capacity.HeatCapacityGas attribute),
195name (thermo.heat_capacity.HeatCapacityGasMixture at-
tribute), 221name (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 209name (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 224name (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 215name (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218name (thermo.heat_capacity.Zabransky_quasipolynomial
attribute), 204name (thermo.heat_capacity.Zabransky_spline attribute),
205name (thermo.interface.SurfaceTension attribute), 239name (thermo.interface.SurfaceTensionMixture at-
tribute), 244name (thermo.permittivity.Permittivity attribute), 264name (thermo.phase_change.EnthalpyVaporization at-
tribute), 278name (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 324name (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 334name (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 308name (thermo.utils.MixtureProperty attribute), 376name (thermo.utils.TDependentProperty attribute), 364name (thermo.vapor_pressure.VaporPressure attribute),
389name (thermo.viscosity.ViscosityGas attribute), 416name (thermo.viscosity.ViscosityGasMixture attribute),
431name (thermo.viscosity.ViscosityLiquid attribute), 410name (thermo.viscosity.ViscosityLiquidMixture at-
tribute), 427name (thermo.volume.VolumeGas attribute), 454name (thermo.volume.VolumeGasMixture attribute), 465name (thermo.volume.VolumeLiquid attribute), 444name (thermo.volume.VolumeLiquidMixture attribute),
462name (thermo.volume.VolumeSolid attribute), 458name (thermo.volume.VolumeSolidMixture attribute),
468name() (in module thermo.identifiers), 227name_to_elements (thermo.elements.PeriodicTable at-
tribute), 114
Index 509
thermo Documentation, Release 0.1
Nicola() (in module thermo.thermal_conductivity), 302Nicola_original() (in module
thermo.thermal_conductivity), 301none_and_length_check() (in module thermo.utils), 354normalize() (in module thermo.utils), 354NRTL() (in module thermo.activity), 13nu (thermo.chemical.Chemical attribute), 40nu (thermo.chemical.Mixture attribute), 69nug (thermo.chemical.Chemical attribute), 40nug (thermo.chemical.Mixture attribute), 69nugs (thermo.chemical.Mixture attribute), 70nul (thermo.chemical.Chemical attribute), 40nul (thermo.chemical.Mixture attribute), 70nuls (thermo.chemical.Mixture attribute), 70number_to_elements (thermo.elements.PeriodicTable at-
tribute), 114
OODP() (in module thermo.environment), 186omega (thermo.eos.GCEOS_DUMMY attribute), 158omega (thermo.eos.RK attribute), 143omega (thermo.eos.VDW attribute), 141omega() (in module thermo.acentric), 3omega_mixture() (in module thermo.acentric), 5
PParachor (thermo.chemical.Chemical attribute), 29Parachor() (in module thermo.utils), 357Pbubble_mixture() (in module thermo.activity), 18Pc (thermo.eos.GCEOS_DUMMY attribute), 158Pc() (in module thermo.critical), 84Pc_mixture() (in module thermo.critical), 94Pdew_mixture() (in module thermo.activity), 18Peclet_heat() (thermo.chemical.Chemical method), 29Peclet_heat() (thermo.chemical.Mixture method), 57PeriodicTable (class in thermo.elements), 113periods (in module thermo.elements), 117permittivites (thermo.chemical.Mixture attribute), 70Permittivity (class in thermo.permittivity), 262permittivity (thermo.chemical.Chemical attribute), 40permittivity_IAPWS() (in module thermo.permittivity),
261phase_identification_parameter() (in module
thermo.utils), 345phase_identification_parameter_phase() (in module
thermo.utils), 346phase_select_property() (in module thermo.utils), 358Pitzer() (in module thermo.interface), 231Pitzer() (in module thermo.phase_change), 268plot_isobar() (thermo.utils.MixtureProperty method), 376plot_isobar() (thermo.utils.TPDependentProperty
method), 371plot_isotherm() (thermo.utils.MixtureProperty method),
376
plot_isotherm() (thermo.utils.TPDependentPropertymethod), 371
plot_property() (thermo.utils.MixtureProperty method),377
plot_T_dependent_property()(thermo.utils.TDependentProperty method),364
plot_TP_dependent_property()(thermo.utils.TPDependentProperty method),370
Pmax (thermo.volume.VolumeGas attribute), 453Pmin (thermo.volume.VolumeGas attribute), 453polarizability_from_RI() (in module thermo.refractivity),
282polylog2() (in module thermo.utils), 381pow() (in module thermo.utils), 383Poynting (thermo.chemical.Chemical attribute), 29ppmv_to_mgm3() (in module thermo.safety), 284PR (class in thermo.eos), 125Pr (thermo.chemical.Chemical attribute), 30Pr (thermo.chemical.Mixture attribute), 57PR78 (class in thermo.eos), 131PR78MIX (class in thermo.eos_mix), 167Prg (thermo.chemical.Chemical attribute), 30Prg (thermo.chemical.Mixture attribute), 57Prgs (thermo.chemical.Mixture attribute), 57Prl (thermo.chemical.Chemical attribute), 30Prl (thermo.chemical.Mixture attribute), 58Prls (thermo.chemical.Mixture attribute), 58PRMIX (class in thermo.eos_mix), 161prop_cached (thermo.utils.MixtureProperty attribute),
377property_derivative_P() (thermo.utils.MixtureProperty
method), 378property_derivative_T() (thermo.utils.MixtureProperty
method), 378property_mass_to_molar() (in module thermo.utils), 358property_max (thermo.heat_capacity.HeatCapacityGas
attribute), 195property_max (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 221property_max (thermo.heat_capacity.HeatCapacityLiquid
attribute), 209property_max (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 224property_max (thermo.heat_capacity.HeatCapacitySolid
attribute), 215property_max (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218property_max (thermo.interface.SurfaceTension at-
tribute), 239property_max (thermo.interface.SurfaceTensionMixture
attribute), 244property_max (thermo.permittivity.Permittivity attribute),
510 Index
thermo Documentation, Release 0.1
264property_max (thermo.phase_change.EnthalpyVaporization
attribute), 278property_max (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 324property_max (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 334property_max (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 308property_max (thermo.utils.MixtureProperty attribute),
379property_max (thermo.utils.TDependentProperty at-
tribute), 364property_max (thermo.vapor_pressure.VaporPressure at-
tribute), 389property_max (thermo.viscosity.ViscosityGas attribute),
416property_max (thermo.viscosity.ViscosityGasMixture at-
tribute), 431property_max (thermo.viscosity.ViscosityLiquid at-
tribute), 410property_max (thermo.viscosity.ViscosityLiquidMixture
attribute), 427property_max (thermo.volume.VolumeGas attribute), 454property_max (thermo.volume.VolumeGasMixture
attribute), 465property_max (thermo.volume.VolumeLiquid attribute),
444property_max (thermo.volume.VolumeLiquidMixture at-
tribute), 462property_max (thermo.volume.VolumeSolid attribute),
458property_max (thermo.volume.VolumeSolidMixture at-
tribute), 468property_min (thermo.heat_capacity.HeatCapacityGas at-
tribute), 195property_min (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 221property_min (thermo.heat_capacity.HeatCapacityLiquid
attribute), 209property_min (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 224property_min (thermo.heat_capacity.HeatCapacitySolid
attribute), 215property_min (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218property_min (thermo.interface.SurfaceTension at-
tribute), 239property_min (thermo.interface.SurfaceTensionMixture
attribute), 244property_min (thermo.permittivity.Permittivity attribute),
264property_min (thermo.phase_change.EnthalpyVaporization
attribute), 278
property_min (thermo.thermal_conductivity.ThermalConductivityGasattribute), 324
property_min (thermo.thermal_conductivity.ThermalConductivityGasMixtureattribute), 334
property_min (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 308
property_min (thermo.utils.MixtureProperty attribute),379
property_min (thermo.utils.TDependentProperty at-tribute), 364
property_min (thermo.vapor_pressure.VaporPressure at-tribute), 389
property_min (thermo.viscosity.ViscosityGas attribute),416
property_min (thermo.viscosity.ViscosityGasMixture at-tribute), 431
property_min (thermo.viscosity.ViscosityLiquid at-tribute), 410
property_min (thermo.viscosity.ViscosityLiquidMixtureattribute), 427
property_min (thermo.volume.VolumeGas attribute), 454property_min (thermo.volume.VolumeGasMixture
attribute), 465property_min (thermo.volume.VolumeLiquid attribute),
445property_min (thermo.volume.VolumeLiquidMixture at-
tribute), 462property_min (thermo.volume.VolumeSolid attribute),
458property_min (thermo.volume.VolumeSolidMixture at-
tribute), 468property_molar_to_mass() (in module thermo.utils), 357PRSV (class in thermo.eos), 133PRSV2 (class in thermo.eos), 136PRSV2MIX (class in thermo.eos_mix), 174PRSVMIX (class in thermo.eos_mix), 172Przedziecki_Sridhar() (in module thermo.viscosity), 404Psat (thermo.chemical.Chemical attribute), 30Psat() (thermo.eos.GCEOS method), 119Psat_coeffs (thermo.eos.PR attribute), 128Psat_coeffs (thermo.eos.RK attribute), 143Psat_coeffs (thermo.eos.SRK attribute), 130Psat_coeffs (thermo.eos.VDW attribute), 140Psat_coeffs_limiting (thermo.eos.PR attribute), 128Psat_coeffs_limiting (thermo.eos.RK attribute), 143Psat_coeffs_limiting (thermo.eos.SRK attribute), 130Psat_coeffs_limiting (thermo.eos.VDW attribute), 140Psats (thermo.chemical.Mixture attribute), 58PSRK_groups (thermo.chemical.Chemical attribute), 29PSRK_groups (thermo.chemical.Mixture attribute), 57Pt() (in module thermo.triple), 336PubChem() (in module thermo.identifiers), 225PubChems (thermo.chemical.Mixture attribute), 58
Index 511
thermo Documentation, Release 0.1
RRachford_Rice_flash_error() (in module thermo.activity),
9Rachford_Rice_solution() (in module thermo.activity), 10Rackett() (in module thermo.volume), 432Rackett_mixture() (in module thermo.volume), 448radians() (in module thermo.utils), 383ranked_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 195ranked_methods (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 221ranked_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 209ranked_methods (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 224ranked_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 215ranked_methods (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218ranked_methods (thermo.interface.SurfaceTension
attribute), 239ranked_methods (thermo.interface.SurfaceTensionMixture
attribute), 244ranked_methods (thermo.permittivity.Permittivity at-
tribute), 264ranked_methods (thermo.phase_change.EnthalpyVaporization
attribute), 278ranked_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 325ranked_methods (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 334ranked_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 309ranked_methods (thermo.utils.MixtureProperty attribute),
379ranked_methods (thermo.utils.TDependentProperty at-
tribute), 364ranked_methods (thermo.vapor_pressure.VaporPressure
attribute), 390ranked_methods (thermo.viscosity.ViscosityGas at-
tribute), 416ranked_methods (thermo.viscosity.ViscosityGasMixture
attribute), 431ranked_methods (thermo.viscosity.ViscosityLiquid at-
tribute), 410ranked_methods (thermo.viscosity.ViscosityLiquidMixture
attribute), 427ranked_methods (thermo.volume.VolumeGas attribute),
454ranked_methods (thermo.volume.VolumeGasMixture at-
tribute), 465ranked_methods (thermo.volume.VolumeLiquid at-
tribute), 445ranked_methods (thermo.volume.VolumeLiquidMixture
attribute), 462ranked_methods (thermo.volume.VolumeSolid attribute),
458ranked_methods (thermo.volume.VolumeSolidMixture
attribute), 468ranked_methods_P (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 325ranked_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 309ranked_methods_P (thermo.viscosity.ViscosityGas
attribute), 416ranked_methods_P (thermo.viscosity.ViscosityLiquid at-
tribute), 410ranked_methods_P (thermo.volume.VolumeGas at-
tribute), 454ranked_methods_P (thermo.volume.VolumeLiquid
attribute), 445rdkitmol (thermo.chemical.Chemical attribute), 41rdkitmol_Hs (thermo.chemical.Chemical attribute), 41REFPROP() (in module thermo.interface), 227refractive_index() (in module thermo.refractivity), 282Reynolds() (thermo.chemical.Chemical method), 31Reynolds() (thermo.chemical.Mixture method), 58rho (thermo.chemical.Chemical attribute), 41rho (thermo.chemical.Mixture attribute), 70rho_to_Vm() (in module thermo.utils), 348rhog (thermo.chemical.Chemical attribute), 41rhog (thermo.chemical.Mixture attribute), 71rhog_STP (thermo.chemical.Mixture attribute), 71rhogm (thermo.chemical.Chemical attribute), 42rhogm (thermo.chemical.Mixture attribute), 71rhogm_STP (thermo.chemical.Mixture attribute), 71rhogms (thermo.chemical.Mixture attribute), 72rhogs (thermo.chemical.Mixture attribute), 72rhol (thermo.chemical.Chemical attribute), 42rhol (thermo.chemical.Mixture attribute), 72rhol_STP (thermo.chemical.Mixture attribute), 72rholm (thermo.chemical.Chemical attribute), 42rholm (thermo.chemical.Mixture attribute), 72rholm_STP (thermo.chemical.Mixture attribute), 73rholms (thermo.chemical.Mixture attribute), 73rhols (thermo.chemical.Mixture attribute), 73rhom (thermo.chemical.Chemical attribute), 42rhom (thermo.chemical.Mixture attribute), 73rhos (thermo.chemical.Chemical attribute), 42rhosm (thermo.chemical.Chemical attribute), 43rhosms (thermo.chemical.Mixture attribute), 73rhoss (thermo.chemical.Mixture attribute), 74RI_from_molar_refractivity() (in module
thermo.refractivity), 283Riedel() (in module thermo.phase_change), 271rings (thermo.chemical.Chemical attribute), 43ringss (thermo.chemical.Mixture attribute), 74RK (class in thermo.eos), 141
512 Index
thermo Documentation, Release 0.1
Rowlinson_Bondi() (in module thermo.heat_capacity),197
Rowlinson_Poling() (in module thermo.heat_capacity),196
SSaffari() (thermo.eos.ALPHA_FUNCTIONS static
method), 155Sanjari() (in module thermo.vapor_pressure), 394Sastri_Rao() (in module thermo.interface), 232Sato_Riedel() (in module thermo.thermal_conductivity),
299Schwartzentruber() (thermo.eos.ALPHA_FUNCTIONS
static method), 155select_valid_methods() (thermo.utils.MixtureProperty
method), 379select_valid_methods() (thermo.utils.TDependentProperty
method), 364select_valid_methods_P()
(thermo.utils.TPDependentProperty method),372
set_chemical_constants() (thermo.chemical.Mixturemethod), 74
set_chemical_TP() (thermo.chemical.Mixture method),74
set_constant_sources() (thermo.chemical.Chemicalmethod), 43
set_constant_sources() (thermo.chemical.Mixturemethod), 74
set_constants() (thermo.chemical.Chemical method), 43set_constants() (thermo.chemical.Mixture method), 74set_eos() (thermo.chemical.Chemical method), 43set_eos() (thermo.chemical.Mixture method), 74set_from_PT() (thermo.eos.GCEOS method), 122set_none() (thermo.chemical.Mixture method), 74set_phase() (thermo.chemical.Mixture method), 74set_properties_from_solution() (thermo.eos.GCEOS
method), 122set_ref() (thermo.chemical.Chemical method), 43set_tabular_data() (thermo.utils.TDependentProperty
method), 364set_tabular_data_P() (thermo.utils.TPDependentProperty
method), 372set_thermo() (thermo.chemical.Chemical method), 43set_TP() (thermo.chemical.Mixture method), 74set_TP_sources() (thermo.chemical.Chemical method),
43set_TP_sources() (thermo.chemical.Mixture method), 74set_user_method() (thermo.utils.MixtureProperty
method), 379set_user_methods() (thermo.utils.TDependentProperty
method), 365set_user_methods_P() (thermo.utils.TPDependentProperty
method), 373
setup_a_alpha_and_derivatives()(thermo.eos_mix.APISRKMIX method),185
setup_a_alpha_and_derivatives()(thermo.eos_mix.PRMIX method), 164
setup_a_alpha_and_derivatives()(thermo.eos_mix.PRSV2MIX method), 177
setup_a_alpha_and_derivatives()(thermo.eos_mix.PRSVMIX method), 174
setup_a_alpha_and_derivatives()(thermo.eos_mix.SRKMIX method), 167
setup_a_alpha_and_derivatives()(thermo.eos_mix.TWUPRMIX method),179
setup_a_alpha_and_derivatives()(thermo.eos_mix.TWUSRKMIX method),182
setup_a_alpha_and_derivatives()(thermo.eos_mix.VDWMIX method), 172
Sheffy_Johnson() (in modulethermo.thermal_conductivity), 298
sigma (thermo.chemical.Chemical attribute), 43sigma (thermo.chemical.Mixture attribute), 74sigma_Bird_Stewart_Lightfoot_boiling() (in module
thermo.lennard_jones), 251sigma_Bird_Stewart_Lightfoot_critical_1() (in module
thermo.lennard_jones), 250sigma_Bird_Stewart_Lightfoot_critical_2() (in module
thermo.lennard_jones), 250sigma_Bird_Stewart_Lightfoot_melting() (in module
thermo.lennard_jones), 251sigma_Flynn() (in module thermo.lennard_jones), 249sigma_Silva_Liu_Macedo() (in module
thermo.lennard_jones), 254sigma_Stiel_Thodos() (in module thermo.lennard_jones),
252sigma_Tee_Gotoh_Steward_1() (in module
thermo.lennard_jones), 252sigma_Tee_Gotoh_Steward_2() (in module
thermo.lennard_jones), 253sigmas (thermo.chemical.Mixture attribute), 74similarity_variable() (in module thermo.elements), 115simple_formula_parser() (in module thermo.elements),
117sin() (in module thermo.utils), 383sinh() (in module thermo.utils), 383Skin() (in module thermo.safety), 286smiles() (in module thermo.identifiers), 226smiless (thermo.chemical.Mixture attribute), 75SMK() (in module thermo.phase_change), 268SNM0() (in module thermo.volume), 438Soave_1972() (thermo.eos.ALPHA_FUNCTIONS static
method), 155Soave_1984() (thermo.eos.ALPHA_FUNCTIONS static
Index 513
thermo Documentation, Release 0.1
method), 156Soave_1993() (thermo.eos.ALPHA_FUNCTIONS static
method), 156solubility_eutectic() (in module thermo.solubility), 295solubility_parameter (thermo.chemical.Chemical at-
tribute), 44solubility_parameter() (in module thermo.solubility), 294solubility_parameters (thermo.chemical.Mixture at-
tribute), 75solve() (thermo.eos.GCEOS method), 124solve_prop() (thermo.utils.TDependentProperty method),
365solve_T() (thermo.eos.APISRK method), 146solve_T() (thermo.eos.GCEOS method), 124solve_T() (thermo.eos.PR method), 128solve_T() (thermo.eos.PRSV method), 135solve_T() (thermo.eos.PRSV2 method), 138solve_T() (thermo.eos.RK method), 143solve_T() (thermo.eos.SRK method), 131solve_T() (thermo.eos.VDW method), 141solve_T() (thermo.eos_mix.GCEOSMIX method), 161Somayajulu() (in module thermo.interface), 228sorted_valid_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 195sorted_valid_methods (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 221sorted_valid_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 209sorted_valid_methods (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 224sorted_valid_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 215sorted_valid_methods (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218sorted_valid_methods (thermo.interface.SurfaceTension
attribute), 239sorted_valid_methods (thermo.interface.SurfaceTensionMixture
attribute), 244sorted_valid_methods (thermo.permittivity.Permittivity
attribute), 264sorted_valid_methods (thermo.phase_change.EnthalpyVaporization
attribute), 278sorted_valid_methods (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 325sorted_valid_methods (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 334sorted_valid_methods (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 309sorted_valid_methods (thermo.vapor_pressure.VaporPressure
attribute), 390sorted_valid_methods (thermo.viscosity.ViscosityGas at-
tribute), 416sorted_valid_methods (thermo.viscosity.ViscosityGasMixture
attribute), 431
sorted_valid_methods (thermo.viscosity.ViscosityLiquidattribute), 410
sorted_valid_methods (thermo.viscosity.ViscosityLiquidMixtureattribute), 427
sorted_valid_methods (thermo.volume.VolumeGasMixtureattribute), 465
sorted_valid_methods (thermo.volume.VolumeLiquid at-tribute), 445
sorted_valid_methods (thermo.volume.VolumeLiquidMixtureattribute), 462
sorted_valid_methods (thermo.volume.VolumeSolid at-tribute), 458
sorted_valid_methods (thermo.volume.VolumeSolidMixtureattribute), 468
sorted_valid_methods_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
sorted_valid_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
sorted_valid_methods_P (thermo.viscosity.ViscosityGasattribute), 416
sorted_valid_methods_P (thermo.viscosity.ViscosityLiquidattribute), 410
sorted_valid_methods_P (thermo.volume.VolumeGas at-tribute), 454
sorted_valid_methods_P (thermo.volume.VolumeLiquidattribute), 445
speed_of_sound() (in module thermo.utils), 343sqrt() (in module thermo.utils), 383SRK (class in thermo.eos), 129SRKMIX (class in thermo.eos_mix), 164STEL() (in module thermo.safety), 286Stiel_Thodos() (in module thermo.viscosity), 419stiel_thodos_dense() (in module
thermo.thermal_conductivity), 326StielPolar() (in module thermo.acentric), 6Stockmayer() (in module thermo.lennard_jones), 247Stream (class in thermo.chemical), 75surface_tension_methods (in module thermo.interface),
236SurfaceTension (class in thermo.interface), 236SurfaceTensionMixture (class in thermo.interface), 241Suzuki_LFL() (in module thermo.safety), 291Suzuki_UFL() (in module thermo.safety), 292symbol_to_elements (thermo.elements.PeriodicTable at-
tribute), 114synonyms() (in module thermo.identifiers), 227synonymss (thermo.chemical.Mixture attribute), 75
TT_cached (thermo.utils.TDependentProperty attribute),
360T_converter() (in module thermo.temperature), 296T_dependent_property() (thermo.utils.TDependentProperty
method), 360
514 Index
thermo Documentation, Release 0.1
T_dependent_property_derivative()(thermo.utils.TDependentProperty method),361
T_dependent_property_integral()(thermo.utils.TDependentProperty method),361
T_dependent_property_integral_over_T()(thermo.utils.TDependentProperty method),361
tabular_data (thermo.heat_capacity.HeatCapacityGas at-tribute), 196
tabular_data (thermo.heat_capacity.HeatCapacityLiquidattribute), 209
tabular_data (thermo.heat_capacity.HeatCapacitySolidattribute), 216
tabular_data (thermo.interface.SurfaceTension attribute),239
tabular_data (thermo.permittivity.Permittivity attribute),264
tabular_data (thermo.phase_change.EnthalpyVaporizationattribute), 278
tabular_data (thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
tabular_data (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
tabular_data (thermo.vapor_pressure.VaporPressure at-tribute), 390
tabular_data (thermo.viscosity.ViscosityGas attribute),416
tabular_data (thermo.viscosity.ViscosityLiquid attribute),410
tabular_data (thermo.volume.VolumeGas attribute), 454tabular_data (thermo.volume.VolumeLiquid attribute),
445tabular_data (thermo.volume.VolumeSolid attribute), 459tabular_data_interpolators
(thermo.heat_capacity.HeatCapacityGas at-tribute), 196
tabular_data_interpolators(thermo.heat_capacity.HeatCapacityLiquidattribute), 210
tabular_data_interpolators(thermo.heat_capacity.HeatCapacitySolidattribute), 216
tabular_data_interpolators(thermo.interface.SurfaceTension attribute),239
tabular_data_interpolators(thermo.permittivity.Permittivity attribute),264
tabular_data_interpolators(thermo.phase_change.EnthalpyVaporizationattribute), 278
tabular_data_interpolators
(thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
tabular_data_interpolators(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
tabular_data_interpolators(thermo.vapor_pressure.VaporPressure at-tribute), 390
tabular_data_interpolators(thermo.viscosity.ViscosityGas attribute),416
tabular_data_interpolators(thermo.viscosity.ViscosityLiquid attribute),410
tabular_data_interpolators (thermo.volume.VolumeGasattribute), 454
tabular_data_interpolators(thermo.volume.VolumeLiquid attribute),445
tabular_data_interpolators (thermo.volume.VolumeSolidattribute), 459
tabular_data_interpolators_P(thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
tabular_data_interpolators_P(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
tabular_data_interpolators_P(thermo.viscosity.ViscosityGas attribute),416
tabular_data_interpolators_P(thermo.viscosity.ViscosityLiquid attribute),410
tabular_data_interpolators_P(thermo.volume.VolumeGas attribute), 454
tabular_data_interpolators_P(thermo.volume.VolumeLiquid attribute),445
tabular_data_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
tabular_data_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
tabular_data_P (thermo.viscosity.ViscosityGas attribute),416
tabular_data_P (thermo.viscosity.ViscosityLiquid at-tribute), 410
tabular_data_P (thermo.volume.VolumeGas attribute),454
tabular_data_P (thermo.volume.VolumeLiquid attribute),445
tabular_extrapolation_permitted(thermo.heat_capacity.HeatCapacityGas at-tribute), 196
tabular_extrapolation_permitted
Index 515
thermo Documentation, Release 0.1
(thermo.heat_capacity.HeatCapacityLiquidattribute), 210
tabular_extrapolation_permitted(thermo.heat_capacity.HeatCapacitySolidattribute), 216
tabular_extrapolation_permitted(thermo.interface.SurfaceTension attribute),239
tabular_extrapolation_permitted(thermo.permittivity.Permittivity attribute),264
tabular_extrapolation_permitted(thermo.phase_change.EnthalpyVaporizationattribute), 278
tabular_extrapolation_permitted(thermo.thermal_conductivity.ThermalConductivityGasattribute), 325
tabular_extrapolation_permitted(thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 309
tabular_extrapolation_permitted(thermo.utils.TDependentProperty attribute),365
tabular_extrapolation_permitted(thermo.vapor_pressure.VaporPressure at-tribute), 390
tabular_extrapolation_permitted(thermo.viscosity.ViscosityGas attribute),416
tabular_extrapolation_permitted(thermo.viscosity.ViscosityLiquid attribute),410
tabular_extrapolation_permitted(thermo.volume.VolumeGas attribute), 455
tabular_extrapolation_permitted(thermo.volume.VolumeLiquid attribute),445
tabular_extrapolation_permitted(thermo.volume.VolumeSolid attribute),459
tabulate_constants() (in module thermo.datasheet), 96tabulate_gas() (in module thermo.datasheet), 96tabulate_liq() (in module thermo.datasheet), 96tabulate_solid() (in module thermo.datasheet), 96tan() (in module thermo.utils), 383tanh() (in module thermo.utils), 383Tautoignition() (in module thermo.safety), 288Tb() (in module thermo.phase_change), 265Tc (thermo.eos.GCEOS_DUMMY attribute), 158Tc (thermo.heat_capacity.Zabransky_quasipolynomial at-
tribute), 203Tc() (in module thermo.critical), 83Tc_mixture() (in module thermo.critical), 94TDependentProperty (class in thermo.utils), 358
test_method_validity() (thermo.heat_capacity.HeatCapacityGasmethod), 196
test_method_validity() (thermo.heat_capacity.HeatCapacityGasMixturemethod), 221
test_method_validity() (thermo.heat_capacity.HeatCapacityLiquidmethod), 210
test_method_validity() (thermo.heat_capacity.HeatCapacityLiquidMixturemethod), 224
test_method_validity() (thermo.heat_capacity.HeatCapacitySolidmethod), 216
test_method_validity() (thermo.heat_capacity.HeatCapacitySolidMixturemethod), 218
test_method_validity() (thermo.interface.SurfaceTensionmethod), 239
test_method_validity() (thermo.interface.SurfaceTensionMixturemethod), 244
test_method_validity() (thermo.permittivity.Permittivitymethod), 264
test_method_validity() (thermo.phase_change.EnthalpyVaporizationmethod), 278
test_method_validity() (thermo.thermal_conductivity.ThermalConductivityGasmethod), 325
test_method_validity() (thermo.thermal_conductivity.ThermalConductivityGasMixturemethod), 334
test_method_validity() (thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 309
test_method_validity() (thermo.utils.TDependentPropertymethod), 365
test_method_validity() (thermo.vapor_pressure.VaporPressuremethod), 390
test_method_validity() (thermo.viscosity.ViscosityGasmethod), 416
test_method_validity() (thermo.viscosity.ViscosityGasMixturemethod), 431
test_method_validity() (thermo.viscosity.ViscosityLiquidmethod), 411
test_method_validity() (thermo.viscosity.ViscosityLiquidMixturemethod), 427
test_method_validity() (thermo.volume.VolumeGasMixturemethod), 465
test_method_validity() (thermo.volume.VolumeLiquidmethod), 445
test_method_validity() (thermo.volume.VolumeLiquidMixturemethod), 462
test_method_validity() (thermo.volume.VolumeSolidmethod), 459
test_method_validity() (thermo.volume.VolumeSolidMixturemethod), 468
test_method_validity_P()(thermo.thermal_conductivity.ThermalConductivityGasmethod), 325
test_method_validity_P()(thermo.thermal_conductivity.ThermalConductivityLiquidmethod), 310
516 Index
thermo Documentation, Release 0.1
test_method_validity_P() (thermo.viscosity.ViscosityGasmethod), 417
test_method_validity_P()(thermo.viscosity.ViscosityLiquid method),411
test_method_validity_P() (thermo.volume.VolumeGasmethod), 455
test_method_validity_P() (thermo.volume.VolumeLiquidmethod), 446
test_property_validity() (thermo.utils.MixturePropertyclass method), 379
test_property_validity() (thermo.utils.TDependentPropertyclass method), 366
Tflash() (in module thermo.safety), 287thermal_conductivity_gas_methods (in module
thermo.thermal_conductivity), 319thermal_conductivity_gas_methods_P (in module
thermo.thermal_conductivity), 319thermal_conductivity_liquid_methods (in module
thermo.thermal_conductivity), 304thermal_conductivity_Magomedov() (in module
thermo.electrochem), 110ThermalConductivityGas (class in
thermo.thermal_conductivity), 319ThermalConductivityGasMixture (class in
thermo.thermal_conductivity), 331ThermalConductivityLiquid (class in
thermo.thermal_conductivity), 304thermo.acentric (module), 3thermo.activity (module), 7thermo.chemical (module), 18thermo.combustion (module), 82thermo.critical (module), 83thermo.datasheet (module), 96thermo.dipole (module), 96thermo.dippr (module), 97thermo.electrochem (module), 103thermo.elements (module), 113thermo.environment (module), 185thermo.eos (module), 117thermo.eos_mix (module), 158thermo.heat_capacity (module), 188thermo.identifiers (module), 225thermo.interface (module), 227thermo.law (module), 245thermo.lennard_jones (module), 247thermo.miscdata (module), 260thermo.permittivity (module), 261thermo.phase_change (module), 265thermo.reaction (module), 279thermo.refractivity (module), 282thermo.safety (module), 284thermo.solubility (module), 294thermo.temperature (module), 296
thermo.thermal_conductivity (module), 298thermo.triple (module), 335thermo.unifac (module), 336thermo.utils (module), 341thermo.vapor_pressure (module), 383thermo.virial (module), 395thermo.viscosity (module), 402thermo.volume (module), 431third_property() (in module thermo.critical), 87Tliquidus() (in module thermo.phase_change), 279Tm() (in module thermo.phase_change), 266Tm_depression_eutectic() (in module thermo.solubility),
295Tmax (thermo.heat_capacity.HeatCapacityGas attribute),
194Tmax (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 220Tmax (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 208Tmax (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 223Tmax (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 214Tmax (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218Tmax (thermo.heat_capacity.Zabransky_quasipolynomial
attribute), 203Tmax (thermo.interface.SurfaceTension attribute), 238Tmax (thermo.interface.SurfaceTensionMixture at-
tribute), 244Tmax (thermo.permittivity.Permittivity attribute), 263Tmax (thermo.phase_change.EnthalpyVaporization at-
tribute), 277Tmax (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 323Tmax (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 333Tmax (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 307Tmax (thermo.vapor_pressure.VaporPressure attribute),
389Tmax (thermo.viscosity.ViscosityGas attribute), 415Tmax (thermo.viscosity.ViscosityGasMixture attribute),
430Tmax (thermo.viscosity.ViscosityLiquid attribute), 409Tmax (thermo.viscosity.ViscosityLiquidMixture at-
tribute), 427Tmax (thermo.volume.VolumeGas attribute), 453Tmax (thermo.volume.VolumeGasMixture attribute), 464Tmax (thermo.volume.VolumeLiquid attribute), 443Tmax (thermo.volume.VolumeLiquidMixture attribute),
461Tmax (thermo.volume.VolumeSolid attribute), 458Tmax (thermo.volume.VolumeSolidMixture attribute),
Index 517
thermo Documentation, Release 0.1
467Tmin (thermo.heat_capacity.HeatCapacityGas attribute),
194Tmin (thermo.heat_capacity.HeatCapacityGasMixture at-
tribute), 220Tmin (thermo.heat_capacity.HeatCapacityLiquid at-
tribute), 208Tmin (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 223Tmin (thermo.heat_capacity.HeatCapacitySolid at-
tribute), 214Tmin (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 218Tmin (thermo.heat_capacity.Zabransky_quasipolynomial
attribute), 203Tmin (thermo.interface.SurfaceTension attribute), 238Tmin (thermo.interface.SurfaceTensionMixture at-
tribute), 244Tmin (thermo.permittivity.Permittivity attribute), 263Tmin (thermo.phase_change.EnthalpyVaporization at-
tribute), 277Tmin (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 323Tmin (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 333Tmin (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 307Tmin (thermo.vapor_pressure.VaporPressure attribute),
389Tmin (thermo.viscosity.ViscosityGas attribute), 415Tmin (thermo.viscosity.ViscosityGasMixture attribute),
430Tmin (thermo.viscosity.ViscosityLiquid attribute), 409Tmin (thermo.viscosity.ViscosityLiquidMixture at-
tribute), 427Tmin (thermo.volume.VolumeGas attribute), 453Tmin (thermo.volume.VolumeGasMixture attribute), 464Tmin (thermo.volume.VolumeLiquid attribute), 443Tmin (thermo.volume.VolumeLiquidMixture attribute),
461Tmin (thermo.volume.VolumeSolid attribute), 458Tmin (thermo.volume.VolumeSolidMixture attribute),
467to_num() (in module thermo.utils), 355to_TP() (thermo.eos.GCEOS method), 125to_TP_zs() (thermo.eos_mix.GCEOSMIX method), 161Townsend_Hales() (in module thermo.volume), 434TP_cached (thermo.utils.TPDependentProperty at-
tribute), 368TP_dependent_property()
(thermo.utils.TPDependentProperty method),368
TP_dependent_property_derivative_P()(thermo.utils.TPDependentProperty method),
368TP_dependent_property_derivative_T()
(thermo.utils.TPDependentProperty method),369
TP_or_T_dependent_property()(thermo.utils.TPDependentProperty method),369
TP_zs_ws_cached (thermo.utils.MixtureProperty at-tribute), 374
TPDependentProperty (class in thermo.utils), 366TRC_Antoine_extended() (in module
thermo.vapor_pressure), 386TRCCp() (in module thermo.heat_capacity), 190TRCCp_integral() (in module thermo.heat_capacity), 190TRCCp_integral_over_T() (in module
thermo.heat_capacity), 191Trebble_Bishnoi() (thermo.eos.ALPHA_FUNCTIONS
static method), 156trunc() (in module thermo.utils), 383Ts (thermo.heat_capacity.Zabransky_spline attribute),
204Tsat() (thermo.chemical.Chemical method), 31Tstar() (in module thermo.lennard_jones), 259Tt() (in module thermo.triple), 335TWA() (in module thermo.safety), 285Twu() (thermo.eos.ALPHA_FUNCTIONS static
method), 156TWUPR (class in thermo.eos), 146TWUPRMIX (class in thermo.eos_mix), 177TWUSRK (class in thermo.eos), 148TWUSRKMIX (class in thermo.eos_mix), 179
UU (thermo.chemical.Chemical attribute), 31UFL() (in module thermo.safety), 289UFL_mixture() (in module thermo.safety), 291Um (thermo.chemical.Chemical attribute), 32uncertainty (thermo.heat_capacity.Zabransky_quasipolynomial
attribute), 204uncertainty (thermo.heat_capacity.Zabransky_spline at-
tribute), 205UNIFAC() (in module thermo.unifac), 336UNIFAC_Dortmund_groups (thermo.chemical.Chemical
attribute), 31UNIFAC_Dortmund_groups (thermo.chemical.Mixture
attribute), 58UNIFAC_groups (thermo.chemical.Chemical attribute),
31UNIFAC_groups (thermo.chemical.Mixture attribute), 59UNIFAC_psi() (in module thermo.unifac), 338UNIFAC_Q (thermo.chemical.Chemical attribute), 31UNIFAC_R (thermo.chemical.Chemical attribute), 31UNIFAC_RQ() (in module thermo.unifac), 339UNIQUAC() (in module thermo.activity), 14
518 Index
thermo Documentation, Release 0.1
units (thermo.heat_capacity.HeatCapacityGas attribute),196
units (thermo.heat_capacity.HeatCapacityGasMixture at-tribute), 222
units (thermo.heat_capacity.HeatCapacityLiquid at-tribute), 210
units (thermo.heat_capacity.HeatCapacityLiquidMixtureattribute), 225
units (thermo.heat_capacity.HeatCapacitySolid attribute),216
units (thermo.heat_capacity.HeatCapacitySolidMixtureattribute), 219
units (thermo.interface.SurfaceTension attribute), 240units (thermo.interface.SurfaceTensionMixture attribute),
245units (thermo.permittivity.Permittivity attribute), 265units (thermo.phase_change.EnthalpyVaporization
attribute), 278units (thermo.thermal_conductivity.ThermalConductivityGas
attribute), 326units (thermo.thermal_conductivity.ThermalConductivityGasMixture
attribute), 335units (thermo.thermal_conductivity.ThermalConductivityLiquid
attribute), 310units (thermo.utils.MixtureProperty attribute), 379units (thermo.utils.TDependentProperty attribute), 366units (thermo.vapor_pressure.VaporPressure attribute),
390units (thermo.viscosity.ViscosityGas attribute), 417units (thermo.viscosity.ViscosityGasMixture attribute),
431units (thermo.viscosity.ViscosityLiquid attribute), 411units (thermo.viscosity.ViscosityLiquidMixture attribute),
428units (thermo.volume.VolumeGas attribute), 455units (thermo.volume.VolumeGasMixture attribute), 466units (thermo.volume.VolumeLiquid attribute), 446units (thermo.volume.VolumeLiquidMixture attribute),
463units (thermo.volume.VolumeSolid attribute), 459units (thermo.volume.VolumeSolidMixture attribute),
469user_methods (thermo.heat_capacity.HeatCapacityGas
attribute), 196user_methods (thermo.heat_capacity.HeatCapacityGasMixture
attribute), 222user_methods (thermo.heat_capacity.HeatCapacityLiquid
attribute), 210user_methods (thermo.heat_capacity.HeatCapacityLiquidMixture
attribute), 225user_methods (thermo.heat_capacity.HeatCapacitySolid
attribute), 216user_methods (thermo.heat_capacity.HeatCapacitySolidMixture
attribute), 219
user_methods (thermo.interface.SurfaceTension at-tribute), 240
user_methods (thermo.interface.SurfaceTensionMixtureattribute), 245
user_methods (thermo.permittivity.Permittivity attribute),265
user_methods (thermo.phase_change.EnthalpyVaporizationattribute), 279
user_methods (thermo.thermal_conductivity.ThermalConductivityGasattribute), 326
user_methods (thermo.thermal_conductivity.ThermalConductivityGasMixtureattribute), 335
user_methods (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 310
user_methods (thermo.vapor_pressure.VaporPressure at-tribute), 390
user_methods (thermo.viscosity.ViscosityGas attribute),417
user_methods (thermo.viscosity.ViscosityGasMixture at-tribute), 431
user_methods (thermo.viscosity.ViscosityLiquid at-tribute), 411
user_methods (thermo.viscosity.ViscosityLiquidMixtureattribute), 428
user_methods (thermo.volume.VolumeGasMixtureattribute), 466
user_methods (thermo.volume.VolumeLiquid attribute),446
user_methods (thermo.volume.VolumeLiquidMixture at-tribute), 463
user_methods (thermo.volume.VolumeSolid attribute),459
user_methods (thermo.volume.VolumeSolidMixture at-tribute), 469
user_methods_P (thermo.thermal_conductivity.ThermalConductivityGasattribute), 326
user_methods_P (thermo.thermal_conductivity.ThermalConductivityLiquidattribute), 310
user_methods_P (thermo.viscosity.ViscosityGas at-tribute), 417
user_methods_P (thermo.viscosity.ViscosityLiquid at-tribute), 411
user_methods_P (thermo.volume.VolumeGas attribute),455
user_methods_P (thermo.volume.VolumeLiquid at-tribute), 446
VV_g_sat() (thermo.eos.GCEOS method), 120V_l_sat() (thermo.eos.GCEOS method), 120Van_der_Waals_area (thermo.chemical.Chemical at-
tribute), 32Van_der_Waals_area() (in module thermo.unifac), 340
Index 519
thermo Documentation, Release 0.1
Van_der_Waals_volume (thermo.chemical.Chemical at-tribute), 32
Van_der_Waals_volume() (in module thermo.unifac), 340vapor_pressure_methods (in module
thermo.vapor_pressure), 386VaporPressure (class in thermo.vapor_pressure), 386Vc() (in module thermo.critical), 85Vc_mixture() (in module thermo.critical), 96VDI_tabular_data() (in module thermo.miscdata), 260VDW (class in thermo.eos), 138VDWMIX (class in thermo.eos_mix), 169Velasco() (in module thermo.phase_change), 270Vetere() (in module thermo.phase_change), 273Vfgs() (thermo.chemical.Mixture method), 59Vfls() (thermo.chemical.Mixture method), 59Vfs_to_zs() (in module thermo.utils), 353viscosity_gas_methods (in module thermo.viscosity), 421viscosity_gas_methods_P (in module thermo.viscosity),
421viscosity_index() (in module thermo.viscosity), 424viscosity_liquid_methods (in module thermo.viscosity),
405viscosity_liquid_methods_P (in module
thermo.viscosity), 405ViscosityGas (class in thermo.viscosity), 411ViscosityGasMixture (class in thermo.viscosity), 428ViscosityLiquid (class in thermo.viscosity), 405ViscosityLiquidMixture (class in thermo.viscosity), 425ViswanathNatarajan2() (in module thermo.viscosity), 402ViswanathNatarajan2Exponential() (in module
thermo.viscosity), 403ViswanathNatarajan3() (in module thermo.viscosity), 403Vm (thermo.chemical.Chemical attribute), 32Vm (thermo.chemical.Mixture attribute), 59Vm_to_rho() (in module thermo.utils), 347Vmg (thermo.chemical.Chemical attribute), 32Vmg (thermo.chemical.Mixture attribute), 59Vmg_STP (thermo.chemical.Mixture attribute), 60Vmgs (thermo.chemical.Mixture attribute), 60Vml (thermo.chemical.Chemical attribute), 33Vml (thermo.chemical.Mixture attribute), 60Vml_STP (thermo.chemical.Mixture attribute), 60Vmls (thermo.chemical.Mixture attribute), 60Vms (thermo.chemical.Chemical attribute), 33Vmss (thermo.chemical.Mixture attribute), 61volume_gas_methods (in module thermo.volume), 450volume_liquid_methods (in module thermo.volume), 439volume_liquid_methods_P (in module thermo.volume),
440volume_solid_methods (in module thermo.volume), 456volume_solutions() (thermo.eos.GCEOS static method),
125VolumeGas (class in thermo.volume), 450VolumeGasMixture (class in thermo.volume), 463
VolumeLiquid (class in thermo.volume), 440VolumeLiquidMixture (class in thermo.volume), 459VolumeSolid (class in thermo.volume), 456VolumeSolidMixture (class in thermo.volume), 466
WWagner() (in module thermo.vapor_pressure), 385Wagner_original() (in module thermo.vapor_pressure),
384Watson() (in module thermo.phase_change), 274Watson_exponent (thermo.phase_change.EnthalpyVaporization
attribute), 277Weber() (thermo.chemical.Chemical method), 33Weber() (thermo.chemical.Mixture method), 61Wilke() (in module thermo.viscosity), 422Wilson() (in module thermo.activity), 14Winterfeld_Scriven_Davis() (in module
thermo.interface), 240ws_to_zs() (in module thermo.utils), 352
YYamada_Gunn() (in module thermo.volume), 433Yen_Woods_saturation() (in module thermo.volume), 431Yoon_Thodos() (in module thermo.viscosity), 418Yu_Lu() (thermo.eos.ALPHA_FUNCTIONS static
method), 157
ZZ (thermo.chemical.Chemical attribute), 33Z (thermo.chemical.Mixture attribute), 61Z() (in module thermo.utils), 348Z_from_virial_density_form() (in module thermo.utils),
350Z_from_virial_pressure_form() (in module thermo.utils),
351Zabransky_cubic() (in module thermo.heat_capacity),
200Zabransky_cubic_integral() (in module
thermo.heat_capacity), 201Zabransky_cubic_integral_over_T() (in module
thermo.heat_capacity), 201Zabransky_quasi_polynomial() (in module
thermo.heat_capacity), 198Zabransky_quasi_polynomial_integral() (in module
thermo.heat_capacity), 199Zabransky_quasi_polynomial_integral_over_T() (in
module thermo.heat_capacity), 200Zabransky_quasipolynomial (class in
thermo.heat_capacity), 202Zabransky_spline (class in thermo.heat_capacity), 204Zc (thermo.eos.PR attribute), 128Zc (thermo.eos.RK attribute), 143Zc (thermo.eos.SRK attribute), 130Zc (thermo.eos.VDW attribute), 140
520 Index
thermo Documentation, Release 0.1
Zc() (in module thermo.critical), 86Zg (thermo.chemical.Chemical attribute), 33Zg (thermo.chemical.Mixture attribute), 61Zg_STP (thermo.chemical.Mixture attribute), 61Zgs (thermo.chemical.Mixture attribute), 61Zl (thermo.chemical.Chemical attribute), 33Zl (thermo.chemical.Mixture attribute), 62Zl_STP (thermo.chemical.Mixture attribute), 62Zls (thermo.chemical.Mixture attribute), 62Zs (thermo.chemical.Chemical attribute), 34zs_to_Vfs() (in module thermo.utils), 352zs_to_ws() (in module thermo.utils), 351Zss (thermo.chemical.Mixture attribute), 62Zuo_Stenby() (in module thermo.interface), 232
Index 521