トップ - 技術ドキュメント - OpenFOAM 付属チュートリアル一覧

ヘルムホルツ共鳴(プレナム圧力モデル)

更新:2018/12/17
OpenFOAM 4.x

ケース

$FOAM_TUTORIALS/compressible/rhoPimpleFoam/laminar/helmholtzResonance

概要

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

領域 plenum に境界条件タイプ「plenumPressure」を使用してモデル化し、流路が狭くなる前の上流部の計算を省略することで計算量を減らしています。流体は領域 outlet から流出します。領域 walls は流速ゼロの壁、領域 symmetry は対称境界とします。

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

境界条件タイプ「plenumPressure」はファイル modelled/0/p で以下のように設定します。境界条件タイプ「plenumPressure」を使用すると流入部のプレナム圧力を模擬することができます。

plenum
{
	type            plenumPressure;
	gamma           1.4;
	R               287.04;
	supplyMassFlowRate 0.0001;
	supplyTotalTemperature 300;
	plenumVolume    0.000125;
	plenumDensity   1.1613;
	plenumTemperature 300;
	inletAreaRatio  1.0;
	inletDischargeCoefficient 0.8;
	timeScale       1e-4;
	value           uniform 1e5;
}		

またファイル modelled/system/controlDict で以下のように設定を行い、5ヶ所で圧力のサンプリングを行っています。サンプリング結果はファイル modelled/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)
		);
	}
}

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

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

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

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

またプレナム圧力のモデル化をせずに上流部も含めて全領域で計算した場合(チュートリアル「ヘルムホルツ共鳴」)との、サンプリング点 (-0.01, 0, 0) での圧力の比較は以下の様になります。

全領域計算(Resolved Plenum)とモデル化計算(Modelled Plenum)の比較 全領域計算(Resolved Plenum:マゼンタ)とモデル化計算(Modelled Plenum:シアン)の比較

実行コマンド

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

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

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

# 作成したケースを計算
cd modelled
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 "Modelled Plenum" with lines

計算時間

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

参照