1. 结构化网格误区
在数值模拟中,一看到整齐排列的六面体网格,就理所当然地认为那是结构化网格,比如,用Ansys mesh画出了结构化网格,因为Ansys mesh画的六面体网格"看起来像"结构化网格。
但事实是:结构化网格≠六面体网格
2. 什么是结构化网格?
所谓“结构化”,并不是说网格“看起来整齐划一”,而是指其内在的拓扑结构是可预测、可索引的。
简单来说:结构化网格是一种可以通过规则的 i、j、k 索引系统来唯一确定每个网格单元的位置,并推导出它的邻居关系的网格。
比如二维中,一个单元的索引是 (i, j),那么它上方的单元就是 (i+1, j),左边的单元是 (i, j-1)……
不需要坐标,不需要搜索,只需要索引偏移,就能知道所有相邻单元的位置。这样的网格就像 Excel 表格一样规律,计算机可以高效地存储、快速地处理、轻松地并行加速。
关键点:
-
结构化网格通过索引号定位;
-
哪怕网格形状规整,如果索引无序,连接信息不能自动推导,那就不是结构化网格。
3. 非结构化网格是什么?
了解结构化网格之后,就更容易理解它的“对立面”——非结构化网格。
当面对复杂几何体,比如涡轮叶片、汽车外形、发动机舱等,你很难把区域划分成规则的格子阵列。这时,结构化网格就无能为力了。于是,非结构化网格应运而生。
非结构化网格的特点:
- 不再依赖索引,而是用节点、边、面、单元之间的“连接表”来描述拓扑;
- 查找相邻单元要靠查表,而不是索引偏移;
- 支持任意形状:三角形、四边形、五边形、多面体都可以;
- 自动化程度高,适应复杂几何非常方便。
当然,这也带来了存储冗余、查找效率低、边界层控制弱等问题。但在工程中,划分效率和几何适应性更重要。
- 结构化网格的意义何在?
既然结构化网格这么“挑剔”,那为什么还在讲它?
答案是它有着非结构化网格难以比拟的数值优势,结构化网格的主要优点包括:
-
计算效率高:规则索引,便于数组存储与向量化处理;
-
精度更好:对齐流向的网格减少数值扩散;
-
内存开销小:不需要存储复杂连接表;
-
边界层控制强:可以精确控制网格生长率和厚度,轻松实现 y+ ≈ 1。
很多经典CFD程序(如 NASA 的 OVERFLOW、NSU3D 等)都是基于结构化网格开发的。
早期计算机性能不行,使用结构化网格可以增加计算效率。但随着计算机的发展,不需要这样节省性能了。
5. 但为什么现在工程中主流还是非结构化网格?
现实永远比理论复杂得多。
虽然结构化网格优势明显,但它有一个致命的短板——太难画了!
要在复杂几何中做结构化网格,你得:
- 先把几何拆成多个规则 block;
- 每个 block 保证网格对齐;
- 每个 block 之间要匹配单元数量和拓扑关系……
- 一个复杂几何体,可能需要手动划分上百个 block,时间成本极高,而且修改不便。
因此,随着计算机性能的发展,我们宁愿多花一点算力,也要省掉繁琐的网格划分流程。这就是非结构化网格在工程中迅速普及的根本原因。
6. 六面体网格就是结构化网格吗?
很多人看到六面体网格,就理所当然地认为那是结构化网格,其实这是最大的一类误解。
我们再强调一次:结构化网格 ≠ 六面体网格;
六面体网格也不一定是结构化网格。六面体只是网格的形状,结构化是网格的拓扑排列方式。
例如:
在 ICEM 中用多块结构规则划分出的六面体网格,是结构化;
在 ANSYS Meshing 或 Fluent Meshing 中自动生成的六面体网格,虽然外形整齐,但单元编号、连接全靠查表,是非结构化!
7. 哪些软件能生成真正的结构化网格?
实际上,经常用的画网格软件都无法画出结构化网格,比如Ansys Mesh和Fluent Meshing。下面总结一下:
此外,还有一些高端商业工具(如 Pointwise、GridPro)专注于生成结构化网格,主要用于航空航天等高精度场景。
8. 为什么 ICEM 中的结构化网格最后还是要转成非结构化?
这又是很多人疑惑的点:明明在 ICEM 中用了结构化划分,为什么导出到 Fluent 里就变成“非结构化网格”了?
答案是:结构化/非结构化不仅是网格本身的划分方式,还与求解器内部的数据结构有关。
目前主流求解器(如 Fluent、Star CCM、CFX)采用的都是非结构化求解算法。这类算法对网格连接方式没有要求,适配性强。为了适应这些求解器,结构化网格在导出时也要转成非结构化格式(如 .msh)。
这个转换不会改变网格的几何或质量,只是改变了它的存储和连接方式。
所以目前结构化网格存储形式并不能增加计算效率,结构化网格的优势就是网格质量比较高。