FeOs v0.9.5
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¶
import feos # Build an equation of state parameters = feos.Parameters.from_json(['methanol'], 'parameters.json') eos = feos.EquationOfState.pcsaft(parameters) # Define thermodynamic conditions critical_point = feos.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¶
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
interfacial properties,
properties in nanopores and at walls,
adsorption isotherms,
solvation free energies,
different dimensions and coordinate systems
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.