We demonstrate a new, hybrid symbolic-numerical method for the automatic synthesis of all families of translation operators required for the execution of the Fast Multipole Method (FMM). Our method is applicable in any dimensionality and to any translation-invariant kernel. The Fast Multipole Method, of course, is the leading approach for attaining linear complexity in the evaluation of long-range (e.g. Coulomb) many-body interactions. Low complexity in translation operators for the Fast Multipole Method (FMM) is usually achieved by algorithms specialized for a potential obeying a specific partial differential equation (PDE). Absent a PDE or specialized algorithms, Taylor series based FMMs or kernel-independent FMM have been used, at asymptotically higher expense. When symbolically provided with a constant-coefficient elliptic PDE obeyed by the potential, our algorithm can automatically synthesize translation operators requiring $\mathrm{O}(p^d)$ operations, where $p$ is the expansion order and $d$ is dimension, compared with $\mathrm{O}(p^{2d})$ operations in a naive approach carried out on (Cartesian) Taylor expansions. This is achieved by using a compression scheme that asymptotically reduces the number of terms in the Taylor expansion and then operating directly on this ``compressed'' representation. Judicious exploitation of shared subexpressions permits formation, translation, and evaluation of local and multipole expansions to be performed in $\mathrm{O}(p^{d})$ operations, while an FFT-based scheme permits multipole-to-local translations in $\mathrm{O}(p^{d-1}\log(p))$ operations. We demonstrate computational scaling of code generation and evaluation as well as numerical accuracy through numerical experiments on a number of potentials from classical physics.
翻译:我们提出了一种新的混合符号-数值方法,用于自动合成执行快速多极子法所需的所有平移算子族。该方法适用于任意维度及任意平移不变核。快速多极子法无疑是实现长程(如库仑)多体相互作用线性复杂度评估的主要方法。在快速多极子法中,低复杂度平移算子的实现通常依赖于针对特定偏微分方程(PDE)定制的专有算法。若无PDE或专有算法,基于泰勒级数的FMM或核无关FMM虽可使用,但渐近复杂度更高。当符号化给定势函数满足的常系数椭圆PDE时,我们的算法可自动合成计算量为$\mathrm{O}(p^d)$的平移算子(其中$p$为展开阶数,$d$为维度),而基于(笛卡尔)泰勒展开的朴素方法计算量则为$\mathrm{O}(p^{2d})$。这一优势通过压缩方案实现——该方案渐近减少泰勒展开的项数,并直接对“压缩”表示进行操作。通过合理利用共享子表达式,局部展开与多极展开的形成、平移及求值可在$\mathrm{O}(p^d)$操作内完成,而基于FFT的方案可实现多极到局部平移在$\mathrm{O}(p^{d-1}\log(p))\)操作内完成。我们通过经典物理中多个势函数的数值实验,验证了代码生成与评估的计算扩展性及数值精度。