Welcome to \(\text{FeO}_\text{s}\)¶
\(\text{FeO}_\text{s}\) is a framework for thermodynamic equations of state (EoS) and classical density functional theory (DFT). It is written in Rust with a Python interface.
Usage¶
from feos import EquationOfState, State
from feos.parameters import Parameters
# Build an equation of state
parameters = Parameters.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.
// some imports omitted
use feos::core::parameter::{IdentifierOption, Parameters};
use feos::core::{Contributions, State};
use feos::pcsaft::PcSaft;
// Build an equation of state
let parameters = Parameters::from_json(
vec!["methanol"],
"parameters.json",
None,
IdentifierOption::Name,
)?;
let eos = &PcSaft::new(parameters);
// Define thermodynamic conditions
let critical_point = State::critical_point(&eos, None, None, None, Default::default())?;
// Compute properties
let p = critical_point.pressure(Contributions::Total);
let t = critical_point.temperature;
println!("Critical point for methanol: T={}, p={}.", t, p);
Critical point for methanol: T=531.5 K, p=10.7 MPa.
Getting started¶
Learn how to install the code.
Browse the python tutorials.
Need something specific? May we have a recipe for that.
Questions or comments? We are happy to hear from you!
Want to learn more?¶
Learn about the underlying theory in our Theory guide!
Features¶
Equations of State
thermodynamic properties
phase equilibria for pure substances and mixtures
critical point calculations for pure substances and mixtures
dynamic properties (entropy scaling)
stability analysis
Implemented equations of state
PC-SAFT (incl. group contribution method)
ePC-SAFT
uv-Theory
SAFT-VR-Mie and the extension to quantum fluids SAFT-VRQ-Mie
PeTS
Multiparameter Helmholtz energy equations of state for common pure components
Density Functional Theory
interfacial properties,
properties in nanopores and at walls,
adsorption isotherms,
solvation free energies,
different dimensions and coordinate systems
Extensibility / Usability
Helmholtz energy uses generalized (hyper-) dual numbers - no analytical derivatives are needed.
Interfaces use dimensioned quantities - never accidentally mix molar and mass-specific properties.
Python bindings are written in Rust - robust type checking and error handling.