最新版のOpenFOAM(2.3.x)の標準チュートリアルの全ケースを実行した結果の中から、計算時間が前ヴァージョン(2.2.x)と大きく違ったケースについて検証した結果の第5弾です。
計算時間の内訳分析
これらのケースの計算時間について、ログファイルを分析(foamSolverSweep)すると、以下のようになりました。
計算ステップ数が増えたのにも拘らず、計算時間が大きく減少しています。
計算結果も良くなった!
本チュートリアルは場の計算ではなくて、単一要素にて反応計算を行い、chemkinの式と比較していますが、明らかに精度が良くなっていることが判ります。
ケースファイルの変化点
ケースファイルの変化点を調べてみると、chemistoryPropertiesにありました。odeCoefs のsolverが、SIBXからseulexに変更されているあたりが気になります。
検証計算
これらもケースファイルを新旧入れ替えて、計算をやり直してみました。
- 2.2.x(w/23sys)—2.3.xのケースファイルを使って、2.2.xにて計算
- 2.3.x(w/22sys)—2.2.xのケースファイルを使って、2.3.xにて計算
2.2.x(w/23sys)で計算不能、つまりsolver:seulexというのは今回のヴァージョンで新しく登場したものだということです。
しかも、2.3.x(w/22sys)つまり旧ヴァージョンと同一設定で計算しても計算時間が減少しており、かつ計算精度も向上(下図参照)していることがわかりました。
結論(わかったことと所感)
本チュートリアルでは、ヴァージョンアップによって明らかな性能向上(速度・精度アップ)が見られました。
当初、新ヴァージョンのリリースノートを見ていても、よく判らなかったのですが、先日の勉強会でTMさんからちゃんと書いてあるよと教えていただき、調べなおしたら、確かにNumerical MethodsのOrdinary Differential Equation Solversのセクションに記してありました・・・が、チュートリアルケース名が例示されていなかったので気づきませんでした・・・(例示してくれよ!)ということです。