4. 网格与几何度量
有限体积法的守恒性并不是凭空产生的,它建立在“每个控制单元恰好覆盖计算域、相邻单元界面严格共享”这一几何前提之上。离散方程中的通量项最终都要乘以界面面积、沿界面法向投影,而瞬态项和源项则要乘以单元体积。因此,网格不仅是求解域的剖分方式,更是守恒律的几何载体。本节围绕三件事展开:网格的两大类型、单元几何量(体积、面积、法向)的计算方法,以及网格质量如何通过几何量误差破坏守恒性。
结构化网格与非结构化网格
结构化网格的节点可以用指标三元组 (i, j, k) 唯一标识,邻接关系隐含在指标增减中。在二维情况下,一个内部单元 (i, j) 的四个邻居固定为 (i±1, j) 与 (i, j±1),无需显式存储连接表。这种规则性带来两个直接好处:内存访问连续、界面法向与面积可预先按方向缓存。常见的结构化网格包括均匀笛卡尔网格、张量积网格和贴体曲线网格(如绕翼型的 O 型、C 型网格)。贴体网格虽然指标规则,但单元可能是弯曲四边形,几何量必须逐面计算,不能简单取常数。
非结构化网格没有指标结构,单元可以是三角形、四边形、四面体、六面体、棱柱或金字塔,单元之间的连接必须通过显式的面—单元关联表描述。它擅长处理复杂几何、局部加密和自适应细化,但代价是数据结构复杂、几何量需要逐面独立计算,且更容易出现质量较差的单元。实际工程中常采用混合网格:物面附近用棱柱层捕捉边界层,远场用四面体填充。
无论哪种类型,有限体积法都要求网格满足“协调性”:两个相邻单元共享同一个面,且该面从两侧看面积相同、法向相反。若网格存在悬挂节点(一个面被对面两个面分割),就必须引入特殊处理,否则界面通量无法一一配对,守恒性立即被破坏。
单元几何量的计算
几何量计算的核心是体积(三维)或面积(二维)、界面面积和单位外法向。对二维多边形单元,面积可用鞋带公式:对顶点按逆时针顺序 (x₁,y₁)…(xₙ,yₙ),有 A = ½ Σ (xᵢ yᵢ₊₁ − xᵢ₊₁ yᵢ)。界面长度由两端点距离给出,外法向由边向量旋转 90° 并归一化得到,方向需与单元顶点顺序保持一致。三维多面体体积可用散度定理转化为面积分:V = ⅓ Σ_f (x_f · n_f) A_f,其中 x_f 为面心位置,n_f 为面单位外法向,A_f 为面面积。该式对任意多面体成立,是有限体积代码中最常用的体积算法。
界面法向与面积的精度直接影响通量。以二维为例,若界面长度为 L、单位法向为 n = (nₓ, n_y),则通过该面的对流通量贡献为 F·n·L,其中 F 为通量密度向量。若法向计算出现偏差角 δ,通量误差约为 F·L·sin δ,在强对流或大通量区域会被放大。因此高质量代码通常用高精度公式计算面心、面法向和面积,并对弯曲界面采用多点求积而非单点近似。
网格质量如何影响守恒性
有限体积法的离散守恒性依赖于“同一界面两侧通量等值反号”。这一性质在代数上由界面唯一编号保证,但在几何上要求两侧使用同一组面积与法向。若代码对两侧分别计算几何量,浮点舍入或算法差异会导致 A_left ≠ A_right,通量配对失败,产生虚假源汇。因此工程实现中通常只计算一次界面几何量,两侧共享同一记录,这是保证机器精度级守恒的关键工程约定。
更隐蔽的问题来自网格质量。严重畸变的单元(大长宽比、大偏斜、负体积倾向)会使面心、法向和体积的计算误差增大,进而使离散方程不再精确满足全局守恒。偏斜网格上,界面法向与连接两单元中心的向量不平行,简单的两点差分会产生“交叉扩散”误差,虽然局部仍可写成守恒形式,但精度下降,且在粗网格上可能表现为非物理的源项。负体积或零面积单元则直接使计算发散。实践中常用长宽比、偏斜度、正交质量和雅可比行列式符号来评估网格,其中雅可比符号检查是贴体结构化网格的必做项。
工程实践中的检查要点
在真正动手划分和检查网格时,可以按以下顺序落实。第一,确认网格协调:所有内部面恰好被两个单元共享,边界面上法向指向域外,无悬挂节点或重复面。第二,逐单元检查体积或面积符号,贴体结构化网格要检查雅可比行列式在全部节点为正,出现负值说明单元翻转。第三,统计长宽比与偏斜度分布,对超过阈值的单元局部加密或光顺。第四,验证几何量一致性:对每个界面比较两侧读取的面积与法向,差值应在舍入误差量级。第五,做一次全局守恒测试,例如给定常通量场,检查所有界面通量之和是否为零(内部面抵消、边界面给出净流出),偏差应接近机器精度。
需要强调的是,守恒性与精度是两个不同层次的要求。守恒性由“界面唯一、通量配对”保证,即使网格较粗也能在代数上严格守恒;精度则受几何量误差和格式阶数影响。理解这一区分,才能在网格质量不理想时判断问题出在守恒结构还是离散精度,从而选择加密、光顺还是修正几何量算法,而不是盲目重划网格。