为什么将八进制用于多极空间分解?


18

在快速多极子方法(FMM)的大多数(全部)实现中,八叉树用于分解相关域。从理论上讲,八叉树提供了一个简单的体积边界,这对于证明FMM的O(n)运行时很有用。除了这个理论基础之外,使用Octree替代其他树或trie数据结构是否有好处?

使用八叉树确定交互列表可能会更容易,因为单元会知道其直接邻居。但是,使用像Dual Tree Traversal这样的更具动态性的树遍历,则不需要交互列表。

另一种可能是kd树。理论上的一个可能缺点是,施工需要昂贵的中值发现操作。但是,有些kd树的版本不需要在构建过程中求中值-尽管空间分区效率较低。在实现方面,kd树非常简单。

一个甚至更根本的选择可能是R树

所以,我的问题是:什么使八进制成为FMM的最佳选择?


4
我认为这使得确定交互列表(哪些观察者在哪些源的遥远领域)特别容易。
rchilton1980

使用任何形式的层次空间分解,确定交互列表都应该非常容易。
本汤普森

1
我同意您的观点,八叉树在理论上很容易分析。其他快速求和算法(例如矩阵(FMM的代数概括))使用不同的树,例如几何二等分或基于聚类的拆分。H
user2457602 2014年

1
我不是专家,但是也许八叉树具有更多“对称性”这一事实起作用?八叉树中的分区规则地排列并且具有相同的正方形形状,与例如kd树相比,可以帮助进行多极扩展。
Jannis Teunissen '16

八进制是域分解在三个维度上的自然结果。
gpavanb '16

Answers:


3

上面的注释给出了使用八叉树的一些很好的理由(即,与更一般的正交二等分相反,将每个维度的计算立方递归减半)。计算交互列表的对称性和简单性是一大优势。

我认为,八叉树带到桌子上的最重要的特征可能是,通过一个或多个“缓冲区”的极为简单的良好分离性准则,系统地满足了独立于几何形状的远区相互作用的FMM承保定理盒子。换句话说,在非病理情况下,势场的FMM和表示可以保证以递增的顺序收敛。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.