mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-01-15 00:48:18 -05:00
Fix Lua layer of get_param_index and get_fluid_param_string. Make returns of C module more idiomatic. Use module name as the local variable for the C module.
201 lines
5.0 KiB
C
201 lines
5.0 KiB
C
#include <stddef.h>
|
|
#include <stdlib.h>
|
|
#include <lua.h>
|
|
#include <lauxlib.h>
|
|
#include "../../../include/CoolPropLib.h"
|
|
#include "compat.h"
|
|
|
|
static int lua_coolprop_Props1SI(lua_State *L) {
|
|
lua_pushnumber(L, Props1SI(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_PropsSI(lua_State *L) {
|
|
lua_pushnumber(L, PropsSI(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2),
|
|
luaL_checknumber(L, 3),
|
|
luaL_checkstring(L, 4),
|
|
luaL_checknumber(L, 5),
|
|
luaL_checkstring(L, 6)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_PhaseSI(lua_State *L) {
|
|
char phase[256];
|
|
int ok = PhaseSI(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checknumber(L, 2),
|
|
luaL_checkstring(L, 3),
|
|
luaL_checknumber(L, 4),
|
|
luaL_checkstring(L, 5),
|
|
phase,
|
|
sizeof(phase)
|
|
);
|
|
if (ok == 1) {
|
|
lua_pushstring(L, phase);
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
static int lua_coolprop_get_global_param_string(lua_State *L) {
|
|
char output[4096];
|
|
int ok = get_global_param_string(
|
|
luaL_checkstring(L, 1),
|
|
output,
|
|
sizeof(output)
|
|
);
|
|
if (ok == 1) {
|
|
lua_pushstring(L, output);
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static int lua_coolprop_get_parameter_information_string(lua_State *L) {
|
|
char output[4096];
|
|
int ok = get_parameter_information_string(
|
|
luaL_checkstring(L, 1),
|
|
output,
|
|
sizeof(output)
|
|
);
|
|
if (ok == 1) {
|
|
lua_pushstring(L, output);
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
static int lua_coolprop_get_mixture_binary_pair_data(lua_State *L) {
|
|
lua_pushinteger(L, get_mixture_binary_pair_data(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2),
|
|
luaL_checkstring(L, 3)
|
|
));
|
|
return 1;
|
|
}
|
|
*/
|
|
|
|
static int lua_coolprop_get_fluid_param_string(lua_State *L) {
|
|
char output[4096];
|
|
int ok = get_fluid_param_string(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2),
|
|
output,
|
|
sizeof(output)
|
|
);
|
|
if (ok == 1) {
|
|
lua_pushstring(L, output);
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static int lua_coolprop_set_reference_stateS(lua_State *L) {
|
|
lua_pushboolean(L, set_reference_stateS(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_set_reference_stateD(lua_State *L) {
|
|
lua_pushboolean(L, set_reference_stateD(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checknumber(L, 2),
|
|
luaL_checknumber(L, 3),
|
|
luaL_checknumber(L, 4),
|
|
luaL_checknumber(L, 5)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_F2K(lua_State *L) {
|
|
lua_pushnumber(L, F2K(luaL_checknumber(L, 1)));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_K2F(lua_State *L) {
|
|
lua_pushnumber(L, K2F(luaL_checknumber(L, 1)));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_get_param_index(lua_State *L) {
|
|
lua_pushnumber(L, get_param_index(luaL_checkstring(L, 1)));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_redirect_stdout(lua_State *L) {
|
|
lua_pushboolean(L, redirect_stdout(
|
|
luaL_checkstring(L, 1)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_get_debug_level(lua_State *L) {
|
|
lua_pushinteger(L, get_debug_level());
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_set_debug_level(lua_State *L) {
|
|
set_debug_level(luaL_checknumber(L, 1));
|
|
return 0;
|
|
}
|
|
|
|
static int lua_coolprop_saturation_ancillary(lua_State *L) {
|
|
lua_pushnumber(L, saturation_ancillary(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2),
|
|
luaL_checkinteger(L, 3),
|
|
luaL_checkstring(L, 4),
|
|
luaL_checknumber(L, 5)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static int lua_coolprop_HAPropsSI(lua_State *L) {
|
|
lua_pushnumber(L, HAPropsSI(
|
|
luaL_checkstring(L, 1),
|
|
luaL_checkstring(L, 2),
|
|
luaL_checknumber(L, 3),
|
|
luaL_checkstring(L, 4),
|
|
luaL_checknumber(L, 5),
|
|
luaL_checkstring(L, 6),
|
|
luaL_checknumber(L, 7)
|
|
));
|
|
return 1;
|
|
}
|
|
|
|
static struct luaL_Reg funcs[] = {
|
|
{"Props1SI", lua_coolprop_Props1SI},
|
|
{"PropsSI", lua_coolprop_PropsSI},
|
|
{"PhaseSI", lua_coolprop_PhaseSI},
|
|
{"get_global_param_string", lua_coolprop_get_global_param_string},
|
|
{"get_parameter_information_string", lua_coolprop_get_parameter_information_string},
|
|
//{"get_mixture_binary_pair_data", lua_coolprop_get_mixture_binary_pair_data},
|
|
{"get_fluid_param_string", lua_coolprop_get_fluid_param_string},
|
|
{"set_reference_stateS", lua_coolprop_set_reference_stateS},
|
|
{"set_reference_stateD", lua_coolprop_set_reference_stateD},
|
|
{"F2K", lua_coolprop_F2K},
|
|
{"K2F", lua_coolprop_K2F},
|
|
{"get_param_index", lua_coolprop_get_param_index},
|
|
{"redirect_stdout", lua_coolprop_redirect_stdout},
|
|
{"get_debug_level", lua_coolprop_get_debug_level},
|
|
{"set_debug_level", lua_coolprop_set_debug_level},
|
|
{"saturation_ancillary", lua_coolprop_saturation_ancillary},
|
|
{"HAPropsSI", lua_coolprop_HAPropsSI},
|
|
{NULL, NULL}
|
|
};
|
|
|
|
int luaopen_coolprop_capi(lua_State *L) {
|
|
luaL_newlib(L, funcs);
|
|
return 1;
|
|
}
|