振動する翼の周りの流れ

OpenFOAM 4.x

ケース

$FOAM_TUTORIALS/incompressible/pimpleDyMFoam/wingMotion

概要

振動する翼の周りの流れを計算します。

処理は以下の様に進みます。

  1. 3次元メッシュの作成
  2. 3次元メッシュの1面を押し出して2次元メッシュを作成
  3. 翼を動かさずに2次元の定常状態を計算
  4. 定常状態を初期条件として翼を動かして非定常状態を計算
モデル モデル

流体は領域 inlet から速度 (100, 0, 0) m/s で流入し、領域 outlet から流出します。上下の流路壁(領域 topAndBottom)はすべり壁条件のとします。メッシュの移動(6自由度剛体移動)はファイル constant/dynamicMeshDict で指定します。sixDoFRigidBodyMotionCoeffs の patches で移動領域、constraints で拘束条件、restraints でばね条件を設定しています。

メッシュは以下の通りで、メッシュ数は17832です。

メッシュ(全体) メッシュ(全体)
メッシュ(翼付近) メッシュ(翼付近)
メッシュ(翼先端) メッシュ(翼先端)

計算結果は以下の通りです。

メッシュの動き
流速(U)
最終時刻での流速(U) 最終時刻での流速(U)
最終時刻での圧力(p) 最終時刻での圧力(p)

実行コマンド

cp -r $FOAM_TUTORIALS/incompressible/pimpleDyMFoam/wingMotion wingMotion
cd wingMotion

# 3次元メッシュの作成
cd wingMotion_snappyHexMesh
blockMesh
snappyHexMesh -overwrite

# 2次元メッシュの作成と定常状態の計算
cd ../wingMotion2D_simpleFoam
extrudeMesh
createPatch -overwrite
cp -r 0.orig 0
simpleFoam

# 非定常状態の計算
cd ../wingMotion2D_pimpleDyMFoam
cp -r ../wingMotion2D_simpleFoam/constant/polyMesh constant
cp -r 0.orig 0
mapFields ../wingMotion2D_simpleFoam -sourceTime latestTime -consistent
mv 0/pointDisplacement.unmapped 0/pointDisplacement
decomposePar
mpirun -np 4 pimpleDyMFoam -parallel
reconstructPar

paraFoam

計算時間

  • メッシュ作成(シングル):24.92秒
  • 定常計算(シングル):68.68秒
  • 非定常計算(4並列):3時間35分27.33秒

※Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz

参照