非结构网格的自白
我叫非结构网格,英文学名是unstructed mesh。其中典型的形态为2D中的三角形网格及3D中的四面体、三棱柱、金字塔网格。我的大哥是结构网格。之所以他是我大哥,主要原因是他出生比我早。我和他的主要差别并非外形,而是体现在数据结构上。也就是说,2D几何中,大哥的形态可以是三角形网格,我的形态也可以是四边形网格。所以,以貌取人是绝对不可取的。大哥出生得早,这和当时的计算硬件以及算法的发展是有关系的。当时计算机内存比较小,只能进行小数量网格的计算,而当时的计算算法,又多采用的是差分算法,因此采用结构网格进行计算是非常合适的。然而,现实世界的复杂性却对网格提出了更高的要求。比如说复杂的几何,如果采用结构网格,往往难以进行剖分。这时,由于计算机硬件的飞速发展,大容量内存的出现,导致了我的诞生。我的一个最主要的优势在于几何适应性好。可以毫不夸张的说,没有俺适应不了的几何。当然,我的出现与算法的发展也是分不开的。在固体计算中,有限元法逐渐取得了优势;流体计算中,有限体积法也逐渐的确定了领导地位。这两种算法对于我的出现功不可没。
虽然我也具有一些缺点,比如无法很好的处理粘性问题,比如网格填充效率不高。但是综合来看,我的优势还是很大的,比如由于网格节点间无需固定规则,因此在网格自适应方面,我的能力要远强于大哥结构风格。随着计算机技术的发展,我的一些缺点也能在一定程度上得到改善。比如粘性问题,常常采用棱柱网格予以解决。而填充效率低主要体现在生成的网格数量过多,但是随计算机技术的进步,这些都不是问题。
非结构网格的生成算法 当前最主要的生成算法有:
阵面推进法
基本思想:
· 首先将待离散区域的边界按需要的网格尺度分布划分成小阵元(二维为线段,三维是三角形面片),构成封闭的初始阵面,然后从某一阵元开始,在其面向流场的一侧插入新点,或在现有阵面上找到一个合适与该阵元连成三角形单元,就形成了新的阵元。将新的阵元加入到阵面中,同时删除被掩盖了的旧阵元,以此类推,直到阵面中不存在阵元时过程结束。
优点:
· 初始阵面即为物面,能够严格保证边界的完整性;
· 计算截断误差小,容易生成网格;
· 引入新点后易于控制网格步长分布,且在流场的大部分区域也能的得到高质量的网格。
缺点:
· 每推进一步,仅生成一个单元,效率低。
Delaunay三角划分
基本步骤:
· 将平面上一组给定点中的若干个点连成Delaunay三角形,即每个三角形的顶点都不包含在任何其他不包含该点三角形的外接圆内,然后在给定的这组点中取出任何一个未被连接的点,判断该点位于哪些Delaunay三角形的外接圆内,连接这些三角形的顶点组成新的Dalaunay三角形,直到所有的点全部被连接。
优点:
· 具有良好的数学支持;
· 网格生成效率高;
· 不易引起网格空间穿透;
· 数据结构相对简单。
缺点:
· 需要在物面处进行布点控制,以保证边界的一致性及物面完整性,避免物面穿透。
四叉树(2D) /八叉树(3D)算法
基本步骤:
· 先用一个较粗的矩形(二维)/立方体(三维)网格覆盖包含物体的整个计算域,然后按照网格尺度的要求不断细分矩形(立方体),使符合预先设置的疏密要求的矩形/立方体覆盖整个流场,最后再讲矩形/立方体切割成三角形/四面体单元。
优点:
· 网格生成速度快;
· 易于自适应;
· 可以方便地同实体造型技术相结合。
缺点:
· 复杂边界的逼近效果不甚理想,生成网格质量较差。
阵面推进法与Delaunay三角划分
基本步骤:
· 从边界网格出发,内部的点通过阵面推进法生成,然后利用Delaunay算法对这些点进行逐点插入,不断重复以上步骤,直到网格尺寸达到要求。
优点:
· 网格质量好;
· 边界逼近效果好;
· 网格格生成效率高;
· 具有良好的数学支持。
缺点:
· 对于边界风格的依赖性较大,边界网格的质量直接影响网格划分结果。
来源:新浪流沙CAE的博客
页:
[1]