Edited at

REFPROPをpythonから呼び出す(簡易版)

REFPROPをpythonから呼び出す@Qiitaという記事を書きましたが、ビルドから始まっていて難しいように見えたようなので、Windowsからインストールした場合の簡単な使い方を書いておきます。


インストール

REFPORPをインストーラーからインストールした場合は、以下の通りでpythonからREFPROPの関数が使えます。

pip install ctREFPROP

でctREFPROPをインストール。

pythonスクリプトファイルと同じフォルダにREFPROP64.DLLファイル、FLUIDSフォルダ、MIXTURESフォルダを置いておいて、以下を実行。


sample_REFPROP.py

from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary

RP = REFPROPFunctionLibrary('.')
MOLAR_BASE_SI = RP.GETENUMdll(0, "MOLAR BASE SI").iEnum
MASS_BASE_SI = RP.GETENUMdll(0, "MASS BASE SI").iEnum

# 水の大気圧での沸点[K]
p_Pa = 101325
Q = 0.0
r = RP.REFPROPdll("Water","PQ","T",MOLAR_BASE_SI,0,0,p_Pa,Q,[1.0])
print(r.Output[0])

# メタンの大気圧下沸点近辺での液相の密度[kg/m3]
t_K = 111
p_Pa = 101325
r = RP.REFPROPdll("METHANE","TP","D",MASS_BASE_SI,0,0,t_K,p_Pa,[1.0])
print(r.Output[0])



さらなる詳細

一番参考になるのは公式ドキュメントです。

https://pages.nist.gov/REFPROP-docs/

https://trc.nist.gov/refprop/REFPROP.PDF

日本語でもう少し詳細&関連リンクは以下にまとめています。

REFPROPをpythonから呼び出す@Qiita

さらに簡単にREFPROPみたいなことがしたいときには近い機能が実装されている(と言っている)CoolpropのWebアプリを使うと値一つだけ取り出すとかは簡単です。

http://ibell.pythonanywhere.com/


おまけ

REFPROP有料で使えない,という声も聞こえてきました.

無料で似たような機能を持つCoolPropというプログラムもあります.こちらはC++で実装されていながらpythonなどのラッパーがあります.完全に網羅するわけではないようですが,こちらで満足する人はCoolPropが良いかと思います.

http://www.coolprop.org/