multiPhaseEulerFoam/damBreak4phaseFine

最新版のOpenFOAM(2.3.x)の標準チュートリアルの全ケースを実行した結果の中から、計算時間が前ヴァージョン(2.2.x)と大きく違ったケースについて検証した結果の第1弾です。

ぱっと見のアニメーションでは、結果もあまり違わないようですが・・・

 

 foamSolverSweeps

OpenFOAMの標準ツールとして、foamSolverSweeps があります。これを使ってログファイルを解析することができます。以下の赤字部分をコマンド入力。

$ foamSolverSweeps
timeFile=/tmp/FOAM_iters.time
runTimeFile=/tmp/FOAM_iters.rtime
piterFile=/tmp/FOAM_iters.piters
uiterFile=/tmp/FOAM_iters.uiters

Name of log file (LOG) : log.multiphaseEulerFoam

Program:

Runtime:
1st iter : ExecutionTime = 0.59 s
overall : ExecutionTime = 18133.2 s

Simulation:
steps: 32719
from : Time = 0.00111111
to : Time = 6

Solver sweeps:
p : 377008
U(U0,U1,U2) : 0

青字部分の数字を転記、同様に2.2.xの結果についても以下の表にとりまとめました。

範囲を選択_253

これによると、2.3.xで計算時間が増加したのは、単にステップ数が増加、圧力方程式の適用回数もほぼ比例して増えた結果としての数字にすぎないことがわかります。

このケースの場合、systemファイル(controlDict,fvSchemes,fvSolution)も、onstant(transportProperties, etc)も、両者とも全く同一でした。では何故ステップ数が増えたのかというと、controlDict中で、adjustTimeStep(クーラン数に応じた自動時間進行)が”yes”の設定になっており、新ヴァージョンでは結果としての時間刻みが細かくなっているということです。

以上のことから、改めてアニメーションを比較してみると・・・新ヴァージョンでは、飛び散った液滴が空中で永く生き残っており、これを解像するのに時間刻みが細かくなっていた。つまり、計算時間は長くなったけど空間分解能(精度?)は向上した・・・のかもしれませんね。

 

OpenFOAM-2.3.x全チュートリアルのAllrunをやってみた

先日(4/5)の第29回オープンCAE勉強会@関西まとめ記事にも記してあるように、最新版のOpenFOAM(2.3.x)の標準チュートリアルの全ケースを実行・解析した結果について、近日中に公開予定です。

公開に向けて現在は、最新版(2.3.x)で、計算時間が前ヴァージョン(2.2.x)と大きく違ったケースについて検証中です。しかし対象ケースが全部で35と数が多く、全部終わるまでには、まだかなり時間がかかりそうなので、ここではまず簡単なサマリーとトピックスについてのみ公開することとしました。

本記事に引き続き、検証の終わったケースから、ケース毎に公開していく予定です。

 

総計算時間は約400時間 範囲を選択_243

比較の為、他のヴァージョンの結果についても併記してあります。

使用した計算環境

CPU: Core-i7 950(3.06GHz)
Memory: 24GB
OS: Linux Mint13(Ubuntu-12.04)

カテゴリー別チュートリアル数

範囲を選択_244

 赤枠で囲った部分が2.2.x⇒2.3.xの主要な変化部分といったところでしょうか。

トピックス: mesh/foamyHexMesh/mixerVessel

範囲を選択_245

このケースは、従来の interDyMFoam/mixerVesselAMI と同じ形状データを用いてfoamyHexMeshでメッシュ作成、interDyMFoam で計算するという内容になっており、従来のケースはsnappyHexMesh でメッシュ作成していたので、メッシュ生成法の比較という意味で格好の題材です。

しかし残念ながら、チュートリアルケースをそのままのセッティングで動かしても少し変な結果(下図のアニメーションの一番右側)にしかなりませんでした。

中央は、境界条件(0/U)を改変したもので、多分これが正解(デフォルト設定はバグ)。改変内容は以下の通り。

範囲を選択_247

ちなみに、このケース(mixerVessel)を従来のケース(mixerVesselAMI)と比較すると以下のようになります。

範囲を選択_246

メッシュ規模も計算時間もほぼ同等といったところで、ソルバーの計算時間もほぼ同等ですが、メッシュ作成に要する時間はかなり長くなっています。

なお、メッシュそのものは以下に示すように、見た目はかなり洗練されていますが、checkMeshで調べると、少々エラーがあったりもしました。

範囲を選択_248

2.2.x⇒2.3.x変化点(同一ケース)

OpenFOAMのヴァージョン2.2.xと2.3.xの間で、同一のチュートリアルケースが全部で158ケースありましたが、それらの計算時間(ExexutionTime)を比較してみました。ヴァージョンが異なって大きく変化したものは要チェックでしょうね。50%以上変化したケースが全部で34ケースほど抽出できました。

範囲を選択_414範囲を選択_415範囲を選択_416範囲を選択_417

なお上記図中、ケース名が朱字になっているものは、ヴァージョン間の計算時間の相違が、計算ステップ数やイタレーション回数の変化では説明できないものを表します。

今後

上記抽出したケースにつき、何が変わったのか? を調べていく予定です。