Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/12/05 07:26:42.662 (台灣標準時)

Rebound を使い軌道積分する際の注意点

Rebound を使っ て軌道積分をする際に注意すべき点があると気づいたでござる。

太陽系の三次元的な構造を視覚的に理解するために、太陽、八個の惑星、冥王 星、それから数万個の小惑星の軌道積分を Rebound を使って行い、その軌道 積分の結果を Matplotlib の 3D plot を使って可視化し、アニメーションを 作成してみたでござる。その際、質量ゼロとして軌道積分する小惑星の数が数 千くらいのときと、数万にしたときで、軌道積分にかかる時間が大きく異なる ことに気がついたでござる。小惑星の数が 5000 のときと、小惑星の数が 50000 のときで、計算にかかる時間が 10 倍ではなく、それよりももっと長い ようでござる。 sim.add (m=0.0, a=...) としているので、 massless な particle として扱われていると思っていたのでござるが、他の particle に 与える重力の影響が計算されているようでござる。それで、計算量が膨大になっ ていたようでござる。

Rebound の API Documentation を読むと、 simulation object に対して、 .N_active と いう量を設定できて、他の天体に重力を与える天体の数を決めることができる ようでござる、ということがわかったでござる。つまり、太陽、八個の惑星、 冥王星についてだけ、他の天体に重力を及ぼす、ということにして、小惑星は この十個の天体から重力を受けるけれども、小惑星は太陽、惑星、冥王星に重 力を及ぼさないし、小惑星同士も重力を及ぼし合わないということにしたい場 合には、 sim.N_active = 10 とすればよいようでござる。つまり、こうする と、太陽、惑星、冥王星の十個は、他の全ての天体に重力を及ぼし、それ以外 の小惑星は十個の天体から重力を受けるけれども、自分以外の天体に重力を及 ぼさない、ということになるようでござる。

太陽、惑星、冥王星は他の全ての天体に重力を及ぼし、小惑星は太陽、惑星、 冥王星に重力を及ぼすことにするが、小惑星同士に働く重力は考慮しない、と いうように設定することもできるようでござる。そのためには、 sim.N_active = 10 に加えて、 sim.testparticle_type = 1 とすればよいよ うでござる。

デフォルトの設定だと、以下のようになっているようでござる。

parameter value
sim.N_active 0
sim.testparticle_type 0

VariablesParticles についての部分に関連する記述があったでござる。

やはり documentation をきちんと読み込まないといけぬ、ということを改め て実感したでござる。

fig_202312/www_rebound_00.png
fig_202312/www_rebound_01.png
fig_202312/www_rebound_02.png
fig_202312/www_rebound_03.png
fig_202312/www_rebound_04.png
fig_202312/www_rebound_05.png


Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___Python/20220410_0.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Network/20240130_00.html
  12. Computer___Network/20240416_00.html
  13. Computer___Debian/20210223_1.html
  14. Computer___NetBSD/20230119_00.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___NetBSD/20220808_0.html
  22. Computer___TeX/20230503_00.html
  23. Science___Astronomy/20220503_0.html
  24. Computer___NetBSD/20230515_00.html
  25. Computer___Python/20240101_00.html
  26. Computer___NetBSD/20210127_0.html
  27. Computer___Network/20220413_1.html
  28. Computer___Python/20220816_1.html
  29. Computer___NetBSD/20210204_0.html
  30. Travel___Taiwan/20220809_2.html


HTML file generated by Kinoshita Daisuke.