
先日作成した自作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で解析実行。うまく回転できてよかったです。