効率的な重力場の実装


8

私はphysics.stackexchangeについて同様の質問をしましたが、このウェブサイトについては無知でした。

私は基本的に重力場を実装する効率的な方法を探しています。

何千ものオブジェクトが入った巨大な2Dスペースがあります。次に、これらのオブジェクトが互いの重力によってどのように影響を受けるかをシミュレートする必要があります。

オブジェクトをコレクションにソートし、コレクション内の個々のオブジェクトではなく、コレクション外のすべてのオブジェクトをそのコレクションと照合することは可能だと思いました。私はすぐにこれが単に不可能であることに気づきました。複数のオブジェクトの重力場は、1つの質量と距離だけで計算される1つの均一場として表すことはできません。

シミュレーション内のすべてのオブジェクトは、球と見なすことができます。それが合理的に現実的に見える限り、私は近似で大丈夫です。

回答:


5

O(N2)O(N)

N体シミュレーションのもう1つのアルゴリズムはBarnes-Hutです。これは実装が簡単で、おそらくライブラリの実装も利用できます。これは、FMMよりも(漸近的な意味で)効率が悪いと考えられています。

ドメインが周期的である場合は、パーティクルメッシュのEwald加算などを実行できますか?(私はこのアプローチについてあまり知りません。)


私はすでにそれについていくつか読んだことがあり、要素をグループ化しているようです。私のすべての要素は互いにかなり近くなり、処理される質量はかなり小さいので、これはまだ正確ですか?
Jeroen 14年

1
私はそれを使った経験はありません。私はその方法についていくつかの講義に出席しただけです。FMMは堅牢であることが想定されており、十分な精度が得られると、合計の順序が切り捨てられるという一般的な考えがあります(合計の誤差範囲を導出できるため、これらは精度テストに使用されます)。また、精度はソースの分布に依存するものではありません。FMMは、ソースが接近している場合、パーティクルメッシュのEwaldよりも効率的であると考えられています。
Geoff Oxberry 14年

4
すべての個々の質量にはそれに関連付けられた単極場がありますが、質量の合計には純粋な単極場がありません。FMMのポイントは、フィールドの高次モードが距離とともに急速に減衰するため、このフィールドの合計が(比較的低次の)多極子フィールドによって効率的に表現できることです。
Wolfgang Bangerth 2014年

加速度を計算する目的でのみフィールドを使用する場合、そのような制限により、それを行うための可能な方法の新しい範囲が開かれますか?
Jeroen 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.