FeOs
パッケージは、状態およびHelmholtzエネルギー機能モデルと対応するPythonバインディングのさまざまな方程式の錆の実装を提供します。
feos.eosからEquationofState、Statefrom pcsaft Import pcsaftparameters、pcsaftrecord#メタノールのPC-Saftパラメーター(Gross and Sadowski 2002)Record = PCSaftrecord(1.5255、3.23、188.9、Kappa_ab = 0.035176、epsIlon_k_ab_ab = 2899.5 nb = 1)#stateparameters = pcsaftparameters.from_model_records([record])eos = equationofstate.pcsaft.pcsaft.critical_point = state.critical_point(eos)#compute propertiesp =批判的_ポイント=批判的_ポイント(tression(eos)define conditioncritical_point = state.critical_point) .temperaturePrint(メタノールのf'critical点: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 | 摂動した切り捨てられ、シフトしたレナード・ジョーンズの混合物 | ✓✓ | ✓✓ |
uvtheory | mie液と混合物の状態の方程式 | ✓✓ | |
saftvrqmie | 量子液と混合物の状態の方程式 | ✓✓ | ✓✓ |
saftvrmie | mie形式の可変範囲相互作用のための統計的関連液液理論 | ✓✓ |
リストは継続的に拡張されています。現在、開発中のUV理論およびSAFT-VR MIEのHelmholtzエネルギー機能の実装です。
FeOs
フレームワーク内でモデルを実装するが、現在feos
Pythonパッケージの一部ではない他のパブリックリポジトリは
名前 | 説明 | EOS | dft |
---|---|---|---|
feos-fused-chains | ヘテロセグメント化された融合球鎖機能 | ✓✓ |
RustおよびPythonパッケージのソースコードに加えて、このリポジトリには、グループ貢献方法を含むさまざまなモデルの以前に公開されたパラメーターを含むJSONファイルが含まれています。パラメーターファイルは、RustまたはPythonから直接読み取ることができます。
クレートは、一般化された(ハイパー)デュアル数を利用して、ヘルムホルツエネルギー方程式からの正確な部分微分を一般的に計算します。導関数は計算に使用されます
均衡特性(圧力、熱容量、fugacityなど)、
エントロピースケーリングアプローチを使用した輸送特性(粘度、熱伝導率、拡散係数)
純粋な成分と混合物の重要なポイントと相平衡。
それに加えて、ユーティリティは、状態の分子方程式と(同性区分された)グループ貢献方法の両方のパラメーターの取り扱いと、純粋な成分とバイナリ混合物の位相図の生成を支援するために提供されます。
FeOs
効率的な数値的手法を使用して、不均一なシステムの密度プロファイルを計算します。ハイライトは次のとおりです。
FFTおよび関連するアルゴリズムを使用した、デカルト(1D、2D、3D)、極性、円筒形、および球状座標系における畳み込み積分の高速計算。
一般化された(ハイパー)デュアル数を使用した自動分化を使用したヘルムホルツエネルギー密度(温度誘導体を含む)の部分誘導体の自動計算。
分岐分子を含むヘテロセグメント分子のモデリング。
表面緊張、吸着等温線、ペア相関関数、および溶媒和自由エネルギーを計算するための機能。
追加の機能がアクティブになることなく、コマンド
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コンパイラとmaturin
(> = 0.13、<0.14)がインストールされている必要があります。パッケージをアクティブ環境(VirtualenvまたはConda)に直接インストールするには、使用してください
maturin develop --release
pyproject.toml
ファイルで指定されているように、 python
およびall_models
機能を使用します。
または、Pythonパッケージに明示的に含めるモデルまたは機能を指定することもできます。
maturin develop --release --features "python pcsaft dft"
状態およびヘルムホルツエネルギー機能のPC-SAFT方程式の場合。
リンク時間最適化(LTO)を含むホイールを構築するには、使用します
maturin build --profile="release-lto"
pyproject.toml
ファイルで指定されたpython
およびall_models
機能を使用します。次のコマンドを使用して、特定の機能を備えたホイールを構築します。
maturin build --profile="release-lto" --features "python ..."
LTOはコンパイル時間を測定可能に増加させますが、結果のホイールはよりパフォーマンスが高く、サイズが小さくなります。ただし、開発には、 --release
フラグを使用することをお勧めします。
Python API、Pythonの例、および基礎となるRustフレームワークのガイドのドキュメントについては、ドキュメントをご覧ください。
提供された錆ベンチマークとそれらの実行方法については、ベンチディレクトリをご覧ください。
このソフトウェアは現在、のグループのメンバーによって維持されています
ヨアヒム・グロス教授、熱力学および熱プロセス工学研究所(ITT)、シュトゥットガルト大学
AndréBardow教授、エネルギーおよびプロセスシステムエンジニアリング(EPSE)、ETHチューリッヒ
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}, }