$FOAM_TUTORIALS/multiphase/interDyMFoam/ras/floatingObject
メッシュを変形させることで水面に浮かんだ物体の動きを6秒分だけ計算します。解析領域は天井面(Z 軸方向最大面)のみ開放されているとし、それ以外の面は壁であるとします。
メッシュ変形の設定はファイル constant/dynamicMeshDict で以下の様に指定します。水面に浮かんだ物体(領域 floatingObject)に働く力に応じて剛体移動計算が行われ、その結果に応じてメッシュが変形します。剛体計算にはニューマーク法が使用されます。
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("librigidBodyMeshMotion.so"); solver rigidBodyMotion; rigidBodyMotionCoeffs { report on; solver { type Newmark; } accelerationRelaxation 0.7; bodies { floatingObject { type cuboid; parent root; // 直方体の寸法 Lx 0.3; Ly 0.2; Lz 0.5; // 直方体の密度 rho 500; // 直方体の質量 mass #calc "$rho*$Lx*$Ly*$Lz"; L ($Lx $Ly $Lz); centreOfMass (0 0 0.25); transform (1 0 0 0 1 0 0 0 1) (0.5 0.45 0.1); joint { type composite; joints ( { type Py; } { type Ry; } ); } patches (floatingObject); innerDistance 0.05; outerDistance 0.35; } } }
メッシュは以下の通りで、メッシュ数は11640です。
計算結果は以下の通りです。
波によって揺れる物体が、メッシュの変形によって再現されていることがわかります。
2分33.89秒 ※シングル、Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz