Paket FeOs
memberikan implementasi karat dari berbagai persamaan status dan model fungsional energi Helmholtz dan binding python yang sesuai.
dari feos.eos Impor Persamaanofstate, statestrom feos.pcsaft impor pcsaftparameters, pcsaftrecord# pc-saft parameter untuk metanol (Gross dan Sadowski 2002) Record = PCSAFTRecord (1,5255, 3,23, 188,9, Kappa_Ab = 0,035, Na25, 3,23, 188,9, KAPPA_AB = 0,03517, Kappa_AB = 0,03517, KAPPA_AB = 0,03517, KAPPA_AB = 0,03517, KAPPA_AB = 0,035, KAPPA_AB = 0,0317, nb=1)# Build an equation of stateparameters = PcSaftParameters.from_model_records([record])eos = EquationOfState.pcsaft(parameters)# Define thermodynamic conditionscritical_point = State.critical_point(eos)# Compute propertiesp = critical_point.pressure()t = critical_point .temperaturePrint (titik kritis untuk metanol: t = {t}, p = {p}. ')
Critical point for methanol: T=531.5 K, p=10.7 MPa.
Model -model berikut saat ini diterbitkan sebagai bagian dari kerangka kerja FeOs
nama | keterangan | EOS | dft |
---|---|---|---|
pcsaft | Teori Cairan Asosiasi Statistik Terbaik (Polar) | ✓ | ✓ |
epcsaft | Elektrolit PC-Saft | ✓ | |
gc-pcsaft | (heterosegment) Kontribusi grup PC-Saft | ✓ | ✓ |
pets | Campuran Lennard-Jones terpotong dan bergeser | ✓ | ✓ |
uvtheory | Persamaan keadaan untuk cairan dan campuran MIE | ✓ | |
saftvrqmie | Persamaan keadaan untuk cairan dan campuran kuantum | ✓ | ✓ |
saftvrmie | Teori fluida asosiasi statistik untuk interaksi rentang variabel dari bentuk mie | ✓ |
Daftar ini diperluas terus menerus. Saat ini sedang dikembangkan adalah implementasi fungsional energi Helmholtz untuk teori UV dan untuk SAFT-VR MIE.
Repositori publik lainnya yang mengimplementasikan model dalam kerangka kerja FeOs
, tetapi saat ini bukan bagian dari paket feos
Python,
nama | keterangan | EOS | dft |
---|---|---|---|
feos-fused-chains | Heterosmegmented rantai rantai sphere fungsional | ✓ |
Selain kode sumber untuk paket Rust dan Python, repositori ini berisi file JSON dengan parameter yang diterbitkan sebelumnya untuk model yang berbeda termasuk metode kontribusi grup. File parameter dapat dibaca langsung dari karat atau python.
Peti memanfaatkan bilangan ganda umum (hiper-) untuk secara umum menghitung turunan parsial yang tepat dari persamaan energi negara Helmholtz. Turunannya digunakan untuk menghitung
sifat kesetimbangan (tekanan, kapasitas panas, fugacity, dan banyak lagi),
Sifat transportasi (viskositas, konduktivitas termal, koefisien difusi) menggunakan pendekatan penskalaan entropi
titik kritis dan keseimbangan fase untuk komponen dan campuran murni.
Selain itu, utilitas disediakan untuk membantu dalam penanganan parameter untuk kedua persamaan molekuler keadaan dan metode kontribusi kelompok (homosment) dan untuk generasi diagram fase untuk komponen murni dan campuran biner.
FeOs
menggunakan metode numerik yang efisien untuk menghitung profil kepadatan dalam sistem tidak homogen. Sorotan meliputi:
Perhitungan cepat integral konvolusi dalam Cartesian (1D, 2D dan 3D), sistem koordinat kutub, silindris, dan bola menggunakan FFT dan algoritma terkait.
Perhitungan otomatis turunan parsial dari kepadatan energi Helmholtz (termasuk turunan suhu) menggunakan diferensiasi otomatis dengan bilangan ganda (hiper-) umum.
Pemodelan molekul heterosegment, termasuk molekul bercabang.
Fungsi untuk menghitung ketegangan permukaan, isoterm adsorpsi, fungsi korelasi pasangan, dan energi bebas solvasi.
Tanpa fitur tambahan diaktifkan, perintah
cargo test --release
hanya akan membangun dan menguji fungsionalitas inti peti. Untuk menjalankan tes unit dan integrasi untuk model tertentu, jalankan
cargo test --release --features pcsaft
untuk menguji, misalnya, implementasi pc-saft atau
cargo test --release --features all_models
Untuk menjalankan tes pada semua model yang diimplementasikan.
FeOs
menggunakan kerangka PyO3
untuk menyediakan binding ularahan. Paket Python dapat diinstal melalui pip
dan berjalan di Windows, Linux dan MacOS:
pip install feos
Jika tidak ada paket yang dikompilasi untuk sistem Anda yang tersedia dari PYPI dan Anda memiliki pemasangan kompiler karat, Anda dapat membuat paket Python dari sumber menggunakan
pip install git+https://github.com/feos-org/feos
Perintah ini membangun paket tanpa optimasi waktu tautan (LTO) yang dapat digunakan untuk meningkatkan kinerja lebih lanjut. Lihat bagian dari bagian Sumber untuk informasi tentang membangun roda termasuk LTO.
Untuk mengkompilasi kode, Anda memerlukan kompiler karat dan maturin
(> = 0,13, <0,14) terpasang. Untuk menginstal paket langsung ke lingkungan aktif (VirtualEnv atau Conda), gunakan
maturin develop --release
yang menggunakan fitur python
dan all_models
sebagaimana ditentukan dalam file pyproject.toml
.
Atau, Anda dapat menentukan model atau fitur yang ingin Anda sertakan dalam paket Python secara eksplisit, misalnya
maturin develop --release --features "python pcsaft dft"
untuk persamaan PC-Saft status dan energi Helmholtz fungsional.
Untuk membangun roda termasuk optimasi waktu tautan (LTO), gunakan
maturin build --profile="release-lto"
yang akan menggunakan fitur python
dan all_models
yang ditentukan dalam file pyproject.toml
. Gunakan perintah berikut untuk membangun roda dengan fitur spesifik:
maturin build --profile="release-lto" --features "python ..."
LTO meningkatkan waktu kompilasi secara terukur tetapi roda yang dihasilkan lebih berkinerja dan memiliki ukuran yang lebih kecil. Namun untuk pengembangan, kami merekomendasikan menggunakan bendera --release
.
Untuk dokumentasi API Python, contoh -contoh Python, dan panduan untuk kerangka karat yang mendasarinya, lihat dokumentasi.
Lihatlah direktori Benches untuk informasi tentang tolok ukur karat yang disediakan dan cara menjalankannya.
Perangkat lunak ini saat ini dikelola oleh anggota kelompok
Prof. Joachim Gross, Institut Termodinamika dan Rekayasa Proses Termal (ITT), Universitas Stuttgart
Prof. André Bardow, Energi dan Proses Sistem Rekayasa (EPSE), ETH Zurich
FeOs
tumbuh dari kebutuhan untuk mempertahankan basis kode umum yang digunakan dalam pekerjaan ilmiah yang dilakukan dalam kelompok kami. Kami berbagi kode secara publik sebagai platform untuk mempublikasikan penelitian kami sendiri tetapi juga mendorong peneliti dan pengembang lain untuk menyumbangkan model mereka sendiri atau implementasi persamaan negara yang ada.
Jika Anda ingin berkontribusi pada FeOs
, ada beberapa cara untuk digunakan: Meningkatkan dokumentasi dan membantu dengan masalah bahasa, menguji kode pada sistem Anda untuk menemukan bug, menambahkan model atau algoritma baru, atau memberikan permintaan fitur. Jangan ragu untuk mengirim pesan kepada kami jika Anda memiliki pertanyaan atau membuka masalah untuk membahas peningkatan.
Jika Anda menemukan FeOs
berguna untuk studi ilmiah Anda sendiri, pertimbangkan mengutip publikasi kami yang menyertai perpustakaan ini.
@article{rehner2023feos, author = {Rehner, Philipp and Bauer, Gernot and Gross, Joachim}, title = {FeOs: An Open-Source Framework for Equations of State and Classical Density Functional Theory}, journal = {Industrial & Engineering Chemistry Research}, volume = {62}, number = {12}, pages = {5347-5357}, year = {2023}, }