FeOs
軟件包提供了狀態和Helmholtz Energy功能模型的不同方程以及相應的Python綁定。
從feos.eos進口方程式,從feos.pcsaft進口pcSaftParameters,pcSaftrecord#甲醇的PC-SAFT參數(Gross and Sadowski 2002)record = PCSAFTRECORD(PCSAFTRECORD) nb = 1)#構建狀態參數的等式= pcSaftParameters.from_model_records( [[record])eos = equationOfstate.pcSaft(parameters)#define thermodynalicic cripenation critical_point = state = state.critical_point_point_point_point(eos) .temperatureprint(甲醇的f'Critical Point:t = {t},p = {p}。' )
Critical point for methanol: T=531.5 K, p=10.7 MPa.
以下模型目前作為FeOs
框架的一部分發布
姓名 | 描述 | EOS | DFT |
---|---|---|---|
pcsaft | 擾動鏈(極)統計關聯流體理論 | ✓ | ✓ |
epcsaft | 電解質PC-SAFT | ✓ | |
gc-pcsaft | (異源)小組貢獻PC-SAFT | ✓ | ✓ |
pets | 擾動的截短和移動的Lennard-Jones混合物 | ✓ | ✓ |
uvtheory | MIE流體和混合物的狀態方程 | ✓ | |
saftvrqmie | 量子流體和混合物的狀態方程 | ✓ | ✓ |
saftvrmie | MIE形式可變範圍相互作用的統計關聯流體理論 | ✓ |
該列表正在連續擴展。目前正在開發的是紫外線理論和SAFT-VR MIE的Helmholtz能量功能的實施。
在FeOs
框架內實施模型的其他公共存儲庫,但目前不屬於feos
Python軟件包的一部分
姓名 | 描述 | EOS | DFT |
---|---|---|---|
feos-fused-chains | 異質分類的融合鍊鍊功能 | ✓ |
除了Rust和Python軟件包的源代碼外,該存儲庫還包含帶有先前發布的不同模型參數的JSON文件,包括組貢獻方法。可以直接從Rust或Python讀取參數文件。
該板條箱利用廣義(超)雙數數來從狀態的Helmholtz能量方程中計算出確切的部分衍生物。衍生物用於計算
平衡特性(壓力,熱容量,逃逸等等),
使用熵縮放尺度的運輸特性(粘度,導熱率,擴散係數)
純組分和混合物的臨界點和相位平衡。
除此之外,還提供了實用程序來協助處理參數的狀態和(均種)組貢獻方法的參數,以及用於純組分和二進制混合物的相圖生成。
FeOs
使用有效的數值方法來計算不均勻系統中的密度曲線。亮點包括:
使用FFT和相關算法快速計算笛卡爾(1D,2D和3D),極性,圓柱和球形坐標系的捲積積分。
使用自動分化(超級)雙重數來自動計算Helmholtz能量密度(包括溫度導數)的部分衍生物。
異料分子的建模,包括分支分子。
計算表面張力,吸附等溫線,配對相關函數和溶劑化自由能的功能。
沒有激活其他功能,命令
cargo test --release
只會構建和測試板條箱的核心功能。要運行特定模型的單元和集成測試,請運行
cargo test --release --features pcsaft
測試,例如,PC-SAFT的實現或
cargo test --release --features all_models
在所有實施模型上運行測試。
FeOs
使用PyO3
框架提供Python綁定。 Python軟件包可以通過pip
安裝,並在Windows,Linux和MacOS上運行:
pip install feos
如果沒有PYPI可用的系統的編譯包,並且您安裝了Rust編譯器,則可以使用源來構建Python軟件包
pip install git+https://github.com/feos-org/feos
此命令構建無鏈接時間優化(LTO)的軟件包,可用於進一步提高性能。有關構建輪子的信息,請參見來自源區的建築物,包括LTO。
要編譯代碼,您需要安裝Rust Compiler和maturin
(> = 0.13,<0.14)。要將軟件包直接安裝到活動環境(Virtualenv或Conda)中,請使用
maturin develop --release
使用python
和all_models
功能,如pyproject.toml
文件中指定。
另外,您可以明確指定要在Python軟件包中包含的模型或功能,例如
maturin develop --release --features "python pcsaft dft"
用於狀態和Helmholtz能量功能的PC-SAFT方程。
要構建包括鏈接時間優化(LTO)在內的車輪,請使用
maturin build --profile="release-lto"
它將使用python
和all_models
功能在pyproject.toml
文件中指定。使用以下命令來構建具有特定功能的車輪:
maturin build --profile="release-lto" --features "python ..."
LTO可以測量地增加編譯時間,但所得的車輪具有更大的性能,並且尺寸較小。但是,對於開發,我們建議使用--release
標誌。
有關Python API的文檔,Python示例和基礎生鏽框架指南,請查看文檔。
請查看“長凳”目錄,以獲取有關提供的Rust基準測試以及如何運行它們的信息。
目前,該軟件由
斯圖加特大學熱力學與熱過程工程研究所(ITT)教授Joachim Gross教授
AndréBardow教授,能源與過程系統工程(EPSE),Eth Zurich
FeOs
源於在我們小組中進行的科學工作中維持使用的常見代碼庫。我們公開共享該守則,作為發布我們自己的研究的平台,同時也鼓勵其他研究人員和開發人員貢獻自己的模型或現有國家方程式的實現。
如果您想為FeOs
做出貢獻,則需要多種方法:改進文檔並幫助語言問題,測試系統上的代碼以查找錯誤,添加新模型或算法或提供功能請求。如果您有疑問或打開問題以討論改進,請隨時向我們發消息。
如果您發現FeOs
對您自己的科學研究有用,請考慮引用我們在該圖書館伴隨的出版物。
@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}, }