第 1 章では主成分凝結を考慮した 2 次元準圧縮方程式系の離散化について述べ る.
第 1.1 節では離散化の概要について述べ, 詳細の説明は次節以降で行なうもの とする.
本モデルにおける格子点の配置方法として, 水平方向には Arakawa C グリッド (Arakawa and Lamb, 1977), 鉛直方向には Lorenz グリッド(Lorenz, 1960)を 採用する. 空間方向の離散化は 2 次精度又は 4 次精度の中心差分を用いて行ない, 時間方 向の離散化はモード別時間分割法を用いて行なう. 音波・凝結に関する項は短い時間ステップ 1#1 で離散化し, それ以 外の項は長い時間ステップ 2#2 で離散化する. 音波に関連する項の離散化には HE-VI 法を用い, 水平方向の運動方程式は前進 差分, 鉛直方向の運動方程式及び圧力方程式は後退差分(クランク・ニコルソン 法)で評価する. その他の項の離散化にはリープフロッグ法を用いる.
本モデルでは水平方向, 鉛直方向の格子点配置方法として Arakawa C グリッド, Lorenz グリッドをそれぞれ採用している. Arakawa C グリッドとは水平方向のベクトル量とスカラー量を半格子ずらして配 置する格子点配置方法のことを言う. Arakawa C グリッドは重力波を表現するのに適しているとされている(Arakawa and Lamb, 1977). Lorenz グリッドとは鉛直方向のベクトル量とスカラー量を半格子ずらして配置 する格子点配置方法のことを言う. スカラー量の格子点を 3#3, ベクトル量の水平成分に対する格子点を 4#4, ベクトル量の鉛直成分に対する格子点を 5#5, 格子の角に相当す る点を 6#6 のように表すことにすると, 格子点の配置は gridのように表される.
第 1.3 節では空間微分の離散化方法とその為に必要な平均操作について説明し た上で, 準圧縮方程式系の空間方向の離散化について述べる.
第 1.2 節で述べたようにスカラー量の格子点とベクトル量の格子点は互いに半 格子ずつずれている. 数値計算を行なう上でベクトル量をスカラー量の格子点で評価したり, 或いはス カラー量をベクトル量の格子点で評価する必要がある. その際, 平均操作を行なうことによって半格子ずれた点での値を評価することと する.
以下, 計算に必要と平均操作を示す.
但し 8#8, 9#9, 10#10 はそれぞれスカラー量, ベクトル量の水平成分, ベクト
ル量の鉛直成分を表す.
また下付き添字は格子点位置を表している.
11#11 | 12#12 | 13#13 | (1.1) |
14#14 | 12#12 | 15#15 | (1.2) |
16#16 | 12#12 | 17#17 | (1.3) |
18#18 | 12#12 | 19#19 | (1.4) |
20#20 | 12#12 | 21#21 | (1.5) |
22#22 | 12#12 | 23#23 | (1.6) |
24#24 | 12#12 | 25#25 | (1.7) |
26#26 | 12#12 | 27#27 | (1.8) |
28#28 | 12#12 | 29#29 | (1.9) |
空間微分の離散化について述べる. 音波に関連する項の空間微分については 2 次精度の中心差分を用い, その他の 項の空間微分については 4 次精度の中心差分を用いる.
以下に 2 次精度の中心差分を用いた微分操作に示す.
但し 30#30 は格子の角に相当する点で評価している変数を表す.
31#31 | 12#12 | 32#32 | (1.10) |
33#33 | 12#12 | 34#34 | (1.11) |
35#35 | 12#12 | 36#36 | (1.12) |
37#37 | 12#12 | 38#38 | (1.13) |
39#39 | 12#12 | 40#40 | (1.14) |
41#41 | 12#12 | 42#42 | (1.15) |
43#43 | 12#12 | 44#44 | (1.16) |
45#45 | 12#12 | 46#46 | (1.17) |
以下, 4 次精度の中心差分を用いた微分操作を示す.
31#31 | 12#12 | 47#47 | (1.18) |
33#33 | 12#12 | 48#48 | (1.19) |
35#35 | 12#12 | 49#49 | (1.20) |
37#37 | 12#12 | 50#50 | (1.21) |
39#39 | 12#12 | 51#51 | (1.22) |
41#41 | 12#12 | 52#52 | (1.23) |
43#43 | 12#12 | 53#53 |
45#45 | 12#12 | 54#54 |
1.1 節, 1.2 節の結果を用いて主成分凝結を考慮した準圧縮方程式系を空間方向
に離散化すると, 以下のように書ける.
55#55 | 12#12 | 56#56 | |
57#57 | (1.24) | ||
58#58 | 12#12 | 59#59 | |
60#60 | (1.25) | ||
61#61 | 12#12 | 62#62 | |
63#63 | |||
64#64 | (1.26) | ||
65#65 | 12#12 | 66#66 | |
67#67 | (1.27) | ||
68#68 | 12#12 | 69#69 | |
70#70 | (1.28) | ||
71#71 | 12#12 | 72#72 | |
73#73 | |||
74#74 | |||
75#75 | (1.29) |
第 1.4 節では準圧縮方程式の時間方向の離散化について述べる.
一般に安定に計算を進める為には少なくとも CFL 条件を満たしている必要がある. 例えば簡単な例として 1 次元移流方程式
76#76 | (1.30) |
77#77 | (1.31) |
準圧縮方程式は音波を解に含んでいる. 本研究では対流に着目しているので, 音波自体はあまり重要ではない. しかし音波の位相速度は対流の速度スケールに比べて 10 倍程度大きい. 従ってたとえ対流のみに着目しようとしても, 計算を安定に進めるために時間ス テップを小さくとらなければならなくなり, 計算のコストが高くなってしまう. そこで計算の効率化を図るためにモード別時間分割法を採用する. モード別時間分割法とは時間ステップを 2 種類用意し, 短い方の時間ステップ で音波に関連する項を解き, 長い時間ステップで音波に関連しない移流項や拡散 項を解くという方法である. 短い時間ステップで時間積分を行なっている間は長い時間ステップで評価する項 の値は一定とみなして計算を行なう. モード別時間分割法の概念図を split に示す.
凝結に関連する項は音波にも移流にも直接関連しないので, 解くべき時間ステッ プは凝結の時間スケールによって決まると考えられる. 北守(2006)は Odaka et al.(1998) の火星乾燥対流の実験結果をもとに CFL 条 件を満たす長い時間ステップと短い時間ステップの最大値をそれぞれ 5.0 [s], 0.5 [s] と見積もった. また北守(2006)は流れの存在しない火星大気での拡散成長についての数値計算を 行ない, 凝結の時間スケールが 1 - 20 [s] 程度となることを見出した. そこで北守(2006)同様, 凝結に関連する項を短い時間ステップで解くこととする. 本文書では長い時間ステップを 2#2, 短い時間ステップを 1#1 と書くことにする.
モード別時間分割法を用いると音波についての CFL 条件を満たしているにもか かわらず計算不安定を起こすことがある(Skamarock and Klemp, 1992). この計算不安定を抑制する為に, 運動方程式 RisanAA, RisanAB の 80#80 を
81#81 | (1.32) |
84#84 | (1.33) |
移流項の空間微分を中心差分を用いて離散化すると計算不安定が生じることがあ る. この計算不安定を抑制する為に運動方程式, 熱力学の式, 雲密度の式の移流項に 人工的な数値粘性項を加える. 即ち任意の予報変数 8#8 に関する方程式に数値粘性項
85#85 | (1.34) |
88#88 | (1.35) |
音波及び凝結に関する項は短い時間ステップ 1#1 で, それ以外の項 は長い時間ステップ 2#2 で離散化する. 音波に関連する項の離散化には HE-VI (horizontally explicit - vertically implicit)法を用いる. 即ち 89#89 の式は前進差分, 90#90, 80#80 の式は後退差分(クランク・ニ コルソン法)で離散化する. 音波に関連しない項の項はリープフロッグ法で離散化する.
以下, 時間積分により求まる量を 91#91, 92#92, 時間積分によって得られている最新の物理量を 93#93, 94#94, 最新の物理量の 1 ステップ前の時刻での物理量を 95#95, 96#96 と表すこととする.
水平方向の運動方程式の離散化
RisanAA を離散化すると
97#97 | (1.36) |
99#99 | (1.37) |
鉛直方向の運動方程式と圧力方程式の離散化
本モデルでは HE-VI 法を用いるので, 鉛直方向の運動方程式と圧力方程式を連
立させて解く.
RisanAB において音波減衰項, 圧力勾配項はそれぞれ前進差分, 後退
差分で離散化する.
RisanAD において水平方向のフラックス項, 鉛直方向のフラックス項
はそれぞれ前進差分, 後退差分で離散化する.
RisanAB 及び RisanAD を離散化すると
101#101 | 12#12 | 102#102 | |
103#103 | (1.38) |
104#104 | 12#12 | 105#105 | |
106#106 | |||
107#107 | |||
108#108 | (1.39) |
112#112 | 12#12 | 113#113 | |
114#114 | (1.40) |
117#117 |
118#118 | (1.41) |
120#120 | 12#12 | 121#121 | (1.42) |
122#122 | 12#12 | 123#123 | |
124#124 | (1.43) | ||
125#125 | 12#12 | 126#126 | (1.44) |
127#127 | 12#12 | 128#128 | (1.45) |
129#129 | 12#12 | 130#130 | (1.46) |
131#131 | 12#12 | 132#132 | |
133#133 | (1.47) |
134#134 | 12#12 | 135#135 | |
136#136 | (1.48) | ||
137#137 | 12#12 | 138#138 | |
139#139 | (1.49) |
140#140 | 12#12 | 141#141 | (1.50) |
142#142 | 12#12 | 143#143 | |
144#144 | |||
145#145 | (1.51) |
雲密度の式の離散化
雲密度の時間積分を行なうに当たっては,
先ず音波・凝結に関連しない項と雲粒落下項を計算し,
次に負の雲密度の発生を防ぐ処置を行い,
最後に音波・凝結に関連する項を計算する
1 ).
即ち, RisanAE を離散化すると以下のように書ける.
147#147 | 12#12 | 148#148 | (1.52) |
149#149 | 12#12 | 150#150 | (1.53) |
151#151 | 12#12 | 152#152 | (1.54) |
156#156 | 12#12 | 157#157 | (1.55) |
158#158 | 12#12 | 159#159 | (1.56) |
160#160 | 12#12 | 161#161 | (1.57) |
162#162 | 12#12 | 163#163 | (1.58) |
164#164 | 12#12 | 165#165 | (1.59) |
166#166 | 12#12 | 167#167 | (1.60) |
168#168 | 12#12 | 169#169 | (1.61) |
170#170 | 12#12 | 171#171 | (1.62) |
172#172 | 12#12 | 173#173 | (1.63) |
174#174 | 12#12 | 175#175 | (1.64) |
176#176 | 12#12 | 177#177 | (1.65) |
熱力学の式の離散化
RisanACを離散化すると
178#178 | (1.66) |
180#180 | 12#12 | 181#181 | |
182#182 | (1.67) |
乱流拡散係数の式の離散化
RisanAFをリープフロッグ法を用いて離散化すると
183#183 | (1.68) |
184#184 | 12#12 | 185#185 | |
186#186 | |||
187#187 | |||
188#188 | |||
189#189 | |||
190#190 | |||
191#191 | |||
192#192 | (1.69) |
1.4 節で述べた通り, 長い時間ステップの計算ではリープフロッグ法を用いてい る. リープフロッグ法では時刻 100#100 の値を用いて時刻 194#194 の 値を求める為, 隣接する時間ステップ間で物理量の値に大きな食い違いや振動が 生じる恐れがある. この問題を回避する為, 長い時間ステップの計算を 1 回行 なう度に Robert(1966), Asselin(1972) が考案した時間フィルターを適用する. 本モデルでは 89#89, 90#90, 195#195, 80#80, 196#196, 197#197 の時間積分に対してフィルターをかける.
時間フィルター適用前の変数を 8#8, 時間フィルター適用後の変数を 198#198 とすると
199#199 | (1.70) |