NASAのChemical Equilibrium with Applications(CEA)コードは、現在のユーザーのほとんどが生まれる前からロケット性能、衝撃波、爆轟を計算してきた計算の主力だが、ようやく長らく待たれた近代化が施された。同庁の工学安全センター(NESC)は、レガシーなCEA2 FortranコードをCEA v3へと導いた。これはFortran 2008のオブジェクト指向ソフトウェアパッケージで、Python、C、MATLAB、さらにはExcelとも流暢に会話できる。スプレッドシートインターフェースで「ロケット科学」を語るなんて、まさにぴったりだ。

2002年にリリースされたCEA2は、推進力と熱化学分析の定番ツールだったが、そのオリジナルの手続き型Fortran実装は、サブルーチンインターフェースのない20年前のコードベースを維持するのと同じくらい楽しいものだったらしい。適切なインターフェースがないため、拡張や最新のエンジニアリングワークフローへの統合がますます困難になっていた。現代のワークフローでは、自動化されたパラメトリックスイープ、他のモデリングツールとの統合、グリーンプロペラントや持続可能な航空燃料などの新興推進剤への対応が求められている。そこでNASAは、検証済みの技術的基盤を維持しつつ、現代の時代に引きずり込むことにした。

CEA v3は、オブジェクト指向のデータ構造、より厳密な型付け、スレッドセーフな平衡ソルバーアーキテクチャに基づいている。Fortran、C、Python、MATLAB、Excelインターフェースをサポートし、自動化された解析パイプライン、学際的な設計フレームワーク、大量の実験計画法研究に直接プラグインできる。そして、ノスタルジックな人々のために、後方互換性はレガシーなコマンドラインインターフェースを通じて維持されており、既存の入力ファイルやワークフローは最小限の混乱で引き継ぐことができる。進歩と言えば、古いコマンドラインを残しておくことに他ならない。

熱力学データベースも拡張され、現在のNASAアプリケーションに関連する追加の推進剤と燃料が含まれている。ADN、HAN、LMP-103Sなどのグリーンプロペラント成分や、n-ブタノールなどの持続可能な航空燃料候補が含まれる。つまり、CEA v3は、地球により良い、あるいは少なくともそれほど悪くないものを燃やす方法を考えるのに役立つ。

さて、細かいことを言うと、CEA v3の個々の平衡計算はCEA2よりもやや遅い。近代化されたアーキテクチャと追加された堅牢性には計算オーバーヘッドが伴うからだ。代表的なテストでは、単一の計算は約40%遅かったが、絶対的な差は1ケースあたり約0.004秒だった。つまり、ストップウォッチと恨みを持って計測しない限り、気づかないかもしれない。

しかし、ここが近代化の真価発揮どころだ。実験計画法、パラメトリックスイープ、最適化、不確実性解析で一般的なマルチケースワークフローでは、CEA v3はゲームチェンジャーだ。あるベンチマークでは、108,500ケースのスイープがCEA v3では約1.11秒で完了したのに対し、CEA2では約15分かかった。これはそのワークフローで約800倍の実行時間短縮だ。そう、あなたの読み間違いではない。800倍速いのだ。大規模な推進力トレードスタディと自動化された設計空間探索は、はるかに実用的になり、あなたのコンピュータのファンも感謝するだろう。

NASAのエンジニアユーザーは、次のガイダンスを考慮すべきだ:未来を受け入れつつ、レガシーな入力ファイルは手元に置いておこう。そして質問があれば、グレン研究センターのMark K. Leader(mark.leader@nasa.gov)に連絡してほしい。彼は20年前のコードの新しいPythonバインディングについてのメールに返信する以外に、明らかにやることがないからだ。