非均匀三角形网格下椭圆问题的代数两网格法

  • 格式:pdf
  • 大小:291.13 KB
  • 文档页数:8

高校应用数学学报 2013,28(4):439—446 

非均匀三角形网格下椭圆问题的 

代数两网格法 

李 明 ,李郴良。 

f1.红河学院数学学院,云南蒙自661100; 

2.桂林电子科技大学数学与计算科学学院,广西桂林541004) 

摘要:针对非均匀三角形网格离散带各向异性系数或间断系数的二维椭圆问题形成 

的多尺度系统,基于极大不相关子集的粗化算法,构造一种插值算子,提出了一种代数 两网格法.数值实验表明新算法的有效性. 

关键词:非均匀三角形网格;椭圆问题;插值算子;代数两网格法 

中图分类号:O241.6 

文献标识码:A 文章编号:1000.4424(2013)04—0439—008 

§1 引 言 

多重网格法是求解偏微分方程常用的一类数值方法,可分为几何多重网格(GMG)法和代 数多重网格(AMG)法.相对于GMG法,AMG法几乎不需要使用问题的几何信息,能够有效处 

理很多复杂问题,包括非结构网格、各向异性系数和变系数等问题,但对于强震荡、间断系数 

和自适应、大变形网格等问题,经典的AMG法(见『1—3])难以有效求解.文献f4—5]指出上述不足 

的原因是这些问题导出的矩阵一般具有如下性质:同一行非对角元素在数值上相差很大 甚至 相差几个、几十个数量级,并称具有这种性质的线性系统为多尺度系统f否则称为单尺度系统). 

针对这一情况,徐小文等人通过将系数矩阵中某些特殊的单尺度性质的连通子块找出,形成单 

尺度子块,然后基于这些连通子块构造特殊的粗化和松弛策略,提出一种基于局部松弛和粗化 

的AMG法(见f4—51).谭敏等人利用网格点之间的几何距离,将所有点分离为各向异性部分和各 

向同性部分,然后再进行粗化,提出了一种各向异性四边形网格下的代数多重网格法(见f6]).但 

此方法需要使用网格节点的几何坐标信息计算节点间的距离. 

为了进一步发展不依赖于多尺度性质的AMG法,本文针对非均匀三角形网格离散二维椭圆 

问题形成的有限元方程,使用极大不相关子集(MIS)来生成粗点集,构造相对应的插值算子,提 

出一种代数两网格法.新算法无需形成单尺度子块,也不用讨论各向同性或各向异性以及节点 

收稿日期:2o12—08—20 修回日期:2013—05—09 基金项目:国家自然科学基金(11161014);云南省科技厅青年项目(2012FD054);红河学院硕博项目(XJ1S0925)

 高校应用数学学报 第28卷第4期 

间的几何距离等情况,新算法流程更为简单.数值实验表明新算法在细层上无需磨光步,具有计 

算量少,计算时间短,稳健性强的优点. 

考虑如下二维椭圆问题 

一 笔 ~ =,, 在 , l :0, 在a , (1) 

其中,是己知足够光滑的函数, , 为大于零的己知系数,r“为足够光滑待求函数, 是一个二 

维凸多边形区域,a 是 的边界. 

使用非均匀三角形网格剖分区域 ,采用线性拉格朗曰有限元进行离散问题(1),记对应的 

有限元方程为 

A1U1=F1 

其中Al=(。巧) 是咒阶对称正定方阵, =(^,f2,・ 向量. 

§2代数两网格法 

粗化算法和插值算子是AMG法的重要组成因素.粗化算法的粗化效果对AMG法的计算效 

率有着重要的影响作用.为了快速形成粗点集,本文采用极大不相关子集(MIS)粗化算法.具体 

如下 

定义2.1[7]在网格图G1中,如果某一(顶点)指标集C1满足如下两个条件,则称之为G1的极 

大不相关子集(MIS): 

条件1.对 中任意一对指标,相应的顶点之间没有边相连. 

条件2.当增加任意一个指标到C1中时, 1不再满足条件1. 

记有限元方程(2)对应的变量指标集合口={1,2,・一,几),使用图论的知识,根据矩阵 1可 以构造与 1对应的网格图G1.由定义2.1可得G1的极大不相关子集(MIS),将其记为粗网格变量 

指标集C1,并将 1中元素按升序排列.记口关于C1的补集为S1=n\c1. 

为了便于下面讨论,引入如下标记 

={J:1aijl≠0,i≠ )为i点的邻点构成的集合. 

孵=C1 n 为i点的邻点中粗点构成的集合. 

=S1 n 为i点邻点中细点构成的集合. 

s=ind(i)为粗点指标i∈C1在粗点集C1中的序号. 

Ic1 I表示粗点集C1中元素个数. 

1 I表示集合 中元素个数. 

易知,集合C1,S1, 非空.由定义2.1可知,若i∈ 1,则Ⅳ 非空.事实上假设 为空集, 

Ni点的所有邻点中都没有粗点,这意味着i作为粗点时,也不会破坏定义2.1条件1,由定 义2.1知 ∈C1,这与i∈S1矛盾. 

下面讨论构造基于MIS的插值算子.方程(2)可写为 

∑。 ^, 

J=1 、 U 2歹 维 佗 是 T 、l, n 2 L /● = l T 、I, 

A 李 明等:非均匀三角形网格下椭圆问题的代数两网格法 441 

即 aiiui+∑aiduj=^,i=l 2一,n 

jCNi 假设粗点集 对应的解 =[UH,1, 日,2, 

之对应点的近似值.即 UH,IC f]T已经求出,则将其作为细网格上与 

72i:≈ 日.ind(0,Vi∈C1 

因 = U ,对于Vi∈s1,式(3)可写为 

nii? ̄i+ 二nijuj+ 二0“ t= ,Vi∈s1 

jeN.:tEN 2 

因为^ 非空,对上式左端∑airutd ̄的 t做如下近似 t∈Ⅳ 

再将式(2)和式(4)代入式(3),移项得 

由41正定可知, ∑ 

≈ ,vt∈ ≈商’吼 

% t≈^一∑吼jUH ) 

j∈N; t UH,ind(j) 

一 , ∈ I I … 

(一 Z aijuH,ind(j)oN?)j Vi E¥1 一 ,

将式(2)和式(5)综合起来 

式(6)可记为 

其中 札日,ind(i) 

上aii(一 E∑Nc + + 

f 

(Pij)似IC f={ 【 

"flu1= uo:≈ +W71 

aikI.Ⅳ l+∑ait 

Ⅱ。tlⅣ l ’ 

c = 姜 

基于上述粗化算法和插值算子,结合文献[8-lO]的思想, ) 若i∈C1 若i∈Sl 

若i∈C1,J=ind(i) 

若i∈S1,k∈Ⅳ ,J=ind(k) 

其它 

若i∈C1 

若i∈S1 

提出如下算法 (2) 

(5) 

(6) % 

≈ 442 高校应用数学学报 第28卷第4期 

图l tpyel(左图,纵轴、横轴方向不同尺度);tpye2( ̄F图,横轴方向不同尺度);tpye3(右图,纵轴方向不同尺度) 

算法1 代数两网格法 

步骤1.生成粗网格矩阵和右端量:AH:=( )TA1 , :=( )T Fl 

步骤2.直接求解AHUH=FH得 ; 

步骤3.插值:u10:=P + 1; 

步骤4.若 <£1,令 := ,否则磨光 次: :=G (uo). 

其中G为磨光算子,本文取£1=10_。。. 

§3数值实验 

为了验证算法的有效性,本文选用的通常的代数二重网格法作为对比算法.其粗化算法与 本文粗化算法相同,其插值算子 ̄lflT[1l1 

I 1, 若i E Ci,J=ind(i) P=(Pij) IG l={丽1, 若i∈S1,k∈ ,J=ind(k),m=l l 【

0, 其它 对比算法的前后磨光步数均取3,初始值为零向量,对比算法的终止条件为相邻两次近似 

解的误差小于10-6或调用次数达 ̄,JlO0次.本文算法与对比算法的磨光算子G为共轭梯度法.使 

用MATLAB2008软件编写数值实验的程序代码,并在处理器为2.4G,内存为2G的台式电脑上进 

行计算. 

采用用图l中网格离散问题区域,使用三角形有限元离散算例1和算例2.约定如下标记: “type”为网格类型,图2和图3中,“Algorithm 1”与“Compare algorithm”分别表示本文算法1和 

对比算法.“ ”表示非均匀网格中最大单元与最小单元的直径之比,“ , ”为问题(1)中的 

系数,nUmgrid为网格单元总数,II札一 1Io。为问题解札与算法求出的数值解 的无穷范数误差, 

“u”为对比算法的迭代次数,“ ”为算法1步骤4中磨光步数,“cpu”为算法的计算时间(秒). 

算例1各向异性问题 

右端量f=一 (一sin(y)e (1一X2)(1一Y。)+4x sin(y)e (1一Y )一2sin(y)(1一ex)(1一y2))一 

(一sin(y)(1一e )(1-x )(1-y )--4cos(y)(1--e )(1一 。)y-2sin( )(1一e )(1一 )), ≠ 是 各向异性系数,真解 =sin(y)(1一ex)(1一X2)(1一y2),区域 :(0,1)×(0,1). 

算例2间断系数问题 

右端量,= 丌2(1一c0s (7rX)一sin(7rX)_eSin(Trx),。s—in(cT ry)。,间断系数为 = ={ : 

真解钆=sin(丌 )(南一1),区域 :(0,1)×(0,1).

 李 明等:非均匀三角形网格下椭圆问题的代数两网格法443 

图2例题l,tpyel ̄,鲁 =100,Q =1;左图:迭代步数口s参数a (numg id=8192);右图:迭代步数"s残 量(a =10 ,humgrid=32768) 

图3例题1,tpyel ̄,Q =1, hm in=100,左图:IIu—u;lloo us参数 (numgrid=32768);中图:I}u—U{lloo V8单元数nu grid( =10 ):右图:迭代步数"s单元数numgrid(or =10。) 

图2(左图)中,横轴表示参数 的取值,纵轴为算法1的磨光步数或对比算法的迭代次数.可 以看出,当参数 依次取1,10,10 ,…,l0 时,对比算法至少需要100次迭代,才能得到预定精度 

的数值解.而本文算法1,不需要任何磨光步.这说明算法1的磨光步数不受参数 取值的影响. 

图2(右图)中,横轴表示迭代次数(或磨光步数),纵轴为表示算法1或对比算法对应的残 量.可以看出,对比算法消去残量的作用并不明显,而算法1无需磨光步,对应的残量近似为 

零f≈10-10).这说明算法1只需要插值就可以得到有限元方程的高精度近似解. 

图3(左图)中,横轴表示参数 的取值,纵轴表示算法1或对比算法求出的数值解 与问题 真解 的无穷范数误差.可以看出,当参数 依次取10~,10_。,…,10 时算法1的计算精度明显 

高于对比算法. 

图3(中图)可以看出,当网格单元数量增加时,即加密网格时,算法1的计算精度逐渐增加,明 

显优于对比算法. 

由图3(右图)可以看出,算法1的磨光步数不受求解规模的影响,明显少于对比算法的迭代次 

数. 

从表1至表4可以看出: 

1)磨光步数或迭代次数方面: 

算法1在细层上无需磨光步,也就是仅通过插值算子,将粗层上的解插值到细层,就可以得 到满足业 <E1的数值解 .而对比算法的迭代次数至少需要100次才能达到预定的计 

算精度.