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}, }