ただし空気抵抗は無視しないものとする

流体解析の勉強の題材として日頃気になったことをまとめたり確かめたりしていく予定です。OSSしか使わないつもりです。

snappyとヘキサメッシュ

はじめに

 OpenFOAMではsnappyHexMeshというユーティリティがあり、これを用いてメッシングを行う人も多いかと思います。 そしてその多くはblockMeshで作成した構造格子に対して、計算したいモデルのstlファイルを用いてsnappyHexMeshを行っているかと思います。

 ただこのsnappyHexMeshはヘキサメッシュであれば何にでも適応可能であり、事前にSALOMEなどでヘキサメッシュを用意できるのであれば結構大きなメリットがあります。 今回はこの例を紹介したいと思います。

作業環境

OS : Ubuntu 18.04 LTS OpenFOAM : v1912 SALOME : 9.4.0

アルミ缶の外部流れ

 あまりないかもしれませんが、アルミ缶の外部流れを計算したい場合を考えます。

f:id:inabower:20191230125227p:plain

 この場合の一般的な戦略としては、以下のようになるかと思います。

  1. アルミ缶の形状のSTLファイルを作る
  2. 外部流れ場をblockMeshで作成
  3. snappyHexMeshでアルミ缶部分を切り抜く

 このとき、境界層がうまく作れなかったりアルミ缶周りのメッシュがあまり綺麗でなかったり局所的に小さなメッシュができたりなどの苦労をすることが想定されます。
 そして苦労する割には肝心のアルミ缶周りのメッシュはポリヘドラやプリズムが混ざったものになってしまいます。そこで今回は以下のような手順を考えます。

  1. SALOMEでアルミ缶周りを重視した円筒形のヘキサメッシュを作成する
  2. 床面のSTLファイルを作成する
  3. snappyHexMeshで床より下を切り抜いたメッシュを作成する

f:id:inabower:20191230130721p:plain
ヘキサメッシュと床のSTL

f:id:inabower:20191230130952p:plain
snappyHexMesh適用後

 こうすることで最も重要なアルミ缶周りの綺麗なメッシュを作成することができました。 目的に合わせて上面や横面も同時にカットすることもできます。

変な形の撹拌翼

 あまりないかもしれませんが以下のような変な形の撹拌翼のメッシュを作りたい場合を考えます。

f:id:inabower:20191230135206p:plain

 この場合もblockMesh+形状STLよりも、SALOMEなどで外側ヘキサメッシュを作成した後に複雑な部分のみをSTLにしてsnappyHexMeshすると以下のように綺麗に作成することができます。

f:id:inabower:20191230135412p:plain
外側ヘキサメッシュと羽部分のSTL

f:id:inabower:20191230135514p:plain
snappyHexMesh適用後

最後に

 是非お試しください。