第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 类网格的生成与数据结构。
关键结论
- FVM 离散化 4 步骤是工业 CFD 求解的统一框架:物理 / 几何建模 → 网格 → 方程离散 → 方程求解。本书后续 19 章均按此框架展开,是读者建立"完整工程链路"的关键。
- FVM 的核心优势是守恒性 + 网格灵活性:守恒性来自"积分形式 + 控制体界面通量共享";网格灵活性来自"对 cell 形状与拓扑的弱依赖"。这两个性质使 FVM 在工业 CFD 中占据主导地位。
- collocated 网格 + Rhie-Chow 插值是现代 FVM 的标准选择:相比 staggered 网格,collocated 内存少、易扩展到非结构;但需要 Rhie-Chow 插值(Ch 15 详述)解决压力-速度解耦的棋盘问题。
- element-face 拓扑是 FVM 的"运行时刻":所有数值方法的实现都依赖内部 face 的 owner / neighbour 关系、边界 face 的 patch 归属。OpenFOAM 的
polyMesh数据结构(face,owner,neighbour三个数组)即对应本章的 element-face 拓扑。 - 4 类网格选择需要权衡效率与几何灵活性:结构网格(效率高)→ 块结构(中等灵活)→ 非结构(高灵活)→ Chimera(适合运动物体)。本书 Ch 6-7 会逐类展开。
挑战和开放性问题
- 网格生成是工业 CFD 的最大瓶颈之一 —— 本章把"网格"作为离散化 4 步骤的第 2 步,但实际工业中,复杂几何的网格生成可能占用整个项目 60-80% 的时间。本书 Ch 6-7 给出网格数据结构与生成原理,但网格质量度量(skewness、aspect ratio、non-orthogonality)的方法未深入展开。
- Chimera 重叠网格的运动物体实现 —— Ch 15 的动网格问题,本书未涉及 Chimera 重叠网格,OpenFOAM 的
dynamicMotionSolverFvMesh与overGgi也不在本书覆盖范围。 - 自适应网格细化 (AMR) —— 本章未涉及 AMR(h-refinement、p-refinement、r-refinement)。AMR 是处理多尺度流场(湍流、激波、燃烧)的关键工具。
- 变量存储位置的细节 —— collocated 网格中,温度、压力、速度、湍流量都存在 cell centroid;但在 FVM 实现中,标量(压力、温度、湍流量)与向量(速度、动量)的内存布局、对齐方式对 SIMD 性能有显著影响。本书未展开。
- 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 离散化误差)