昨日の記事をよくよく見直してみると、タイトルと一致していない部分が多々あるので、その部分(1.6-extとの比較)を改めて別記事として取り纏めることとしました。
1.6-extで動いていたモデルを2.1.xで動かしてみる
- もちろん、そのままでは動かない。あれこれ試行錯誤して、最終的に必要最小限の変更事項を以下取りまとめておく。
変更ファイル総覧
- 赤色は内容が異なっており、黒はファイルが存在しないことを意味しています。
- ちなみにこのdiff(内容比較)は、Kdiffというツールを使っており、Synapticパッケージマネージャでインストールできます。
- [[>http://kdiff3.sourceforge.net/]
polyMesh/boundary
polyMesh/faceZone
- 1.6-ext では、回転境界面のペアーになる面情報をfaceZoneデータとして作成しておく必要がありましたが、これは実質的にはpatch情報と同一であり、不要じゃないかと思っていた部分。2.1.xでは、これは必要なさそうで、削除してもちゃんと動作すること確認しました。
Field変数の境界/初期条件データ
constant/dynamicMeshDict
- Dictの名前は同じで良かったが、使用するライブラリが異なっており、当然ながら、この中味が全く異なる。
- このファイルは、1.6-extで使っていたものを変更するでなく、2.1.xのチュートリアルデータを使って、数字だけを変更して使った。
- 1.6-extでは、patch名(あるいはfaceZoneか?)を参照していたのを、2.1.xでは、cellZoneが参照されている
- 回転速度の指定はrpm⇒deg/sに変更
- 回転軸情報の記述方法は、ややシンプルになった
system/controlDict
- 基本的には同じ。1.6-extでは、ggiCheckというfunctionsを使っていたが、2.1.xでは存在しないので、その部分だけコメントアウトしてある。
- adjusTimeStepを「yes」にすると、挙動がかなり異なってきてしまうので、ここは「no」として固定時間刻み(deltaT=0.00001)で計算している。
system/decomposeParDict
system/fvSchemes
- このファイルと下のファイル(fvSolutions)は、計算速度を比較する際にできるだけ同一にしておきたかったんだが、1.6-extで動いていたものは、pimpleDyMFoam用ではなかった(icoDyMFoam用だった)為、2.1.xのチュートリアルデータをそのまま使って、1.6-extでは動作しなかった部分のパラメタを変更して使用した。
- divSchemeが少々変更されている
system/fvSolutions
計算速度比較
その他機能の比較
- 1.6-ext(GGI)では、並列計算の結果をparaview のnative reader で読むことができなかったが、2.1.x(SMI)では読むことが出来た。
- decomposition, reconstruction に要する時間に関して、1.6-ext(GGI)ではかなり遅くなってしまっていたが、2.1.x(AMI)では通常の計算の場合と大差なかった、
残された課題
- チュートリアルケースも、ここにとりあげたケースも、回転境界面が回転側と静止側で初期状態では完全に同一のメッシュ(二重節点状態)になっているんだが、回転側と静止側で別々にメッシュ作成して合体させたメッシュで、回転境界面のメッシュ(メッシュ数や節点の位置)が一致しない場合には、計算が直ちに停止してしまった。
- 【2012/1/14:追記】unset SIGFPE にて解決しました
- 圧縮性ソルバーで、cyclicAMIがうまく動かないという報告も聞いている。