2016 Moukalled FVM 全书概括(Book Summary)
§1 中心一句话
F. Moukalled, L. Mangani, M. Darwish 的《The Finite Volume Method in Computational Fluid Dynamics》(2016, Springer, Fluid Mechanics and Its Applications Vol. 113)是一本以"理论 + 工程 + 实现"三位一体方式系统阐述有限体积法(FVM)在计算流体力学(CFD)中应用的中等深度教材,覆盖 20 章内容 + 799 页 + 1 套完整 OpenFOAM 配套代码 + 1 套 MATLAB uFVM 教学代码,是工业 CFD 工程师、研究者、研究生从理论到工程实践的"完整工作流指南"。
§2 结构与组织逻辑
全书 20 章按"基础 → 数值方法 → 算法 → 应用"的四层逻辑组织:
- Part I Foundation(Ch 1-7,30%) —— 建立 FVM 离散化的全部基础。Ch 1 引言 + Ch 2 向量演算回顾 + Ch 3 物理守恒方程推导 + Ch 4 离散化过程总览 + Ch 5 FVM 核心 + Ch 6 网格 + Ch 7 uFVM/OpenFOAM 实现。这一部分为后续章节提供"理论 + 数据结构"的统一基础。
- Part II Numerics(Ch 8-14,40%) —— 各项数值方法的详细展开。Ch 8 扩散项 + Ch 9 梯度 + Ch 10 线性求解 + Ch 11 对流项 + Ch 12 高分辨率格式 + Ch 13 时间离散 + Ch 14 源项与松弛。这是全书最技术性的部分。
- Part III Algorithms(Ch 15-16,15%) —— N-S 方程求解的算法。Ch 15 不可压缩流(SIMPLE / SIMPLEC / PISO + Rhie-Chow)+ Ch 16 可压缩流(扩展 SIMPLE 到全 Mach 数)。
- Part IV Applications(Ch 17-19,12%) —— 工业应用。Ch 17 湍流模型(k-ε, k-ω, SST)+ Ch 18 OpenFOAM 边界条件 + Ch 19 Ahmed body 完整算例。
- Ch 20 收尾 —— 历史回顾与展望(1 页)。
这种"基础 → 数值 → 算法 → 应用"的递进结构与"FVM 离散化 → 数值方法 → N-S 求解 → 工业应用"的技术演化链条一一对应,使读者可以在每一层都建立完整的"理论 + 工程"认识。
§3 核心理论框架
全书的核心理论框架可以压缩为5 个"母方程":
- M (Master) 方程(Ch 3 Eq. 3.93)—— 一般守恒方程 \(\partial_t (\rho \phi) + \nabla \cdot (\rho \mathbf{v} \phi) = \nabla \cdot (\Gamma \nabla \phi) + S_\phi\)。这是 FVM 离散化的统一起点。
- D (Discretized) 方程(Ch 5 Eq. 5.43)—— 离散形式 \(a_C \phi_C + \sum_F a_F \phi_F = b_C\)。各项数值方法(Ch 8-14)的差异仅在于 \(a_C, a_F, b_C\) 的具体计算方式。
- P (Pressure Correction) 方程(Ch 15 Eq. 15.20)—— SIMPLE 算法的核心 \(\sum_f (\rho V_P / a_P) (\nabla p')_f \cdot \mathbf{S}_f = -\sum_f \rho \mathbf{v}_f^* \cdot \mathbf{S}_f\),通过 Schur 补构造压力修正。
- T (Turbulence) 方程(Ch 17 Eq. 17.20)—— k-ε 模型 \(\mu_t = C_\mu \rho k^2 / \epsilon\),5 个经验常数由实验数据拟合。
- S (SST) 混合函数(Ch 17)—— \(F_1 = \tanh(\text{arg})^4\),通过混合函数在 k-ε 与 k-ω 之间自动切换。
这 5 个方程(标记为 M, D, P, T, S)构成本书的"理论核心",是任何 FVM 实现的"必备工具集"。
§4 主要贡献(相对前人)
相比 Patankar 1980 的"经典 FVM 圣经"、Ferziger-Peric 2002 的"理论深入"、Versteeg-Malalasekera 2007 的"入门易懂"、Hirsch 2007 的"工程实例丰富",Moukalled 这本教材的"独家贡献"在于:
- "全 Mach 数"统一处理 —— Ch 15 不可压 SIMPLE + Ch 16 可压扩展 SIMPLE 形成"压力修正方程的椭圆-双曲混合型"理论,使同一算法框架覆盖从亚声速到高超声速的全范围。这是 Patankar 1980(纯不可压)和 Anderson 2002(纯可压)的"中间地带"。
- "uFVM + OpenFOAM" 双轨实现 —— 每章都同时给出"教学代码 (MATLAB) + 工业代码 (C++)" 的对应实现,读者可以"从教学到工业"无缝过渡。这是 Versteeg-Malalasekera(只有理论)所没有的工程实践维度。
- Ch 12 NVF + TVD 统一分析 —— 把 Leonard 的 NVF 框架与 Harten 的 TVD 框架通过 \(\tilde{\phi}_C = r/(1+r)\) 映射统一起来,是工业 HR 格式设计的"标准方法论"。
- Ch 17 SST 模型的混合函数详细展开 —— Menter 1994 SST 模型的混合函数 \(F_1, F_2\) 的具体形式 + 限制器 + 近壁面处理全部给出,是工业 CFD 湍流模型选择与定制的"金标准"。
- Ch 19 Ahmed body 完整工业算例 —— 用 OpenFOAM 完整配置文件(
snappyHexMeshDict、fvSchemes、fvSolution)演示工业 CFD 项目的标准工作流。
§5 Strengths / Weaknesses
Strengths
- 理论 + 工程 + 实现三位一体 —— 既有严格的数学推导(散度定理、Schur 补、修改方程、放大因子分析),又有 OpenFOAM 配置文件的具体示例,还有 uFVM 的教学代码。这是 Moukalled 教材最显著的特色。
- 全 Mach 数范围覆盖 —— Ch 15-16 的"压力修正方程从椭圆型到双曲-椭圆混合型"是 Moukalled 教材的独家贡献,对工业 CFD 用户处理跨声速问题(如燃气轮机、压气机)尤其有价值。
- 写作风格工程友好 —— 每章都有"Computational Pointers"段,把抽象的数学方法映射到 OpenFOAM 的具体配置;每章末尾都有"挑战和开放性问题",启发读者思考。
- 图示丰富 —— 大量拓扑图、几何示意图、NVD 图、Sweby 图、网格示意图,使抽象概念可视化。
- 配套代码完整 —— uFVM(教学)+ OpenFOAM 工业版(每章习题可在 OpenFOAM 复现),形成"理论 → 代码" 的闭环。
Weaknesses
- Ch 4 几何与物理建模 + Ch 6 网格 这两章写得相对简略,对网格质量度量(skewness、aspect ratio)、多面体 cell 处理、AMR 等关键工程话题展开不足。
- 多相流、化学反应、燃烧、辐射完全未涉及 —— 这些是工业 CFD 50% 以上应用场景的必备方法。
- Ch 16 可压缩流 缺少 Riemann 求解器(HLL, HLLC, Roe, AUSM)的详细推导,对高超声速激波捕捉的指导有限。
- 湍流模型 缺少 RSM(7 方程 RANS)、LES(Smagorinsky, WALE)、DDES/IDDES 的详细介绍,对高精度湍流模拟的指导有限。
- 机器学习辅助 CFD 是 2016 年后的研究热点,本书未涉及(出版年代限制)。
- GPU 加速、并行可扩展性 是 2016 年后的工业需求,本书仅在 Ch 10 简略提及。
§6 跨章连接
主线 1:FVM 离散化的"4 步骤"贯穿全书
| 步骤 |
对应章节 |
核心公式 |
| 1. 物理建模 |
Ch 1-3 |
N-S 方程组(Eq. 3.1-3.4) |
| 2. 网格离散 |
Ch 4 + Ch 6-7 |
FVM 网格规范(points, faces, owner, neighbour, boundary) |
| 3. 方程离散 |
Ch 5-14 |
\(a_C \phi_C + \sum_F a_F \phi_F = b_C\)(Eq. 5.43) |
| 4. 方程求解 |
Ch 10 + Ch 15-16 |
\(\mathbf{A} \mathbf{x} = \mathbf{b}\) + 迭代法 |
主线 2:守恒性的"三层深化"
| 层级 |
章节 |
守恒性表现 |
| 概念层 |
Ch 2(散度定理) |
\(\int_V \nabla \cdot \mathbf{F} \, dV = \oint_S \mathbf{F} \cdot \mathbf{n} \, dS\) |
| 离散层 |
Ch 5(FVM 守恒性原则) |
内部面 \(f\) 共享 \(F_f\),全域求和为零 |
| 实现层 |
Ch 7(OpenFOAM lduMatrix)+ Ch 15(SIMPLE Rhie-Chow) |
守恒性 + 棋盘压力场抑制 |
主线 3:从"通用标量方程"到"N-S 方程组"
| 章节 |
一般性 → 特殊化 |
| Ch 3 一般守恒方程 (Eq. 3.93) |
任意 \(\phi\) |
| Ch 8 扩散项 \(\nabla \cdot (\Gamma \nabla \phi)\) |
\(\phi\) 的扩散效应 |
| Ch 11-12 对流项 \(\nabla \cdot (\rho \mathbf{v} \phi)\) |
\(\phi\) 的对流效应 |
| Ch 13 瞬态项 \(\partial (\rho \phi) / \partial t\) |
\(\phi\) 的时间演化 |
| Ch 14 源项 \(S_\phi\) |
\(\phi\) 的局部源汇 |
| Ch 15-16 N-S 方程组 |
\(\phi = 1\)(连续性)、\(\phi = \mathbf{v}\)(动量)、\(\phi = T\)(能量) |
| Ch 17 湍流模型 |
\(\phi = k, \epsilon, \omega\)(湍流量) |
主线 4:精度与稳定性的"5 重 trade-off"
| 维度 |
选择 1(高精度) |
选择 2(高稳定) |
| 空间精度 |
CDS(2 阶) |
UDS(1 阶) |
| 格式类型 |
HO(QUICK, Fromm, 3 阶) |
UDS(1 阶) |
| 时间精度 |
BDF2 / CrankNicolson |
Forward Euler |
| 隐式程度 |
显式(快速) |
隐式(稳定) |
| 湍流模型 |
SST 复杂 |
k-ε 简单 |
Ch 12 的"HR 格式"是解决"精度 vs 稳定"的核心创新。
§7 术语表(Terminology Glossary)
流体力学基础(Ch 1-3)
| 英文 |
中文 |
定义 |
| N-S equations |
N-S 方程组 |
描述粘性流体动量守恒的偏微分方程组 |
| Reynolds number |
雷诺数 |
\(Re = \rho U L / \mu\),惯性力与黏性力之比 |
| Mach number |
马赫数 |
\(Ma = U / c\),流速与当地声速之比 |
| Prandtl number |
普朗特数 |
\(Pr = \mu c_p / k\),动量扩散与热扩散之比 |
| Lagrangian description |
拉格朗日描述 |
跟踪流体质点的描述方式 |
| Eulerian description |
欧拉描述 |
关注空间固定点的描述方式 |
| Reynolds transport theorem |
雷诺输运定理 |
Lagrangian 体积分与 Eulerian 面积分的转换 |
| Material derivative |
物质导数 |
\(D\phi/Dt = \partial \phi / \partial t + \mathbf{v} \cdot \nabla \phi\) |
| Stokes hypothesis |
Stokes 假设 |
黏性应力张量对称假设 |
| Equation of state |
状态方程 |
描述 \(p, \rho, T\) 关系(理想气体 \(p = \rho R T\)) |
离散化(Ch 4-7)
| 英文 |
中文 |
定义 |
| Control volume (CV) |
控制体 |
FVM 离散化的基本单元 |
| Cell centroid |
控制体形心 |
物理量在 cell 上的存储位置 |
| Collocated grid |
同位网格 |
所有变量(\(u, v, p\))存储于同一位置 |
| Staggered grid |
错位网格 |
速度存储于面、压力存储于 cell 形心 |
| Owner / Neighbour |
拥有者 / 邻接者 |
内部面共享的两个 cell |
| Internal face / Boundary face |
内部面 / 边界面 |
内部面连接 2 个 cell,边界面连接 1 个 cell + 1 个 patch |
| Patch |
边界面组 |
OpenFOAM 中具有相同边界条件的面的集合 |
| Face area vector |
面面积向量 |
\(\mathbf{S}_f = \mathbf{n}_f S_f\),面法向与面面积的乘积 |
| Non-orthogonal correction |
非正交修正 |
距离向量与面法向不平行时的扩散项修正 |
| polyMesh |
多面体网格 |
OpenFOAM 网格数据结构 |
| lduMatrix |
下-对角-上矩阵 |
OpenFOAM 稀疏矩阵存储格式 |
| fvMatrix |
FVM 矩阵 |
OpenFOAM FVM 离散化后的线性系统类 |
| fvScheme |
FVM 格式类 |
OpenFOAM 离散化格式(divSchemes、laplacianSchemes 等) |
数值方法(Ch 8-14)
| 英文 |
中文 |
定义 |
| Central Difference Scheme (CDS) |
中心差分格式 |
2 阶精度,\(Pe > 2\) 时振荡 |
| Upwind Differencing Scheme (UDS) |
迎风格式 |
1 阶精度,总有界,数值扩散大 |
| QUICK |
二次迎风插值 |
3 阶精度,Leonard 1979 提出 |
| Linear Upwind |
线性迎风 |
2 阶精度,迎风模板 |
| High Order (HO) Scheme |
高阶格式 |
CDS, QUICK, Fromm 等 |
| High Resolution (HR) Scheme |
高分辨率格式 |
HO + 限制器,避免振荡保持 2 阶精度 |
| Convection Boundedness Criterion (CBC) |
对流有界性条件 |
Gaskell-Lau 1988 提出 |
| Normalized Variable Formulation (NVF) |
归一化变量格式 |
Leonard 提出的"归一化"分析框架 |
| Total Variation Diminishing (TVD) |
总变差递减 |
Harten 1983 提出的稳定性判据 |
| Normalized Variable Diagram (NVD) |
归一化变量图 |
NVD 上可视化 HR 格式 |
| Sweby diagram |
Sweby 图 |
TVD 框架下限制器的允许区域 |
| Limiter |
限制器 |
MINMOD、SUPERBEE、van Leer、Koren、SMART 等 |
| CFL condition |
CFL 条件 |
显式时间格式的稳定性条件 \(\Delta t \leq \Delta x / u\) |
| Crank-Nicolson |
Crank-Nicolson 格式 |
2 阶精度隐式时间格式 |
| BDF |
后向差分格式 |
1 阶、2 阶、6 阶隐式时间格式 |
| Runge-Kutta |
Runge-Kutta 方法 |
显式多步法(RK1/2/3/4) |
| Local Time Stepping (LTS) |
局部时间步进 |
每个 cell 独立选择时间步长,加速稳态收敛 |
| Dual Time Stepping (DTS) |
双时间步进 |
不可压 N-S 瞬态求解的"伪时间步"方法 |
| Under-Relaxation |
亚松弛 |
减慢迭代更新以稳定收敛 |
| Patankar relaxation |
Patankar 亚松弛 |
隐式亚松弛方法 |
| E-factor |
E 因子 |
调整源项导数实现亚松弛 |
| False transient |
伪时间步 |
用瞬态求解器求稳态问题 |
算法(Ch 15-16)
| 英文 |
中文 |
定义 |
| Pressure-velocity coupling |
压力-速度耦合 |
不可压 N-S 的核心难题 |
| Saddle point problem |
鞍点问题 |
含 0 对角块的线性系统 |
| Schur complement |
Schur 补 |
\(-B A^{-1} B^T\),SIMPLE 算法的数学基础 |
| SIMPLE |
半隐式压力连接方程 |
Patankar-Spalding 1972 不可压求解算法 |
| SIMPLEC |
SIMPLE Consistent |
van Doormaal-Raithby 1984 改进 |
| PRIME |
Pressure Implicit with Momentum Explicit |
Raithby-Schneider 1979 |
| PISO |
Pressure-Implicit with Splitting of Operators |
Issa 1986 瞬态不可压求解算法 |
| Pressure correction equation |
压力修正方程 |
SIMPLE 算法的核心 |
| Rhie-Chow interpolation |
Rhie-Chow 插值 |
抑制 collocated 网格棋盘压力场的动量加权插值 |
| Momentum interpolation |
动量插值 |
Rhie-Chow 的扩展,精度更高 |
| Compressible flow |
可压缩流 |
Ma > 0.3 时密度变化显著 |
| All-Mach number flow |
全 Mach 数流动 |
从亚声速到高超声速的统一求解 |
| Density-based method |
密度基方法 |
传统可压缩流求解方法 |
| Pressure-based method |
压力基方法 |
不可压缩 SIMPLE 系列的扩展 |
湍流(Ch 17)
| 英文 |
中文 |
定义 |
| Direct Numerical Simulation (DNS) |
直接数值模拟 |
解析所有湍流尺度,\(\sim Re^3\) 网格 |
| Large Eddy Simulation (LES) |
大涡模拟 |
解析大涡 + 建模小涡,\(\sim Re^{1.8}\) 网格 |
| Reynolds-Averaged Navier-Stokes (RANS) |
雷诺平均 N-S |
建模所有湍流尺度,\(\sim Re^0\) 网格 |
| Favre-Averaged Navier-Stokes (FANS) |
Favre 平均 N-S |
可压缩流的密度加权平均 |
| Boussinesq hypothesis |
Boussinesq 假设 |
Reynolds 应力 = \(\mu_t \times\) 平均速度梯度 |
| Reynolds stress tensor |
Reynolds 应力张量 |
\(-\rho \overline{v_i' v_j'}\) |
| Kolmogorov microscales |
Kolmogorov 微尺度 |
\(\eta = (\nu^3 / \epsilon)^{1/4}\),最小湍流尺度 |
| Energy cascade |
能量级联 |
Kolmogorov 提出的湍流能量传递理论 |
| k-ε model |
k-ε 模型 |
Launder-Sharma 1974,5 个经验常数 |
| k-ω model |
k-ω 模型 |
Wilcox 1988,近壁面处理优异 |
| SST model |
SST 模型 |
Menter 1994,k-ε + k-ω 混合 + 限制器 |
| BSL model |
BSL 模型 |
Baseline SST 变体 |
| y+ |
y+ |
\(y^+ = \rho u_\tau y / \mu\),无量纲壁面距离 |
| Wall function |
壁面函数 |
不解析黏性底层的经验公式 |
| Viscous sublayer |
黏性底层 |
\(y^+ < 5\),黏性主导 |
| Buffer layer |
缓冲层 |
\(5 < y^+ < 30\),黏性 + 惯性 |
| Log layer |
对数层 |
\(30 < y^+ < 300\),惯性主导 |
| Friction velocity |
摩擦速度 |
\(u_\tau = \sqrt{\tau_w / \rho}\) |
边界条件(Ch 18)
| 英文 |
中文 |
定义 |
| Dirichlet BC |
第一类边界条件 |
fixedValue,给定变量值 |
| Neumann BC |
第二类边界条件 |
fixedGradient,给定法向梯度 |
| Robin BC |
第三类边界条件 |
mixed,\(\alpha \phi + \beta \partial \phi / \partial n = \gamma\) |
| noSlip |
无滑移 |
流体在壁面 \(\mathbf{U} = 0\) |
| symmetryPlane |
对称面 |
法向通量为零 |
| cyclic |
周期性 |
两个 patch 配对,cell 视为内部 cell |
| cyclicAMI |
非一致周期性 |
两个 patch 网格不严格匹配 |
| totalPressure |
总压 |
\(p_0 = p + \frac{1}{2} \rho U^2\) |
| totalTemperature |
总温 |
\(T_0 = T + \frac{U^2}{2 c_p}\) |
| inletOutlet |
入口出口 |
入口 fixedValue,出口 zeroGradient |
| processor |
并行分解 |
OpenFOAM 并行计算的 patch 接口 |
应用(Ch 19)
| 英文 |
中文 |
定义 |
| Ahmed body |
Ahmed 钝体 |
汽车空气动力学标准基准,25° 或 35° 后倾角 |
| \(C_D\) |
阻力系数 |
\(C_D = 2 F_D / (\rho U^2 A)\) |
| \(C_p\) |
压力系数 |
\(C_p = (p - p_\infty) / (0.5 \rho U^2)\) |
| snappyHexMesh |
表面贴合网格 |
OpenFOAM 自动网格生成工具 |
§8 适用读者(Target Readership)
| 读者类型 |
推荐度 |
建议阅读方式 |
| 机械 / 航空 / 能源 / 化学工程的研究生(高年级本科也可) |
★★★★★ |
完整阅读 + 在 OpenFOAM 上复现每章算例 |
| 工业 CFD 工程师(汽车 / 航空 / 能源) |
★★★★★ |
Ch 1-3 复习 + Ch 8-12 重点 + Ch 15-17 工程参考 + Ch 19 直接迁移 |
| 计算流体力学博士生 |
★★★★ |
重点 Ch 11-12(HR 格式理论)+ Ch 15(SIMPLE 推导)+ Ch 17(湍流模型) |
| 计算数学 / 数值分析研究者 |
★★★ |
Ch 5 + Ch 10 + Ch 12 作为 FVM 应用案例 |
| 自学 CFD 的工程实践者 |
★★★★ |
Ch 1-3 入门 + Ch 4-7 基础 + Ch 8-12 数值方法 + Ch 15 算法 |
| 本科生(不推荐) |
★ |
部分章节可作为补充阅读 |
§9 比较与同类教材的对比 (Comparison to Competing Books)
| 维度 |
Moukalled 2016 |
Patankar 1980 |
Ferziger-Peric 2002 |
Versteeg-Malalasekera 2007 |
Hirsch 2007 |
| 理论深度 |
中等(公式推导 + 物理意义) |
偏理论 |
较深(数值分析严谨) |
入门 |
较深(多维详细推导) |
| 工程实例 |
★★★★★(Ahmed body + OpenFOAM 完整配置) |
★★(算法描述) |
★(基本无实例) |
★★(少量 1D 例子) |
★★★(部分 2D 算例) |
| 配套代码 |
uFVM + OpenFOAM(双轨) |
无 |
无 |
无 |
无 |
| 全 Mach 数 |
✓(Ch 15-16 特色) |
✗(仅不可压) |
✓(多 Mach 数) |
✗(仅不可压) |
✓(多 Mach 数) |
| 网格章节 |
★★★(Ch 6 + Ch 7 数据结构) |
★★(基础) |
★★★(非结构详细) |
★(简单) |
★★(一般) |
| 湍流章节 |
★★★★(SST + BSL 详细) |
★(基础) |
★★★(RSM、ASM) |
★★(入门) |
★★★★(多模型对比) |
| 工业相关性 |
★★★★★(OpenFOAM 实践) |
★★(历史地位) |
★(学术) |
★★(教学) |
★★★(多场景) |
| 出版年代 |
2016 |
1980 |
2002 |
2007 |
2007 |
| 总页数 |
799 |
197 |
594 |
518 |
754 |
Moukalled 2016 的核心定位:"工业 CFD 工程师 + 研究生的'工程友好型 FVM 圣经'"。
§10 总评分与推荐
综合评分:4.6 / 5
- 理论完整性:4.5 / 5
- 工程实用性:5.0 / 5
- 教学价值:4.5 / 5
- 代码可用性:5.0 / 5
- 时代前瞻性:4.0 / 5(出版于 2016 年,缺少 ML/AI 内容)
总推荐语:"如果你只能读一本 FVM 教材,就读 Moukalled 2016;如果你已经读过 Patankar 1980,再读 Moukalled 2016 可以获得'理论 → 工业'的完整闭环"。如果只能读 1 章,就读 Ch 15(SIMPLE 算法 —— 工业 CFD 求解器的"心脏")。
最值得读的章节:
- 最核心:Ch 5(FVM 核心)+ Ch 8(扩散项 + 非正交修正)+ Ch 12(HR 格式)+ Ch 15(SIMPLE)+ Ch 17(SST 湍流模型)
- 最工程:Ch 6(网格)+ Ch 7(OpenFOAM 数据结构)+ Ch 18(边界条件)+ Ch 19(Ahmed body 完整算例)
- 最理论:Ch 2(向量演算)+ Ch 3(N-S 方程推导)+ Ch 10(线性求解器)+ Ch 12(NVF + TVD 统一分析)
章节索引(Chapter Index)
Ch 1: Introduction(引言)
- 全书引言章节,作者从历史背景(Cray Research 1989 John Rollwagen "supercomputer as the third pillar of science" 演讲)入手,定义 CFD 与 FVM 的工业地位,给出 20 章内容 4 大模块(Foundation / Numerics / Algorithms / Applications)划分。
Ch 2: Review of Vector Calculus(向量演算回顾)
- 工程流体力学数学基础。重点是 5 大定理:梯度定理(Eq. 2.79)、Green 定理(Eq. 2.82)、Stokes 定理(Eq. 2.83)、散度定理 / Gauss 定理(Eq. 2.84,FVM 的母定理)、Leibniz 积分规则(Eq. 2.87-2.89)。FVM 后续推导几乎都调用散度定理。
Ch 3: Mathematical Description of Physical Phenomena(物理现象的数学描述)
- 推导 N-S 方程组(质量 + 动量 + 能量三大守恒定律)。Lagrangian 物质导数 \(D\phi/Dt = \partial \phi/\partial t + \mathbf{v} \cdot \nabla \phi\) (Eq. 3.2) 是 Euler 描述下 N-S 非线性的根源。Reynolds 输运定理 (Eq. 3.4) 是 Lagrangian 守恒定律到 Eulerian 控制方程的桥梁。一般守恒方程 (Eq. 3.93) 是 Ch 5-14 数值方法的"母方程"。
Ch 4: The Discretization Process(离散化过程)
- 给出 CFD 求解的 4 个标准步骤:物理建模 → 网格 → 方程离散 → 求解。以 CPU 散热为示例介绍"控制体 + 邻接 + 边界 patch" 的 FVM 网格拓扑结构。从本章起 uFVM 与 OpenFOAM 的"双轨实现"开始登场。
Ch 5: The Finite Volume Method(有限体积法核心)
- FVM 离散化的两步法:第一步(半离散):积分 + 散度定理 + 数值积分;第二步(全离散):用插值格式将面值表示为控制体心值。给出"4 大指导原则"(守恒性、有界性、输运性、GCL)。最终离散形式 \(a_C \phi_C + \sum_F a_F \phi_F = b_C\) (Eq. 5.43) 是 Ch 8-14 数值方法的"目标形式"。
Ch 6: The Finite Volume Mesh(有限体积网格)
- FVM 网格的"百科全书"。给出网格的拓扑(vertex / face / cell 三层结构 + owner / neighbour 关系)与几何(形心、面积向量、体积)两套完整规范。面法向约定决定了 FVM 通量的符号。
Ch 7: The Finite Volume Mesh in OpenFOAM® and uFVM(OpenFOAM 与 uFVM 中的网格)
- 把 Ch 6 抽象的 FVM 网格规范落到 OpenFOAM 与 uFVM 的具体数据结构。OpenFOAM 的 polyMesh 5 文件(points, faces, owner, neighbour, boundary)是 FVM 网格的"最小完备集"。lduMatrix 存储格式适合 FVM。fvm::/fvc:: 命名空间分离隐式 / 显式操作。
Ch 8: Spatial Discretization: The Diffusion Term(空间离散:扩散项)
- FVM 扩散项离散的"百科全书"。从 1D Cartesian 推广到 3D 非结构非正交各向异性。非正交修正(Over-Relaxed 修正) 是 FVM 在非正交网格上保持有界性的核心技术:主项入 \(a_C, a_F\) 保持有界性,修正项入 \(b_C\) 保留非正交物理。
Ch 9: Gradient Computation(梯度计算)
- FVM 梯度的"工具箱"。Green-Gauss 法(守恒性好、非正交网格一阶精度)与最小二乘法(非正交网格更鲁棒,OpenFOAM 默认)。面梯度是非正交修正的核心输入。梯度计算是 FVM 中最频繁调用的"工具函数"。
Ch 10: Solving the System of Algebraic Equations(线性代数方程组求解)
- FVM 离散化得到的稀疏线性系统 \(\mathbf{A} \mathbf{x} = \mathbf{b}\) 的求解。直接法(Gauss 消元、LU 分解、Thomas 算法)在 CFD 中极少使用。Krylov 子空间方法(CG / GMRES / BiCGSTAB)与AMG 多重网格是工业 CFD 的标准。OpenFOAM 通过
system/fvSolution 配置。
Ch 11: Discretization of the Convection Term(对流项离散化)
- FVM 对流项离散的"开篇章"。CDS 二阶精度但 \(Pe > 2\) 振荡;UDS 一阶精度总有界但数值扩散大;HO 格式(QUICK, Fromm, Third-Order Upwind)三阶精度但有色散误差。修改方程分析揭示了"色散误差"机制 —— 为 Ch 12 的有界性判据提供基础。
Ch 12: High Resolution Schemes(高分辨率格式)
- FVM 对流项离散的"收篇章"。HR 格式 = HO + 限制器。NVF (Normalized Variable Formulation) 与 TVD (Total Variation Diminishing) 两种框架通过 \(\tilde{\phi}_C = r/(1+r)\) 映射等价。Convection Boundedness Criterion (CBC) 是"有界高阶"的精确判据。OpenFOAM 的
divScheme 选项(linearUpwind、SFCD、LUST、MUSCL)是工业 CFD 用户最常调整的参数。
Ch 13: Temporal Discretization: The Transient Term(时间离散:瞬态项)
- FVM 时间离散的"完整工具集"。FDM 路径(前向 Euler、后向 Euler、Crank-Nicolson、BDF、Runge-Kutta)与 FVM 路径(时间元素)两套思路。统一时间离散格式 (Eq. 13.36) 把显式 Euler、Crank-Nicolson、隐式 Euler 统一为单一公式。OpenFOAM 的
ddtSchemes 配置(Euler、CrankNicolson 0.9、backward)。
Ch 14: Discretization of the Source Term, Relaxation, and Other Details(源项离散化、松弛与其他细节)
- 工业 CFD 实践中"非知道不可"的细节。源项的 Taylor 线性化(Eq. 14.3)、隐式 / 显式处理规则("负源隐式、正源显式")。亚松弛(Patankar 隐式、E-factor、伪时间步法)。残差形式与 4 大收敛判据(残差、整体守恒、关键量、网格无关性)。OpenFOAM 的
relaxationFactors 是工业典型配置(p 0.3 / U 0.7 / k 0.7)。
Ch 15: Fluid Flow Computation: Incompressible Flows(流体计算:不可压缩流)
- 全书最长(145+ 页)、最难、最重要的章节。不可压缩 N-S 方程求解的两大核心难题:压力-速度强耦合 + 无压力方程。数学上表现为"鞍点问题"(Eq. 15.3),需 Schur 补 \(-B A^{-1} B^T\)。SIMPLE 算法家族(SIMPLE, SIMPLEC, PRIME, PISO)是工业 CFD 求解器的"事实标准"。Rhie-Chow 插值(Eq. 15.58)抑制 collocated 网格棋盘压力场。OpenFOAM
simpleFoam 用 SIMPLEC,pimpleFoam 用 PISO。
Ch 16: Fluid Flow Computation: Compressible Flows(流体计算:可压缩流)
- Moukalled 这本教材的"独家特色" —— 全 Mach 数范围处理。SIMPLE 扩展到可压流:压力修正方程从椭圆型(不可压)变为双曲-椭圆混合型(可压),通过引入"密度修正"项。压力在不可压与可压流中扮演"双重角色"。OpenFOAM
rhoSimpleFoam、rhoPimpleFoam + thermoType 配置。
Ch 17: Turbulence Modeling(湍流模型)
- FVM 湍流模型的"系统教程"。DNS / LES / RANS 三大湍流建模路线对比。Boussinesq 假设是 RANS 的核心简化。k-ε 模型(Launder-Sharma 1974,5 个经验常数)、k-ω 模型(Wilcox 1988)、SST 模型(Menter 1994,k-ε + k-ω 混合 + 限制器)是工业三大湍流模型。近壁面处理(黏性底层、缓冲层、对数层)通过 \(y^+\) 控制。OpenFOAM
kOmegaSST 是工业 CFD 的"默认选择"。
Ch 18: Boundary Conditions in OpenFOAM® and uFVM(OpenFOAM 与 uFVM 中的边界条件)
- 工业 CFD 开发者"必备参考"。OpenFOAM 边界条件 4 大类组织(basic / constraint / derived / fvPatchField 基类)。编写新边界条件需要实现 5 大核心函数(
updateCoeffs、valueInternalCoeffs、valueBoundaryCoeffs、gradientInternalCoeffs、gradientBoundaryCoeffs)。完整代码示例(totalTemperature)展示 updateCoeffs 的实现。
Ch 19: An OpenFOAM® Turbulent Flow Application(OpenFOAM 湍流应用)
- Ch 4-18 全部方法论的"完整应用"。用 OpenFOAM
simpleFoam 求解汽车 CFD 标准基准 Ahmed body(25° 后倾角)。给出完整的 snappyHexMeshDict 配置 + fvSchemes + fvSolution + 3 重收敛判据。3 级网格细化(castellatedMesh + snap + addLayers)是工业网格生成的"标准模式"。
- 1 页的简短收尾。FVM 已成为"最可靠、最高效的流体与传热问题数值方法之一",是工业商业 CFD 软件与开源 CFD 库/框架的"主流数值技术"。致谢 17 位 FVM 奠基性学者(B. Spalding, S. Patankar, G. Raithby, B.P. Leonard, F. Harlow, I. Raad, A. Gosman, J.P van Doormaal, S. Muzaferija, I. Demirdzic, M. Peric, G.E. Schneider, P. Galpin, S. Majumdar, C.W. Hirt, C. Hirsch, V. Voller)。邀请读者通过
https://feaweb.aub.edu.lb/research/cfd 网站分享改进建议。
致谢:感谢 F. Moukalled, L. Mangani, M. Darwish 三位作者 30 年的 FVM 教学与研究经验,为工业 CFD 领域贡献了这部"理论 + 工程 + 实现"三位一体的优秀教材。