[地球流体電脳倶楽部] [dcmodel | dcmodel-tools] [numexp] [spmodel]

SPMODEL 球面浅水モデルを用いた
Scott and Polvani (2008) 及び Saito and Ishioka (2015) の計算 (並列計算版)

このページには SPMODEL 球面浅水モデル (shallow-zd) を用いた
Scott and Polvani (2008) の強制乱流実験の結果を示している.

川原さんのプログラムを参考に並列計算用にプログラムを書きかえ,強制項が加わっても並列計算ができることを確かめる.

方程式

\begin{align} \frac{\partial \boldsymbol{u}}{\partial t} + (\boldsymbol{u} \cdot \nabla_z)\boldsymbol{u} &= - f \boldsymbol{k} \times \boldsymbol{u} - g \nabla_z h + \boldsymbol{F}_u - \frac{\boldsymbol{u}}{\tau_{fr}} - \boldsymbol{D}_u, \\ \frac{\partial h}{\partial t} + \nabla_z \cdot (\boldsymbol{u} h) &= - \frac{h'}{\tau_{rad}} -D_h. \end{align} エネルギーの注入過程として,系全体にランダムな強制\(F_u\) (具体的な形については後述) があり,
散逸過程として,系全体に放射冷却を模したニュートン冷却が働いている.
\(D\) は計算が発散しない為の粘性項である.
上記の式を渦度発散型で書けば, \begin{align} \frac{\partial \zeta}{\partial t} + \nabla_z \cdot (\boldsymbol{u} \zeta_a ) &= F_\zeta - \frac{\zeta}{\tau_{fr}} - D_\zeta, \\ \frac{\partial \delta}{\partial t} + \boldsymbol{k} \cdot {\nabla \times (\boldsymbol{u} \zeta_a )} &= F_\delta - \nabla_z^2 (E + gh)- \frac{\delta}{\tau_{fr}} - D_\delta, \\ \frac{\partial h}{\partial t} + \nabla_z \cdot (\boldsymbol{u} h) &= - \frac{h'}{\tau_{rad}} - D_h. \\ \end{align} ここで,\(\zeta_a = \zeta + f\)である.\(F_\zeta\) は \begin{align} F_\zeta & = 2 {\rm{Re}} \left [ \sum\limits_{n=n_f - \delta_n/2}^{n_f+\delta_n/2} \sum\limits_{m=1}^{n} \hat{f}_{n,m}(t) P_n^m(\mu) e^{im\lambda} \right ], \\ \hat{f}_{m,n}(t) &= \sqrt{\frac{2n(n+1)\epsilon_0}{(2n+1)\delta_n}} \xi_{m,n}(t), \qquad \xi_{m,n}(t) = \frac{e^{i\theta_{m,n}(t)}}{\sqrt{\delta t}} \end{align} \(F_\zeta\) は波数 \(n=[n_f -\delta n /2, n_f + \delta n /2]\) の範囲に各波数ごとに等しいエネルギーを持ち,
かつ位相 \(\theta\) を\([0, 2\pi]\) の範囲で乱数をふり,位相がランダムな渦度強制を与える.

強制

渦度強制
spml2 T170 8並列

ケース1

東西風速
spml2 T170 8並列