化学反応の時間発展は計算が重い
星間雲や星周エンベロープの分子は、作られたり壊れたりしながら組成を変えていきます。それぞれの反応率をもとに、分子の数の時間変化を連立方程式で解くわけですが、反応ごとに時間尺度が大きく違うため、計算は簡単ではありません。流体計算の各場所でこれを繰り返すとなれば、計算量はさらに増えます。
著者らは、化学反応ネットワークに応じてFortranのコードを生成する従来のKROMEを、現代的なC++で再構成しています。KROME-Xでは、反応率、微分方程式、ヤコビアンなどをコード生成部と共通の実行部で扱う設計を採用しています。
高速化を数字だけで受け取らない
著者らは、条件をそろえたベンチマークで、従来のKROMEと精度を保ちながら最大13.5倍の高速化を報告しています。ただし、あらゆる条件で同じ速度比になるわけではありません。化学種の数、時間積分の条件、計算機の構成に依存する比較です。
著者らのGPU試験では、独立した計算を多数まとめる場合に高い性能が得られます。一方、化学種が多いネットワークではGPUのメモリ制約が効き、CPUの方が速い場合も報告されています。この論文の結果は、GPUを使えば常に高速化できることを意味しません。
光・塵・冷却を結び付ける設計
著者らは、化学反応だけでなく、放射場による反応や加熱、ダストの粒径と温度、分子線冷却などの物理も更新しています。分子の存在量とガスの温度・放射場を結び付けて扱うための計算基盤として提案しています。
この論文では、計算速度だけでなく、従来コードや独立した参照計算との比較で実装を検証しています。ただし、その検証は、任意の天体モデルの仮定まで正しいと保証するものではありません。観測との比較では、反応率、初期条件、放射場の設定を別に検討する必要があります。
放射輸送モデルとの役割分担
著者らが提案するのは、時間依存の化学と微視的な物理過程を計算するライブラリです。観測される画像やスペクトルを求める放射輸送コードそのものを置き換えるものではありません。星周ガスへ適用する場合の他コードとの連携は、各モデルの役割と仮定を整理して検討する課題です。