はじめに
OpenFOAMではsnappyHexMesh
というユーティリティがあり、これを用いてメッシングを行う人も多いかと思います。
そしてその多くはblockMesh
で作成した構造格子に対して、計算したいモデルのstlファイルを用いてsnappyHexMesh
を行っているかと思います。
ただこのsnappyHexMesh
はヘキサメッシュであれば何にでも適応可能であり、事前にSALOMEなどでヘキサメッシュを用意できるのであれば結構大きなメリットがあります。
今回はこの例を紹介したいと思います。
作業環境
OS : Ubuntu 18.04 LTS OpenFOAM : v1912 SALOME : 9.4.0
アルミ缶の外部流れ
あまりないかもしれませんが、アルミ缶の外部流れを計算したい場合を考えます。
この場合の一般的な戦略としては、以下のようになるかと思います。
- アルミ缶の形状のSTLファイルを作る
- 外部流れ場を
blockMesh
で作成 snappyHexMesh
でアルミ缶部分を切り抜く
このとき、境界層がうまく作れなかったりアルミ缶周りのメッシュがあまり綺麗でなかったり局所的に小さなメッシュができたりなどの苦労をすることが想定されます。
そして苦労する割には肝心のアルミ缶周りのメッシュはポリヘドラやプリズムが混ざったものになってしまいます。そこで今回は以下のような手順を考えます。
- SALOMEでアルミ缶周りを重視した円筒形のヘキサメッシュを作成する
- 床面のSTLファイルを作成する
snappyHexMesh
で床より下を切り抜いたメッシュを作成する
こうすることで最も重要なアルミ缶周りの綺麗なメッシュを作成することができました。 目的に合わせて上面や横面も同時にカットすることもできます。
変な形の撹拌翼
あまりないかもしれませんが以下のような変な形の撹拌翼のメッシュを作りたい場合を考えます。
この場合もblockMesh+形状STLよりも、SALOMEなどで外側ヘキサメッシュを作成した後に複雑な部分のみをSTLにしてsnappyHexMesh
すると以下のように綺麗に作成することができます。
最後に
是非お試しください。