OpenFOAM-v.2.0 以降、snappyHexMeshがフィーチャー対応になったので、DEXCS for OpenFOAM の標準モデル(DEXCSフォントの周りの流れ解析)でも、当然これを使えるようにsnappyHexMeshDictのパラメタを変更しています。基本的に旧ヴァージョンと共通する部分は旧ヴァージョンで使っていた値をそのまま流用するというポリシーでやってきましたが、このままでは、レイヤーメッシュの作成が出来ないということが判明。
DEXCS for OpenFOAM の標準モデル(DEXCSフォントの周りの流れ解析)
OF-2.0.x
- 一見、レイヤーと見間違えそうなセルもありますが、単に断面位置の取り方でそのように見えているだけです。ちなみにsnappyHexMesh実行を実行した時の、ログの最後のあたり・・・
Writing 0 added cells to cellSet addedCells Writing 0 faces inside added layer to faceSet layerFaces Layer mesh : cells:133143 faces:414528 points:149474
となっていて、最終的にaddedCellsが0、つまり、レイヤは挿入できなかったという事です。
一方、OF-1.7.xですが、こちらは上位ヴァージョンのDictをそのまま使ってもエラーにならない(不必要なものは無視されるだけ?)なので、上で使ったsnappyHexMeshDictをそのままでメッシュ作成してみました。
OF-1.7.x
- フィーチャーエッジは効かないので、形状のでこぼこ感はお馴染みの通りですが、レイヤーもちゃんと挿入されています。ログを見ても確認できます。
Writing 8874 added cells to cellSet addedCells Writing 4449 faces inside added layer to faceSet layerFaces Layer mesh : cells:142017 faces:443361 points:160647
で、この違いは一体何だ?・・・ということで、あれこれ試行錯誤して、ようやく原因がわかりました・・・nGrow というパラメタでした。
nGrowとは
Number of layers of connected faces that are not grown if points get not extruded; helps conver- gence of layer addition close to features
点がなければ生成されない面に結合されたレイヤの数.輪郭 に近いレイヤ追加の収束に役立つ.
和文マニュアルの日本語訳が今ひとつ意味不明でしたが、
レイヤを生成出来なかった点につながる面の数で、この間はレイヤーを生成しない
ということだと思います・・・と書いてみたところで、それでも意味不明だと言われそうですが(・_・;)
これまではnGrow=1 としてきましたが、nGrow=0 とすると
OF-2.0.x, nGrow=0
となって、一応それなりのレイヤが挿入されることになりました。ログを見ても、
Writing 4468 added cells to cellSet addedCells Writing 0 faces inside added layer to faceSet layerFaces Layer mesh : cells:137611 faces:427756 points:153796
addedCellsの数(4468)がOF-1.7.xの場合(8874)に比べてかなり減っていますが、フィーチャーエッジによる形状フィッティングが効いた反面、境界面に接するセル形状が複雑になって、レイヤを生成できなかった面が増えた為だろうと推察されます。
ちなみに、OF-1.7.xでは、nGrow=1の場合と全く変化がありませんでした。
どうも、OF-1.*では、このパラメタが機能していなかったみたいで、OF-2.0以降、ちゃんと機能するようになった、というのが本当のところでないかと想像しています。
但し、nGrow=1 とした場合に、「レイヤを生成出来なかった点につながる面の数」として、削除されたレイヤー数が多すぎるんでないかという感触であり、「ちゃんと」効いているのかどうかは疑問が残っています。
因みにOF-2.0.xに標準搭載のチュートリアルケースを調べてみましたが、すべてnGrow=0となっていたので、これを変更したもので比較してみました。
iglooWithFrides で比較
nGrow=0 (OF-2.0.x)
Writing 6871 added cells to cellSet addedCells Writing 2368 faces inside added layer to faceSet layerFaces Layer mesh : cells:20035 faces:66605 points:27311
nGrow=1 (OF-2.0.x)
Writing 3140 added cells to cellSet addedCells Writing 357 faces inside added layer to faceSet layerFaces Layer mesh : cells:16304 faces:55047 points:23203
nGrow=0, 1 (OF-1.7.x)
Writing 6602 added cells to cellSet addedCells Writing 2243 faces inside added layer to faceSet layerFaces Layer mesh : cells:19766 faces:65766 points:27010