聊聊结构化网格的本质

1. 结构化网格误区

在数值模拟中,一看到整齐排列的六面体网格,就理所当然地认为那是结构化网格,比如,用Ansys mesh画出了结构化网格,因为Ansys mesh画的六面体网格"看起来像"结构化网格。

但事实是:结构化网格≠六面体网格

2. 什么是结构化网格?

所谓“结构化”,并不是说网格“看起来整齐划一”,而是指其内在的拓扑结构是可预测、可索引的。

简单来说:结构化网格是一种可以通过规则的 i、j、k 索引系统来唯一确定每个网格单元的位置,并推导出它的邻居关系的网格。

比如二维中,一个单元的索引是 (i, j),那么它上方的单元就是 (i+1, j),左边的单元是 (i, j-1)……

不需要坐标,不需要搜索,只需要索引偏移,就能知道所有相邻单元的位置。这样的网格就像 Excel 表格一样规律,计算机可以高效地存储、快速地处理、轻松地并行加速。

关键点:

  • 结构化网格通过索引号定位;

  • 哪怕网格形状规整,如果索引无序,连接信息不能自动推导,那就不是结构化网格。

3. 非结构化网格是什么?

了解结构化网格之后,就更容易理解它的“对立面”——非结构化网格。

当面对复杂几何体,比如涡轮叶片、汽车外形、发动机舱等,你很难把区域划分成规则的格子阵列。这时,结构化网格就无能为力了。于是,非结构化网格应运而生。

非结构化网格的特点:

  • 不再依赖索引,而是用节点、边、面、单元之间的“连接表”来描述拓扑;
  • 查找相邻单元要靠查表,而不是索引偏移;
  • 支持任意形状:三角形、四边形、五边形、多面体都可以;
  • 自动化程度高,适应复杂几何非常方便。

当然,这也带来了存储冗余、查找效率低、边界层控制弱等问题。但在工程中,划分效率和几何适应性更重要。

  1. 结构化网格的意义何在?

既然结构化网格这么“挑剔”,那为什么还在讲它?

答案是它有着非结构化网格难以比拟的数值优势,结构化网格的主要优点包括:

  • 计算效率高:规则索引,便于数组存储与向量化处理;

  • 精度更好:对齐流向的网格减少数值扩散;

  • 内存开销小:不需要存储复杂连接表;

  • 边界层控制强:可以精确控制网格生长率和厚度,轻松实现 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)。

这个转换不会改变网格的几何或质量,只是改变了它的存储和连接方式。

所以目前结构化网格存储形式并不能增加计算效率,结构化网格的优势就是网格质量比较高。

3 个赞