$FOAM_TUTORIALS/compressible/rhoCentralFoam/shockTube
衝撃波管は圧力の違う流体(主に気体)を隔膜で隔てて封入した管で、瞬間的に隔膜を取り除くことで衝撃波を発生させる実験装置です。
ここでは衝撃管を1次元でモデル化し、高圧側を 100000 Pa、低圧側を 10000 Pa として時刻 0 で隔膜を取り除き、衝撃波の発生する様子を0.007秒分だけ計算します。
乱流モデルは使用しません。
初期条件は以下の様にファイル system/setFieldsDict で指定します。
defaultFieldValues ( volVectorFieldValue U (0 0 0) volScalarFieldValue T 348.432 volScalarFieldValue p 100000 ); regions ( boxToCell { box (0 -1 -1) (5 1 1) ; fieldValues ( volScalarFieldValue T 278.746 volScalarFieldValue p 10000 ) ; } );
また以下の様にファイル constant/sample で X軸上にサンプリング点を100点を指定し、計算後にサンプリングを行っています。
type sets; libs ("libsampling.so"); interpolationScheme cellPoint; setFormat raw; sets ( line { type face; axis x; start (-5 0 0); end (5 0 0); nPoints 100; } ); fields ( p U.component(0) T rho );
メッシュは以下の通りで、X 座標 -5 から 5 までを100分割しています。
計算結果は以下の通りです。
流速、圧力は以下の様になります。計算は1次元で行われていることに注意してください。
またサンプリングの結果は以下の様になります。
コマンド setFields で初期条件の設定、コマンド postProcess で計算結果からのサンプリングを行っています。
0.09秒 ※シングル、Inter(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19GHz