Freesteam: Difference between revisions
Restored page from Google Cache, uploaded by John Pye |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Image:Thermalequilibrium.png|thumb|500px|right|A transient simulation of the equilibrium of two masses of water, showing phase change. The steam properties are calculated using [http://freesteam.sf.net/ freesteam]. The integration was performed using [[IDA]].]]{{experimental}} | |||
'''[http://freesteam.sourceforge.net/ 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 ([http://www.iapws.org IAPWS]). Some work has been done to connect freesteam to ASCEND as an [[External_library|'''external''' library]], and it is already quite useful for steam power cycle calculations, as demonstrated in [[Rankine cycle]]. | '''[http://freesteam.sourceforge.net/ 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 ([http://www.iapws.org IAPWS]). Some work has been done to connect freesteam to ASCEND as an [[External_library|'''external''' library]], and it is already quite useful for steam power cycle calculations, as demonstrated in [[Rankine cycle]]. | ||
The latest release, 2.0, of freesteam (Jan 2010) includes bindings that will work with ASCEND 0.9.7. | The latest release, 2.0, of freesteam (Jan 2010) includes bindings that will work with ASCEND 0.9.7. | ||
== For developers == | == For developers == | ||
Instructions for getting it up and running on your machine are as follows: | Instructions for getting it up and running on your machine are as follows: | ||
* install GSL, SCons and Python on you system (on Ubuntu, you need gsl-dev, scons python-dev). | * install GSL, SCons and Python on you system (on Ubuntu, you need gsl-dev, scons python-dev). | ||
| Line 19: | Line 17: | ||
To make use of these, you need to ensure that ~/freesteam-2.0/ascend is in your ASCENDLIBRARY env var, and ~/freesteam-2.0 is in your LD_LIBRARY_PATH (Linux), PATH (Windows) or DYLD_LIBRARY_PATH (Mac OS ). On Linux, you could for example start ASCEND like this: | To make use of these, you need to ensure that ~/freesteam-2.0/ascend is in your ASCENDLIBRARY env var, and ~/freesteam-2.0 is in your LD_LIBRARY_PATH (Linux), PATH (Windows) or DYLD_LIBRARY_PATH (Mac OS ). On Linux, you could for example start ASCEND like this: | ||
< | <source lang=sh> | ||
export ASCENDLIBRARY=~/ascend/models:~/freesteam-2.0/ascend | |||
export LD_LIBRARY_PATH=~/ascend:~/freesteam-2.0 | export LD_LIBRARY_PATH=~/ascend:~/freesteam-2.0 | ||
~/ascend/pygtk/ascdev johnpye/rankine.a4c | ~/ascend/pygtk/ascdev johnpye/rankine.a4c | ||
</ | </source> | ||
and this should load the simple [[Rankine cycle]] test-model for ASCEND. | and this should load the simple [[Rankine cycle]] test-model for ASCEND. | ||
== For users == | == For users == | ||
Freesteam version 2.0 includes Windows and Ubuntu Linux binary packages that allow you to run freesteam models in ASCEND directly. | Freesteam version 2.0 includes Windows and Ubuntu Linux binary packages that allow you to run freesteam models in ASCEND directly. | ||
== Future work == | == Future work == | ||
| Line 41: | Line 38: | ||
'''freesteam''' homepage: [http://freesteam.sourceforge.net/] | '''freesteam''' homepage: [http://freesteam.sourceforge.net/] | ||
== See also == | |||
* [[FPROPS]] (calculates properties of many fluids, not just steam) | |||
[[Category:Documentation]] | [[Category:Documentation]] | ||
Latest revision as of 22:46, 7 November 2010

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.
The latest release, 2.0, of freesteam (Jan 2010) includes bindings that will work with ASCEND 0.9.7.
For developers
Instructions for getting it up and running on your machine are as follows:
- install GSL, SCons and Python on you system (on Ubuntu, you need gsl-dev, scons python-dev).
- install ASCEND somewhere on your system, and make sure that 'ascend-config' is in your PATH.
- download the latest version (2.x) of freesteam from [1]
- compile the code using scons ([2])
If all goes well, you should now have files like ~/freesteam-2.0/libfreesteam.so as well as ~/freesteam-2.0/ascend/libfreesteam_ascend.so.
To make use of these, you need to ensure that ~/freesteam-2.0/ascend is in your ASCENDLIBRARY env var, and ~/freesteam-2.0 is in your LD_LIBRARY_PATH (Linux), PATH (Windows) or DYLD_LIBRARY_PATH (Mac OS ). On Linux, you could for example start ASCEND like this:
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
a4c, abap, abc, abnf, actionscript, ada, agda, alan, algol, ampl, amtrix, applescript, arc, arm, as400cl, ascend, asciidoc, asp, aspect, assembler, ats, autohotkey, autoit, avenue, awk, ballerina, bat, bbcode, bcpl, bibtex, biferno, bison, blitzbasic, bms, bnf, boo, c, carbon, ceylon, charmm, chill, chpl, clean, clearbasic, clipper, clojure, clp, cmake, cobol, coffeescript, coldfusion, conf, cpp2, critic, crk, crystal, cs_block_regex, csharp, css, d, dart, delphi, diff, dockerfile, dts, dylan, ebnf, ebnf2, eiffel, elixir, elm, email, erb, erlang, euphoria, exapunks, excel, express, factor, fame, fasm, felix, fish, fortran77, fortran90, frink, fsharp, fstab, fx, gambas, gdb, gdscript, go, graphviz, haml, hare, haskell, haxe, hcl, html, httpd, hugo, icon, idl, idlang, inc_luatex, informix, ini, innosetup, interlis, io, jam, jasmin, java, javascript, js_regex, json, jsp, jsx, julia, kotlin, ldif, less, lhs, lilypond, limbo, lindenscript, lisp, logtalk, lotos, lotus, lua, luban, makefile, maple, markdown, matlab, maya, mercury, meson, miranda, mod2, mod3, modelica, moon, ms, msl, mssql, mxml, n3, nasal, nbc, nemerle, netrexx, nginx, nice, nim, nix, nsis, nxc, oberon, objc, ocaml, octave, oorexx, org, os, oz, paradox, pas, pdf, perl, php, pike, pl1, plperl, plpython, pltcl, po, polygen, pony, pov, powershell, pro, progress, ps, psl, pure, purebasic, purescript, pyrex, python, q, qmake, qml, qu, r, rebol, rego, rexx, rnc, rpg, rpl, rst, ruby, rust, s, sam, sas, scad, scala, scilab, scss, shellscript, slim, small, smalltalk, sml, snmp, snobol, solidity, spec, spn, sql, squirrel, styl, svg, swift, sybase, tcl, tcsh, terraform, tex, toml, tsql, tsx, ttcn3, txt, typescript, upc, vala, vb, verilog, vhd, vimscript, vue, wat, whiley, wren, xml, xpp, yaiff, yaml, yaml_ansible, yang, zig, znn
and this should load the simple Rankine cycle test-model for ASCEND.
For users
Freesteam version 2.0 includes Windows and Ubuntu Linux binary packages that allow you to run freesteam models in ASCEND directly.
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: [3]
See also
- FPROPS (calculates properties of many fluids, not just steam)