为了优化用户的建模过程,我们须不断努力改进软件的网格剖分功能。就在近期,COMSOL Multiphysics® 软件的四面体网格的生成算法实现了升级。在本篇博客文章中,我们将对生成四面体网格的具体步骤进行讲解,让您深入体验改进的网格剖分功能及其相关特征,同时我们还将探讨如何利用这一功能获得更加精确的仿真结果。
对网格生成器的要求
在实际应用中,我们往往对网格生成器有诸多要求。比如说,生成的网格必须符合几何结构,同时对于生成的网格单元,其尺寸和形状还应达到最优状态。为了使解更容易收敛、结果更加准确,各单元之间的边和角的尺寸应当尽量接近。除此之外,网格生成器还应能在短距离内实现分级,也就是说,能在狭小的空间内的生成小的单元,在宽阔的空间内生成大的单元,同时不会对求解算法产生影响。最后,网格生成器最好能够自动执行操作,并且对于全部类型的几何结构具有广泛的适用性。
COMSOL Multiphysics 中每一个网格剖分操作都可以生成与相应几何结构相符的网格。不过,位于“模型开发器”中自由四面体节点下的四面体网格生成器是唯一一个三维网格生成器,它不仅能完全自动地执行操作,还能应用到全部几何结构。因为四面体网格生成器创建的是非结构化网格(不规则分布节点构成的网格),所以它极其适用于形状复杂、网格大小多变的几何结构。在 COMSOL Multiphysics 中,各种物理场和多物理场都会使用四面体网格,因此网格生成器必须具有强大的灵活性:它应当能生成极细的网格、极粗的网格,并且在弯曲边界上生成分辨率的网格,在狭窄区域剖分各向异性单元。
燃气涡轮的四面体网格。
得益于近期 COMSOL Multiphysics 的软件升级,四面体网格剖分的质量大幅提升,同时仿真结果也更加精确可靠。为了证明这一点,我们将亲手实践,演示四面体网格的生成步骤。
在 COMSOL Multiphysics 中生成四面体网格
大多数的四面体网格生成器可以归为以下三类:
- 基于前沿推进法的网格生成器,即从边界开始逐一增加四面体,最终将铺满整个域
- 八叉树网格生成器,即首先将域分解成八块子网格,组成一个八叉树结构,然后将每一个八叉树单元分割成多个四面体
- 基于 Delaunay 算法的生成器,这种方法生成了一种被称作域的Delaunay 四面体剖分的几何结构,并且具有显著的数学特性
COMSOL Multiphysics 中的四面体网格生成器是一个 Delaunay 网格生成器,其四面体网格的生成过程可以划分为五个主要步骤,我们将在下文中详细介绍。其中第三步和第五步在最新的 COMSOL Multiphysics 5.2a 版本中有了显著改进。下文仅是对各步骤进行演示,因此无需对活塞几何结构执行过于精细的网格剖分。您可以打开 COMSOL Multiphysics 中的“App 库”,从网格剖分教程中查找到这个几何结构。
“自由四面体网格剖分活塞几何”仿真 App 中的几何结构。
1、生成边界网格
在构建四面体网格时,留意一下“进度”窗口,便可以观察到,前 35% 的进程是用来生成边界网格的。但是创建出用于后续的四面体网格剖分步骤的合适边界网格却并非易事。为此,我们必须处理下列几个问题:
- 根据弯曲边界、面上边之间的距离以及域内面之间的距离,对单元尺寸进行调整
- 使单元尺寸在几何结构内平滑地扩展
- 检测自相交的边网格单元和面网格单元,并对这些问题进行解析
- 处理糟糕的参数化 CAD 表面
- 处理虚拟的几何定义
- 创建高质量的三角形
活塞仿真 App的网格,将边界网格的单元尺寸设为“极粗化”。
2、创建边界网格点的 Delaunay 四面体剖分
下一步是创建边界网格点的 Delaunay 四面体剖分,这一步骤会形成由网格点集构成的凸边界网格节点。这些点集具有良好的数学特性,例如点集中的点不会被置于任何四面体的外接球内。在二维模型中,通过使用点集的 Delaunay 三角剖分,可对三角形网格中每个三角形的最小内角取最大值,不过这一属性并不适用于三维模型。这是因为,此方法不能保证边界网格的边和三角形单元作为 Delaunay 四面体剖分中的边和三角形格点,即使对于凸边界网格也不一定适用。我们将在下一个步骤中解决这个问题。
Delaunay 四面体剖分形成的边界网格点构成的凸边界网格节点。
3、使 Delaunay 四面体单元与边界网格相适应
到目前为止,我们已经生成了最终边界网格和边界网格点的 Delaunay 四面体剖分。在第三个步骤中,我们计划将边界网格的边和三角形应用到四面体网格内,这是整个网格剖分过程中对技术要求最为严苛的一部分。
去年,我们专门针对该步骤发布了一个全新的算法,之后又在 COMSOL Multiphysics 5.2a 版本中对该算法进行了改进。在早期的版本中,当对复杂的几何结构剖分网格时,您或许会看到一些错误信息,例如“生成几何面上边界单元边失败”或者“边界剖分中的内部错误”。这类错误正是源于这一步网格剖分环节。在网格剖分功能实现更新后,一旦边界网格的所有边被应用到四面体网格,我们就可以安全地将边界外所有的四面体一次性删除,与此同时,所有与边界网格的三角形相交的四面体也得到了妥善处理。
在上图的左上部分中,灰色表示边界网格,青色表示边界网格点的 Delaunay 四面体剖分。右下角的放大视图显示了数百个与边界网格的边和三角形相交的四面体。在此步骤中,我们对四面体网格进行了优化,使四面体不会与边界网格相交。不过,为了使四面体网格适应边界形状,我们可能需要插入一些额外的点(即 Steiner 点)。
4、通过插入内部点使四面体网格剖分与边界相适应
现在我们已经对整个几何结构进行了四面体剖分,在第一步中创建的边界网格被用作了外部边界,此时的四面体网格仍然不包含任何内部点(除了可能添加过的Steiner 点)。我们的下一步任务便是在四面体网格内部插入一些点,使网格进一步细化,直到模型各处都达到了指定的单元尺寸。为此,我们可以使用常规的Delaunay 细化方法便捷地插入这些内部点。不过由于四面体网格并不能在每一处都满足 Delaunay 剖分的特性,故此阶段仍然需要我们进行一些特殊处理。
图中左上部分显示了完成第三步后四面体网格内部图,在这一步我们仅插入了少量的内部点。右下方部分显示了第四步后相同的内部图,图中域内的四面体网格也符合网格单元尺寸规格。
5、提高细化的四面体网格的质量
至此,我们已经基本完成了网格剖分,但是在将网格交至用户手中之前,我们还须提高四面体网格的质量。每一个四面体单元都可以得到一个质量值,范围从 0 到 1,正四面体的质量为 1,退化到平面上的四面体为 0。正如上文所述,COMSOL Multiphysics 5.2a 版的新算法能够进一步提高网格的质量,新算法还设置有两个额外选项,分别用来避免产生反转单元和过大的单元。
由于网格质量很大程度上是由最差的单元决定的,因此在第五步中,我们将对质量最差的单元进行优化,使网格的整体质量达到可进行常规仿真的水平。新算法具有更多的操作选项,能通过多种方式来提高网格质量,包括点的再定位(通常称为平滑)和拓扑修正操作(例如交换边和面,折叠边和插入顶点等)。通过多次应用上述操作,可在由边界网格定义的域内填充无限个不同的四面体网格,这意味着网格的质量没有最好,只有更好。尽管如此,如果给定的四面体网格不能通过平滑操作来改进最小单元的质量,那么我们很难判断应执行哪一个拓扑操作。为此,有时您必须执行一系列操作(插入顶点、翻转边和平滑)才能最终获得最优的网格。
此算法包含三个优化级别:基本,中等和高。这些级别决定了优化过程的工作量。举例来说,若您选择“基本”级别(默认设置)进行网格剖分,那么在求解时就可能会遇到收敛问题,或者可能因为网格质量差而影响结果的精度。在这种情况下,您需要切换到更高的优化级别来重新构建网格,以获得更好的收敛和更为精确的仿真结果。
质量提高算法提供了三种优化级别(基本,中等和高),它们决定了整个优化过程的工作量。
上方的网格内部图分别显示了优化前(左上),优化等级设为“基本”(中间)和优化等级设为“高”(右下)的质量最差的网格,其中红色四面体的质量值小于 0.1,黄色四面体的值介于 0.1 和 0.25 之间,而灰色三角形用于定义边界网格。
新算法还包含两个选项,分别用于降低生成反转单元的风险和减小最大的四面体的尺寸。请注意,除了上述优势之外,勾选此类选项会导致网格剖分耗时增加,并会稍稍降低网格的质量。
如果几何结构中包含圆角或者其他网格相对粗化的弯曲区域,并且几何形参阶次高于一,您可以勾选避免反转的弯曲单元复选框,这一优化算法可有效减少弯曲时发生反转网格单元的数量。如果过大的网格单元会影响到模型的计算,您可以勾选避免过大的单元复选框,以避免生成大于指定单元尺寸的四面体网格。
改进四面体网格生成器,不断满足用户的仿真需求
生成网格是一个相当容易理解的概念,似乎不过是将一个几何结构分割成一个个由线性形状构成的子结构。但事实上,在生成用于仿真的四面体网格时,我们也许会遇到一些困难:例如一些难以剖分网格的几何形状可能会导致网格生成器出错,或者生成质量较差的单元。但是借助 COMSOL Multiphysics 中新版本的四面体网格生成器,您便能更好地处理这些复杂的几何结构,并进一步优化建模过程。
了解更多有关 COMSOL Multiphysics® 网格剖分功能的信息
- 浏览“COMSOL 博客”中其他有关网格剖分的文章
- 访问“合作伙伴及最新赛事资讯 ”,学习如何使用 COMSOL Multiphysics 中的网格剖分特征和功能
评论 (2)
萍 宋
2017-04-24怎样对两个嵌套的圆柱体模型进行正方体剖分
宇航 秦
2017-04-24宋萍,您好!
感谢您的评论。
模型相关的问题,请您联系我们的技术支持团队:
在线支持中心:www.denkrieger.com/support
Email:support@comsol.com
谢谢!