,+κx1+砖 (1614) (1615) 0 (16.16) (H,B)2,=0(0,0 (1617) lim u(z, y, i)=U(x, t) (618) 这里(#,)表示速度分量,表示祸度,U为无穷远处的速度 在润片方法中,当时间r△:时,涡由线性集中函数逼近 x,x)一∑ (x))6((x2)一x2), 这里5是第j个涡片的强度,(x)(x))是它的中心,b是光 滑函数在 Chorin[2]中取为 x/l,|x|≤l, br(x) (16.19) 其它, 参数l是涡片长度,由(16.19)定义的片长为2 由(16.15),(1.618)可从§导出a (x1,x)一U(n,△)+∑5bx1一(斯) H((x2)}-x 这里H(x)为 Heaviside函数,利用(1.6.16),(1.6.17)可把表 示成,的积分,利用中心差分逼近U,可得 (x1,x2) 0(,△)n-2 (x))一b(x nin(x1, (x2)s. (16.20) 对内部,运用第三节的随机游动涡团方法与 Anderson的 局部校正方法,我们可以得到有粘情形的快速算法。 S. Baden利用局部校正方法,并作并行化处理做了大涡量 计算 34
63多展开方法 Anderson的局部校正方法是建立在CIC( Cloud in Cel) 方法上的。他把远处的涡团看作涡点来计算,而对近处的润团直 接计算。O. Greengard和 Rokhlin对质点法提出了一类快速 算法,质点法不仅在流体力学中运用,在等离子体物理( Plasma basics),天体力学( celestial mechanics)和分子动力学中也是 常用的方法 假设二维物理模型中有N个质点,其中一质点位于x∈R2, 对任一点x∈R2,x≠x,由位于x的质点产生的位势为 lo g(‖x-x 速度场(电位场)为 我们知道中x0(x)在不包含x的区域内是调和的,这个性质 是我们构造快速算法的理论源泉。 下面先举一个简单例子说明多极展开方法能节省计算量。设 有m个质点q1,……,q位于x1,……,xnCC,y……,y。为C中另 点集,我们说点集{x;}与{是真分离的是指存在点x,y∈C 和实数r使得 x;-x!< ly: -yol <r yo >31 R 图3平面上真分离集 为了计算质点{x;}在ty}产生的势,需要求
中;(y;),=1 直接计算需计算量为O(nm),现在我们先求点{x}在x的P 项多极展开系数 Q-∑,a-∑二1-),1≤k≤P 这需要计算量为O(mp)然后再求在y的P项多极展开 φ;y)≈glog(y;-x)十 这需要计算量为O(nP),总的计算量为O(m+n).由 Greengard和 Roklin口中定理21可知,误差为 x ri)-elog(y;-*)-> i yi lp ≤A (1621) 2 为了达到E的精度,只需取p一-long2E量级就行了,从而计算 量约为O(m)+O(n),当m,n很大时就大大地减少了计算量 快速多极展开算法的总体思想是利用多极展开计算各种空间 尺度的不同簇质点之间的相互作用,从而达到节省计算量的目的 下面我们将介绍多极展开算法 为了简单起见,我们假设计算区域为以原点为中心,边长为1 的方块,其中包含N个质点,下图显示的附近的8个方块也将有 用,且忽略边界影响。 固定精度E,我们选取p〓-log2E, 由于需要计算相互作用的各簇质点都是真 分离的,从而由误差估计(1621)得出的截 断误差为2-,它在期望的精度允许范萬 之内。为了满足这些条件,我们引入刚格 及附近的用期方块,且方块的系统如下,把计算区域分割成越来越小 中心在原点,面积为1的区域(如图5),阏格的第0层为整个区 35
算0层 「口 第2层 第3层 图5计算方块及加紐的3层 域,第l十1层是通过把第l层的每一区域分成相等的4个部分 (称为该方块的子方块)而得到,从而第L层的不相交方块有4 个 为了描述算法,我们先介绍下面几个记号:φt,;:包含在第l 层第氵个方块内质点产生的位势关于该方块中心P项多极展 开。,;在第l层第i个方块及除了离它最近邻域之外的所有 质点产生的位势在该方块中心的P项局部展开。1,在第L层 第讠个方块的父母方块及除了父母方块最近邻域之外所有质点产 生的位势在该方块中心的P项局部展开.相互作用表:对第层 第i个方块,由它的父母方块最近邻域中与第i个方块真分离的 子方块组成。 假设在第l一1层,已知局部展开-1 ∑a(z-z) 我们可以把展式-转换到第讠个方块的子方块上去
习(-4)-(习( 则对第l层第j个方块可得到亟,;,为了得到,我们需要相 互作用表,把相互作用表中的方 块的多极展开 φ(x)一a0log(z一如) 转换成第j个方块的局部展开 这里 图6第i个方块的相互作用表,用 ”作记号的方块是与第i个方决真分 b一∑( 离的,且它在第i个方块的父母方块最 近邻域内 - olog(%o) 和 l十k一1 由于我们不考虑边界的影响,,,为零,我们从第2层开始 考虑。 快速多极展开算法描述如下: 选择加细的层数n≈log4N,精度6,令p≈-log2e 第一步:在最细层的每一个方块内,形成由该方块内质点产 生的位势关于该方块中心的多极展开②n 第二步:在粗层形成关于每一方块中心的多极展开,每一层 式表示由该方块内质点产生的位势。具体做法是把每一子方块的 多极层式 log(z-)十 转换成关于该方块中心的多极展开式