
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
(
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;
}
}
実行
うまく左から右へ流体を流すことができました。結構苦労した割に振り返ってまとめてみると変更箇所は限られていますね。