種々のPTフラッシュ計算

温度Tと圧力pおよび系全体の組成overall composition(またはフィードfeedの組成とも言う)を与えてその平衡状態を求めるPTフラッシュ計算(本書ではPTフラッシュしか解説しないため以後単にフラッシュ計算と呼ぶ)には2通りの解き方がある。ひとつは平衡定数equilibrium constant(またはK値K-valueとも言う)を与えるチャートを別途用意して、平衡状態における気液比を内挿によって求めるK値チャートK-value chartであり、もうひとつは熱力学的な平衡条件、すなわち各相のフュガシティの一致、もしくはギブズエネルギーの最小値が得られるような条件を反復的に探索するEOSフラッシュEOS flashである。通常フラッシュ計算と言えば後者のことを指し、ここでもそのEOSフラッシュについて解説することにする。フラッシュ計算は様々な形で実装されているが、共通するアイデアはK値を数値的に近似して求めるということである。よく用いられるのは逐次代入法successive substitution iteration method(SSI法)とニュートン・ラフソン法を組み合わせたSSIニュートン法SSI-Newton methodと呼ばれる手法であるが、求める解の解析性が悪いと収束に時間がかかることがある。そのような場合はニュートン法最適化Newton’s method in optimizationや信頼領域法trust region methodなどのより高次の非線形最適化アルゴリズムが用いられる。ここではまず通常用いられるSSI法およびニュートン・ラフソン法について解説する。その後ギブズエネルギーの最小化問題を解く高次の最適化アルゴリズムについて紹介する。前者は極めて高速で解を求めることができる反面、堅牢性に欠けるという特徴があり、後者は臨界点周辺などの難しい条件における相平衡計算を確実に解くことができるが、より多くの計算を必要とするという特徴がある。ほとんどのケースはSSIニュートン法によって解くことができるが、時として高次の最適化アルゴリズムが必要であることを覚えておこう。

またニュートン・ラフソン法とニュートン法最適化は似ているが異なる目的を持っていることに注意されたい。ここでは混乱を避けるために、ある関数が0になる点を求めるいわゆる求根アルゴリズムの方をニュートン・ラフソン法Newton-Raphson method、ある関数の最小値を求める非線形最適化アルゴリズムの方をニュートン法最適化Newton’s method in optimizationと呼ぶことにする。両者を混同するとヤコビ行列やヘッセ行列を計算する際に混乱をきたすためしっかり区別するようにしたい。