数値シミュレーションといっても、方法は1通りではない。前節で見たよう に怪しげな流体近似を使って定性的な議論をするとか、粒子数無限大で のフォッカー・プランク近似から得られる分布関数についての偏微分方 程式を数値積分する方法もある。
これらに対して、多体系の運動方程式を積分する多体シミュレーション の方法は、あくまでもいくつかある方法のうちの一つでしかない。
とはいえ、他の方法に比べた利点があることも確かではある。極端な話、銀河 系の星の数と同じだけの粒子数を使えば、少なくとも銀河系の自己重力多体系 という側面については(ガスがどう振舞うとか、磁場の影響がどうかとかいう ことを別にすれば)、「正しい」計算結果を得ることができるはずである。こ れに対し、他の方法ではそこで明示的に、あるいは暗黙のうちに導入される仮 定すべてが正当化出来るわけではなく、「この計算結果は正しいか、そもそも 正しいというのはどういう意味か」というナイーブな疑問に答えるのはそれほ ど容易なことではない。
とはいえ、現在我々が利用可能な計算機の速度と我々が知っている計算 法では、銀河系の星(とそのほかのダークマターとか)を粒子毎に表現 するというのは不可能である。もちろん、現実の系と同じだけ の粒子数を使わないと意味がある結果がでないというわけではない。粒 子数が少ない計算でも、定性的には有意味な結果が得られるし、 タイムスケールのスケーリング等で理論的には小規模な計算の結果を現 実の系や粒子数無限大の極限にもっていけるはずである。しかし、ここ では結局 「この計算結果は正しいか、そもそも正しいというのはどういう意 味か」という疑問が戻ってきてしまう。
まあ、そんなある意味哲学的ないい方をするまでもなく、現在の計算機 で出来る最大規模のシミュレーションで結果が正しいかどうかぎりぎり のところが現在の研究の最先端であるわけで、より高速・高精度・大粒 子数の計算を可能にすることで新しい領域が開けるわけである。という わけで、以下ではそれにはどういう方法があるか、また今後の研究の方 向はどういうものかという話をする。
計算法を改良するのとより速い計算機を使うというのが基本的な方向で ある。このバリエーションとして、速い計算機を使うためのに計算法を 改良するというのもあるし、また自分で速い計算機をなんとかするとい う方向も考えられる。
原理的には、多体シミュレーションは非常に単純なものである。つまり、 以下の運動方程式
を数値積分するだけである。
これをプログラムにするだけなら、時間積分に何を使うかによるが大し たことはない。右辺を計算するプログラムは 2 重ループで 10 行くらい である。というだけで話が済めばいいけれど、もちろん世の中はそんな に簡単ではない。
大きな問題は2つある。一つは、計算精度の問題である。これもさらにい ろいろあるが、主要なものは次の2つである。 一つは 前に述べた自己重力による構造形成であ る。このために、時間がたつと中心密度が上がる。時間積分という観点 からすると、時間刻みを決めるのは粒子の軌道運動のタイムスケールで あり、粒子の軌道運動のタイムスケールは基本的には自由落下時間
で与えられる。これは以下のように出てく る。密度 、半径 R の球を考えると、その表面での重力ポテン シャルは の程度であり、粒子の典型的な速度はビリアル 定理から単位質量あたりの運動エネルギーとポテンシャルが同じ程度と いうことから、になる。これで系の大きさ R を 割れば上の が出てくることになる。まあ、この出し方はだい ぶ適当だが、真面目に一様密度球のなかでの軌道を計算すれ ば、これは単なる調和振動子なので周期はすぐに出て、係数を別にすれ ば同じ結果になる。もちろん、このは前に出てきた力学的な時間 スケール と係数を別にして同じものである。
つまり、問題が何であったかというと、タイムスケールが短い領域が出 来てくると、すくなくともその領域の粒子は時間刻みを必要に応じて短 くしなければいけない。が、ここで、なにも考えないで全粒子の時間刻 みを短くしては計算時間が増え過ぎる。どの程度計算量が増えるかはど の程度空間構造が発達するかによるわけであり、これを言い換えると利 用可能な計算機資源によってどこまでの空間構造の発達を計算できるか が決まるということになる。
もう一つの問題は、それほど空間構造が発達していない系でも、重力が 引力であるために確率的には2つの粒子がひじょうに近付くような近接散 乱が起こるということである。前節で扱ったように、粒子数が有限の系 では各粒子は他の粒子との近接重力散乱を通してエネルギーを交換し、 系は熱力学的に進化していく。ここで、理論的な問題としては粒子同士 の衝突のインパクトパラメータ b の上限はどこかということが問題で あった。インパクトパラメータが 0 でも、質点とすれば直線解がある わけであり、普通の衝突と同じように速度が反転するだけであるので、2 体緩和への寄与は有限なので、こちらでは積分は発散しない。
だが、多体系の数値積分においてそのような軌道をどう扱うかというの は大きな問題である。ナイーブな方法は、もちろん一番短いタイムステッ プを必要とする粒子に合わせてタイムステップを決めるということであ る。しかし、これではもちろん大きな無駄が発生することになる。これは計算 精度の問題というよりは計算量の問題である。
もちろん、数値計算においては常に計算精度と計算量の間にはトレード オフがあるわけであり、計算精度の問題と計算量の問題というふうに明 確に分離出来るわけではない。
といいながら、計算量の問題という方に話を移す。これは、運動方 程式の右辺の計算量が であり、粒子数が大きくなると急速に 計算量が増えるということである。
もうちょっと状況を整理すると、これらは問題によってというよりは解 決法によって分類されているということができる。つまり、時間領域で 効率化を図る方法と、空間領域で効率化を図る方法があるということに 今までの説明は基本的には対応している。
というわけで、以下、時間領域での計算法と空間領域のそれを概観しよ
う。