vle-thermo 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,515 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "approx"
7
+ version = "0.5.1"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
10
+ dependencies = [
11
+ "num-traits",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "autocfg"
16
+ version = "1.5.1"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
19
+
20
+ [[package]]
21
+ name = "bytemuck"
22
+ version = "1.25.0"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
25
+
26
+ [[package]]
27
+ name = "cfg-if"
28
+ version = "1.0.4"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
31
+
32
+ [[package]]
33
+ name = "equivalent"
34
+ version = "1.0.2"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
37
+
38
+ [[package]]
39
+ name = "hashbrown"
40
+ version = "0.17.1"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
43
+
44
+ [[package]]
45
+ name = "heck"
46
+ version = "0.5.0"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
49
+
50
+ [[package]]
51
+ name = "indexmap"
52
+ version = "2.14.0"
53
+ source = "registry+https://github.com/rust-lang/crates.io-index"
54
+ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
55
+ dependencies = [
56
+ "equivalent",
57
+ "hashbrown",
58
+ ]
59
+
60
+ [[package]]
61
+ name = "indoc"
62
+ version = "2.0.7"
63
+ source = "registry+https://github.com/rust-lang/crates.io-index"
64
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
65
+ dependencies = [
66
+ "rustversion",
67
+ ]
68
+
69
+ [[package]]
70
+ name = "libc"
71
+ version = "0.2.186"
72
+ source = "registry+https://github.com/rust-lang/crates.io-index"
73
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
74
+
75
+ [[package]]
76
+ name = "matrixmultiply"
77
+ version = "0.3.10"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
80
+ dependencies = [
81
+ "autocfg",
82
+ "rawpointer",
83
+ ]
84
+
85
+ [[package]]
86
+ name = "memchr"
87
+ version = "2.8.0"
88
+ source = "registry+https://github.com/rust-lang/crates.io-index"
89
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
90
+
91
+ [[package]]
92
+ name = "memoffset"
93
+ version = "0.9.1"
94
+ source = "registry+https://github.com/rust-lang/crates.io-index"
95
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
96
+ dependencies = [
97
+ "autocfg",
98
+ ]
99
+
100
+ [[package]]
101
+ name = "nalgebra"
102
+ version = "0.33.3"
103
+ source = "registry+https://github.com/rust-lang/crates.io-index"
104
+ checksum = "9d43ddcacf343185dfd6de2ee786d9e8b1c2301622afab66b6c73baf9882abfd"
105
+ dependencies = [
106
+ "approx",
107
+ "matrixmultiply",
108
+ "nalgebra-macros",
109
+ "num-complex",
110
+ "num-rational",
111
+ "num-traits",
112
+ "simba",
113
+ "typenum",
114
+ ]
115
+
116
+ [[package]]
117
+ name = "nalgebra-macros"
118
+ version = "0.2.2"
119
+ source = "registry+https://github.com/rust-lang/crates.io-index"
120
+ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc"
121
+ dependencies = [
122
+ "proc-macro2",
123
+ "quote",
124
+ "syn",
125
+ ]
126
+
127
+ [[package]]
128
+ name = "ndarray"
129
+ version = "0.16.1"
130
+ source = "registry+https://github.com/rust-lang/crates.io-index"
131
+ checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841"
132
+ dependencies = [
133
+ "matrixmultiply",
134
+ "num-complex",
135
+ "num-integer",
136
+ "num-traits",
137
+ "portable-atomic",
138
+ "portable-atomic-util",
139
+ "rawpointer",
140
+ ]
141
+
142
+ [[package]]
143
+ name = "num-bigint"
144
+ version = "0.4.6"
145
+ source = "registry+https://github.com/rust-lang/crates.io-index"
146
+ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
147
+ dependencies = [
148
+ "num-integer",
149
+ "num-traits",
150
+ ]
151
+
152
+ [[package]]
153
+ name = "num-complex"
154
+ version = "0.4.6"
155
+ source = "registry+https://github.com/rust-lang/crates.io-index"
156
+ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
157
+ dependencies = [
158
+ "num-traits",
159
+ ]
160
+
161
+ [[package]]
162
+ name = "num-integer"
163
+ version = "0.1.46"
164
+ source = "registry+https://github.com/rust-lang/crates.io-index"
165
+ checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
166
+ dependencies = [
167
+ "num-traits",
168
+ ]
169
+
170
+ [[package]]
171
+ name = "num-rational"
172
+ version = "0.4.2"
173
+ source = "registry+https://github.com/rust-lang/crates.io-index"
174
+ checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
175
+ dependencies = [
176
+ "num-bigint",
177
+ "num-integer",
178
+ "num-traits",
179
+ ]
180
+
181
+ [[package]]
182
+ name = "num-traits"
183
+ version = "0.2.19"
184
+ source = "registry+https://github.com/rust-lang/crates.io-index"
185
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
186
+ dependencies = [
187
+ "autocfg",
188
+ ]
189
+
190
+ [[package]]
191
+ name = "once_cell"
192
+ version = "1.21.4"
193
+ source = "registry+https://github.com/rust-lang/crates.io-index"
194
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
195
+
196
+ [[package]]
197
+ name = "paste"
198
+ version = "1.0.15"
199
+ source = "registry+https://github.com/rust-lang/crates.io-index"
200
+ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
201
+
202
+ [[package]]
203
+ name = "portable-atomic"
204
+ version = "1.13.1"
205
+ source = "registry+https://github.com/rust-lang/crates.io-index"
206
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
207
+
208
+ [[package]]
209
+ name = "portable-atomic-util"
210
+ version = "0.2.7"
211
+ source = "registry+https://github.com/rust-lang/crates.io-index"
212
+ checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
213
+ dependencies = [
214
+ "portable-atomic",
215
+ ]
216
+
217
+ [[package]]
218
+ name = "proc-macro2"
219
+ version = "1.0.106"
220
+ source = "registry+https://github.com/rust-lang/crates.io-index"
221
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
222
+ dependencies = [
223
+ "unicode-ident",
224
+ ]
225
+
226
+ [[package]]
227
+ name = "pyo3"
228
+ version = "0.22.6"
229
+ source = "registry+https://github.com/rust-lang/crates.io-index"
230
+ checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
231
+ dependencies = [
232
+ "cfg-if",
233
+ "indoc",
234
+ "libc",
235
+ "memoffset",
236
+ "once_cell",
237
+ "portable-atomic",
238
+ "pyo3-build-config",
239
+ "pyo3-ffi",
240
+ "pyo3-macros",
241
+ "unindent",
242
+ ]
243
+
244
+ [[package]]
245
+ name = "pyo3-build-config"
246
+ version = "0.22.6"
247
+ source = "registry+https://github.com/rust-lang/crates.io-index"
248
+ checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
249
+ dependencies = [
250
+ "once_cell",
251
+ "target-lexicon",
252
+ ]
253
+
254
+ [[package]]
255
+ name = "pyo3-ffi"
256
+ version = "0.22.6"
257
+ source = "registry+https://github.com/rust-lang/crates.io-index"
258
+ checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
259
+ dependencies = [
260
+ "libc",
261
+ "pyo3-build-config",
262
+ ]
263
+
264
+ [[package]]
265
+ name = "pyo3-macros"
266
+ version = "0.22.6"
267
+ source = "registry+https://github.com/rust-lang/crates.io-index"
268
+ checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
269
+ dependencies = [
270
+ "proc-macro2",
271
+ "pyo3-macros-backend",
272
+ "quote",
273
+ "syn",
274
+ ]
275
+
276
+ [[package]]
277
+ name = "pyo3-macros-backend"
278
+ version = "0.22.6"
279
+ source = "registry+https://github.com/rust-lang/crates.io-index"
280
+ checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
281
+ dependencies = [
282
+ "heck",
283
+ "proc-macro2",
284
+ "pyo3-build-config",
285
+ "quote",
286
+ "syn",
287
+ ]
288
+
289
+ [[package]]
290
+ name = "quote"
291
+ version = "1.0.45"
292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
293
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
294
+ dependencies = [
295
+ "proc-macro2",
296
+ ]
297
+
298
+ [[package]]
299
+ name = "rawpointer"
300
+ version = "0.2.1"
301
+ source = "registry+https://github.com/rust-lang/crates.io-index"
302
+ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
303
+
304
+ [[package]]
305
+ name = "rustversion"
306
+ version = "1.0.22"
307
+ source = "registry+https://github.com/rust-lang/crates.io-index"
308
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
309
+
310
+ [[package]]
311
+ name = "safe_arch"
312
+ version = "0.7.4"
313
+ source = "registry+https://github.com/rust-lang/crates.io-index"
314
+ checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323"
315
+ dependencies = [
316
+ "bytemuck",
317
+ ]
318
+
319
+ [[package]]
320
+ name = "serde"
321
+ version = "1.0.228"
322
+ source = "registry+https://github.com/rust-lang/crates.io-index"
323
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
324
+ dependencies = [
325
+ "serde_core",
326
+ "serde_derive",
327
+ ]
328
+
329
+ [[package]]
330
+ name = "serde_core"
331
+ version = "1.0.228"
332
+ source = "registry+https://github.com/rust-lang/crates.io-index"
333
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
334
+ dependencies = [
335
+ "serde_derive",
336
+ ]
337
+
338
+ [[package]]
339
+ name = "serde_derive"
340
+ version = "1.0.228"
341
+ source = "registry+https://github.com/rust-lang/crates.io-index"
342
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
343
+ dependencies = [
344
+ "proc-macro2",
345
+ "quote",
346
+ "syn",
347
+ ]
348
+
349
+ [[package]]
350
+ name = "serde_spanned"
351
+ version = "0.6.9"
352
+ source = "registry+https://github.com/rust-lang/crates.io-index"
353
+ checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
354
+ dependencies = [
355
+ "serde",
356
+ ]
357
+
358
+ [[package]]
359
+ name = "simba"
360
+ version = "0.9.1"
361
+ source = "registry+https://github.com/rust-lang/crates.io-index"
362
+ checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95"
363
+ dependencies = [
364
+ "approx",
365
+ "num-complex",
366
+ "num-traits",
367
+ "paste",
368
+ "wide",
369
+ ]
370
+
371
+ [[package]]
372
+ name = "syn"
373
+ version = "2.0.117"
374
+ source = "registry+https://github.com/rust-lang/crates.io-index"
375
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
376
+ dependencies = [
377
+ "proc-macro2",
378
+ "quote",
379
+ "unicode-ident",
380
+ ]
381
+
382
+ [[package]]
383
+ name = "target-lexicon"
384
+ version = "0.12.16"
385
+ source = "registry+https://github.com/rust-lang/crates.io-index"
386
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
387
+
388
+ [[package]]
389
+ name = "thiserror"
390
+ version = "1.0.69"
391
+ source = "registry+https://github.com/rust-lang/crates.io-index"
392
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
393
+ dependencies = [
394
+ "thiserror-impl",
395
+ ]
396
+
397
+ [[package]]
398
+ name = "thiserror-impl"
399
+ version = "1.0.69"
400
+ source = "registry+https://github.com/rust-lang/crates.io-index"
401
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
402
+ dependencies = [
403
+ "proc-macro2",
404
+ "quote",
405
+ "syn",
406
+ ]
407
+
408
+ [[package]]
409
+ name = "toml"
410
+ version = "0.8.23"
411
+ source = "registry+https://github.com/rust-lang/crates.io-index"
412
+ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
413
+ dependencies = [
414
+ "serde",
415
+ "serde_spanned",
416
+ "toml_datetime",
417
+ "toml_edit",
418
+ ]
419
+
420
+ [[package]]
421
+ name = "toml_datetime"
422
+ version = "0.6.11"
423
+ source = "registry+https://github.com/rust-lang/crates.io-index"
424
+ checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
425
+ dependencies = [
426
+ "serde",
427
+ ]
428
+
429
+ [[package]]
430
+ name = "toml_edit"
431
+ version = "0.22.27"
432
+ source = "registry+https://github.com/rust-lang/crates.io-index"
433
+ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
434
+ dependencies = [
435
+ "indexmap",
436
+ "serde",
437
+ "serde_spanned",
438
+ "toml_datetime",
439
+ "toml_write",
440
+ "winnow",
441
+ ]
442
+
443
+ [[package]]
444
+ name = "toml_write"
445
+ version = "0.1.2"
446
+ source = "registry+https://github.com/rust-lang/crates.io-index"
447
+ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
448
+
449
+ [[package]]
450
+ name = "typenum"
451
+ version = "1.20.0"
452
+ source = "registry+https://github.com/rust-lang/crates.io-index"
453
+ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
454
+
455
+ [[package]]
456
+ name = "unicode-ident"
457
+ version = "1.0.24"
458
+ source = "registry+https://github.com/rust-lang/crates.io-index"
459
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
460
+
461
+ [[package]]
462
+ name = "unindent"
463
+ version = "0.2.4"
464
+ source = "registry+https://github.com/rust-lang/crates.io-index"
465
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
466
+
467
+ [[package]]
468
+ name = "uom"
469
+ version = "0.36.0"
470
+ source = "registry+https://github.com/rust-lang/crates.io-index"
471
+ checksum = "ffd36e5350a65d112584053ee91843955826bf9e56ec0d1351214e01f6d7cd9c"
472
+ dependencies = [
473
+ "num-traits",
474
+ "typenum",
475
+ ]
476
+
477
+ [[package]]
478
+ name = "vle-thermo"
479
+ version = "0.1.0"
480
+ dependencies = [
481
+ "approx",
482
+ "nalgebra",
483
+ "ndarray",
484
+ "pyo3",
485
+ ]
486
+
487
+ [[package]]
488
+ name = "vle-units"
489
+ version = "0.1.0"
490
+ dependencies = [
491
+ "approx",
492
+ "serde",
493
+ "thiserror",
494
+ "toml",
495
+ "uom",
496
+ ]
497
+
498
+ [[package]]
499
+ name = "wide"
500
+ version = "0.7.33"
501
+ source = "registry+https://github.com/rust-lang/crates.io-index"
502
+ checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03"
503
+ dependencies = [
504
+ "bytemuck",
505
+ "safe_arch",
506
+ ]
507
+
508
+ [[package]]
509
+ name = "winnow"
510
+ version = "0.7.15"
511
+ source = "registry+https://github.com/rust-lang/crates.io-index"
512
+ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
513
+ dependencies = [
514
+ "memchr",
515
+ ]
@@ -0,0 +1,23 @@
1
+ # Cargo workspace manifest.
2
+ #
3
+ # Declares the two publishable Rust crates in this repo as workspace members so
4
+ # that `cargo build`, `cargo test`, and `cargo publish -p <name>` can be invoked
5
+ # from the repo root.
6
+ #
7
+ # Shared metadata (version, license, author, repository) lives under
8
+ # [workspace.package] and is inherited by each member's Cargo.toml via
9
+ # `<field>.workspace = true`. Bump the version here to release a new version
10
+ # of both crates at once.
11
+
12
+ [workspace]
13
+ resolver = "2"
14
+ members = ["engine"]
15
+
16
+ [workspace.package]
17
+ version = "0.1.0"
18
+ edition = "2024"
19
+ rust-version = "1.85"
20
+ license = "MIT"
21
+ authors = ["Miguel Jackson <admin@migueljackson.dev>"]
22
+ repository = "https://github.com/miguelju/vle"
23
+ homepage = "https://github.com/miguelju/vle"
@@ -0,0 +1,164 @@
1
+ Metadata-Version: 2.4
2
+ Name: vle-thermo
3
+ Version: 0.1.0
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Science/Research
6
+ Classifier: Intended Audience :: Education
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Rust
15
+ Classifier: Topic :: Scientific/Engineering
16
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
17
+ Classifier: Topic :: Scientific/Engineering :: Physics
18
+ Requires-Dist: numpy>=1.24
19
+ Requires-Dist: pint>=0.22
20
+ Requires-Dist: thermo>=0.3 ; extra == 'db'
21
+ Requires-Dist: pytest>=7.0 ; extra == 'dev'
22
+ Requires-Dist: maturin>=1.0 ; extra == 'dev'
23
+ Requires-Dist: matplotlib>=3.7 ; extra == 'plot'
24
+ Provides-Extra: db
25
+ Provides-Extra: dev
26
+ Provides-Extra: plot
27
+ Summary: Vapor-liquid equilibrium (VLE) thermodynamic calculator: 22+ cubic EOS, activity models, flash algorithms
28
+ Keywords: thermodynamics,chemistry,vapor-liquid-equilibrium,equation-of-state,chemical-engineering,flash-calculation
29
+ Home-Page: https://github.com/miguelju/vle
30
+ Author-email: Miguel Jackson <admin@migueljackson.dev>
31
+ License: MIT
32
+ Requires-Python: >=3.10
33
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
34
+ Project-URL: Changelog, https://github.com/miguelju/vle/blob/main/ROADMAP.md
35
+ Project-URL: Homepage, https://github.com/miguelju/vle
36
+ Project-URL: Issues, https://github.com/miguelju/vle/issues
37
+ Project-URL: Repository, https://github.com/miguelju/vle
38
+
39
+ # vle-thermo
40
+
41
+ Vapor-liquid equilibrium (VLE) thermodynamic calculator with a Rust computation
42
+ engine and a Python interface.
43
+
44
+ [![PyPI](https://img.shields.io/pypi/v/vle-thermo.svg)](https://pypi.org/project/vle-thermo/)
45
+ [![Python](https://img.shields.io/pypi/pyversions/vle-thermo.svg)](https://pypi.org/project/vle-thermo/)
46
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/miguelju/vle/blob/main/LICENSE)
47
+
48
+ A modern Rust + Python port of two legacy thermodynamic codebases (VB6 ~15,000
49
+ lines + Pascal ~2,500 lines). The Rust core (`vle-thermo` crate) does the
50
+ computation; this Python package wraps it for interactive use in scripts and
51
+ Jupyter notebooks.
52
+
53
+ ## Install
54
+
55
+ ```sh
56
+ pip install vle-thermo
57
+ ```
58
+
59
+ Optional extras:
60
+
61
+ ```sh
62
+ pip install "vle-thermo[plot]" # adds matplotlib
63
+ pip install "vle-thermo[db]" # adds `thermo` for extended component-database seeding
64
+ pip install "vle-thermo[dev]" # adds pytest, maturin
65
+ ```
66
+
67
+ The distribution name on PyPI is **`vle-thermo`**, but the import name is
68
+ **`vle`** (following the common distribution-vs-import split, like
69
+ `Pillow` → `import PIL` or `python-dateutil` → `import dateutil`):
70
+
71
+ ```python
72
+ import vle
73
+ ```
74
+
75
+ ## Status
76
+
77
+ `0.1.x` — the component database, CLI, and units layer work today. Numerical
78
+ kernels (flash algorithms, equation-of-state solvers, parameter regression) are
79
+ under active development. Treat `0.1.x` as pre-release; semver promises begin
80
+ at 1.0.
81
+
82
+ See the [roadmap](https://github.com/miguelju/vle/blob/main/ROADMAP.md) for
83
+ what's shipped vs. planned.
84
+
85
+ ## What works today
86
+
87
+ ```sh
88
+ # Initialize the bundled component database (SQLite) and seed with the 15
89
+ # compounds from Chapter IV of the source thesis.
90
+ vle-db init
91
+ vle-db seed --source chapter4
92
+
93
+ # Browse and inspect
94
+ vle-db list
95
+ vle-db show methane
96
+ vle-db validate chapter4
97
+ ```
98
+
99
+ ```python
100
+ from vle.db import list_components, get_component
101
+
102
+ for c in list_components():
103
+ print(c.name, c.tc, c.pc, c.omega)
104
+
105
+ methane = get_component("methane")
106
+ ```
107
+
108
+ Unit-aware input/output (gauge pressure, °C, °F, psi, barg, mmHg, …):
109
+
110
+ ```python
111
+ from vle.units import ureg, Q_
112
+
113
+ T = Q_(25, "degC") # 298.15 K internally
114
+ P = Q_(3.5, "bar").to("kPa") # 350 kPa
115
+ ```
116
+
117
+ ## Features (full roadmap)
118
+
119
+ - **22+ cubic equations of state** — Peng-Robinson, RKS, van der Waals,
120
+ Schmidt-Wenzel, Patel-Teja, and more
121
+ - **5 activity coefficient models** — Wilson, van Laar, Margules,
122
+ Scatchard-Hildebrand, Ideal
123
+ - **11 mixing rules** — Classical (IVDW, IIVDW), Wong-Sandler, Huron-Vidal,
124
+ MHV1/MHV2
125
+ - **6 saturation pressure correlations** — Antoine, Riedel, Müller, RPM
126
+ - **6 flash calculation types** — bubble/dew point (T/P), isothermal
127
+ (Rachford-Rice), adiabatic
128
+ - **Parameter regression** — kij (binary interaction) and Aij (activity
129
+ model)
130
+
131
+ ## Use it in Jupyter
132
+
133
+ A curated set of notebooks reproducing Chapter IV of the source thesis ships
134
+ alongside the project at
135
+ <https://github.com/miguelju/vle/tree/main/notebooks>. To run them in your own
136
+ environment:
137
+
138
+ ```sh
139
+ pip install "vle-thermo[plot]" jupyterlab
140
+ git clone https://github.com/miguelju/vle.git
141
+ cd vle/notebooks
142
+ jupyter lab
143
+ ```
144
+
145
+ For a zero-setup option, a ready-to-run Docker image is published at
146
+ `ghcr.io/miguelju/vle-thermo`:
147
+
148
+ ```sh
149
+ docker run --rm -p 8888:8888 ghcr.io/miguelju/vle-thermo:latest
150
+ ```
151
+
152
+ ## Origin
153
+
154
+ Based on the thesis *"Desarrollo de un Programa Computacional para el Cálculo
155
+ del Equilibrio Líquido Vapor de Mezclas Multicomponentes bajo el Ambiente
156
+ Windows"* (Jackson & Mendible, Universidad Simón Bolívar, 1999), with
157
+ additional models from Da Silva & Báez (1989). See the
158
+ [research paper](https://github.com/miguelju/vle/tree/main/docs/en/research-paper)
159
+ (English translation) for algorithms, parameters, and their academic references.
160
+
161
+ ## License
162
+
163
+ MIT. See [LICENSE](https://github.com/miguelju/vle/blob/main/LICENSE).
164
+