06_2多层快速多极子技术MLFMM
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近远相互作用介绍
• 下边来分析两小长方体A和B的远相互作用。设A和B内分别都有100个未知数, 如图1所示。如果用通常方式来执行他们之间的相互作用,则需要100*100次计 算机操作。而快速多极子技术是用一种新的方式来执行A和B之间的远相互作用。 其基本思路是将整个相互作用过程分解成三步:聚集、转移、发散。聚集就是 将分布在A内的100个未知数所对应的等效电流聚集在A的中心。其目的是获得 一组具有下列转移特性的新函数:A内所有等效电流对远处的作用可以由执行 这组函数的转移完成;转移就是将聚集过程中得到的一组函数由A的中心转移 到B的中心;发散就是将转移到B中心的那组函数发散到B内所有100个未知数 所对应的等效电流上,从而完成A和B的远相互作用。此种作用方式由图2表示。 下边会阐述平面波函数具有上述转移特性,而且在能够保证高精度情况下,所 需平面波个数少于原未知数个数。这就是说,完成新函数从A中心到B中心的转 移,只需要少于100次的计算机操作。这就是快速多极子技术能够加快完成A和 B远相互作用的原因。作用过程的分解来源于积分方程中格林函数的多极子展 开,故此项技术称为快速多极子技术。由于格林函数的多极子展开在近相互作 用时很难达到满意精度,则这种新作用方式只适用于远相互作用。这也就是我 们将相互作用分成近相互作用和远相互作用的原因。
快速多极子技术的数学原理
ij j i 离散积分方程系数矩阵的元素可表示成 (2.71) 这里P(G)表示作用在格林函数G上的算子。假设{x}和{y}分别代表相距较远的两个小长方体A、B中的 的未知数。那么{x}对{y}的作用可表示成 {y}=[Z]{x} (2.72) 快速多极子技术将此矩阵和矢量相乘分解成聚集、转移、发散三步骤进行。下边具体介绍此分解过程。 很简单,主要靠下面两个数学恒等式。第一个便是关于格林函数的加法定律 e jk |r d | (2.73) jk (1)l (2l 1) jl (kd )hl (2) (kr ) Pl (d r ) |rd | l 0 (2) 这里jl是第一类球面Bessel函数,hl 是第二类球面Hankel函数,Pl是Legendre多项式,以及d<r.值得 注意的是,在l<z时,函数jl(z)和hl(z)幅度大致保持常数;在l〉z时,jl(z)衰减非常快,而hl2(z) 递增非常快。这样当d<<r时,式(2.73)能在保证精度下截断。这样展开(2.73)便可以写成 L (2.74) e jk|r d | jk (1)l (2l 1) jl (kd )hl (2) (kr ) Pl (d r ) |rd | l 0 通常取L=kd+2ln(kd+pi)就能保证较高精度了。第二个恒等式便是式(2.74)中jlPl的平面波展开
远相互作用示意图
100 个 未知数
100 x 100次计算机操作
100 个 未知数
图1:远相互作用常规实施办法示意图
远相互作用FMM实施方法
小于100个平面波 小于100个平面波
O’
转移过程 100次计算机操作
O
聚集过程 100x100次计算机操作 100x100次计算机操作
发散过程
图2:远相互作用FMA实施办法示意图
•
•
快速多极子技术的基本思路
• 大家都知道,迭代法的运算量主要取决于矩阵与矢量相乘的运算量。从物理意 义上看,矩阵与矢量相乘虽实际上是源点对场点的作用,然由于整个考虑的源 点和场点是重合的,因此也可以形式地认为是等效电流之间的相互作用。
•
快速多极子技术的基本思路是首先将未知等效电流分成小组。分小组可以按如 下方式进行:首先用一个适当大小的长方体将物体刚好包住,然后将此长方体 分成小长方体(小长方体究竟多大合适,下面再作具体分析),并将非空小长 方体标出储存。此处非空小长方体是指其内有未知等效电流的小长方体,也就 是被物体边界相割的小长方体。对任何一个非空小长方体,其他的非空小长方 体可以分成两类:一类为近相互作用,一类是远相互作用。通常,两小长方体 中心之间的距离小于半个波长的为近相互作用,否则为远相互作用。
小长方体多大合适
•
•
这里我们讨论小长方体多大合适的问题?
由上述分析可以知道:转移步骤所需计算量很小。然而,聚集和发散步骤并非如此。实 际上,将原来的100个未知数所对应的100个基函数聚集成大致100个平面波函数,需要 100x100次计算机操作;将100个平面波函数发散给100个未知数所对应的100个基函数, 也需要100x100次计算机操作。因此,如果只考虑两个小长方体的远相互作用,快速多极 子技术所需计算量是超过通常方式的计算量。然而,当我们考虑100个小长方体的远相互 作用时,情况就不同了。此时有100x100=10000个未知数,用通常方式完成它们的相互作 用需10000x10000次计算机操作。如用快速多极子技术,每个小长方体中的聚集需 100x100次计算机操作,现有100个小长方体,因此整个聚集需100x100x100次计算机操作。 同样道理,整个发散需100x100x100次计算机操作。至于转移步骤,因为完成一次转移需 100次计算机操作,现有100个小长方体,需100x100次转移,因此整个转移也需 100x100x100次计算机操作,故用快速多极子技术完成整个相互作用需3*100x100x100次 计算机操作,大大少于通常方式的计算量。由此可见,小长方体尺寸不能过大,因为过 大会导致聚集和发散两步骤地计算量过大;小长方体尺寸不能过小,因为过小会导致转 移步骤的计算量过大。严格来说,假如有N个未知量,分成M组,这样每组大致有N/M个未 知数。根据上面分析,聚集和发散步骤所需计算机操作都是O(N2/M),转移步骤需O (NM)次计算机操作。因此完成整个相互作用需要O(N2/M+MN)次计算机操作。不难知 道,在M=N1/2时,完成整个相互作用需要的计算机操作次数最少为O(N3/2)。不难分析, 此时的内存需要量也为O(N3/2)
FEKO Suite 5.5 基本算法介绍
快速多极子(FMM) 多层快速多极子技术(MLFMM)来自FMA overview
•
我们知道解线性方程组的方法可分为两类:一类是直接法,如高斯消元法等; 一类是迭代法,如:共轭梯度法等 用矩量法(MoM)求解线性方程组,它的系数矩阵是满秩的。如用直接法求解, 则计算机内存需要O(N2),运算量达O(N3);如用迭代法求解,内存一样 需要O(N2),而每次迭代的运算量达O(N2)).如此之多的内存需要量,如此之 大的运算量,大大限制了矩量法的应用范围,在90年代以前,矩量法仅仅适用 于电小尺寸物体(物理尺寸/工作波长< 10)。 20世纪90年代以后,情况发生了改变,目前矩量法已可以计算相当大的电大尺 寸物体,这主要归归功于Rokhlin提出的快速多极子算法,这是一种减少内存需 求,加快矩阵和矢量相乘的技术。