跳转至

第1章 引言(Introduction)

作者

本章由 F. Moukalled、L. Mangani 和 M. Darwish 合著。三位作者均长期工作于黎巴嫩美国大学 (American University of Beirut, AUB) 机械工程系 CFD 课题组,长期从事有限体积法的研究、教学与工业应用,并共同开发了配套本书的教学性 CFD 代码 uFVM(基于 MATLAB)与工业级开源代码 OpenFOAM® 的扩展例程。本章是全书的开篇,作者在开篇即点明本书的目标定位 —— 一本既面向高年级本科生、也面向研究生与工业界 CFD 从业者的"中等深度、覆盖完整"的有限体积法与计算流体力学教材。

内容概述

本章是全书的总览,没有公式、也没有具体数值方法,它为读者勾勒出有限体积法(FVM)在计算流体力学(CFD)中的地位、本书的写作动机、读者对象以及 20 章内容的整体结构。

作者从历史背景入手,引用 Cray Research 公司前 CEO John Rollwagen 在 Supercomputing 89 上提出的著名观点 —— "计算机仿真正在作为科学方法中继理论与实验之后的第三大支柱而崛起",进而指出:CFD 作为仿真工具的典型代表,最初源于航空航天工业的需求,而今已渗透到汽车、电力、化工、核能、船舶、电子散热、生物医学、HVAC、消防与空气品质评估等几乎所有设计密集型行业。

作者随后给出 FVM 的精确定义:将守恒定律对应的偏微分方程在差分体积上积分,得到有限体积(控制体)上的离散代数方程组;并总结 FVM 的三大核心特征:(a) 严格守恒性(相邻控制体公共面上的通量相同)(b) 适用于非结构多边形网格(无需正交结构网格)(c) 边界条件易于以非侵入方式施加(因变量位于控制体形心而非面上)。

更形式化地,本书采用的一般性标量守恒方程(将在 Ch 3 详述)可写为

\[\frac{\partial \phi}{\partial t} + \nabla \cdot (\mathbf{u} \phi) = \nabla \cdot (\Gamma \nabla \phi) + S_\phi \tag{1.1}\]

其中 \(\phi\) 为任意标量(质量分数、能量、湍动能等),\(\mathbf{u}\) 为速度场,\(\Gamma\) 为扩散系数,\(S_\phi\) 为源项。该方程是 Ch 8-14 各数值章节的"母方程" —— 各项分别在不同章节单独处理:瞬态项在 Ch 13、对流项在 Ch 11-12、扩散项在 Ch 8、源项在 Ch 14。

最后作者在 §1.3 给出了 20 章内容的 4 大模块划分: - Foundation(Ch 2-7):线性代数、向量演算基础 → 物理守恒方程 → 离散化过程总览 → 有限体积法整体框架 → 控制体网格 → uFVM 与 OpenFOAM 数据结构与实现 - Numerics(Ch 8-14):扩散项、对流项、源项的空间离散 + 梯度计算 + 代数方程求解 + 高分辨率格式 + 时间离散 + 松弛与收敛细节 - Algorithms(Ch 15-16):基于 SIMPLE 系列算法的不可压 / 可压流体求解 - Applications(Ch 17-19):湍流模型 + 边界条件实现 + OpenFOAM 完整湍流算例

每章末尾的 "Computational Pointers" 段给出 uFVM 与 OpenFOAM 的实现细节与排雷建议。

核心方程与概念

本章虽不涉及严格推导,但提供了几个对全书有奠基性意义的概念,可在原文中精炼为以下形式(无 LaTeX 公式,只有文字定义):

  • 守恒型 PDE 在控制体上的离散化 (1.2 节)

$\(\int_{V_P} \nabla \cdot \mathbf{F} \, dV = \oint_{\partial V_P} \mathbf{F} \cdot d\mathbf{S} \tag{1.2}\)$

这是后续所有 FVM 推导的"母公式",由散度定理(Gauss 定理)将体积分化为面积分,使每个控制体界面上的通量仅与邻接控制体共享一个值,从而保证全局守恒。

对控制体 \(P\),其面 \(f\) 的通量记为 \(F_f = \mathbf{F}_f \cdot \mathbf{S}_f\)。所有面 \(f\) 集合的求和即给出离散后的代数方程

$\(\sum_{f \sim nb(P)} F_f = S_{P} V_{P} \tag{1.3}\)$

其中 \(nb(P)\)\(P\) 的所有邻接控制体集合,\(V_P\) 为控制体体积。Ch 5 会给出该式的具体离散化推导;Ch 8-14 则分别对瞬态、对流、扩散、源各项给出更精细的数值近似。

  • FVM 在网格类型上的"不可知性"

与有限差分法(FDM)需要正交结构网格、有限元法(FEM)依赖形函数插值不同,FVM 只需将几何域划分为互不重叠的多面体控制体,对网格拓扑(结构/非结构、正交/非正交、二维/三维)没有强约束。这一性质使得 FVM 在处理复杂工业几何时具备天然优势。

  • 三大离散化步骤(Ch 4 详述):(i) 物理建模 + 几何建模,(ii) 几何离散(网格),(iii) PDE 离散(代数方程组),(iv) 方程组求解。本书在 Foundation 模块逐步展开前 3 步,Numerics 模块负责第 3 步中各项的精细处理,Algorithms 模块负责把通用守恒方程具体到 Navier-Stokes 方程组。

步骤 (i) 的"物理建模"实际上等价于在 N-S 方程组上做一次"投影":将 Reynolds 平均、湍流黏性、浮力、辐射等复杂物理效应附加到 Navier-Stokes 框架内,得到可求解的封闭方程组。对不可压牛顿流体,质量守恒 + 动量守恒为

$\(\nabla \cdot \mathbf{u} = 0 \tag{1.4}\)$

$\(\frac{\partial (\rho \mathbf{u})}{\partial t} + \nabla \cdot (\rho \mathbf{u} \mathbf{u}) = -\nabla p + \nabla \cdot (\mu \nabla \mathbf{u}) + \rho \mathbf{g} \tag{1.5}\)$

其中 \(\rho\) 为密度,\(p\) 为压力,\(\mu\) 为动力黏度,\(\mathbf{g}\) 为重力加速度。可压缩流在 Ch 16 处理,会附加能量方程与状态方程。

  • 从一维到三维的渐进式推导策略

作者特别说明:"Generally the numerics in each chapter are first presented for a one dimensional grid and progress towards two and three dimensional unstructured grids",这一写作策略贯穿全书(Ch 8 扩散项、Ch 11/12 对流项尤其典型)。其好处是:先在一维情形下建立守恒性、稳定性、单调性等基本认识,再推广到高维、非结构、非正交的实际场景。

一维守恒律的形式是

$\(\frac{\partial \phi}{\partial t} + \frac{\partial F}{\partial x} = \frac{\partial}{\partial x}\left(\Gamma \frac{\partial \phi}{\partial x}\right) + S \tag{1.6}\)$

在一维情形下,每一控制体只有左右两个面(\(f = W, E\)),其通量求和简化为 \(F_E - F_W\),这是 FVM 离散化的最小可解形式。Ch 8-14 几乎都从此出发,再推广到二维/三维非结构网格。

  • uFVM 与 OpenFOAM 的双轨实现

本书每一个数值方法都同时给出两套实现:uFVM(教学性,MATLAB 写成,代码行数小,逻辑可读性高)和 OpenFOAM(工业级,C++ 写成,可扩展为实际工程问题)。这种"教学—工业"双轨设计是本书区别于纯理论书(如 Ferziger-Peric 的 Computational Methods for Fluid Dynamics)或纯工业手册(如 OpenFOAM 用户指南)的关键特色。

uFVM 在每章的 "Computational Pointers" 段中给出对应实现的关键函数签名;OpenFOAM 的实现则给出对应类(如 fvMatrix<Type>GeometricField<Type, fvPatchField, volMesh>)的成员调用形式。最终的线性系统

$\(\mathbf{A} \mathbf{x} = \mathbf{b} \tag{1.7}\)$

在两套代码中均通过线性求解器(Ch 10 详述)得到数值解。

关键结论

  1. CFD 已成为设计密集型行业不可替代的工具:从航空到生物医学、从电子散热到暖通空调,凡是涉及流体流动、传热或传质的过程,几乎都依赖 CFD 进行设计迭代与方案优化。
  2. FVM 在 CFD 中具有独特地位:其守恒性、网格灵活性、边界条件易实施性,使 FVM 区别于 FDM 与 FEM,成为主流工业 CFD 代码(ANSYS Fluent、OpenFOAM、Star-CD、SU2 等)的统一底层方法论。
  3. 本书的覆盖范围与定位:20 章内容 = 1 章引言 + 6 章基础 + 7 章数值方法 + 2 章算法 + 3 章应用 + 1 章结尾。本书既可作高年级本科 FVM 离散化基础课教材,也可作研究生级 FVM 应用与 CFD 课程教材,同时也是 CFD 工程师的案头参考书。
  4. uFVM + OpenFOAM 的双重代码支撑:通过 FE-AUB 课题组维护的网站 https://feaweb.aub.edu.lb/research/cfd,可下载 uFVM MATLAB 程序、OpenFOAM 扩展例程以及配套讲义;这一"教材—代码"绑定大幅降低了自学门槛。
  5. SIMPLE 算法的历史定位:作者强调 FVM 的兴起与 1970 年代初 Brian Spalding 在 Imperial College 开发的 SEMPLE 算法(Patanker-Spalding)密切相关 —— 从 1970 到 2010 年代约 40 年间,FVM 与 SIMPLE 系列算法共同推动了 CFD 从研究工具走向工业标配。

挑战和开放性问题

本章并未提出具体的开放性问题,但隐含了以下几个值得在后续章节深入回答的关键问题:

  1. 如何在非结构非正交网格上保持二阶精度? 这是 FVM 区别于 FDM 的核心难题,本书在 Ch 8(扩散项)、Ch 9(梯度计算)中给出系统的最小修正 + Over-Relaxed 思路,但如何处理高度扭曲网格仍依赖经验性修正。
  2. 高阶格式在非结构网格上的实现成本与稳定性如何平衡? Ch 12 的高分辨率格式(HR)在结构网格上已有成熟 TVD / NVD 理论,但非结构网格上的实现仍是研究热点。
  3. 不可压 N-S 方程的"无压力方程"耦合难题:Ch 15 引入 SIMPLE + Rhie-Chow 插值,但若读者想理解为什么压力方程的离散形式会从椭圆型(不可压)变成双曲型(可压),需要看 Ch 16 的扩展。
  4. 湍流模型的"普适性 vs 精度"取舍:Ch 17 给出 k-ε、k-ω、SST、SA 等两方程模型的实现细节,但工业界到底选哪一个、为什么没有"普适最优"的湍流模型,本书未给出明确判断。
  5. 多相流、化学反应流、燃烧等复杂物理的可压缩性问题:本书侧重单相、可压 / 不可压两大类,多相流(VOF、Level-Set、Euler-Euler)未涉及,这是与 Anderson、Tannehill 等经典 CFD 教材相比的明显覆盖缺口。

个人反思与批判性分析

本章作为全书导言,写法上非常传统 —— 引言 + 历史背景 + 本书结构说明,几乎没有任何"作者自身观点"的个性化色彩。这与作者 Moukalled 等人在 AUB 长期从事 FVM 教学、研读比较有限元 / 有限体积 / 有限差分三大方法论的背景相一致,他们更愿意以"工程师实用手册"而非"个人方法论宣传"的口吻呈现全书。

从教学法的角度,本章最后一段 "The next chapter will give a brief review of the mathematical operations that will be used throughout the book" 是一个非常重要的承诺 —— 它意味着本书假设读者已具备线性代数与向量演算基础,并未打算从微积分零基础开始讲起。这一点对自学者的参考价值在于:若读者发现 Ch 2 的张量记号、Gauss 定理、散度定理等过于简略,可能需要额外补充 Anthony Croft 等的 Engineering Mathematics: A Foundation for Electronic, Electrical, Communications and Systems Engineers 或 Riley-Hobson-Bence 的 Mathematical Methods for Physics and Engineering

需要特别指出的是,本章在介绍 FVM 时并未明确提及 "守恒性 vs 守恒律" 这一概念区分。FVM 之所以"严格守恒",本质原因是它从积分型守恒律出发,而不是从微分型方程出发。微分型方程在数值离散后一般不再严格守恒。这一区分在 Ch 3、Ch 5 中会进一步展开;自学时可作为预习重点。

本书的"双轨代码"策略(uFVM + OpenFOAM)是其商业价值的核心 —— 单纯讲理论,远不如 Ferziger-Peric;单纯讲 OpenFOAM 又显得碎片化。本书通过"先讲理论、再讲双代码实现"的连贯结构,让读者能在阅读每章理论后立即通过 uFVM(最简实现)验证,再在 OpenFOAM 上对接工业实践。这种"理论 → 教学代码 → 工业代码"的三级递进是本书的最大写作特色。

重要参考文献

  • [X1] Moukalled F., Mangani L., Darwish M. The Finite Volume Method in Computational Fluid Dynamics — An Advanced Introduction with OpenFOAM® and Matlab®. Springer, 2016 (Series: Fluid Mechanics and Its Applications, Vol. 113). DOI: 10.1007/978-3-319-16874-6.
  • [X2] Patankar S.V., Spalding D.B. (1972) A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. International Journal of Heat and Mass Transfer, 15(10): 1787-1806. (SIMPLE 算法原始论文)
  • [X3] Spalding D.B. (1981) A general purpose computer program for multi-dimensional one- and two-phase flow. Mathematical Computations in Multiphase Flow (NHT/ASHRAE). (FVM 与 SIMPLE 在两相流中的早期推广)
  • [X4] Ferziger J.H., Perić M. (2002) Computational Methods for Fluid Dynamics, 3rd Edition. Springer. (FVM 的另一本经典教材)
  • [X5] OpenFOAM Foundation. The Open Source CFD Toolbox — User Guide. (工业级 FVM 实现的开源参考)
  • [X6] Versteeg H.K., Malalasekera W. (2007) An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd Edition. Pearson. (FVM 入门经典,深度与 Moukalled 相近)
  • [X7] Anderson J.D. (2009) Basic Flight Mechanics with Drag, Lift and Thrust / Computational Fluid Dynamics: The Basics with Applications. McGraw-Hill. (CFD 入门参考)