[go: up one dir, main page]

Menu

Tree [d9132d] v5.1.2 / wrappers / Lua /
 History

HTTPS access


File Date Author Commit
 coolprop 2015-02-12 Hisham Muhammad Hisham Muhammad [592c65] Fix and cleanup APIs between Lua and C.
 Makefile 2015-02-02 Aapo Talvensaari Aapo Talvensaari [88fe0d] Removed unneeded lines from Makefile.
 README.rst 2015-01-30 Aapo Talvensaari Aapo Talvensaari [2ad75f] Merged with the upstream, and removed pcall's. ...
 coolprop.lua 2015-02-12 Hisham Muhammad Hisham Muhammad [592c65] Fix and cleanup APIs between Lua and C.
 example.lua 2015-02-12 Hisham Muhammad Hisham Muhammad [a867c1] Add test to example.lua demonstrating fix.
 lualib.mk 2015-01-29 Aapo Talvensaari Aapo Talvensaari [62328f] Added License info of @craigbarnes + added dete...

Read Me

Lua Wrapper for CoolProp

Lua C API and LuaJIT wrappers for CoolProp library (currently implementing the high-level C API).

by Aapo Talvensaari, Helsinki, Finland, January 2015

Hello World with Lua Wrapper

local cp = require "coolprop"
print(cp.PropsSI("d(Hmass)/d(T)|P", "P", 101325, "T", 300, "Water"))

Installation

This wrapper comes with a support for both LuaJIT FFI and PUC-Lua C-API.

To build a shared library of CoolProp, follow the instructions listed here: http://www.coolprop.org/coolprop/wrappers/SharedLibrary/index.html

Installing with Make

  1. Run make
  2. Run make install
  3. Done.

Manual Lua (PUC) Installation

  1. First you need to build shared library version of a CoolLib library and install it somewhere in your operating system's library search path.
  2. Next you need to compile coolprop/cpapi.c wrapper. Easiest way to do it is to run make on Lua wrapper's root folder.
  3. Then place the resulting coolprop/cpapi.so in your Lua's package.cpath, and there under coolprop directory.
  4. Done.

Manual LuaJIT Installation

  1. First you need to build shared library version of a CoolLib library and install it somewhere in your operating system's library search path.
  2. Next you need to place coolprop.lua and coolprop/ffi.lua somewhere in your LuaJIT's package.path so that the LuaJIT can pick them up.
  3. Done.

Lua API

The functions will in general return nil on error.

number, string coolprop.PropsSI(output, name1, prop1, name2, prop2, ref)

For many users, all that is needed is a simple call to the PropsSI function for pure fluids, pseudo-pure fluids and mixtures. This function will return nil on error, and additional string that contains the error message.

local cp = require "coolprop"
print(cp.PropsSI("C", "P", 101325, "T", 300, "Water"))
print(cp.PropsSI("d(Hmass)/d(T)|P", "P", 101325, "T", 300, "Water"))
print(cp.PropsSI("D", "P", 101325, "T", 300, "Air.mix"))

number, string coolprop.Props1SI(fluidname, output)

local cp = require "coolprop"
print(cp.Props1SI("Water", "Phase"))

string coolprop.PhaseSI(name1, prop1, name2, prop2, ref)

local cp = require "coolprop"
print(cp.PhaseSI("P", 101325, "Q", 0, "Water"))

number, string coolprop.HAPropsSI(output, name1, prop1, name2, prop2, name3, prop3)

local cp = require "coolprop"
print(cp.HAPropsSI('H','T',298.15,'P',101325,'R',0.5))

string coolprop.get_global_param_string(param)

Returns global parameter string. On error, returns nil.

local cp = require "coolprop"
print(cp.get_global_param_string("predefined_mixtures"))

number coolprop.get_param_index(param)

Returns parameter index.

local cp = require "coolprop"
print(cp.get_param_index("T"))

number coolprop.F2K(f)

This function converts fahrenheits to kelvins.

local cp = require "coolprop"
print(10, "Fahrenheits is", cp.F2K(10) , "Kelvins")

number coolprop.K2F(f)

This function converts kelvins to fahrenheits.

local cp = require "coolprop"
print(cp.F2K(10), "Kelvins is", cp.K2F(cp.F2K(10)), "Fahrenheits")

string coolprop.error()

Returns the last error occurred.

local cp = require "coolprop"
print(cp.error())

string coolprop.FluidsList()

Returns the list of available fluids.

local cp = require "coolprop"
print(cp.FluidsList())

string coolprop.version()

Returns the version of the CoolLib library that is installed.

local cp = require "coolprop"
print(cp.version())

string coolprop.gitrevision()

Returns the Git revision of the CoolLib library that is installed.

local cp = require "coolprop"
print(cp.gitrevision())

number coolprop.get_debug_level()

Returns the current debug level.

local cp = require "coolprop"
print(cp.get_debug_level())

coolprop.set_debug_level(level)

Sets the debug level.

local cp = require "coolprop"
cp.set_debug_level(0)

boolean coolprop.redirect_stdout(file)

Sets the output to a file (to given path of the file).

local cp = require "coolprop"
cp.redirect_stdout("output.log")

Additional APIs (TBD)

  • string coolprop.get_parameter_information_string(key)
  • number coolprop.get_mixture_binary_pair_data(cas1, cas2, key)
  • string coolprop.get_fluid_param_string(fluid, param)
  • boolean coolprop.set_reference_stateS(ref, state)
  • boolean coolprop.set_reference_stateD(ref, t, rho, h0, s0)
  • number, string coolprop.saturation_ancillary(fluid, output, q, input, value)