next up previous contents
Next: セミ・インプリシット法 Up: 時間積分法 Previous: 時間レベルの使い方

リープフロッグ法とタイムフィルター

予報方程式

\begin{displaymath}
\frac{\partial F}{\partial t}=i\omega F(x)
\end{displaymath}

を時間に関して

\begin{displaymath}
\frac{F(t+1)-F(t-1)}{2}=i\omega F(x,t)
\end{displaymath}

と差分化することをリープフロッグ法という。 リープフロッグ法で生じる高周波モードを押えるために、 Asselin (1972) [16] の タイムフィルターが使われる。

\begin{displaymath}
\overline{F(t)}=F(t)+0.5\nu\left[\overline{F(t-1)}-2F(t)+F(t+1)\right]
\end{displaymath}

ここで $\overline{F(t)}$$F(t)$ にフィルターがかかった値を示す。 $\nu$ はフィルターパラメータである。 リープフロッグ・スキームで $\nu$ によらず同じ周波数帯を表現するためには、 $\nu$ を大きくするほど $\Delta t$ を小さくしなければならないことに注意。
図 9: 周波数に対する振幅
\resizebox{!}{!}{\includegraphics{aselin.eps}}
振動型方程式に leap-frog, asselin filter を適用して von Neumann 法により 振幅を調べた図(太実線)。filter 係数 $\nu$ を大きくするほど $\Delta t$ を 小さくし、安定して表現できる周波数帯を確保している。
第一ステップの時間積分にはオイラー・スキームを採用する。 はじめの数ステップの時間積分は次のように進めている。 (全球モデルの場合。領域モデルは定かではない。)
ステップ 時間間隔 スキーム タイムフィルター
1 $\Delta t/4$ オイラー なし
2 $\Delta t/4$ リープフロッグ なし
3 $\Delta t/2$ リープフロッグ なし
4 $\Delta t$ リープフロッグ あり
.. .. .. ..
図 10: 時間積分の進め方
\resizebox{!}{!}{\includegraphics{lf.eps}}