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

hd2d_kelvin_helmholtz

3D Version

3次元への拡張は、設定ファイルconfig.yamlk_sizeを1より大きく設定するだけで実現できます。

# config.yaml
grid:
  i_size: 512
  j_size: 512
  k_size: 512 # change from 1 to 512