跳转至

第4章 离散化过程(The Discretization Process)

作者

本章由 F. Moukalled、L. Mangani 和 M. Darwish 合著。本章是全书的"工程总览章" —— 不涉及具体数值方法,而是把 FVM 离散化的 4 个步骤(物理建模、几何离散、方程离散、方程求解)按"工程师视角"做完整流程梳理,并以"CPU 散热-热沉"为示例贯穿全章。书中 uFVM 与 OpenFOAM 的"双轨实现"也从本章起正式登场,每章末尾的"Computational Pointers"段开始持续更新。

内容概述

本章对 CFD 求解的"全链条"做了一次系统性梳理,给出从原始物理问题到数值解的 4 个标准步骤,并以 CPU 散热(microprocessor + heat spreader + heat sink)作为教学示例,演示如何把工程问题简化为"线性 / 非线性 PDE → 网格 → 离散代数方程组 → 数值解"。

§4.1 离散化过程总览 —— 给出 CFD 求解的标准流程图(Fig. 4.1): 1. Step I: 几何与物理建模(§4.1.1)—— 将物理问题抽象为数学方程(简化几何、确定物理假设)。CPU 散热示例简化为 \(\nabla \cdot (k \nabla T) = \dot{q}\) (Eq. 4.1)。 2. Step II: 几何离散(网格)(§4.1.2)—— 把几何域划分为非重叠的控制体。控制体的拓扑结构(vertex / face / cell 三层)、边界 patch 的定义。 3. Step III: 方程离散(§4.1.3 + Ch 5-14)—— 把 PDE 转化为每个控制体上的代数方程。详细说明 element connectivity(element-element, element-face, element-vertex)以及 local/global assembly 概念。 4. Step IV: 方程求解(Ch 10)—— 迭代求解代数方程组。直接法 / 迭代法、预处理、AMG 多重网格。

§4.2-§4.3 控制体形状与变量存储 —— 控制体形心(centroid)存储 vs 顶点(vertex)存储;collocated 网格 vs staggered 网格。本书全程采用 collocated 网格,因此 Ch 15 需要专门的 Rhie-Chow 插值。

§4.4 网格分类 —— 按结构化 / 块结构 / 非结构 / Chimera 重叠网格 4 类展开;按正交 / 非正交;按 cell 形状(四边形 / 六面体 / 三角形 / 四面体 / 多边形 / 多面体);按变量排列(collocated / staggered)。

§4.5 Closure —— 本章定位于"工程总览",为后续 Ch 5-19 提供统一的术语与流程框架。

核心方程与概念

本章核心内容是流程与术语,公式较少但概念奠基性极强。

  • 稳态热传导 PDE (CPU 散热示例) (Eq. 4.1)

$\(\nabla \cdot (k \nabla T) = \dot{q} \tag{4.1}\)$

这是 CPU 散热-热沉问题的简化形式(稳态、仅热传导、\(k\) 可常或随 \(T\) 变化)。该方程是一般守恒方程 (Eq. 3.93) 中 \(\phi = T\)\(\mathbf{v} = 0\)\(\Gamma = k\)\(S = \dot{q}\) 的特例。

  • FVM 离散化 4 步骤(本书后续 19 章的逻辑主干)
步骤 物理意义 本书章节
I. 物理 / 几何建模 抽象 + 简化 Ch 3 + Ch 4.1.1
II. 几何离散(网格) 控制体划分 Ch 4.1.2, Ch 6-7
III. 方程离散 PDE → 代数方程组 Ch 5-14(各项单独处理)
IV. 方程求解 迭代 / 直接 / AMG Ch 10
  • 有限体积法 vs 有限差分法 vs 有限元法(Fig. 4.1 中并列展示的三大主流方法)
方法 离散对象 守恒性 网格灵活性 编程难度
FDM 偏导数(直接差分) 弱(局部守恒) 差(需正交结构网格) 最低
FVM 积分形式(控制体) 强(全局严格守恒) 好(非结构多边形)
FEM 变分形式(弱形式) 弱(局部守恒) 优(任意形状单元) 最高

本书选择 FVM 作为主线,是工业 CFD(ANSYS Fluent、OpenFOAM、Star-CD、SU2 等)的统一底层方法论。

  • collocated vs staggered 网格(§4.3)

  • collocated:所有变量(速度、压力、温度、湍流量)存储于同一位置(控制体形心)。优点:内存少、实现简单、易扩展到非结构网格。缺点:压力-速度强耦合下出现棋盘状压力场(checkerboard pressure field),需要 Rhie-Chow 插值(Ch 15 详述)。

  • staggered:速度存储于控制体面、压力存储于控制体形心。优点:自然消除压力-速度解耦。缺点:内存高、复杂几何上非结构网格实施困难。Harlow-Welch (1965) 的 MAC 方法采用 staggered。

Moukalled 全程采用 collocated,并在 Ch 15 引入 Rhie-Chow 插值解决棋盘问题。

  • element connectivity 3 种(§4.1.3)

  • element-element :每个 cell 的邻接 cell 列表

  • element-face :每个 cell 包含的 face 列表(区分内部 face 与边界 face)
  • element-vertex :每个 cell 的顶点列表

在 FVM 中,element-face 是最关键的拓扑关系 —— 每个内部 face 共享 2 个 cell(owner + neighbour),每个边界 face 仅 1 个 cell(owner)+ 一个 patch(用于施加边界条件)。

  • 内部面法向约定

  • 内部 face:法向由 owner 指向 neighbour(OpenFOAM 约定)

  • 边界 face:法向指向域外(Moukalled 约定,与 OpenFOAM 相同)

这一约定直接决定 Ch 8-14 各项离散化中通量 \(F_f = \mathbf{F}_f \cdot \mathbf{S}_f\) 的符号。

  • 4 类网格(§4.4)

  • 结构网格 (Cartesian / Non-orthogonal) :网格点用 \((i, j, k)\) 索引直接定位,邻接关系隐式确定。适合规则几何。计算效率最高。

  • 块结构网格 (Block structured) :将整个域分为若干结构块,每块内部用结构网格,块与块之间用插值连接。复杂几何可用,但分块操作繁琐。
  • 非结构网格 (Unstructured) :任意形状多面体,邻接关系显式存储。OpenFOAM 默认。适合任意复杂几何。
  • Chimera 重叠网格 :多个网格相互重叠,区域之间通过插值连接。适合运动物体(旋转机械、动边界)。

本书 Ch 6-7 会详细讨论这 4 类网格的生成与数据结构。

关键结论

  1. FVM 离散化 4 步骤是工业 CFD 求解的统一框架:物理 / 几何建模 → 网格 → 方程离散 → 方程求解。本书后续 19 章均按此框架展开,是读者建立"完整工程链路"的关键。
  2. FVM 的核心优势是守恒性 + 网格灵活性:守恒性来自"积分形式 + 控制体界面通量共享";网格灵活性来自"对 cell 形状与拓扑的弱依赖"。这两个性质使 FVM 在工业 CFD 中占据主导地位。
  3. collocated 网格 + Rhie-Chow 插值是现代 FVM 的标准选择:相比 staggered 网格,collocated 内存少、易扩展到非结构;但需要 Rhie-Chow 插值(Ch 15 详述)解决压力-速度解耦的棋盘问题。
  4. element-face 拓扑是 FVM 的"运行时刻":所有数值方法的实现都依赖内部 face 的 owner / neighbour 关系、边界 face 的 patch 归属。OpenFOAM 的 polyMesh 数据结构(face, owner, neighbour 三个数组)即对应本章的 element-face 拓扑。
  5. 4 类网格选择需要权衡效率与几何灵活性:结构网格(效率高)→ 块结构(中等灵活)→ 非结构(高灵活)→ Chimera(适合运动物体)。本书 Ch 6-7 会逐类展开。

挑战和开放性问题

  1. 网格生成是工业 CFD 的最大瓶颈之一 —— 本章把"网格"作为离散化 4 步骤的第 2 步,但实际工业中,复杂几何的网格生成可能占用整个项目 60-80% 的时间。本书 Ch 6-7 给出网格数据结构与生成原理,但网格质量度量(skewness、aspect ratio、non-orthogonality)的方法未深入展开。
  2. Chimera 重叠网格的运动物体实现 —— Ch 15 的动网格问题,本书未涉及 Chimera 重叠网格,OpenFOAM 的 dynamicMotionSolverFvMeshoverGgi 也不在本书覆盖范围。
  3. 自适应网格细化 (AMR) —— 本章未涉及 AMR(h-refinement、p-refinement、r-refinement)。AMR 是处理多尺度流场(湍流、激波、燃烧)的关键工具。
  4. 变量存储位置的细节 —— collocated 网格中,温度、压力、速度、湍流量都存在 cell centroid;但在 FVM 实现中,标量(压力、温度、湍流量)与向量(速度、动量)的内存布局、对齐方式对 SIMD 性能有显著影响。本书未展开。
  5. collocated 网格的棋盘压力场问题 —— 本章未明确说明,但 Ch 15 会详细处理。这是 collocated 网格的"原罪"。

个人反思与批判性分析

本章是全书最像"工程导论"的一章,30 页不到却把 CFD 求解的全流程梳理得清晰、紧凑,是初学者建立"工程链路"的最佳入门章节。从写作特点看:

  • 图示丰富 —— Fig. 4.1(离散化流程图)、Fig. 4.2(CPU 散热示例)、Fig. 4.3(25 元素网格)、Fig. 4.5(element 9 的 connectivity 示意)共 5+ 幅工程图,把抽象的"控制体 / 邻接 / 边界 patch"概念可视化,是 Moukalled 全书"图示优于文字"风格的最佳体现。
  • CPU 散热示例贯穿 —— 把抽象的"网格 + 边界条件 + 离散方程"映射到"工程师每天都能理解的"CPU 散热问题,是非常成功的教学设计。这一示例会在后续 Ch 8、Ch 9、Ch 13 中反复出现。
  • 方法论对照表 —— 把 FVM / FDM / FEM 三大主流方法放在 Fig. 4.1 同一张流程图中并列展示,帮助读者建立"方法论全景图"。

但本章也存在不足:

  • 缺少网格质量度量的定量方法 —— skewness、aspect ratio、non-orthogonality、smoothness 等指标是工程网格质量评估的核心,本章完全未涉及。
  • AMR 与动网格未提及 —— 这两个现代工业 CFD 的关键工具在 2016 年的教材中理应至少有一段引言。
  • 对 uFVM / OpenFOAM 的"双轨实现"承诺较为笼统 —— 本章只是"宣布"了这一策略,具体在 uFVM 中如何组织 mesh 数据结构、在 OpenFOAM 中如何对应 polyMesh 类,本章没有给出详细解释,留到 Ch 7 处理。

总体而言,本章是"工程总览 + 术语统一"的章节,写作目的明确,方法得当,是 Moukalled 这本教材"中等深度"定位的典型体现 —— 既不深入到任何具体数值方法(留给 Ch 5-14),也不停留在科普层面(每一节都有明确的工程术语与拓扑定义)。

重要参考文献

  • [X1] Spalding D.B. (1972) A finite-difference procedure for the solution of the Navier-Stokes equations using the method of stream function - vorticity. Imperial College Report.
  • [X2] Patankar S.V. (1980) Numerical Heat Transfer and Fluid Flow. Hemisphere. (FVM 原始文献)
  • [X3] Versteeg H.K., Malalasekera W. (2007) An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd Edition. Pearson. (FVM 入门经典)
  • [X4] Ferziger J.H., Perić M. (2002) Computational Methods for Fluid Dynamics, 3rd Edition. Springer. (FVM/FEM/FDM 对比经典)
  • [X5] Zienkiewicz O.C., Taylor R.L. (2000) The Finite Element Method, 5th Edition. Butterworth-Heinemann. (FEM 经典教材)
  • [X6] Harlow F.H., Welch J.E. (1965) Numerical calculation of time-dependent viscous incompressible flow of fluid with free surface. Physics of Fluids, 8(12): 2182-2189. (MAC 方法与 staggered 网格原始文献)
  • [X7] Rhie C.M., Chow W.L. (1983) Numerical study of the turbulent flow past an airfoil with trailing edge separation. AIAA Journal, 21(11): 1525-1532. (collocated 网格 + Rhie-Chow 插值)
  • [X8] OpenFOAM Foundation (2014) The Open Source CFD Toolbox — Programmer's Guide. (polyMesh 数据结构参考)
  • [X9] Jasak H. (1996) Error Analysis and Estimation for the Finite Volume Method with Applications to Fluid Flows. PhD Thesis, Imperial College. (OpenFOAM 早期开发者的博士论文,详细分析 FVM 离散化误差)