N体シミュレーション
N体シミュレーション (エヌたいシミュレーション、N-body simulation) とは、天体物理学および天文学において、重力相互作用するN個の粒子の力学的な進化を数値的に計算するシミュレーションのことをいう。2体系つまりケプラー問題は可積分であるが、3体以上の系(重力多体系)は可積分ではなく、その力学的進化を定量的に予測するためには数値シミュレーションが必須である。太陽系や球状星団、銀河あるいは宇宙の大規模構造など、重力多体系は宇宙のあらゆる領域において重要な役割を果たすため、N体シミュレーションは宇宙に関する理論的研究において極めて重要な役割を果たしている。
ナイーブなN体シミュレーションの実装(直接総和法)は重力相互作用の計算に O(N) のコストを要するため、より大規模かつ長時間にわたるシミュレーションを実現することは計算機科学特に高性能計算 (HPC) の分野においても興味深い問題であり、複数のゴードン・ベル賞がN体シミュレーションの研究に対して与えられた。現在でもN体シミュレーションはコンピュータのベンチマークのためにしばしば用いられる。
であり、これを適切な初期条件のもとで数値的に積分することが主たる目標となる(宇宙の大規模構造など宇宙論的なスケールでの進化を扱う場合、後述のように方程式が修正されるが、本質的な差異はない)。その最も単純かつ非自明な問題が三体問題である。
シミュレーションの目的によって様々な数値計算上の困難が存在し、各分野毎に様々な手法が開発されてきた。
太陽系シミュレーションの場合、長時間の進化の結果として最終的にどのような状態になるのかに興味がある。この場合、数値誤差の累積が最大の問題であり、高次のシンプレクティック積分を用いるなどの誤差を極力抑えるための工夫が必要となる。また、この場合中心天体(太陽)の重力が支配的で、それに対して摂動が加わった系であるとみなせるため、天体力学的手法など特有の手法が用いられる。
球状星団の場合、重力相互作用のコストが重い上に、近接散乱や連星形成などの効果を正しく計算することが必要である。初期のGRAPEは球状星団の力学進化の計算に用いられ、大きな成果を上げた。
銀河またはより大きなスケールを扱う問題の場合、これは無衝突系であるため N {\displaystyle N} 体粒子は真の粒子である必要はなく、ある空間領域に存在する暗黒物質あるいはバリオンを束ねたものである。一方で、より計算領域を大きく、またシミュレーションの分解能を小さくすることが必要である。このためスーパーコンピュータなどの大規模並列計算機が採用され、また重力相互作用の計算コストを下げるためにアルゴリズム上の改善が続けられている。