ヘルムホルツ共鳴(全領域)

OpenFOAM 4.x

ケース

$FOAM_TUTORIALS/compressible/rhoPimpleFoam/laminar/helmholtzResonance

概要

中央部が狭くなった流路に空気を流し、ヘルムホルツ共鳴によって圧力が振動する様子を計算します。

流れは領域 inlet から流量 0.0001 kg/s で流入し、領域 outlet から流出します。領域 walls は流速ゼロの壁、領域 symmetry は対称境界とします。

モデル形状 モデル形状
モデル形状の概略 モデル形状の概略

またファイル resolved/system/controlDict で以下のように設定を行い、5ヶ所で圧力のサンプリングを行っています。サンプリング結果はファイル resolved/postProcessing/probes/0/p に保存されます。

functions
{
	probes
	{
		libs ( "libsampling.so" );
		type probes;
		name probes;
		writeControl timeStep;
		writeInterval 1;
		fields ( p );
		probeLocations
		(
			( -0.045  0     0)
			( -0.045  0.020 0)
			( -0.010  0     0)
			(  0.0125 0     0)
			(  0.0125 0.020 0)
		);
	}
}

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

メッシュ メッシュ
メッシュ(XY 断面) メッシュ(XY 断面)

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

最終時刻での流速(U) 最終時刻での流速(U)
最終時刻での圧力(p) 最終時刻での圧力(p)
サンプリング点 (-0.01, 0, 0) での圧力の時系列(p) サンプリング点 (-0.01, 0, 0) での圧力の時系列(p)
サンプリング点 (-0.01, 0, 0) の位置 サンプリング点 (-0.01, 0, 0) の位置

実行コマンド

cp -r $FOAM_TUTORIALS/compressible/rhoPimpleFoam/laminar/helmholtzResonance helmholtzResonance
cd helmholtzResonance

# コマンド cloneCase を使うために必要
. $WM_PROJECT_DIR/bin/tools/RunFunctions

# 用意されたテンプレートのファイルからケースを作成
cd system
ln -s blockMeshDict.resolvedBlocks blockMeshDict.caseBlocks
ln -s blockMeshDict.resolvedBoundary blockMeshDict.caseBoundary
cd ../
cloneCase . resolved

# 作成したケースを計算
cd resolved
blockMesh
decomposePar
mpirun -np 4 rhoPimpleFoam -parallel
reconstructPar

paraFoam

# 圧力の時間変化をグラフ描画。1カラム目を横軸、4カラム目から100000を引いたものを縦軸としてプロット。
gnuplot
gnuplot> set xlabel "Time (s)"
gnuplot> set ylabel "Guage pressure in the neck (Pa)"
gnuplot> plot "postProcessing/probes/0/p" using 1:($4-1e5) title "Resolved Plenum" with lines

計算時間

22.69秒 ※4並列、Inter(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19GHz

参照