LoginSignup
2

More than 3 years have passed since last update.

posted at

updated 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/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2