网格生成与网格独立性检验

在数值流体力学(CFD)中,网格(Mesh)是把连续的流体域离散为有限数量的控制体(Cell),是把偏微分方程转化为代数方程的前提。网格的质量直接决定了数值解的精度、收敛性以及计算成本。网格生成的核心任务包括:

  • 几何离散:将实际工程几何体划分为若干子域。
  • 单元划分:在每个子域内部生成结构化或非结构化单元。
  • 质量控制:保证单元形状、尺寸、正交性等满足数值算法的要求。

2. 常用网格生成方法

方法 适用范围 主要特点
结构化网格(Structured Grid) 简单几何、规则边界 单元编号有序,存储效率高,求解速度快。
非结构化网格(Unstructured Grid) 复杂几何、局部细化需求 采用三角形(2D)或四面体(3D)单元,灵活性强。
混合网格(Hybrid Grid) 大型工程、局部高梯度区 结构化网格用于远场,非结构化网格用于局部细节。
自适应网格(Adaptive Mesh Refinement, AMR) 解的梯度随时间变化显著 根据误差估计自动加密或粗化网格。

2.1 结构化网格生成步骤(以矩形域为例)

  1. 划分坐标系:确定 $x$、$y$ 方向的节点数 $N_x$、$N_y$。
  2. 计算节点坐标:
    [
    x_i = x_{\min} + (i-1)\Delta x,\quad \Delta x = \frac{x_{\max}-x_{\min}}{N_x-1}
    ]
    同理得到 $y_j$。
  3. 生成单元:每四个相邻节点组成一个矩形单元(或两三角形单元)。

2.2 非结构化网格生成流程(以三角形网格为例)

  1. 点云采样:在几何边界上均匀或按曲率密度布点。
  2. Delaunay 三角剖分:生成满足最大最小角度约束的三角形。
  3. 网格光滑:使用拉普拉斯或优化光滑算法改善单元形状。
  4. 局部加密:在壁面、分离点等高梯度区域手动或自动细化。

3. 网格质量评价指标

  • 正交性(Orthogonality):单元面法向量与相邻单元中心连线的夹角,越接近 90° 越好。
  • 形状因子(Aspect Ratio):最长边与最短边之比,建议 ≤ 5(二维)或 ≤ 10(三维)。
  • 最小角度:三角形或四面体的最小内部角,通常要求 ≥ 20°,防止出现“尖角”。
  • 网格平滑度(Smoothness):相邻单元尺寸变化率 $\frac{\Delta h}{h}$,建议 ≤ 0.2。

Tip:多数 CFD 前处理软件(如 ANSYS Meshing、ICEM CFD)提供质量报告,可直接导出上述指标的统计分布。

4. 网格独立性检验原理

网格独立性(Grid Independence)指在网格不断细化的过程中,关键输出量(如阻力系数 $C_D$、升力系数 $C_L$、最大温度等)趋于稳定,变化幅度低于预设容差。其基本思路是:

  1. 选取若干套不同细度的网格(常用 3~4 套)。
  2. 保持其他数值设置不变(求解器、离散格式、收敛准则等)。
  3. 记录感兴趣的输出量,绘制网格尺寸 $h$ 与输出量的关系曲线。
  4. 判断收敛趋势:若相邻两套网格的相对误差 $< \epsilon$(如 1%),则认为已达到网格独立。

常用的定量判据:

[
\text{相对误差} = \frac{|Q_{i+1} - Q_i|}{Q_i} \times 100%
]

其中 $Q_i$ 为第 $i$ 套网格的结果。

5. 实施步骤(以 2D 空气翼阻力系数为例)

Step 1:几何建模
    - 导入 NACA0012 翼型,设置弦长 L = 1 m。

Step 2:网格划分
    - 网格 A:结构化 C‑网格,壁面第一层高度 Δy⁺ ≈ 1,整体单元数 ≈ 5×10⁴。
    - 网格 B:同上,整体单元数 ≈ 1×10⁵(加密 2 倍)。
    - 网格 C:同上,整体单元数 ≈ 2×10⁵(再加密 2 倍)。

Step 3:数值设置
    - 求解器:稳态 RANS,SST‑k‑ω 湍流模型。
    - 边界条件:入口速度 30 m/s,压力出口,壁面无滑移。
    - 收敛准则:残差 1e‑5,监控 $C_D$ 收敛至 0.001。

Step 4:计算并记录
    - 网格 A:$C_D$ = 0.0254
    - 网格 B:$C_D$ = 0.0249
    - 网格 C:$C_D$ = 0.0247

Step 5:误差分析
    - A→B 相对误差 = (0.0254‑0.0249)/0.0249 ≈ 2.0%
    - B→C 相对误差 = (0.0249‑0.0247)/0.0247 ≈ 0.8%

Step 6:判定
    - 由于 B→C 误差已低于 1%,可认为网格 B(≈ 1×10⁵ 单元)满足网格独立性。

6. 案例示例:三维管道内部流动

网格编号 单元总数 最大 $y^+$ $ΔP$(Pa) 相对误差
G1 2.1 × 10⁶ 120 152.3 —
G2 4.5 × 10⁶ 65 149.8 1.6%
G3 9.0 × 10⁶ 30 149.1 0.5%
G4 1.8 × 10⁷ 15 149.0 0.07%
  • 观察:从 G2 到 G4,压降变化趋于平稳,且 $y^+$ 已满足壁面解析需求($y^+<30$)。
  • 结论:G3(约 9 × 10⁶ 单元)即可作为网格独立的基准网格,后续参数研究可直接使用。

7. 注意事项与常见问题

  • 壁面网格:在湍流模拟中,第一层网格高度必须满足 $y^+$ 的要求,否则壁函数失效。
  • 网格加密的局部性:仅在高梯度区域(如分离点、喷嘴喉部)加密,避免全域细化导致计算成本爆炸。
  • 网格光滑:粗糙的网格会产生数值耗散,导致误差放大。使用光滑或优化算法可显著提升收敛速度。
  • 网格独立性与模型误差:即使网格已独立,若湍流模型或边界条件选择不当,仍可能产生系统误差。网格检验只能排除离散误差。
  • 自动化脚本:在 OpenFOAM 中,可使用 blockMesh、snappyHexMesh 配合 Bash 脚本实现多套网格的批量生成与后处理,提升效率。

8. 小结

网格生成是 CFD 分析的基石,合理的网格划分与严格的网格独立性检验是获得可靠数值结果的前提。本文从网格的基本概念、常用生成方法、质量评价指标出发,系统阐述了网格独立性检验的原理与实施步骤,并通过二维翼型和三维管道两个典型案例展示了实际操作流程。掌握这些技术要点后,工程师能够在保证计算精度的前提下,合理控制网格规模,显著提升仿真效率,为后续的设计优化提供坚实的数值基础。