Phun で銀河シミュレーション

D

 ちょっと時間ができたので、Phunを触ってみました。すごく久しぶり。

 Phunは2次元物理演算ソフトで、剛体の運動を計算してリアルタイムで可視化します。最新バージョン(と言ってもかなり前にリリースされたもの)では、引力が実装されました。ならば重力に応用しないとね。気分は宇宙物理学者ですw

 コメントを見ると、本職の方もいるようで。ありがたいことです。

Phunの引力を重力に応用

 Phunにおける二体間に働く引力 F
  F = \frac{(A + B) M m }{ r^2 }
と実装されているようです。ここで  A B は各物体の引力の係数です。 M m は各物体の質量、 r は二体間の距離です。したがって、Phunの引力を重力に応用するためには、重力定数  G
  G = A + B
とすれば良いことになります。

 ある重力源とその他のテスト粒子の問題を考える場合には、重力源の引力係数を  G、テスト粒子の引力係数を 0 にセットすれば良いことになります。すべての物体間の重力を考える場合(すなわち自己重力多体問題)では、すべての物体の引力係数を  G /2 にセットすれば良いでしょう。

 なんでこんな実装にしたんだろう?ボクなら
  F = \frac{A B}{r^2}
とするなー。こうすると、重力だけではくクーロン力への応用も簡単なはず。

銀河衝突

 昔の宇宙は狭かったので、銀河が狭い敷地にひしめき合っていました。したがって、頻繁に衝突・合体しました。また、銀河団においても同様の状況で、銀河は互いに肩をぶつけながら、ときには衝突・合体します。そんな感じで、銀河の衝突をシミュレーションで再現しました。アンテナ銀河と比較したりしました。

 このシミュレーションでは、中心の粒子(Phunの円オブジェクト)1個だけが重力源です。その他の多数の粒子は、中心粒子の重力だけを感じ、その他の粒子の重力を感じません。したがって、粒子の回転は、太陽のまわりを回る惑星のようにケプラーの法則に従い、本当の銀河より差動回転が大きくなってしまいます。本当は回転速度は一定です(角速度は半径に反比例)。まぁ、本質ではないのでこれは許してください。

渦巻銀河の渦を再現

 渦巻銀河の渦巻模様は大変美しい。巻貝の模様と同種のパターンであるとか。これを Phun で再現できないか、実験しました。

 銀河の構成要素は (1) ダークマター、(2) 星、(3) ガスです。このうち、渦巻模様を担っているのは星です。実は星の個数分布だけに着目すると、渦巻模様のコントラストは低く、とてものっぺりしています。腕の部分に明るい星が多く分布しているため、渦巻模様のコントラストが強調されるのです。これにはガスも関係しているのですが、詳しく書くと長くなるので、ここでは割愛します。

 Phun では星の分布の再現に挑戦しました。動画でも紹介している通り、星だけを考えるとうまくいきません。ダークマターが必要です。実際の銀河では、ダークマターが作る重力ポテンシャルの中を星が回転しています。そして星の間の重力相互作用によって、渦の模様ができると考えられています。

 Phun では銀河の中心に重い重力源を置き、ダークマターが作る重力ポテンシャルとしました。このため、Phunダークマターは、銀河の中心一点に質量が集中してしまいます。本来なら銀河全体に広がったダークマターを作るべきなのでしょうが、Phun では難しいでしょう。なぜかと言うと、Phunダークマターは星と衝突してしまうからですw

 伴銀河があったり、ダークマターの分布が歪んでいたいるすと、さらに綺麗な渦模様ができると予想されます。

Phun 力学の問題点

時間ステップが固定

 時間ステップが固定されているので、粒子間の距離が近くなると、重力が強くなり、誤差によって粒子が飛んでいってしまいます。これを回避するために、粒子をある程度の大きさにします。粒子の直径以下には近づけないという算段です。

粒子が衝突してしまう

 Phunでは衝突するグループ分けを設定できますが、同じ衝突グループに属さないと重力が働きません。したがって、粒子は衝突してしまいます。本来はすり抜けて欲しいのですが。すり抜け可能になると、ダークマター粒子も計算できるようになります!

 動画でも粒子が飛び散っていますが、この原因は粒子の衝突です。

 粒子が衝突することを積極的に利用して、sticky な粒子のシミュレーションをしたほうが良いような気がしてきた。ネタはありますが、時間がありません(笑)。

計算が重い

 自己重力多体問題では、すべての粒子間の重力を計算するので、粒子数の自乗に比例して計算時間がかかります。本格的な計算では、いろいろな工夫をするようですが、Phunではその余地はありません。動画の粒子数は700個くらいです。

Algodooベータ版

いまなら Algodoo ベータ版が無償でダウンロード可能です。
http://www.algodoo.com/wiki/Algodoo_beta/ja
期間限定だそうです。Algodoo は Phun の発展版です。Phun が Algodoo のプロトタイプというべきかな。