快速多极方法实施的建议?

时间:2013-02-05 13:54:08

标签: algorithm reference physics fastmm

我有兴趣实施Fast Multipole Method来有效地模拟排斥粒子系统。

我发现了很多关于FMM的参考文献,但对于想要完全理解算法的非数学家来说,似乎没有一个非常平易近人。

你能否推荐一个明确解释过程背后的数学的基础参考,并包括假设正确实现的伪代码?

3 个答案:

答案 0 :(得分:3)

我绝不是FMM的专家,但是这java implementation and introduction是迄今为止我发现的最好的来源,用于仔细而缓慢地解释它。本文擅长于在使用它们之前定义术语,并且代码至少可用作参考点。数学仍然很快变得毛茸茸,但事实就是如此:)

A pedestrian introduction to fast multipole methods紧随其后。它没有解释工作FMM实现的实际细节,但它是对基本思想的一个很好的介绍。

答案 1 :(得分:3)

我喜欢short course on FMM。在1D中以FMM开始,而不是使用复变量理论在2D中进行FMM。而且还有使用球谐函数理论的疯狂3D版本,我猜这对于非数学家来说非常困难。但是如果你只需要在2D中使用FMM就可以了。

不幸的是,那里没有伪代码。

但你真的需要FMM的准确性吗?你可以使用Barnes-Hut's algorithm

答案 2 :(得分:0)

遇到与您类似的问题后,我最终编写了一个完整记录的Python快速多极方法实现pybbfmm。我还写了一个简短的mathematics-free tutorial来介绍该方法的工作原理。总之,我认为它们比我能找到的其他任何演示文稿都更加方便。

(meta:尽管这实际上是一个链接,但是OP明确要求一个链接。我已经添加了我认为上一个缺少的内容-库的名称-但我不确定其他方式除了提供名称和链接之外,还可以提供此答案。当然,没有比接受的答案更有意义的链接了。如果这个答案也被删除,我会放弃)