2D HD Test: Kelvin-Helmholtz Instability
ケルビン・ヘルムホルツ不安定性問題。設定した境界面を挟んで、上下で異なる速度を持つ流れが接しているときに発生する不安定性です。可視化のために、上下で密度を変えています。
Location
demo/hd2d_kelvin_helmholtz/
Geometry
\(-0.5 \leq x \leq 0.5\)
\(-0.5 \leq y \leq 0.5\).
Initial Conditions
初期条件は、\(y=0.0\)で分離された上側と下側の状態と一定の圧力\(p=2.5\)で記述されます。比熱比は\(\gamma = 1.4\)とします。
\[\begin{split}
\begin{align*}
\begin{pmatrix}
\rho_\mathrm{U} \\
v_\mathrm{U}
\end{pmatrix}
&=
\begin{pmatrix}
1.0 \\
0.5
\end{pmatrix} \\
\begin{pmatrix}
\rho_\mathrm{L} \\
v_\mathrm{L}
\end{pmatrix}
&=
\begin{pmatrix}
2.0 \\
-0.5
\end{pmatrix}
\end{align*}
\end{split}\]
Boundary Conditions
\(x\)方向に周期境界条件を、\(y\)方向に対しては全ての物理量に対して対称境界条件を設定します。
config.yamlにおいて、\(x\)方向の周期境界条件フラグをtrueに設定すると、対称境界条件が機能しなくなることに注意してください。
domain:
periodic:
x: true # when this flag is true, the symmetric boundary condition does not work
Results
可視化用のPythonスクリプトが用意されています。
結果のプロットは demo/hd2d_kelvin_helmholtz/figs に保存されます。
cd demo/hd2d_kelvin_helmholtz
python plot_data.py

3D Version
3次元への拡張は、設定ファイルconfig.yamlでk_sizeを1より大きく設定するだけで実現できます。
# config.yaml
grid:
i_size: 512
j_size: 512
k_size: 512 # change from 1 to 512