3. 网格与离散化基础

在泊松方程的离散求解中,网格是把连续偏微分方程转化为代数方程组的“载体”。同一个物理问题,换一套网格,系数矩阵的稀疏结构、边界条件的施加方式、甚至最终解的精度都会发生变化。因此,理解网格的类型、质量与分辨率,是判断数值结果是否可信的前提。本节围绕三个问题展开:网格如何分类、什么样的网格算“好网格”、以及网格分辨率与离散误差之间到底是什么关系。

结构化网格与非结构化网格

结构化网格的核心特征是节点之间的连接关系具有规则的拓扑索引。在二维情形下,每个内部节点都有四个邻居,可以用整数对 (i, j) 唯一标识;三维则是 (i, j, k)。这种规则性带来两个直接好处:其一,差分格式可以直接用索引偏移表达,例如拉普拉斯算子的五点格式中,节点 (i, j) 的邻居就是 (i±1, j) 和 (i, j±1),无需存储连接表;其二,系数矩阵具有天然的带状结构,便于使用快速求解器。结构化网格的典型代表是均匀矩形网格和贴体曲线网格(通过坐标变换把不规则物理区域映射到规则计算区域)。

非结构化网格则放弃规则索引,显式存储每个单元的节点列表和相邻关系。二维常用三角形单元,三维常用四面体单元,也有多边形/多面体单元。它的优势在于几何适应性:复杂边界、局部加密、多连通区域都能自然处理。代价是数据结构更复杂,需要连接表、邻居表,系数矩阵的带宽不再规则,通常配合稀疏存储格式(如 CSR)和迭代求解器使用。在有限体积法中,非结构化网格还需要额外计算单元中心到面的法向距离和面面积,用于构造通量近似。

选择哪一种,取决于几何复杂度和精度需求。规则区域上的泊松问题,结构化网格实现简单、效率高;而带有曲面边界或内部障碍的区域,非结构化网格往往能以更少的单元获得更好的边界拟合。实际工程中还有一种折中方案——分块结构化网格,在复杂区域划分多个规则块,块间通过插值耦合。

网格质量指标

网格质量直接影响离散格式的稳定性和精度。对非结构化网格,常用的质量指标包括:

  • 单元偏斜度(skewness):衡量单元形状偏离正多边形/正多面体的程度,常用内角偏差或面积比定义,偏斜度过大会使梯度重构误差显著增大。
  • 长宽比(aspect ratio):单元最长边与最短边(或外接圆与内切圆半径之比)的比值。适度拉伸在边界层中是有益的,但过度拉伸会恶化条件数。
  • 正交性(orthogonality):单元中心连线与公共面法向之间的夹角。有限体积法中的扩散通量近似依赖这一正交性,夹角越大,非正交修正项越重要。
  • 雅可比行列式:对曲线结构化网格,单元映射的雅可比行列式必须为正且不宜过小,否则映射退化、差分系数失真。

对结构化网格,质量关注点更多落在网格光滑性(相邻单元尺寸的渐变率)和正交性上。一个实用的经验是:相邻单元尺寸比控制在 1.2 以内,边界层外缘的增长率不超过 1.2~1.3,可以避免因网格突变引入的伪振荡。

结构化网格(索引 i,j) (i,j) 规则拓扑 · 五点格式 · 带状矩阵 非结构化网格(三角形单元) 节点 显式连接表 · 几何适应性强 质量指标 偏斜度 skewness 长宽比 aspect ratio 正交性 orthogonality 雅可比行列式 > 0 网格分辨率 h 与离散误差的关系(双对数示意) 网格尺寸 h(对数) 误差(对数) O(h²) 二阶收敛 O(h) 一阶收敛 误差平台:舍入/迭代误差主导 h 足够小后不再改善

离散误差与网格分辨率的关系

离散误差来自用差商代替导数。以二阶中心差分逼近一维二阶导数为例,泰勒展开给出

(u_{i+1} - 2u_i + u_{i-1}) / h² = u''(x_i) + (h²/12)·u''''(x_i) + O(h⁴)

截断误差的主项正比于 h²,因此格式是二阶精度的。这意味着网格尺寸减半,离散误差理论上降为原来的四分之一。但这一结论有两个重要前提:解足够光滑,且网格足够均匀。若解存在大梯度或奇异(例如点源附近、角点处),局部截断误差会显著放大,实际收敛阶可能退化到一阶甚至更低。

更关键的是,离散误差并不等于总误差。总误差 = 离散误差 + 迭代求解误差 + 舍入误差。当网格不断加密时,离散误差按幂律下降,但系数矩阵条件数随之恶化(二维五点格式的条件数约按 O(h⁻²) 增长),迭代收敛变慢,舍入误差的相对影响上升。于是误差曲线会出现一个“平台”:继续加密网格,总误差不再明显下降,甚至可能反弹。这正是网格无关性验证必须做多套网格、观察误差随 h 的变化趋势、而不是盲目追求最细网格的原因。

实践中常用的判断方法是网格收敛指数(GCI)分析:取三套网格,尺寸比约为 1.3~2,计算相邻两套之间的相对误差,用理查森外推估计收敛阶 p 和外推值,再据此判断最细网格的解是否已进入渐近收敛区。若计算出的 p 与格式理论阶接近(例如二阶格式得到 p≈2),说明网格序列处于渐近区,结果可信;若 p 明显偏离,往往提示网格质量不足或存在局部奇异。

做网格无关性验证时,建议保持网格拓扑和加密方式一致(例如统一按比例加密结构化网格,或统一用相同尺寸场重新生成非结构化网格),否则误差变化中会混入网格质量变化的影响,难以分离出真正的收敛趋势。

最后需要强调分辨率与质量的权衡:单纯加密能降低离散误差,但如果加密后单元偏斜度恶化、正交性变差,格式的实际精度可能不升反降。合理的做法是先保证网格质量达标(偏斜度、正交性在可接受范围),再通过系统加密观察收敛阶,用收敛阶而非“网格数量”来判定结果是否可信。