ヘルムホルツ共鳴(全領域)
更新:2018/12/17
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 断面)
計算結果は以下の通りです。
最終時刻での流速(U)
最終時刻での圧力(p)
サンプリング点 (-0.01, 0, 0) での圧力の時系列(p)
サンプリング点 (-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
参照