
チュートリアル:propeller
最近回転体の解析に挑戦していたので、そのあたりのまとめとしてチュートリアルのpropellerを再度実行して理解を深めていきたいと思います。propellerは以下のフォルダから。/incompressible/pimpleFoam/RAS/propeller
フォルダ構成はこのようになってます。先日の記事に書いたようにsystemフォルダにはstlファイルがありません。中身を確認するときは手動で解凍しましょう。「OpenFOAM propellerのobj.gzファイルを解凍する」
実行
まずは「./Allrun」実行してみます。そうするとAllrun.preとAllrunのなかに記載されているコマンドが実行されます。
Allrun
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
if notTest "$@"
then
./Allrun.pre
restore0Dir
runApplication decomposePar
runParallel $(getApplication)
runApplication reconstructPar
fi
#------------------------------------------------------------------------------
Allrun.pre
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
# copy propeller surface from resources directory
cp -rf \
"$FOAM_TUTORIALS"/resources/geometry/propeller \
constant/triSurface
runApplication blockMesh
runApplication surfaceFeatureExtract
runApplication snappyHexMesh -overwrite
runApplication renumberMesh -overwrite
# force removal of fields generated by snappy
rm -rf 0
# generate face/cell sets and zones
runApplication topoSet -dict system/createInletOutletSets.topoSetDict
# create the inlet/outlet and AMI patches
runApplication createPatch -overwrite
#------------------------------------------------------------------------------
メッシュ作成には数分、解析には数時間要します。とりあえず実行後の様子を確認するだけなら途中で止めてもOKです。decomposeParDictには以下のように4分割で処理するように記載されています。processor0から3までのフォルダが作成され、その中に計算後のファイルが書き出されるので、適当なところで止めてみようと思います。
numberOfSubdomains 4;
method hierarchical;
coeffs
{
n (1 4 1);
}
ちなみにcontrolDictは以下のようになっています。0.001秒ごとに0.1秒まで解析が実行されます。
application pimpleFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;
deltaT 1e-5;
writeControl adjustable;
writeInterval 0.001;
回転条件はconstantフォルダのdynamicMeshDictに記載します。以下の場合、原点は(0,0,0)、Y軸を回転軸として、回転速度は158rad/secです。
origin (0 0 0);
axis (0 1 0);
omega 158; // rad/s
今回は0.03秒までの解析にしました。なので、reconstructParで分割されたデータを結合します。
reconstructPar
paraviewで可視化
まずはメッシュの確認をします。左側から軸(propellerStem)がでており、その先にプロペラ本体(propellerTip)がつながっています。プロペラの最大径は100mm強くらいです。
プロペラを囲むように直径200mmの回転領域(innerCylinderSmall)があり、さらにその外側には直径300mmの細分化領域(innerCylinder)があります。
外側の壁(outerCylinder)は、サイズΦ600mm×1000mmとなってます。左側がinlet、右側がoutletです。
開始0.03秒後の速度場。
アニメーションはこんな感じです。
今回は、チュートリアルの実行までです。次回は設定ファイルを色々と変更してみようと思います。