N-Body Simulation - 如何选择软化因子?

时间:2012-03-01 20:55:15

标签: opengl cuda physics simulation

我正在编写All Pairs N-Body模拟的简化版本。我正在使用CUDA / OpenGL来实现算法并可视化模拟。我假设所有的身体都是半径均匀的球体,这样每个球体的质量就是唯一的差异(假设所有球体都有半径== 1)。现在,我想知道如何在加速度方程中选择软化因子? http://http.developer.nvidia.com/GPUGems3/elementLinks/680equ02.jpg

我在想的是epsilon == 2是一个不错的选择,因为在我的情况下,两个球体碰撞的那一刻。这是一个合理的选择吗?有关如何选择软化因子的简单解释吗?

我已经查看了GPU Gems 3的第31章,但它没有说明所选择的值是什么以及如何选择合适的值。我查看了一些研究论文,但我无法自己浏览这些学术论文。

1 个答案:

答案 0 :(得分:4)

问题的正确软化长度取决于很多事情 - 时间步长,配置,感兴趣问题的规模,积分器的选择等。一般来说,如果你想抑制双体放松,你需要一些功能山丘半径[与物理半径相对,因为它看起来像你想要抑制近距离遭遇的效果,而不是模拟碰撞。]

关于选择最佳软化的问题,请参阅Walter Dehnen's paper(尽管我通过引用来约会自己;可能还有更多最新的参考文献。)