タンク内の水のスロッシング

OpenFOAM 4.x

ケース

$FOAM_TUTORIALS/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D

概要

解析モデル 解析モデル

メッシュ移動機能を使用して揺れるタンクの中に入った水の動きの解析を40秒分、行います。水の体積はタンクの2割程度とし、残りは空気であるとします。Z 方向は1メッシュとして2次元問題として計算を行います。

水、空気の各相の物性はファイル constant/transportProperties、constant/thermophysicalProperties.* で指定しています。

メッシュの移動はファイル constant/dynamicMeshDict で以下の様に指定します。

dynamicFvMesh   solidBodyMotionFvMesh;
solidBodyMotionFvMeshCoeffs
{
    solidBodyMotionFunction SDA;
    SDACoeffs
    {
        CofG            (0 0 0);
        lamda           50;
        rollAmax        0.22654;
        rollAmin        0.10472;
        heaveA          3.79;
        swayA           2.34;
        Q               2;
        Tp              13.93;
        Tpn             11.93;
        dTi             0.059;
        dTp             -0.001;
    }
}

またファイル system/controlDict で以下の様に設定し、指定点、指定面での圧力 p を出力しています。出力データはフォルダ postProcessing 以下に保存されます。

functions
{
    probes
    {
        type            probes;
        libs ("libsampling.so");
        writeControl    writeTime;
        probeLocations
        (
            (0 9.95 19.77)
            (0 -9.95 19.77)
        );
        fixedLocations  false;
        fields
        (
            p
        );
    }

    wallPressure
    {
        type            surfaces;
        libs ("libsampling.so");
        writeControl    writeTime;
        surfaceFormat   raw;
        fields
        (
            p
        );
        interpolationScheme cellPoint;

        surfaces
        (
            walls
            {
                type        patch;
                patches     (walls);
                triangulate false;
            }
        );
    }
}

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

メッシュ メッシュ

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

液相 water の体積率(alpha.water)
初期時刻での液相 water の体積率(alpha.water) 初期時刻での液相 water の体積率(alpha.water)
最終時刻での液相 water の体積率(alpha.water) 最終時刻での液相 water の体積率(alpha.water)
指定座標での圧力 p の時系列 指定座標での圧力 p の時系列。実線:座標 (0 9.95 19.77)、破線:座標 (0 -9.95 19.77)。

実行コマンド

cp -r $FOAM_TUTORIALS/multiphase/compressibleInterDyMFoam/ras/sloshingTank2D sloshingTank2D
cd sloshingTank2D

m4 system/blockMeshDict.m4 > system/blockMeshDict
blockMesh
cp 0/alpha.water.orig 0/alpha.water
setFields
compressibleInterDyMFoam

# 3次元描画
paraFoam

# 指定座標での圧力の時系列をグラフ描画
gnuplot
gnuplot>plot "postProcessing/probes/0/p" using 1:2 title 'point 1' with lines lc rgb "black", "postProcessing/probes/0/p" using 1:3 title 'point 2' with lines dt (5,5) rgb "black"

計算時間

2分8.94秒 ※シングル、Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz