Freesteam
From ASCEND
freesteam is a C++ library that allows the properties of water and steam to be calculated according the method described by the International Association for the Properties of Water and Steam (IAPWS). Some work has been done to connect freesteam to ASCEND as an external library, and it is already quite useful for steam power cycle calculations, as demonstrated in Rankine cycle.
For developers
Currently (Oct 2009), we are working against an unreleased version of freesteam. Instructions for getting it up and running on your machine are as follows:
- install gsl-dev, scons and python-dev on your system.
- install ASCEND somewhere on your system, and make sure that 'ascend-config' is in your PATH.
- check out and enter the 'new-c' branch of freesteam onto your machine, using the commands:
cd ~ svn co https://freesteam.svn.sourceforge.net/svnroot/freesteam/branches/new-c freesteam cd ~/freesteam
- compile the code using
scons
If all goes well, you should now have files like ~/freesteam/libfreesteam.so as well as ~/freesteam/ascend/libfreesteam_ascend.so.
To make use of these, start ASCEND like so:
export ASCENDLIBRARY=~/ascend/models:~/freesteam/ascend export LD_LIBRARY_PATH=~/ascend:~/freesteam ~/ascend/pygtk/ascdev johnpye/rankine.a4c
and this should load the simple Rankine cycle test-model for ASCEND.
For users
Currently, freesteam is not yet fully released. We have some trial '.deb' packages that allow you to get up and running with freesteam, but these are not fully tested yet. Windows support for freesteam was written for the old version 0.x freesteam released, but for version 2.x, the Windows installer still needs work.
Future work
- support for regions. Using the ASCEND conditional modelling capabilities, we can model the transitions between fluid phases with much greater precision than currently.
- 'smart' solving. The current black box implementation for external relations requires the user to specify which variables are 'outputs' and which are 'inputs'. freesteam is arguably better placed to make that decision (it knows how the steam properties correlations are constructed internally), but this would require a different approach to black boxes in ASCEND.
For an example using freesteam see Worked examples.
freesteam homepage: http://freesteam.sourceforge.net/

