#N体計算コードについて
N体計算コードとは天文学などにおいて質量をもつ粒子が複数ある場合においてそれらが重力の影響下でどのように運動するかを数値計算を用いて解くコードである.
太陽と地球のみの運動を考える時はお互いが互いの共重心の周りのみを運動することを考えればいいけれど三体以上(太陽月地球など)を考える時はお互いの重力の影響で解析的に解けなくなるらしいので計算機を用いて計算する.
ただ,自分で一からコードを書くのは大変なので先駆者の方々が作ったコードを使うことが多い.ただその説明が軒並み英語で見づらいのでここにまとめていく.英語が読める人はリンクから直接飛んだ方がいいです.
このページでは
1.REBOUND
2.GADGET-2
に関して,もしくは天文計算についての覚書を書き込んでいく.ほかにもたくさんコードがあるので随時書き込んでいきます.先人たちが偉大なコードをたくさん作ってくれたのにしょぼい説明しかできないことをお詫びします.
こんなコードもあるよってのがありましたら教えていただけるとありがたいです.
###REBOUND
REBOUNDはデブにはきつい名前の計算コード
わかりやすく見やすいホームページだからか使ってみたくなる.
以下はトップページにある特徴をまとめる.
-シンプレクティック積分を保証(エネルギー保存を考慮して計算してくれる.されなきゃ困る)
-時間刻みを短くしたら高精度な非シンプレクティック積分をしてくれるらしい
-衝突及びGranular dynamics(粉体力学?)をサポート
-SPH(Smoothed Particle Hydrodynamics)計算とかもできるのか???
-C言語(C99に基づく)で作られているがPython版もある
-Real-time,3D OpenGLによる視覚化が可能.
-OpenMP及びMPIを用いた並列化が可能
-ライブラリを必要とせず,オープンソースで開発されている.コードはGithubのページで公開中
-設定が簡単なことをアピールしているらしい.
-ほかのモジュールも簡単に計算に入れられるよ.
とのこと.
###GADGET-2
GADGET-2はいろいろいじってみたくなる名前をしている.
N体計算及びSPH計算ができることをアピールしている.
並列化されたパソコン上でたくさん動かせるらしい.スーパーコンピューターで動くってアピールされているけれどあんまり一般人はスパコンを持たない(一応PCでも動くってさ). hierarchical tree algorithmとSPH法を組み合わせる.
以下にまた特徴を列挙.
-重力の影響を考えるためにHierarchical multipole expansionを用いる.
-追加TreePM法(短距離ではTree法を用い,長距離間ではFFTに基づくParticle Mesh法を用いるもの)で計算する.PM法の二層目では高解像度の領域に置き換えられる
-つまり僕はメッシュ法が何かを知らなければいけない.
-SPH法で計算できるよ!
-モナハンの提案した,人工の速度に基づく特徴速度(Signal-Velocity)によるパラメタ化ができるらしい.
-モナハンだれ
-長距離間粒子と短距離間粒子で異なるタイムステップによる計算ができる.
-parallel I/Oに対応していろんなフォーマットで出力できる
-MPIに対応
とかいろいろあるみたいです.