大気の流れを高精度・高効率で計算できるようにします。

河合 佑太

PI 河合 佑太

理化学研究所

研究概要

風水害をもたらす雲の生成・発達を正確に再現するには、大気の流れやそれによって地表近くから上空へ運ばれる熱や水蒸気の輸送を高い精度で計算することが重要です。しかし従来の手法では、大気を細かい格子に分けて高解像度で計算するにつれて、再現精度と計算効率のバランスが取れた計算が難しくなる可能性があります。
私たちは、「不連続ガラーキン法」という新しい計算手法を用いることで、気象現象の蓋然性の推定を行う気象モデルにおける、大気の流れの計算の高精度・高効率化に貢献します。

研究内容

大気の現象を正確に再現するには、大気の流れやそれに伴う熱や水蒸気の輸送を高い精度で計算する必要があります。例えば、熱や水蒸気を地面近くから上層に運ぶ上昇気流や乱流が、雲の生成・発達に影響を与えるからです。

大気の流れは、「流体力学」の方程式に基づいて計算します。この方程式の解を紙や鉛筆を使って手計算で解くことは難しいのですが、大気を格子ごとに区切って計算することで、正解に近い値(近似値)を導き出すことができます。しかし、近似値と正解との間には誤差が生じます。格子の細かさを解像度といいます。より細かい格子に区切って高い解像度で計算するほど、その誤差は減少します。

計算機の発展とともに気象モデルの解像度は高くなってきました。私たちは、2050年ごろを想定して、一辺が1m程度の格子サイズの解像度も視野に入れながら気象モデルにおける流体力学の計算手法を検討していくことが必要だと考えています。

格子を細かくしていったときに、どの程度の割合で誤差が減るかは、流体力学の計算手法の「次数」によって異なります。例えば、格子一辺の長さを半分にしたときに、2次精度では誤差は1/2の2乗(=1/4)ですが、3次精度の誤差は1/2の3乗(=1/8)となり、次数が高いほど誤差の減り方が大きくなります。

近年の高解像度モデルで広く使われているのは、2次精度の「格子点法」という計算手法です。しかし、格子一辺が1m程度へと高解像度化が進んだとき、2次精度では誤差の減り方が小さく、気象現象の蓋然性を正確に推定するには不十分だと考えられます。そこで私たちは、気象モデルでの流体力学の計算の高精度化を目指しています。

将来の大気の流れや温度を予測するには、流れや温度・水蒸気といった大気の状態を表す量の「空間分布の傾き」(空間微分)を計算する必要があります。現実には、大気の流れと、それに伴う熱や水蒸気の輸送量の分布は連続で曲線的です。しかし、多くの気象モデルで用いられている2次精度の手法では、格子内の分布は直線的であると考えて空間分布の傾きを計算します。

格子内の分布を直線的に考えても、格子をどんどん細かくしていけば、大局的な分布は次第に曲線に近づきます。しかし、個々の格子内の分布が直線のままでは、ゆっくりとしか現実的な曲線に近づきません。曲線に近づけるには、極めて高い解像度が必要となります。

それでは、比較的低い解像度で現実の曲線的な分布に近づけるにはどうすればよいでしょうか? 2次精度の格子点法では、ある格子点上の分布の空間微分の計算にはすぐ隣の格子点の情報だけを用います。このとき、現実では曲線的であっても、各方向について2点の情報しかないので、格子内の分布は直線的にしか表現できません。そこで、格子点の周囲の非直線的な特徴を捉えるために、計算に用いる情報の格子の集まりを拡大して遠く離れた格子点の情報も用いることにします。これにより、格子内の分布を曲線的に考えることができて、現実の流れに近づけることができます。

(図1)これまで用いられてきた格子点法のイメージ

しかし、計算に用いる情報の格子の集まりが拡大するにつれて、計算機のメモリから広範囲のデータを読み込むことが必要になります。メモリへのアクセス回数が増える可能性があり、計算効率が悪くなってしまいます。
「富岳」のようなスーパーコンピュータは、小さな計算機をたくさんつなげたものです。膨大な量の計算をたくさんの計算機で手分けして行うことで、高速に計算を行います。

従来の格子点法で格子内の分布を計算するには、周囲の格子の情報を計算機間で送受信する必要があります。高精度化のためにほかの計算機から持ってくるデータ量が多くなるほど、計算機間のデータ通信のコストが増えて全体的な計算効率が悪くなってしまいます。

そこで私たちが注目したのが、比較的近くの格子点の情報だけを用いて分布の計算を高精度に行える「不連続ガラーキン法」です。これはもともと他分野で開発された手法ですが、10年ほど前から気象分野の大気の流れの計算にも適用する試みがなされ始めました。

不連続ガラーキン法でも、格子ごとに分布を計算することは格子点法と同じです。ただし、不連続ガラーキン法では、格子内にさらに細かい点(節点)を置きます。そして格子内の節点と、格子のすぐ外側にある節点の値だけで、格子内の分布を曲線的に高精度に表現できます。この方法では、格子内の節点をひとまとめに計算するためメモリへのアクセス回数が少なく、またほかの計算機とやりとりするデータ量も少なくて済みます。この特性により、高効率で高精度な計算ができるのです。

(図2)不連続ガラーキン法のイメージ

あらためて、従来の格子点法と不連続ガラーキン法の4次精度を比べてみましょう。

(図3)同じ範囲の傾きを計算するときのデータ参照範囲の違い

格子点法の4次精度では、図3左の青枠の格子内の分布を曲線的に考えて傾きを計算するには、8つの格子点(黄)の情報を用いる必要があります。さらに図3右の不連続ガラーキン法の4次精度と同じ範囲の傾きを計算するには、計算に用いる情報の格子点の集まりをずらしながら、同様の計算を16の格子点で行う必要があります(図3中)。それぞれの格子点を一つの計算機で別々に計算したり、異なる計算機で計算したりするため、メモリへのアクセス回数やほかの計算機とやりとりするデータ量が増えてしまい、計算効率が悪くなってしまいます。

一方、不連続ガラーキン法の4次精度(図3右)では、格子内の節点(青)と、格子のすぐ外側にある黄の節点の情報を用います。格子内の節点(青)をひとまとめにして計算ができます。まとめて計算するので、メモリへのアクセス回数も、ほかの計算機とやりとりするデータ量も少なくて済みます。

私たちは、空間解像度が1m程度のシミュレーションにおいて8格子以上で表現される分布を精度よく計算したいときに、格子点法に比べて計算効率を4倍にすることを不連続ガラーキン法によって目指します。それにより、大気の流れの計算を高精度・高効率化することで、気象現象の蓋然性の推定精度の向上に貢献します。