The FeOs
package conveniently provides bindings to the Rust implementations of different equation of state and Helmholtz energy functional models in a single Python package.
from feos.eos import EquationOfState, State
from feos.pcsaft import PcSaftParameters
# Build an equation of state
parameters = PcSaftParameters.from_json(['methanol'], 'parameters.json')
eos = EquationOfState.pcsaft(parameters)
# Define thermodynamic conditions
critical_point = State.critical_point(eos)
# Compute properties
p = critical_point.pressure()
t = critical_point.temperature
print(f'Critical point for methanol: T={t}, p={p}.')
Critical point for methanol: T=531.5 K, p=10.7 MPa.
The following models are currently published as part of the FeOs
framework
name | description | eos | dft |
---|---|---|---|
feos-pcsaft |
perturbed-chain (polar) statistical associating fluid theory | ✓ | ✓ |
feos-gc-pcsaft |
(heterosegmented) group contribution PC-SAFT | ✓ | ✓ |
feos-pets |
perturbed truncated and shifted Lennard-Jones mixtures | ✓ | ✓ |
feos-uvtheory |
equation of state for Mie fluids and mixtures | ✓ |
The list is being expanded continuously. Currently under development are implementations of ePC-SAFT, a Helmholtz energy functional for the UV theory, SAFT-VRQ-Mie.
Other public repositories that implement models within the FeOs
framework, but are currently not part of the feos
Python package, are
name | description | eos | dft |
---|---|---|---|
feos-fused-chains |
heterosegmented fused-sphere chain functional | ✓ |
FeOs
can be installed via pip
and runs on Windows, Linux and macOS:
pip install feos
To compile the code you need the Rust compiler (rustc >= 1.53
) and maturin
installed.
To install the package directly into the active environment, use
maturin develop --release
To build wheels, use
maturin build --release --out dist --no-sdist
For a documentation of the Python API, Python examples, and a guide to the underlying Rust framework check out the documentation.
This software is currently maintained by members of the groups of
- Prof. Joachim Gross, Institute of Thermodynamics and Thermal Process Engineering (ITT), University of Stuttgart
- Prof. André Bardow, Energy and Process Systems Engineering (EPSE), ETH Zurich
FeOs
grew from the need to maintain a common codebase used within the scientific work done in our groups. We share the code publicly as a platform to publish our own research but also encourage other researchers and developers to contribute their own models or implementations of existing equations of state.
If you want to contribute to FeOs
, there are several ways to go: improving the documentation and helping with language issues, testing the code on your systems to find bugs, adding new models or algorithms, or providing feature requests. Feel free to message us if you have questions or open an issue in this or the model-specific repositories to discuss improvements.