thermo documentation - université de sherbrooke

547
thermo Documentation Release 0.1 Caleb Bell Mar 26, 2017

Upload: others

Post on 28-Jan-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: thermo Documentation - Université de Sherbrooke

thermo DocumentationRelease 0.1

Caleb Bell

Mar 26, 2017

Page 2: thermo Documentation - Université de Sherbrooke
Page 3: thermo Documentation - Université de Sherbrooke

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

Page 4: thermo Documentation - Université de Sherbrooke

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

Page 5: thermo Documentation - Université de Sherbrooke

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

Page 6: thermo Documentation - Université de Sherbrooke

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

Page 7: thermo Documentation - Université de Sherbrooke

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

Page 8: thermo Documentation - Université de Sherbrooke

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

Page 9: thermo Documentation - Université de Sherbrooke

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

Page 10: thermo Documentation - Université de Sherbrooke

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

Page 11: thermo Documentation - Université de Sherbrooke

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

Page 12: thermo Documentation - Université de Sherbrooke

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

Page 13: thermo Documentation - Université de Sherbrooke

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

Page 14: thermo Documentation - Université de Sherbrooke

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

Page 15: thermo Documentation - Université de Sherbrooke

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

Page 16: thermo Documentation - Université de Sherbrooke

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

Page 17: thermo Documentation - Université de Sherbrooke

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

Page 18: thermo Documentation - Université de Sherbrooke

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

Page 19: thermo Documentation - Université de Sherbrooke

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

Page 20: thermo Documentation - Université de Sherbrooke

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

Page 21: thermo Documentation - Université de Sherbrooke

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

Page 22: thermo Documentation - Université de Sherbrooke

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

Page 23: thermo Documentation - Université de Sherbrooke

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

Page 24: thermo Documentation - Université de Sherbrooke

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

Page 25: thermo Documentation - Université de Sherbrooke

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

Page 26: thermo Documentation - Université de Sherbrooke

xxiv

Page 27: thermo Documentation - Université de Sherbrooke

thermo Documentation, Release 0.1

Contents:

Contents 1

Page 28: thermo Documentation - Université de Sherbrooke

thermo Documentation, Release 0.1

2 Contents

Page 29: thermo Documentation - Université de Sherbrooke

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

Page 30: thermo Documentation - Université de Sherbrooke

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

Page 31: thermo Documentation - Université de Sherbrooke

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

Page 32: thermo Documentation - Université de Sherbrooke

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

Page 33: thermo Documentation - Université de Sherbrooke

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

Page 34: thermo Documentation - Université de Sherbrooke

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

Page 35: thermo Documentation - Université de Sherbrooke

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

Page 36: thermo Documentation - Université de Sherbrooke

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

Page 37: thermo Documentation - Université de Sherbrooke

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

Page 38: thermo Documentation - Université de Sherbrooke

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

Page 39: thermo Documentation - Université de Sherbrooke

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

Page 40: thermo Documentation - Université de Sherbrooke

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

Page 41: thermo Documentation - Université de Sherbrooke

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

Page 42: thermo Documentation - Université de Sherbrooke

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

Page 43: thermo Documentation - Université de Sherbrooke

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

Page 44: thermo Documentation - Université de Sherbrooke

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

Page 45: thermo Documentation - Université de Sherbrooke

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

Page 46: thermo Documentation - Université de Sherbrooke

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

Page 47: thermo Documentation - Université de Sherbrooke

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

Page 48: thermo Documentation - Université de Sherbrooke

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

Page 49: thermo Documentation - Université de Sherbrooke

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

Page 50: thermo Documentation - Université de Sherbrooke

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

Page 51: thermo Documentation - Université de Sherbrooke

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

Page 52: thermo Documentation - Université de Sherbrooke

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

Page 53: thermo Documentation - Université de Sherbrooke

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

Page 54: thermo Documentation - Université de Sherbrooke

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

Page 55: thermo Documentation - Université de Sherbrooke

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

Page 56: thermo Documentation - Université de Sherbrooke

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

Page 57: thermo Documentation - Université de Sherbrooke

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

Page 58: thermo Documentation - Université de Sherbrooke

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

Page 59: thermo Documentation - Université de Sherbrooke

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

Page 60: thermo Documentation - Université de Sherbrooke

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

Page 61: thermo Documentation - Université de Sherbrooke

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

Page 62: thermo Documentation - Université de Sherbrooke

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

Page 63: thermo Documentation - Université de Sherbrooke

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

Page 64: thermo Documentation - Université de Sherbrooke

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

Page 65: thermo Documentation - Université de Sherbrooke

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

Page 66: thermo Documentation - Université de Sherbrooke

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

Page 67: thermo Documentation - Université de Sherbrooke

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

Page 68: thermo Documentation - Université de Sherbrooke

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

Page 69: thermo Documentation - Université de Sherbrooke

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

Page 70: thermo Documentation - Université de Sherbrooke

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

Page 71: thermo Documentation - Université de Sherbrooke

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

Page 72: thermo Documentation - Université de Sherbrooke

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

Page 73: thermo Documentation - Université de Sherbrooke

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

Page 74: thermo Documentation - Université de Sherbrooke

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

Page 75: thermo Documentation - Université de Sherbrooke

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

Page 76: thermo Documentation - Université de Sherbrooke

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

Page 77: thermo Documentation - Université de Sherbrooke

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

Page 78: thermo Documentation - Université de Sherbrooke

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

Page 79: thermo Documentation - Université de Sherbrooke

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

Page 80: thermo Documentation - Université de Sherbrooke

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

Page 81: thermo Documentation - Université de Sherbrooke

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

Page 82: thermo Documentation - Université de Sherbrooke

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

Page 83: thermo Documentation - Université de Sherbrooke

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

Page 84: thermo Documentation - Université de Sherbrooke

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

Page 85: thermo Documentation - Université de Sherbrooke

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

Page 86: thermo Documentation - Université de Sherbrooke

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

Page 87: thermo Documentation - Université de Sherbrooke

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

Page 88: thermo Documentation - Université de Sherbrooke

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

Page 89: thermo Documentation - Université de Sherbrooke

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

Page 90: thermo Documentation - Université de Sherbrooke

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

Page 91: thermo Documentation - Université de Sherbrooke

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

Page 92: thermo Documentation - Université de Sherbrooke

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

Page 93: thermo Documentation - Université de Sherbrooke

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

Page 94: thermo Documentation - Université de Sherbrooke

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

Page 95: thermo Documentation - Université de Sherbrooke

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

Page 96: thermo Documentation - Université de Sherbrooke

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

Page 97: thermo Documentation - Université de Sherbrooke

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

Page 98: thermo Documentation - Université de Sherbrooke

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

Page 99: thermo Documentation - Université de Sherbrooke

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

Page 100: thermo Documentation - Université de Sherbrooke

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

Page 101: thermo Documentation - Université de Sherbrooke

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

Page 102: thermo Documentation - Université de Sherbrooke

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

Page 103: thermo Documentation - Université de Sherbrooke

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

Page 104: thermo Documentation - Université de Sherbrooke

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

Page 105: thermo Documentation - Université de Sherbrooke

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

Page 106: thermo Documentation - Université de Sherbrooke

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

Page 107: thermo Documentation - Université de Sherbrooke

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

Page 108: thermo Documentation - Université de Sherbrooke

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

Page 109: thermo Documentation - Université de Sherbrooke

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

Page 110: thermo Documentation - Université de Sherbrooke

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

Page 111: thermo Documentation - Université de Sherbrooke

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

Page 112: thermo Documentation - Université de Sherbrooke

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

Page 113: thermo Documentation - Université de Sherbrooke

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

Page 114: thermo Documentation - Université de Sherbrooke

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

Page 115: thermo Documentation - Université de Sherbrooke

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

Page 116: thermo Documentation - Université de Sherbrooke

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

Page 117: thermo Documentation - Université de Sherbrooke

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

Page 118: thermo Documentation - Université de Sherbrooke

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

Page 119: thermo Documentation - Université de Sherbrooke

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

Page 120: thermo Documentation - Université de Sherbrooke

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

Page 121: thermo Documentation - Université de Sherbrooke

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

Page 122: thermo Documentation - Université de Sherbrooke

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

Page 123: thermo Documentation - Université de Sherbrooke

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

Page 124: thermo Documentation - Université de Sherbrooke

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

Page 125: thermo Documentation - Université de Sherbrooke

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

Page 126: thermo Documentation - Université de Sherbrooke

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

Page 127: thermo Documentation - Université de Sherbrooke

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

Page 128: thermo Documentation - Université de Sherbrooke

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

Page 129: thermo Documentation - Université de Sherbrooke

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

Page 130: thermo Documentation - Université de Sherbrooke

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

Page 131: thermo Documentation - Université de Sherbrooke

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

Page 132: thermo Documentation - Université de Sherbrooke

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

Page 133: thermo Documentation - Université de Sherbrooke

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

Page 134: thermo Documentation - Université de Sherbrooke

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

Page 135: thermo Documentation - Université de Sherbrooke

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

Page 136: thermo Documentation - Université de Sherbrooke

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

Page 137: thermo Documentation - Université de Sherbrooke

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

Page 138: thermo Documentation - Université de Sherbrooke

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

Page 139: thermo Documentation - Université de Sherbrooke

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

Page 140: thermo Documentation - Université de Sherbrooke

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

Page 141: thermo Documentation - Université de Sherbrooke

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

Page 142: thermo Documentation - Université de Sherbrooke

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

Page 143: thermo Documentation - Université de Sherbrooke

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

Page 144: thermo Documentation - Université de Sherbrooke

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

Page 145: thermo Documentation - Université de Sherbrooke

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

Page 146: thermo Documentation - Université de Sherbrooke

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

Page 147: thermo Documentation - Université de Sherbrooke

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

Page 148: thermo Documentation - Université de Sherbrooke

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

Page 149: thermo Documentation - Université de Sherbrooke

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

Page 150: thermo Documentation - Université de Sherbrooke

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

Page 151: thermo Documentation - Université de Sherbrooke

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

Page 152: thermo Documentation - Université de Sherbrooke

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

Page 153: thermo Documentation - Université de Sherbrooke

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

Page 154: thermo Documentation - Université de Sherbrooke

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

Page 155: thermo Documentation - Université de Sherbrooke

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

Page 156: thermo Documentation - Université de Sherbrooke

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

Page 157: thermo Documentation - Université de Sherbrooke

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

Page 158: thermo Documentation - Université de Sherbrooke

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

Page 159: thermo Documentation - Université de Sherbrooke

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

Page 160: thermo Documentation - Université de Sherbrooke

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

Page 161: thermo Documentation - Université de Sherbrooke

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

Page 162: thermo Documentation - Université de Sherbrooke

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

Page 163: thermo Documentation - Université de Sherbrooke

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

Page 164: thermo Documentation - Université de Sherbrooke

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

Page 165: thermo Documentation - Université de Sherbrooke

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

Page 166: thermo Documentation - Université de Sherbrooke

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

Page 167: thermo Documentation - Université de Sherbrooke

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

Page 168: thermo Documentation - Université de Sherbrooke

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

Page 169: thermo Documentation - Université de Sherbrooke

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

Page 170: thermo Documentation - Université de Sherbrooke

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

Page 171: thermo Documentation - Université de Sherbrooke

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

Page 172: thermo Documentation - Université de Sherbrooke

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

Page 173: thermo Documentation - Université de Sherbrooke

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

Page 174: thermo Documentation - Université de Sherbrooke

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

Page 175: thermo Documentation - Université de Sherbrooke

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

Page 176: thermo Documentation - Université de Sherbrooke

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

Page 177: thermo Documentation - Université de Sherbrooke

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

Page 178: thermo Documentation - Université de Sherbrooke

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

Page 179: thermo Documentation - Université de Sherbrooke

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

Page 180: thermo Documentation - Université de Sherbrooke

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

Page 181: thermo Documentation - Université de Sherbrooke

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

Page 182: thermo Documentation - Université de Sherbrooke

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

Page 183: thermo Documentation - Université de Sherbrooke

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

Page 184: thermo Documentation - Université de Sherbrooke

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

Page 185: thermo Documentation - Université de Sherbrooke

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

Page 186: thermo Documentation - Université de Sherbrooke

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

Page 187: thermo Documentation - Université de Sherbrooke

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

Page 188: thermo Documentation - Université de Sherbrooke

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

Page 189: thermo Documentation - Université de Sherbrooke

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

Page 190: thermo Documentation - Université de Sherbrooke

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

Page 191: thermo Documentation - Université de Sherbrooke

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

Page 192: thermo Documentation - Université de Sherbrooke

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

Page 193: thermo Documentation - Université de Sherbrooke

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

Page 194: thermo Documentation - Université de Sherbrooke

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

Page 195: thermo Documentation - Université de Sherbrooke

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

Page 196: thermo Documentation - Université de Sherbrooke

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

Page 197: thermo Documentation - Université de Sherbrooke

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

Page 198: thermo Documentation - Université de Sherbrooke

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

Page 199: thermo Documentation - Université de Sherbrooke

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

Page 200: thermo Documentation - Université de Sherbrooke

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

Page 201: thermo Documentation - Université de Sherbrooke

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

Page 202: thermo Documentation - Université de Sherbrooke

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

Page 203: thermo Documentation - Université de Sherbrooke

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

Page 204: thermo Documentation - Université de Sherbrooke

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

Page 205: thermo Documentation - Université de Sherbrooke

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

Page 206: thermo Documentation - Université de Sherbrooke

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

Page 207: thermo Documentation - Université de Sherbrooke

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

Page 208: thermo Documentation - Université de Sherbrooke

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

Page 209: thermo Documentation - Université de Sherbrooke

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

Page 210: thermo Documentation - Université de Sherbrooke

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

Page 211: thermo Documentation - Université de Sherbrooke

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

Page 212: thermo Documentation - Université de Sherbrooke

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

Page 213: thermo Documentation - Université de Sherbrooke

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

Page 214: thermo Documentation - Université de Sherbrooke

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

Page 215: thermo Documentation - Université de Sherbrooke

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

Page 216: thermo Documentation - Université de Sherbrooke

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

Page 217: thermo Documentation - Université de Sherbrooke

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

Page 218: thermo Documentation - Université de Sherbrooke

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

Page 219: thermo Documentation - Université de Sherbrooke

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

Page 220: thermo Documentation - Université de Sherbrooke

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

Page 221: thermo Documentation - Université de Sherbrooke

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

Page 222: thermo Documentation - Université de Sherbrooke

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

Page 223: thermo Documentation - Université de Sherbrooke

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

Page 224: thermo Documentation - Université de Sherbrooke

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

Page 225: thermo Documentation - Université de Sherbrooke

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

Page 226: thermo Documentation - Université de Sherbrooke

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

Page 227: thermo Documentation - Université de Sherbrooke

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

Page 228: thermo Documentation - Université de Sherbrooke

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

Page 229: thermo Documentation - Université de Sherbrooke

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

Page 230: thermo Documentation - Université de Sherbrooke

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

Page 231: thermo Documentation - Université de Sherbrooke

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

Page 232: thermo Documentation - Université de Sherbrooke

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

Page 233: thermo Documentation - Université de Sherbrooke

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

Page 234: thermo Documentation - Université de Sherbrooke

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

Page 235: thermo Documentation - Université de Sherbrooke

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

Page 236: thermo Documentation - Université de Sherbrooke

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

Page 237: thermo Documentation - Université de Sherbrooke

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

Page 238: thermo Documentation - Université de Sherbrooke

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

Page 239: thermo Documentation - Université de Sherbrooke

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

Page 240: thermo Documentation - Université de Sherbrooke

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

Page 241: thermo Documentation - Université de Sherbrooke

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

Page 242: thermo Documentation - Université de Sherbrooke

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

Page 243: thermo Documentation - Université de Sherbrooke

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

Page 244: thermo Documentation - Université de Sherbrooke

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

Page 245: thermo Documentation - Université de Sherbrooke

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

Page 246: thermo Documentation - Université de Sherbrooke

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

Page 247: thermo Documentation - Université de Sherbrooke

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

Page 248: thermo Documentation - Université de Sherbrooke

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

Page 249: thermo Documentation - Université de Sherbrooke

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

Page 250: thermo Documentation - Université de Sherbrooke

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

Page 251: thermo Documentation - Université de Sherbrooke

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

Page 252: thermo Documentation - Université de Sherbrooke

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

Page 253: thermo Documentation - Université de Sherbrooke

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

Page 254: thermo Documentation - Université de Sherbrooke

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

Page 255: thermo Documentation - Université de Sherbrooke

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

Page 256: thermo Documentation - Université de Sherbrooke

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

Page 257: thermo Documentation - Université de Sherbrooke

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

Page 258: thermo Documentation - Université de Sherbrooke

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

Page 259: thermo Documentation - Université de Sherbrooke

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

Page 260: thermo Documentation - Université de Sherbrooke

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

Page 261: thermo Documentation - Université de Sherbrooke

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

Page 262: thermo Documentation - Université de Sherbrooke

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

Page 263: thermo Documentation - Université de Sherbrooke

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

Page 264: thermo Documentation - Université de Sherbrooke

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

Page 265: thermo Documentation - Université de Sherbrooke

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

Page 266: thermo Documentation - Université de Sherbrooke

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

Page 267: thermo Documentation - Université de Sherbrooke

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

Page 268: thermo Documentation - Université de Sherbrooke

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

Page 269: thermo Documentation - Université de Sherbrooke

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

Page 270: thermo Documentation - Université de Sherbrooke

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

Page 271: thermo Documentation - Université de Sherbrooke

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

Page 272: thermo Documentation - Université de Sherbrooke

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

Page 273: thermo Documentation - Université de Sherbrooke

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

Page 274: thermo Documentation - Université de Sherbrooke

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

Page 275: thermo Documentation - Université de Sherbrooke

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

Page 276: thermo Documentation - Université de Sherbrooke

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

Page 277: thermo Documentation - Université de Sherbrooke

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

Page 278: thermo Documentation - Université de Sherbrooke

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

Page 279: thermo Documentation - Université de Sherbrooke

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

Page 280: thermo Documentation - Université de Sherbrooke

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

Page 281: thermo Documentation - Université de Sherbrooke

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

Page 282: thermo Documentation - Université de Sherbrooke

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

Page 283: thermo Documentation - Université de Sherbrooke

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

Page 284: thermo Documentation - Université de Sherbrooke

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

Page 285: thermo Documentation - Université de Sherbrooke

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

Page 286: thermo Documentation - Université de Sherbrooke

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

Page 287: thermo Documentation - Université de Sherbrooke

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

Page 288: thermo Documentation - Université de Sherbrooke

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

Page 289: thermo Documentation - Université de Sherbrooke

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

Page 290: thermo Documentation - Université de Sherbrooke

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

Page 291: thermo Documentation - Université de Sherbrooke

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

Page 292: thermo Documentation - Université de Sherbrooke

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

Page 293: thermo Documentation - Université de Sherbrooke

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

Page 294: thermo Documentation - Université de Sherbrooke

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

Page 295: thermo Documentation - Université de Sherbrooke

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

Page 296: thermo Documentation - Université de Sherbrooke

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

Page 297: thermo Documentation - Université de Sherbrooke

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

Page 298: thermo Documentation - Université de Sherbrooke

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

Page 299: thermo Documentation - Université de Sherbrooke

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

Page 300: thermo Documentation - Université de Sherbrooke

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

Page 301: thermo Documentation - Université de Sherbrooke

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

Page 302: thermo Documentation - Université de Sherbrooke

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

Page 303: thermo Documentation - Université de Sherbrooke

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

Page 304: thermo Documentation - Université de Sherbrooke

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

Page 305: thermo Documentation - Université de Sherbrooke

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

Page 306: thermo Documentation - Université de Sherbrooke

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

Page 307: thermo Documentation - Université de Sherbrooke

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

Page 308: thermo Documentation - Université de Sherbrooke

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

Page 309: thermo Documentation - Université de Sherbrooke

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

Page 310: thermo Documentation - Université de Sherbrooke

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

Page 311: thermo Documentation - Université de Sherbrooke

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

Page 312: thermo Documentation - Université de Sherbrooke

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

Page 313: thermo Documentation - Université de Sherbrooke

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

Page 314: thermo Documentation - Université de Sherbrooke

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

Page 315: thermo Documentation - Université de Sherbrooke

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

Page 316: thermo Documentation - Université de Sherbrooke

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

Page 317: thermo Documentation - Université de Sherbrooke

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

Page 318: thermo Documentation - Université de Sherbrooke

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

Page 319: thermo Documentation - Université de Sherbrooke

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

Page 320: thermo Documentation - Université de Sherbrooke

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

Page 321: thermo Documentation - Université de Sherbrooke

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

Page 322: thermo Documentation - Université de Sherbrooke

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

Page 323: thermo Documentation - Université de Sherbrooke

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

Page 324: thermo Documentation - Université de Sherbrooke

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

Page 325: thermo Documentation - Université de Sherbrooke

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

Page 326: thermo Documentation - Université de Sherbrooke

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

Page 327: thermo Documentation - Université de Sherbrooke

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

Page 328: thermo Documentation - Université de Sherbrooke

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

Page 329: thermo Documentation - Université de Sherbrooke

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

Page 330: thermo Documentation - Université de Sherbrooke

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

Page 331: thermo Documentation - Université de Sherbrooke

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

Page 332: thermo Documentation - Université de Sherbrooke

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

Page 333: thermo Documentation - Université de Sherbrooke

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

Page 334: thermo Documentation - Université de Sherbrooke

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

Page 335: thermo Documentation - Université de Sherbrooke

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

Page 336: thermo Documentation - Université de Sherbrooke

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

Page 337: thermo Documentation - Université de Sherbrooke

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

Page 338: thermo Documentation - Université de Sherbrooke

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

Page 339: thermo Documentation - Université de Sherbrooke

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

Page 340: thermo Documentation - Université de Sherbrooke

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

Page 341: thermo Documentation - Université de Sherbrooke

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

Page 342: thermo Documentation - Université de Sherbrooke

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

Page 343: thermo Documentation - Université de Sherbrooke

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

Page 344: thermo Documentation - Université de Sherbrooke

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

Page 345: thermo Documentation - Université de Sherbrooke

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

Page 346: thermo Documentation - Université de Sherbrooke

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

Page 347: thermo Documentation - Université de Sherbrooke

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

Page 348: thermo Documentation - Université de Sherbrooke

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

Page 349: thermo Documentation - Université de Sherbrooke

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

Page 350: thermo Documentation - Université de Sherbrooke

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

Page 351: thermo Documentation - Université de Sherbrooke

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

Page 352: thermo Documentation - Université de Sherbrooke

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

Page 353: thermo Documentation - Université de Sherbrooke

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

Page 354: thermo Documentation - Université de Sherbrooke

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

Page 355: thermo Documentation - Université de Sherbrooke

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

Page 356: thermo Documentation - Université de Sherbrooke

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

Page 357: thermo Documentation - Université de Sherbrooke

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

Page 358: thermo Documentation - Université de Sherbrooke

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

Page 359: thermo Documentation - Université de Sherbrooke

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

Page 360: thermo Documentation - Université de Sherbrooke

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

Page 361: thermo Documentation - Université de Sherbrooke

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

Page 362: thermo Documentation - Université de Sherbrooke

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

Page 363: thermo Documentation - Université de Sherbrooke

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

Page 364: thermo Documentation - Université de Sherbrooke

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

Page 365: thermo Documentation - Université de Sherbrooke

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

Page 366: thermo Documentation - Université de Sherbrooke

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

Page 367: thermo Documentation - Université de Sherbrooke

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

Page 368: thermo Documentation - Université de Sherbrooke

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

Page 369: thermo Documentation - Université de Sherbrooke

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

Page 370: thermo Documentation - Université de Sherbrooke

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

Page 371: thermo Documentation - Université de Sherbrooke

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

Page 372: thermo Documentation - Université de Sherbrooke

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

Page 373: thermo Documentation - Université de Sherbrooke

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

Page 374: thermo Documentation - Université de Sherbrooke

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

Page 375: thermo Documentation - Université de Sherbrooke

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

Page 376: thermo Documentation - Université de Sherbrooke

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

Page 377: thermo Documentation - Université de Sherbrooke

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

Page 378: thermo Documentation - Université de Sherbrooke

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

Page 379: thermo Documentation - Université de Sherbrooke

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

Page 380: thermo Documentation - Université de Sherbrooke

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

Page 381: thermo Documentation - Université de Sherbrooke

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

Page 382: thermo Documentation - Université de Sherbrooke

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

Page 383: thermo Documentation - Université de Sherbrooke

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

Page 384: thermo Documentation - Université de Sherbrooke

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

Page 385: thermo Documentation - Université de Sherbrooke

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

Page 386: thermo Documentation - Université de Sherbrooke

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

Page 387: thermo Documentation - Université de Sherbrooke

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

Page 388: thermo Documentation - Université de Sherbrooke

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

Page 389: thermo Documentation - Université de Sherbrooke

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

Page 390: thermo Documentation - Université de Sherbrooke

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

Page 391: thermo Documentation - Université de Sherbrooke

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

Page 392: thermo Documentation - Université de Sherbrooke

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

Page 393: thermo Documentation - Université de Sherbrooke

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

Page 394: thermo Documentation - Université de Sherbrooke

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

Page 395: thermo Documentation - Université de Sherbrooke

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

Page 396: thermo Documentation - Université de Sherbrooke

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

Page 397: thermo Documentation - Université de Sherbrooke

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

Page 398: thermo Documentation - Université de Sherbrooke

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

Page 399: thermo Documentation - Université de Sherbrooke

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

Page 400: thermo Documentation - Université de Sherbrooke

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

Page 401: thermo Documentation - Université de Sherbrooke

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

Page 402: thermo Documentation - Université de Sherbrooke

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

Page 403: thermo Documentation - Université de Sherbrooke

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

Page 404: thermo Documentation - Université de Sherbrooke

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

Page 405: thermo Documentation - Université de Sherbrooke

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

Page 406: thermo Documentation - Université de Sherbrooke

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

Page 407: thermo Documentation - Université de Sherbrooke

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

Page 408: thermo Documentation - Université de Sherbrooke

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

Page 409: thermo Documentation - Université de Sherbrooke

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

Page 410: thermo Documentation - Université de Sherbrooke

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

Page 411: thermo Documentation - Université de Sherbrooke

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

Page 412: thermo Documentation - Université de Sherbrooke

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

Page 413: thermo Documentation - Université de Sherbrooke

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

Page 414: thermo Documentation - Université de Sherbrooke

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

Page 415: thermo Documentation - Université de Sherbrooke

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

Page 416: thermo Documentation - Université de Sherbrooke

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

Page 417: thermo Documentation - Université de Sherbrooke

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

Page 418: thermo Documentation - Université de Sherbrooke

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

Page 419: thermo Documentation - Université de Sherbrooke

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

Page 420: thermo Documentation - Université de Sherbrooke

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

Page 421: thermo Documentation - Université de Sherbrooke

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

Page 422: thermo Documentation - Université de Sherbrooke

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

Page 423: thermo Documentation - Université de Sherbrooke

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

Page 424: thermo Documentation - Université de Sherbrooke

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

Page 425: thermo Documentation - Université de Sherbrooke

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

Page 426: thermo Documentation - Université de Sherbrooke

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

Page 427: thermo Documentation - Université de Sherbrooke

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

Page 428: thermo Documentation - Université de Sherbrooke

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

Page 429: thermo Documentation - Université de Sherbrooke

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

Page 430: thermo Documentation - Université de Sherbrooke

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

Page 431: thermo Documentation - Université de Sherbrooke

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

Page 432: thermo Documentation - Université de Sherbrooke

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

Page 433: thermo Documentation - Université de Sherbrooke

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

Page 434: thermo Documentation - Université de Sherbrooke

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

Page 435: thermo Documentation - Université de Sherbrooke

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

Page 436: thermo Documentation - Université de Sherbrooke

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

Page 437: thermo Documentation - Université de Sherbrooke

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

Page 438: thermo Documentation - Université de Sherbrooke

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

Page 439: thermo Documentation - Université de Sherbrooke

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

Page 440: thermo Documentation - Université de Sherbrooke

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

Page 441: thermo Documentation - Université de Sherbrooke

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

Page 442: thermo Documentation - Université de Sherbrooke

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

Page 443: thermo Documentation - Université de Sherbrooke

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

Page 444: thermo Documentation - Université de Sherbrooke

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

Page 445: thermo Documentation - Université de Sherbrooke

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

Page 446: thermo Documentation - Université de Sherbrooke

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

Page 447: thermo Documentation - Université de Sherbrooke

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

Page 448: thermo Documentation - Université de Sherbrooke

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

Page 449: thermo Documentation - Université de Sherbrooke

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

Page 450: thermo Documentation - Université de Sherbrooke

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

Page 451: thermo Documentation - Université de Sherbrooke

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

Page 452: thermo Documentation - Université de Sherbrooke

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

Page 453: thermo Documentation - Université de Sherbrooke

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

Page 454: thermo Documentation - Université de Sherbrooke

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

Page 455: thermo Documentation - Université de Sherbrooke

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

Page 456: thermo Documentation - Université de Sherbrooke

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

Page 457: thermo Documentation - Université de Sherbrooke

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

Page 458: thermo Documentation - Université de Sherbrooke

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

Page 459: thermo Documentation - Université de Sherbrooke

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

Page 460: thermo Documentation - Université de Sherbrooke

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

Page 461: thermo Documentation - Université de Sherbrooke

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

Page 462: thermo Documentation - Université de Sherbrooke

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

Page 463: thermo Documentation - Université de Sherbrooke

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

Page 464: thermo Documentation - Université de Sherbrooke

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

Page 465: thermo Documentation - Université de Sherbrooke

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

Page 466: thermo Documentation - Université de Sherbrooke

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

Page 467: thermo Documentation - Université de Sherbrooke

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

Page 468: thermo Documentation - Université de Sherbrooke

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

Page 469: thermo Documentation - Université de Sherbrooke

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

Page 470: thermo Documentation - Université de Sherbrooke

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

Page 471: thermo Documentation - Université de Sherbrooke

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

Page 472: thermo Documentation - Université de Sherbrooke

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

Page 473: thermo Documentation - Université de Sherbrooke

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

Page 474: thermo Documentation - Université de Sherbrooke

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

Page 475: thermo Documentation - Université de Sherbrooke

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

Page 476: thermo Documentation - Université de Sherbrooke

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

Page 477: thermo Documentation - Université de Sherbrooke

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

Page 478: thermo Documentation - Université de Sherbrooke

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

Page 479: thermo Documentation - Université de Sherbrooke

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

Page 480: thermo Documentation - Université de Sherbrooke

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

Page 481: thermo Documentation - Université de Sherbrooke

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

Page 482: thermo Documentation - Université de Sherbrooke

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

Page 483: thermo Documentation - Université de Sherbrooke

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

Page 484: thermo Documentation - Université de Sherbrooke

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

Page 485: thermo Documentation - Université de Sherbrooke

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

Page 486: thermo Documentation - Université de Sherbrooke

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

Page 487: thermo Documentation - Université de Sherbrooke

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

Page 488: thermo Documentation - Université de Sherbrooke

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

Page 489: thermo Documentation - Université de Sherbrooke

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

Page 490: thermo Documentation - Université de Sherbrooke

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

Page 491: thermo Documentation - Université de Sherbrooke

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

Page 492: thermo Documentation - Université de Sherbrooke

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

Page 493: thermo Documentation - Université de Sherbrooke

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

Page 494: thermo Documentation - Université de Sherbrooke

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

Page 495: thermo Documentation - Université de Sherbrooke

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

Page 496: thermo Documentation - Université de Sherbrooke

thermo Documentation, Release 0.1

470 Chapter 1. thermo

Page 497: thermo Documentation - Université de Sherbrooke

CHAPTER 2

Indices and tables

• genindex

• modindex

• search

471

Page 498: thermo Documentation - Université de Sherbrooke

thermo Documentation, Release 0.1

472 Chapter 2. Indices and tables

Page 499: thermo Documentation - Université de Sherbrooke

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

Page 500: thermo Documentation - Université de Sherbrooke

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

Page 501: thermo Documentation - Université de Sherbrooke

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

Page 502: thermo Documentation - Université de Sherbrooke

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

Page 503: thermo Documentation - Université de Sherbrooke

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

Page 504: thermo Documentation - Université de Sherbrooke

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

Page 505: thermo Documentation - Université de Sherbrooke

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

Page 506: thermo Documentation - Université de Sherbrooke

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

Page 507: thermo Documentation - Université de Sherbrooke

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

Page 508: thermo Documentation - Université de Sherbrooke

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

Page 509: thermo Documentation - Université de Sherbrooke

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

Page 510: thermo Documentation - Université de Sherbrooke

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

Page 511: thermo Documentation - Université de Sherbrooke

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

Page 512: thermo Documentation - Université de Sherbrooke

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

Page 513: thermo Documentation - Université de Sherbrooke

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

Page 514: thermo Documentation - Université de Sherbrooke

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

Page 515: thermo Documentation - Université de Sherbrooke

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

Page 516: thermo Documentation - Université de Sherbrooke

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

Page 517: thermo Documentation - Université de Sherbrooke

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

Page 518: thermo Documentation - Université de Sherbrooke

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

Page 519: thermo Documentation - Université de Sherbrooke

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

Page 520: thermo Documentation - Université de Sherbrooke

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

Page 521: thermo Documentation - Université de Sherbrooke

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

Page 522: thermo Documentation - Université de Sherbrooke

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

Page 523: thermo Documentation - Université de Sherbrooke

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

Page 524: thermo Documentation - Université de Sherbrooke

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

Page 525: thermo Documentation - Université de Sherbrooke

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

Page 526: thermo Documentation - Université de Sherbrooke

thermo Documentation, Release 0.1

500 Python Module Index

Page 527: thermo Documentation - Université de Sherbrooke

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

Page 528: thermo Documentation - Université de Sherbrooke

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

Page 529: thermo Documentation - Université de Sherbrooke

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

Page 530: thermo Documentation - Université de Sherbrooke

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

Page 531: thermo Documentation - Université de Sherbrooke

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

Page 532: thermo Documentation - Université de Sherbrooke

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

Page 533: thermo Documentation - Université de Sherbrooke

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

Page 534: thermo Documentation - Université de Sherbrooke

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

Page 535: thermo Documentation - Université de Sherbrooke

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

Page 536: thermo Documentation - Université de Sherbrooke

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

Page 537: thermo Documentation - Université de Sherbrooke

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

Page 538: thermo Documentation - Université de Sherbrooke

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

Page 539: thermo Documentation - Université de Sherbrooke

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

Page 540: thermo Documentation - Université de Sherbrooke

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

Page 541: thermo Documentation - Université de Sherbrooke

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

Page 542: thermo Documentation - Université de Sherbrooke

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

Page 543: thermo Documentation - Université de Sherbrooke

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

Page 544: thermo Documentation - Université de Sherbrooke

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

Page 545: thermo Documentation - Université de Sherbrooke

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

Page 546: thermo Documentation - Université de Sherbrooke

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

Page 547: thermo Documentation - Université de Sherbrooke

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