This commit is contained in:
Ian Bell
2015-03-10 20:01:01 -06:00
2 changed files with 82 additions and 16 deletions

View File

@@ -1,23 +1,56 @@
module CoolProp
export F2K, HAPropsSI, PropsSI, PhaseSI
export F2K, K2F, HAPropsSI, PropsSI, PhaseSI, get_global_param_string, get_param_index
function F2K(TF::Float64)
function F2K(TF::Number)
return ccall( (:F2K, "CoolProp"), Cdouble, (Cdouble,), TF)
end
function HAPropsSI(Output::String, Name1::String, Value1::Float64, Name2::String, Value2::Float64, Name3::String, Value3::Float64)
return ccall( (:HAPropsSI, "CoolProp"), Cdouble, (Ptr{Uint8},Ptr{Uint8},Float64,Ptr{Uint8},Float64,Ptr{Uint8},Float64), Output,Name1,Value1,Name2,Value2,Name3,Value3)
function K2F(TK::Number)
return ccall( (:K2F, "CoolProp"), Cdouble, (Cdouble,), TK)
end
function PropsSI(Output::String, Name1::String, Value1::Float64, Name2::String, Value2::Float64, Fluid::String)
return ccall( (:PropsSI, "CoolProp"), Cdouble, (Ptr{Uint8},Ptr{Uint8},Float64,Ptr{Uint8},Float64,Ptr{Uint8}), Output,Name1,Value1,Name2,Value2,Fluid)
function HAPropsSI(Output::String, Name1::String, Value1::Number, Name2::String, Value2::Number, Name3::String, Value3::Number)
val = ccall( (:HAPropsSI, "CoolProp"), Cdouble, (Ptr{Uint8},Ptr{Uint8},Float64,Ptr{Uint8},Float64,Ptr{Uint8},Float64), Output,Name1,Value1,Name2,Value2,Name3,Value3)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PhaseSI(Name1::String, Value1::Float64, Name2::String, Value2::Float64, Fluid::String)
function PropsSI(Output::String, Name1::String, Value1::Number, Name2::String, Value2::Number, Fluid::String)
val = ccall( (:PropsSI, "CoolProp"), Cdouble, (Ptr{Uint8},Ptr{Uint8},Float64,Ptr{Uint8},Float64,Ptr{Uint8}), Output,Name1,Value1,Name2,Value2,Fluid)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PropsSI(FluidName::String, Output::String)
val = ccall( (:Props1SI, "CoolProp"), Cdouble, (Ptr{Uint8},Ptr{Uint8}), FluidName,Output)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PhaseSI(Name1::String, Value1::Number, Name2::String, Value2::Number, Fluid::String)
outstring = Array(Uint8, 255)
val = ccall( (:PhaseSI, "CoolProp"), Int32, (Ptr{Uint8},Float64,Ptr{Uint8},Float64,Ptr{Uint8}, Ptr{Uint8}, Int), Name1,Value1,Name2,Value2,Fluid,outstring,length(outstring))
return bytestring(convert(Ptr{Uint8}, outstring))
return bytestring(convert(Ptr{Uint8}, pointer(outstring)))
end
# This function returns the output string in pre-allocated char buffer. If buffer is not large enough, no copy is made
function get_global_param_string(Key::String)
Outstring = Array(Uint8, 255)
val = ccall( (:get_global_param_string, "CoolProp"), Clong, (Ptr{Uint8},Ptr{Uint8},Int), Key,Outstring,length(Outstring))
return bytestring(convert(Ptr{Uint8}, pointer(Outstring)))
end
# Get the index for a parameter "T", "P", etc.
# returns the index as a long. If input is invalid, returns -1
function get_param_index(Param::String)
return ccall( (:get_param_index, "CoolProp"), Clong, (Ptr{Uint8},), Param)
end
end #module

View File

@@ -1,23 +1,56 @@
module CoolProp
export F2K, HAPropsSI, PropsSI, PhaseSI
export F2K, K2F, HAPropsSI, PropsSI, PhaseSI, get_global_param_string, get_param_index
function F2K(TF::Float64)
function F2K(TF::Number)
return ccall( (:F2K, "CoolProp"), Cdouble, (Cdouble,), TF)
end
function HAPropsSI(Output::String, Name1::String, Value1::Float64, Name2::String, Value2::Float64, Name3::String, Value3::Float64)
return ccall( (:HAPropsSI, "CoolProp"), Cdouble, (Ptr{UInt8},Ptr{UInt8},Float64,Ptr{UInt8},Float64,Ptr{UInt8},Float64), Output,Name1,Value1,Name2,Value2,Name3,Value3)
function K2F(TK::Number)
return ccall( (:K2F, "CoolProp"), Cdouble, (Cdouble,), TK)
end
function PropsSI(Output::String, Name1::String, Value1::Float64, Name2::String, Value2::Float64, Fluid::String)
return ccall( (:PropsSI, "CoolProp"), Cdouble, (Ptr{UInt8},Ptr{UInt8},Float64,Ptr{UInt8},Float64,Ptr{UInt8}), Output,Name1,Value1,Name2,Value2,Fluid)
function HAPropsSI(Output::String, Name1::String, Value1::Number, Name2::String, Value2::Number, Name3::String, Value3::Number)
val = ccall( (:HAPropsSI, "CoolProp"), Cdouble, (Ptr{UInt8},Ptr{UInt8},Float64,Ptr{UInt8},Float64,Ptr{UInt8},Float64), Output,Name1,Value1,Name2,Value2,Name3,Value3)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PhaseSI(Name1::String, Value1::Float64, Name2::String, Value2::Float64, Fluid::String)
function PropsSI(Output::String, Name1::String, Value1::Number, Name2::String, Value2::Number, Fluid::String)
val = ccall( (:PropsSI, "CoolProp"), Cdouble, (Ptr{UInt8},Ptr{UInt8},Float64,Ptr{UInt8},Float64,Ptr{UInt8}), Output,Name1,Value1,Name2,Value2,Fluid)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PropsSI(FluidName::String, Output::String)
val = ccall( (:Props1SI, "CoolProp"), Cdouble, (Ptr{UInt8},Ptr{UInt8}), FluidName,Output)
if val == Inf
error("CoolProp:", get_global_param_string("errstring"))
end
return val
end
function PhaseSI(Name1::String, Value1::Number, Name2::String, Value2::Number, Fluid::String)
outstring = Array(UInt8, 255)
val = ccall( (:PhaseSI, "CoolProp"), Int32, (Ptr{UInt8},Float64,Ptr{UInt8},Float64,Ptr{UInt8}, Ptr{UInt8}, Int), Name1,Value1,Name2,Value2,Fluid,outstring,length(outstring))
return bytestring(convert(Ptr{UInt8}, outstring))
return bytestring(convert(Ptr{UInt8}, pointer(outstring)))
end
# This function returns the output string in pre-allocated char buffer. If buffer is not large enough, no copy is made
function get_global_param_string(Key::String)
Outstring = Array(UInt8, 255)
val = ccall( (:get_global_param_string, "CoolProp"), Clong, (Ptr{UInt8},Ptr{UInt8},Int), Key,Outstring,length(Outstring))
return bytestring(convert(Ptr{UInt8}, pointer(Outstring)))
end
# Get the index for a parameter "T", "P", etc.
# returns the index as a long. If input is invalid, returns -1
function get_param_index(Param::String)
return ccall( (:get_param_index, "CoolProp"), Clong, (Ptr{UInt8},), Param)
end
end #module