OpenFOAM propellerチュートリアル改 自作STLをcfMeshでメッシュ生成してみた

まくまく
まくまく
OpenFoamを使って流体解析をしよう!先日作成した自作STLをcfMeshを使ってメッシュ生成してみようと思います。



先日作成した自作STL


公式チュートリアルのpropellerのSTLを自作STLに変更して作成したものがこちらです。左側がinlet、右側がoutletで、中央に円柱形の回転体があります。形状は特に意味はありません。とりあえずpropellerを自作STLに変更しただけです。

公式チュートリアルpropellerの実行については前回の記事を参照ください。OpenFOAMチュートリアルで学ぶ!回転体解析:Propeller編


propellerはsnappyHexMeshでメッシュを切るようになっていたため、それと同様にメッシュ生成しました。

単純形状なら問題はありませんが、複雑形状になったときにsnappyHexMeshだとなかなか思うようにいかなくて、、cfMeshを使ってできないかなと調べていたらCFD Onlineで以下のような書き込みを見つけました。これです、これ。ちょうど求めていたものがあるじゃないですか。

[cfMesh] [Guide] How to mesh a propeller domain using cfMesh – AMI patch

処理の流れ

詳細は上記のサイトの通り。StatorとRotorに分けてメッシュ生成してからマージ。ConstantフォルダをRun用フォルダにコピーして、解析実行というものです。
①Statorフォルダでメッシュ生成

cat innerCylinderSmall_slave.stl outerCylinder.stl > combined.stl
surfaceFeatureEdges combined.stl combined.fms -angle 5
cartesianMesh
checkMesh

②Rotorフォルダでメッシュ生成

cat propellerTip.stl innerCylinderSmall.stl > combined.stl
surfaceFeatureEdges combined.stl combined.fms -angle 5
cartesianMesh
checkMesh

③Conbineフォルダでメッシュをマージ

cp -r stator/constant/polyMesh constant/
mergeMeshes . rotor -overwrite
topoSet -dict system/createInletOutletSets.topoSetDict
createPatch -overwrite
checkMesh
topoSet -dict system/createAMIFaces.topoSetDict

注意点:inOutをSTLで指定する場合

propellerチュートリアルは、topoSetでinletとoutlerを設定していますが、これを自作STLでinOutを設定する場合は「topoSet -dcreateict system/createInletOutletSets.topoSetDict
」は不要です。createPatchのinlet、outletもコメントアウトしておく必要があります。

注意点:ソルバー変更

CFD Onlineに記載されているソルバーはrhoSimpleFoamとなっており、パラメータが少々複雑になっています。とりあえず回転だけさせたい場合は、propellerチュートリアル同様にpimpleFoamにしたほうがシンプルになると思います。propellerチュートリアルからコピペする場合dynamicMeshDictのcellZoneをrotorにしておかないとエラーが発生するかもしれません。


メッシュ。cfMesh使用。メッシュサイズはmeshDictで設定可能です。


pimpleFoamで解析実行。うまく回転できてよかったです。

タイトルとURLをコピーしました