This package uses the stator Comptational Algebra System (CAS) to treat thermodynamics in an equation-oriented way. This is important in applied thermodynamics, as often additional constraints such as heat transfer, kinetics, or multi-stage processes need to be included. These are crucial inclusions in process simulation and using an equation-oriented approach can reduce the required iterations to solve these types problems and can lead to better optimisation; however, the setting up of such problems is significantly more complex. The ambition of SimCem is to hide as much of this complexity as possible and make process engineering and thermodynamics on real systems more fun and accessible.
SimCem is still in development so much is aspirational at this time. The SimCem project also wants to improve thermodynamic fitting workflows by ensuring data integrity. This means tools are being built which can take measurements from its sources in original units and closely linked to the publications/datafiles/graphs to allow careful and easy review of fitted parameters. This work is mainly the focus of the website SimCem.com.
Try installing via pip, this should Just Work™ for most Linux/OSX distributions.
pip install simcem
If we've not prebuilt wheels for your system then pip will attempt to compile simcem but you will need to install cmake, eigen, boost, sundials, and ipopt for this to succeed. You can get these on Ubuntu using the following command:
sudo apt-get install libeigen3-dev libsundials-dev coinor-libipopt-dev libboost-all-dev
The only supported method to obtain SimCem is via conda. We package SimCem occasionally on Windows systems (here)[https://anaconda.org/toastedcrumpets/simcem]. To install it just run the following:
conda install -c toastedcrumpets simcem
Make sure to initialise and update submodules if you haven't done so with git clone, run this command
git submodule init
git submodule update
After the above steps are complete you can build and install. While CMake is used to perform the actual compilation, it is hooked into python setuptools, so to build the package just run
python ./setup.py build
To install the package, run
python ./setup.py install
You will need a thermodynamic database to use SimCem. A free one containing data from NASA is available in the GitHub repository here. Eventually, you will be able to download databases from SimCem.com.
SimCem draws inspiration from these projects which are all excellent solutions and better than SimCem in many ways:
Open/free software
- Pycalphad is an python Gibbs free energy minimizer which can solve for phase diagrams (among other things).
- ESPEI is built on top of Pycalphad and tries to solve the problems of thermodynamic fitting for metals/oslid systems.
- OpenCalphad a fortran CALPHAD approach
- BurnMan: A nice thermodynamic modelling package for geological processes (so it has pressure-dependence in solids).
- NASA CEA