Speaker
Description
Thermodynamic calculations are fundamental in chemical engineering, with applications in CFD, process and reservoir simulations, among others. Most of
these calculations are based on Equations of State and their respective derivatives that allow constructing the thermodynamic properties required. Equations
of State (EoS), expressed either for Pressure or residual Helmhholtz energy, are
functions dependant on always the same variables (⃗n, V, T ). So the algorithms
used to calculate properties can be written in an abstract manner, independent
of the specific EoS.
We present yaeos, and how an OOP approach has helped making modular code.
It is easy to extend with new models and algorithms internally and when used as
a dependency. It also implements an extra module that uses ISO C BINDING to
work as a C interface. This interface is also used to compile a Python extension,
using f2py.
To generate the Python extension meson is used as a build system. To
build the library it runs fpm internally and then f2py to build the C interface
and extra Python files. The library includes continuous integration testing for
both interfaces, and automatically uploading Python wheels. Documentation is
generated using FORD and Sphinx. Documentation and source code available
at: https://github.com/ipqa-research/yaeos