OpenFOAMチュートリアルCavityカスタマイズ:流体を左から右へ流す方法

まくまく
まくまく
OpenFoamではじめての流体解析をしてみましょう。今回は公式チュートリアルにあるcavityをカスタマイズして流体を左から右へ流してみようと思います。



WindowsへのUbuntu、OpenFoam、Paraviewなどのインストールは前回の記事を参照ください。ここではOpenFoamが正常にインストールされていることを前提に進めていきます。

OpenFoamチュートリアルcavityについて

cavity流れについては以下の記事で書いていますので、まずはこちらを参照ください。>>>OpenFoamではじめての流体解析 まずはキャビティ流れを確認する

今回の記事のゴール

今回の記事では、公式チュートリアルのcavityを編集して流体を左から右へ流すことをゴールとします。

OpenFoamの使い方に慣れることを目的としているので、解析の正確性などを保証するものではなく、まずは流体の流れを変えること。この実現をゴールとします。(試行錯誤して行っていますので余計な記載や、変更が十分でないところがあることご了承願います。また環境やバージョンによって結果が異なる可能性もあります。)

cavityのファイル構成を確認

まずはcavityのファイル構成を確認しましょう。


フォルダは「0」「constant」「system」の3つです。

「0」フォルダ:初期条件のファイルを含むフォルダです。初期速度、圧力など。

「constant」フォルダ:定数パラメータを含むフォルダです。物理的な特性など。

「system」フォルダ:計算の制御や設定を含むフォルダです。時間ステップの設定、ソルバーの選択、解析制御ファイルの作成方法など。

system – blockMeshDict

systemフォルダにあるblockMeshDicファイルから編集していきましょう。

blockMeshDicでブロックの大きさ、境界条件を決定します。解析領域であるverticesや六面体を定義しているblocksはそのまま使います。

境界条件になるboundaryを以下のように変更しました。movingWallをなくして流入(inlet)と流出(outlet)を追加します。左面がinlet、右側がoutletになるように面を設定します。それにしてもブロック内側から見て時計回りというのがいまいち慣れません。。。

boundary
(
    inlet
    {
        type inlet;
        faces
        (
            (0 4 7 3)
        );
    }
    outlet
    {
        type outlet;
        faces
        (
            (2 6 5 1)
        );
    }
    fixedWalls
    {
        type wall;
        faces
        (
            (3 7 6 2)
            (1 5 4 0)
        );
    }
    frontAndBack
    {
        type empty;
        faces
        (
            (0 3 2 1)
            (4 5 6 7)
        );
    }
);

system – PDRblockMeshDict

同じくsystemフォルダにあるPDRblockMeshDictも編集します。変更箇所はboundaryのところです。movingWallをなくしてinlet、outletに面番号を設定します。

<追記>以下のboundaryは一応変えましたが、記載しなくても同様の結果なので全消去しても良いかもです。
boundary
(
    inlet
    {
        type  wall;
        faces (0);
    }
    outlet
    {
        type  wall;
        faces (1);
    }
    fixedWalls
    {
        type  wall;
        faces (2 3);
    }
    frontAndBack
    {
        type  empty;
        faces (4 5);
    }
);

面番号はこちら。
Faces 0, 1 == x-min, x-max.
Faces 2, 3 == y-min, y-max.
Faces 4, 5 == z-min, z-max.

0 – U

次は初期条件を設定するUファイルを編集します。

流速は1m/sのままですが、ここでもinletとoutletを設定する必要があります。

boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (1 0 0);
    }
    outlet
    {
        type zeroGradient;
    }


    fixedWalls
    {
        type            noSlip;
    }

    frontAndBack
    {
        type            empty;
    }
}

0 – p

同様にpファイルを設定します。

boundaryField
{
    inlet
    {
        type            zeroGradient;
    }
    outlet
    {
        type fixedValue;
        value uniform 0;
    }

    fixedWalls
    {
        type            zeroGradient;
    }

    frontAndBack
    {
        type            empty;
    }
}

実行


うまく左から右へ流体を流すことができました。結構苦労した割に振り返ってまとめてみると変更箇所は限られていますね。

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