最新版のOpenFOAM(2.3.x)の標準チュートリアルの全ケースを実行した結果の中から、計算時間が前ヴァージョン(2.2.x)と大きく違ったケースについて検証した結果の第6弾です。
計算時間の内訳分析
これらのケースの計算時間について、ログファイルを分析(foamSolverSweep)すると、以下のようになりました。
計算ステップ数は同じなのに、計算時間が大きく異なっており、かつ増えている点は気がかりです。
計算結果を見れば納得
左側の旧ヴァージョンでは、粒子の排出が急速に進行しており、粒子間の相互作用の計算量そのものが少なくなっている、ということでしたね。しかも粒子の減少の仕方に所々異常な振る舞い(瞬間的な減少)が見られます。しかるに右側の新ヴァージョンではほぼ一定量が徐々に減少していくという、まぁ自然な挙動です。
ケースファイルの変化点
そこでケースファイルの変化点を調べてみると、kinematicCloudPropertiesに若干の相違があったものの、本質的な違いとも思われませんでした。
検証計算
念の為、これらもケースファイルを新旧入れ替えて、計算をやり直してみました。
- 2.2.x(w/23sys)—2.3.xのケースファイルを使って、2.2.xにて計算
- 2.3.x(w/22sys)—2.2.xのケースファイルを使って、2.3.xにて計算
計算時間、計算結果ともに、ケースファイル(kinematicCloudProperties)の相違による違いはあるものの、やはりその差は僅か・・・といったところでしょうか。
結論(わかったことと所感)
計算速度が遅くなったということではなく、ちゃんと計算できるようになった・・・と見るべきでしょうね。
ちなみに、新ヴァージョンのリリースノート中、Discrete Particle Modellingやら、Physical Modellingあたりに、Particle関連の更新内容が記されていますが、本ケースでどの効能が現れることになったとかは、浅学にして不明です。