$FOAM_TUTORIALS/multiphase/interDyMFoam/ras/sloshingTank3D6DoF
メッシュ移動機能を使用して揺れるタンクの中に入った水の動きの解析を40秒分、行います。水の体積はタンクの2割程度とし、残りは空気であるとします。
水、空気の各相の物性はファイル constant/transportProperties で指定しています。
メッシュの移動はファイル constant/dynamicMeshDict で以下の様に指定します。
dynamicFvMesh solidBodyMotionFvMesh; solidBodyMotionFvMeshCoeffs { solidBodyMotionFunction tabulated6DoFMotion; tabulated6DoFMotionCoeffs { CofG (0 0 0); timeDataFileName "$FOAM_CASE/constant/6DoF.dat"; } }
指定されたファイル constant/6DoF.dat には以下の様に40秒までの並進3方向、回転3方向の値が記載され、これによって運動が定義されます。
100 ( (0 ((0 0 0) (0 0 0))) (0.40404 ((0.401298 0.952899 0.321827) (4.82741 2.79073 2.00649))) (0.808081 ((0.786273 1.8071 0.635266) (9.52899 5.3597 3.93137))) ……(省略)…… (39.596 ((1.625 0.77368 -0.260102) (-3.90153 5.2878 8.12498))) (40 ((1.82589 1.65428 -0.575807) (-8.6371 2.70906 9.12945))) )
またファイル system/controlDict で以下の様に設定し、指定点、指定面での圧力 p を出力しています。出力データはフォルダ postProcessing 以下に保存されます。
functions { probes { type probes; libs ("libsampling.so"); writeControl timeStep; writeInterval 1; probeLocations ( (0 9.95 19.77) (0 -9.95 19.77) ); fixedLocations false; fields ( p ); } }
メッシュは以下の通りで、メッシュ数は25840です。
計算結果は以下の通りです。
40分55.38秒 ※シングル、Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz