OpenFOAM weirOverflowを自作STLとSnappyHexMeshでカスタマイズしてみた

まくまく
まくまく
OpenFoamを使って流体解析をしよう!今回はinterFoamの使い方を学ぶため公式チュートリアルのweirOverflowを実行してみようと思います。



weirOverflowをコピー

cp -r $FOAM_TUTORIALS/multiphase/interFoam/RAS/weirOverflow

チュートリアルをコピーします。interFoamのRASフォルダの中になります。

実行


Allrunで実行するとこのような感じになります。左側赤色のinletから流入し、堰を超えて右側青色のoutletへ流れていきます。


アニメーションはこちら。


自由表面流れについては、こちらの書籍の「第五章 二層流」に詳細な記載があります。damBreakの基礎が学べると思います。

#include        "include/initialConditions"

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    inlet
    {
        type            variableHeightFlowRateInletVelocity;
        flowRate        $inletFlowRate;
        alpha           alpha.water;
        value           uniform (0 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }

    lowerWall
    {
        type            noSlip;
    }

    atmosphere
    {
        type            pressureInletOutletVelocity;
        value           uniform (0 0 0);
    }

    defaultFaces
    {
        type            empty;
    }
}

Uファイルはこのようになっていて、variableHeightFlowRateInletVelocityで流入量を設定しています。実際の数値はinitialConditionsにあり75となっていました。

inletFlowRate        75;
pressure             0;
turbulentKE          4.14e-03;
turbulentEpsilon     4.39e-05;


試しに、流入量をvolumetricFlowRateで75m^3/sにして実行してみると見た目では大きな差はなさそうです。もっと水面が変化する条件だとvariableHeightFlowRateInletVelocityの効果を感じれるのかもしれませんね。このあたりは今後要検証ということにしておきましょう。

自作STLで実行


チュートリアルweirOverflowは、blockMeshで形状を作成していますが、それを自作STL&snappyHexMesh使用に変更してみました。

サイズは元々の90m×54mに合わせています。z方向は10mとしました。

処理の流れ

copy 0 folda
blockMesh
surfaceFeatureExtract
snappyHexMesh
2フォルダのpolyMeshをconstantフォルダへコピー
1フォルダと2フォルダを削除
setFields
interFoam

注意点:alpha.water

setFieldsで0フォルダのalpha.waterにリストが書き込まれるので、メッシュを再実行する際などは新しい初期条件ファイルで上書きしましょう。alpha.waterに前のリストが残っているとエラーになります。

注意点:フォルダ削除

snappyHexMeshを実行した際に、2つのフォルダが作成されるので数値の大きい方(1フォルダと2フォルダが作成されると2フォルダの中)にあるpolyMeshフォルダをconstantフォルダにコピーします。コピー後、1フォルダと2フォルダを削除する必要があります。

タイトルとURLをコピーしました