階層的地球流体スペクトルモデル集 SPMODEL << Prev | Index| Next >>

4. SPMODEL プログラミング

4.1. SPMODEL におけるプログラミングの手順

ここでは spmodel ライブラリを用いたスペクトル法による流体計算の プログラミングの手順を説明する. スペクトル法による流体数値計算の基本的な知識は[5] などを参照していただきたい. 手順は次のようになる.

  1. 流体領域と境界条件に適合した spmodel ライブラリのモジュールを選択する
  2. 支配方程式を形式的にスペクトル変換する.
  3. 適当なスキームで時間に関して差分化する.
  4. 2 および 3 で作成した定式化にしたがってプログラムを書き下す.

以下, 例として周期的境界の下での長さ L の 1 次元領域で KdV 方程式の時間発展を計算するためのプログラミングを行なってみる. 支配方程式は

1. 使用するモジュールは 第3節 の例で示した 1次元周期境界条件用のものである.

2. 空間次元 x に関する Forier 変換および逆変換は 次のように定義される.

支配方程式を Fourier 変換すると

チルダ記号と下付き添字とで Fourier 変換の波数成分を表している.

3. 時間に関して, たとえばオイラー法で差分化すると

ここで, 各項の上付き添字 τ, τ+1 は 現在の時間ステップと次の時間ステップを表している.

4. 以上の定式化から, プログラムの時間積分ループ部分は以下のように書き 下すことができる.

do it=1,nt
    e_Zeta = e_Zeta + dt * &
            ( -e_g(g_e(e_Zeta)*g_e(e_Dx_e(e_zeta))) & 
              - e_Dx_e(e_Dx_e(e_Dx_e(e_zeta)))  ) 
enddo

非線形項の見積もりには, 実空間へ逆変換した格子点上にて積を計算し再び波数空間へと変換する方法, すなわち, 変換法 を適用している.

4.2. SPMODEL プログラミングの利点


階層的地球流体スペクトルモデル集 SPMODEL << Prev | Index| Next >>