任意平面区域的高质量有限元网格自动剖分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第21卷 第3期应用力学学报Vol.21 No.3 2004年9月CHINESE JOURNAL OF APPLIED MECHANICS Sep.2004
文章编号:1000 4939(2004)03 0125 04
任意平面区域的高质量有限元网格自动剖分
李梅娥 周进雄
(西安交通大学 西安 710049)
摘要:实现了任意平面区域的高质量三角形有限元网格自动剖分。初始化时利用广度优先搜索查找孔及凹槽中需删除的三角形,不需定义有向边界,可十分方便地定出实际剖分区域;给出了一种方便、快捷的点定位法,可大大提高程序运行速度;利用Delaunay网格优化算法实现了对三角形形状的控制,可使三角形最小角达到35 ;分割坏三角形时,按最小角由小到大的顺序处理,使三角形网格在满足质量要求的同时网格数量较少。
关键词:高质量三角化;Delaunay优化;任意平面区域
中图分类号:TB115 文献标识码: A
1 引 言
在有限元分析过程中,三角形有限元网格应用最广,如何快速、高效地生成高质量三角形网格是人们研究的重要课题之一。衡量三角形网格质量的常用指标有三角形最小角、最大角、边长比等。在有限元计算中,三角形网格最小角过小,会增大离散误差,降低求解精度,甚至导致病态代数方程组,因此,三角形形状应尽量接近正三角形,避免尖角。
最早可以控制三角形形状的算法是由Baker等人[1]提出的,该算法可保证生成的三角形网格没有钝角,即所有角度都不超过90 ,且最小角不小于30 。随后又出现了一些基于四叉树的三角形形状优化算法[2]。上述方法都使用了背景网格,且生成的网格数量较大。1995年,Ruppert提出了一种完全不同的网格形状优化方法,称为Delaunay优化(Delaunay refinement)[3],这是因为该算法在优化过程中仍保持Delaunay三角化性质,选取插入点位置时也遵照Delaunay三角化准则。该方法具有以下特点:不需要背景网格,算法简单、易实现;在满足相同网格质量要求的前提下,生成的网格三角形数量少;生成的网格没有方向性。
本文利用Delaunay优化算法实现了对三角形形状的控制,并在确定计算区域、点定位等几个方面进行了改进,实现了任意复杂平面区域的高质量有限元网格剖分。
2 初始三角形网格形成
平面直线图PSLG(Planar Straight Line Graph)是任意平面区域的归一化描述,因为任何二维曲线均可以使用小直线段进行拟合。PSLG由一个点集和线段集组成,且线段的端点必须包含在点集中,这些线段称为约束边。本文的有限元网格自动剖分就以PSLG描述的任意平面区域作为研究对象。
初始三角化就是将PSLG点集内的点作为三角形的顶点,在约束边界给定的区域内形成一组很粗的三角形。
首先采用Lawson逐点插入法(Incremental In sertion Algorithm)将PSLG点集内的点联接成Delaunay三角形网,即无约束Delaunay三角化。
其次,插入PSLG中的约束边线段。较常用的方法是通过对角线交换去掉所有与该约束边相交的
基金项目:国家自然科学基金项目(项目编号10202018) 来稿日期:2003 01 10 修回日期:2003 04 11第一作者简介:李梅娥,女,1972年生,西安交通大学材料科学与工程学院讲师,博士;研究方向:铸造凝固过程宏、微组织数值模拟
三角形棱边,最终使得该约束边成为三角形网中的一条或几条边,并恢复约束Delaunay三角化[4]。
上述过程都是在PSLG给定点集的凸包中进行,但实际剖分区域可能并不是凸多边形,而且多边形内部可能有孔,因此,需删除给定剖分区域以外的多余三角形,包括孔及凹槽中的三角形。本文采用广度优先搜索查找孔及凹槽中的三角形,即对任一多余三角形,分别判断它相邻的三个三角形是否也为多余三角形,再分别对这三个三角形的相邻三角形都进行判断,重复这一过程,直到遇到约束边。因此,对孔而言,只需给出孔中某一点的坐标,找到该点所在的三角形,即可找出孔中所有三角形;对凹槽的处理也是如此,对凸包边界上某一三角形而言,若它在凸包边界上的边不是约束边,表明该三角形需删除,从该三角形开始,可找出该处凹槽中的所有三角形。采用上述方法不需定义有向边界,可十分方便地定出实际剖分区域。
3 点的定位
在三角化过程中,判断某一点位于网格的哪一个三角形中是程序中占用时间比例较大的操作之一,因此其运行效率对程序整体速度十分重要,如果每定位一个点时对所有三角形都进行判断,势必浪费大量时间,为此本文提出了一种比较好的点定位算法。
点定位时,从某一已知三角形开始查找,进入一个三角形后,可以从另两条边离开这个三角形,由哪一条边离开采用如下方法判断:如图1,若由BC边进入ABC,先判断P与边AB、AC的关系,若点P 位于有向线段AB的右侧,则由AB边离开,如P1点;若点P位于有向线段C A的右侧,则由AC边离开,如P2点;若上述两条件均满足(如P3点),则经过A点作一条垂直于BC的直线,根据点在该垂线的哪一侧来确定由哪一条边离开。由于P3位于垂线右侧,因此,从AC边离开。图2为查找点P所在三角形的过程示意图。
由于先后插入的点多数情况下相距较近,为提高查找效率,将最后找到的三角形记录下来,作为下次查找的起始三角形。
4 网格优化方法
初始三角形网格形成以后,需要对网格进一步
优化,使其满足形状和尺寸要求。
图1 点定位示意图图2 查找P点所在的三角形4 1 Delaunay优化算法
在任一三角形网中,若某结点位于以某约束边界线段为直径的圆内或圆上,而且该点对该约束边可见,就称该点侵入(encroach)了该约束边,该约束边称为被侵入边(encroached segment)[3]。
Delaunay优化算法是通过不断插入结点,使所有三角形都满足用户指定的形状或尺寸要求。在插入结点时根据以下两点进行:
1) 如果一条约束边被侵入,就在其中点处插入一个结点,将该约束边分割为两条较小的约束边,并通过对角线交换恢复Delaunay三角化(如图3,其中粗实线代表约束边);
2) 如果某三角形形状或尺寸不满足要求,称该三角形为坏三角形,在其外接圆圆心处插入结点,并恢复Delaunay三角化,如图4。由Delaunay三角形空外接圆性质,该操作必然使得该三角形被删除;但如果插入点侵入某约束边,就不插入该点,而是分割所有被该点侵入的约束边。
图3 分割被侵入约束边
图4 去除坏三角形
可以证明[5],如果T是所有边界由约束边组成的某平面区域的Delaunay三角剖分,且T没有被侵入约束边,则T中任意三角形的外接圆圆心必然位于T 内。因此,分割被侵入约束边实质是清除了外接圆圆心在剖分域外的三角形,使得随后处理坏三角形
126应用力学学报第20卷