衝撃波の伝わり方をシミュレートする


大気中で激しい爆発が生じたとき、狭い領域に強いエネルギーが 集中した衝撃波が発生する。衝撃波は超音速で飛行するジェット 機のまわりでも発生する。津波も一種の衝撃波である。 気体に強い圧力が加わったときに衝撃波が伝わっていく様子を シミュレートしてみよう。

  1. シミュレーションプログラム (C言語で書かれています)

  2. プログラムの説明

  3. プログラムをコンパイルして実行できる形式にしよう

         % make lw1d リターン (エル ダブリュー イチ)
    

  4. シミュレーションの実施

         % shocktube.tcl  リターン
    

    このプログラムではx=20に高圧ガスと低圧ガスをへだてる隔壁があり、 これがt=0に取りはらわれたときに低圧側に向かって衝撃波が伝わって いく様子をシミュレートしている。ここで採用した手法では数値計算を 安定に進めるために人為的に衝撃波面をなまらせる操作を行っている。 なまらせる程度を Qav の欄に、気体の断熱指数(比熱比)を gammaの欄に、 格子点の数を grids の欄に、シミュレーションを停止するまでの時間きざみ の数を steps に入力する。たとえば Qav 3.0、gamma 2.0、grids 201、 steps 301 としてみよう。 データを入力しおわったら Run ボタンをクリックする。simulation end と 表示されたらシミュレーション完了である。

  5. 結果をグラフで表示する

    Plot_ro ボタンをクリックするとシミュレーション終了時の密度分布、 Plot_vx ボタンをクリックすると速度分布、Plot_pr ボタンをクリックすると 圧力分布が表示される。圧力が急激に変化している部分が衝撃波である。

  6. 入力データを変えてシミュレートする

    マウスポインタを端末ウィンドウに移動してリターンキーを押すと グラフが消え、各欄に別の値を入力できるようになる。 Run ボタンをクリックしてシミュレーションを実施する。 gmやnstopをいろいろ変えて実験してみよう。

  7. 終了

    Dismiss ボタンをクリックする