テスト計算

 今回はかなりマニアックな話。私の研究ではスーパーコンピュータを使って天体現象のシミュレーションを行っている訳だが、それぞれのコードにはその精度に応じて計算できる限界というものがある。そのコードの精度やそのコードで物理をちゃんと捉えられているかを確認するためにテスト計算をするのである。先日共同研究者から我々の使っている計算コードの精度について問われた。もちろん今までに私の使っているコードでテスト計算を行ったことは何度かあるが、その資料はどこかへ行ってしまった。仕方が無いので再びテスト計算を行ってみることにした。
 磁気流体力学コードのテスト計算として最も有名なのが、衝撃波菅(ショックチューブ)の計算である。右と左に不連続(密度、圧力、速度、磁場など)を作り、そこから手を放したらどうなるかをシミュレーションするものである。そしてその結果を解析的に求めた結果と比較して物理が正しく捉えられているかを調べるのである。物理量の不連続は左右に数々の衝撃波を形成し伝播していくと言葉で書くと簡単なのだが、それを解析的に求めるのはなかなか至難の業である。特に我々の行っているような相対論的磁気流体ではその計算はかなり難しい。数日前に今まで幾つかの論文で行われてきた相対論的磁気流体での衝撃波菅問題の結果を解析的に求めた論文が出た。非常にありがたい論文だ。
 
 分かっていたこのなのだが、我々のコードでは大きな不連続、強磁場環境下、非常に光速に近い状況下で計算がうまく走らない。残念ながら我々のコードの精度は最近いろいろな研究グループで開発されている一般相対論の効果を含めた磁気流体力学コードのものよりも劣っている。それは私が現在使っているシミュレーションコードは1999年に富山大の小出さんが作ったものをベースにいろいろと修正を加えてきたものだからだ。このコードは世界で始めて一般相対論の効果を含めた磁気流体力学コードであり、始めて実際の天体現象に応用されたもので、開発当初計算精度に関してそれほど気にしていなかったからだ。逆に自分が思っていたよりも厳しい環境下でも計算が走ることが分かった。それはこのコードが研究を行う上で十分通用するものであるということが言える十分な証拠だと思う。また、このコードの弱点も分かっている。そこは今後改良していく予定だ。