パイプを流れる旋回流(1/4モデル)

OpenFOAM 4.x

ケース

$FOAM_TUTORIALS/incompressible/simpleFoam/pipeCyclic

概要

円筒内に旋回流れが流入した場合の解析を行います。流体は領域 inlet から 流入し、領域 outlet から流出します。円筒の壁面 wall はすべりなし壁条件としています。形状の1/4だけモデル化し、分割面(side1、side2)に周期境界を使用して全体の流れを見積もります。

モデル形状(流れ断面方向) モデル形状(流れ断面方向)
モデル形状(流れ方向) モデル形状(流れ方向)

ファイル 0/U で以下の様に codedFixedValue を使用して C++ コードによって流入する流速分布を定義しています。具体的には面中心座標の2倍とベクトル (1, 0, 0) の外積を計算後、計算結果の X 成分を1.0で置き換えています。

inlet
{
	type            codedFixedValue;
	name    swirl;

	code
	#{
	    const vector axis(1, 0, 0);

	    vectorField v(2.0*this->patch().Cf() ^ axis);
	    v.replace(vector::X, 1.0);
	    operator==(v);
	#};
	value           $internalField;
}

実際の流速分布は以下の様になります。

流入面での流速分布(U) 流入面での流速分布(U)

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

メッシュ(全体) メッシュ

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

パイプ中央付近での断面方向の流速(U) パイプ中央付近での断面方向の流速(U)
パイプ中央付近での断面方向の圧力(p) パイプ中央付近での断面方向の圧力(p)
主流方向の流速(U) 主流方向の流速(U)
主流方向の圧力(p) 主流方向の圧力(p)

実行コマンド

cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pipeCyclic pipeCyclic
cd pipeCyclic

blockMesh
topoSet
refineHexMesh c0 -overwrite
cp -r 0.orig 0

decomposePar -cellDist
mpirun -np 5 simpleFoam -parallel
reconstructPar

paraFoam

対称条件 cyclicAMI の動作を確認するために refineHexMesh を使用してあえて対となる2面のメッシュ数が異なるように設定しています。

計算時間

  • 2.2秒 ※5並列、Inter(R) Core(TM) i7-2600 CPU @ 3.40GHz 3.40GHz

参照