跳转至

第16章 流体计算:可压缩流(Fluid Flow Computation: Compressible Flows)

作者

本章由 F. Moukalled、L. Mangani 和 M. Darwish 合著。本章是 Ch 15 不可压缩流算法的"姊妹章" —— 把 SIMPLE 算法推广到全 Mach 数范围的流动(亚声速、跨声速、超声速、高超声速)。这是 Moukalled 这本教材的"独家特色" —— 多数 CFD 教材只讲不可压缩(Patankar 1980、Ferziger-Peric)或只讲可压缩(Anderson、Zucrow),很少有教材把两者统一起来。

内容概述

本章 60+ 页篇幅专门处理"压力修正方程在可压缩流中的扩展"问题。Ch 15 推导的压力修正方程 (Eq. 15.20) 是椭圆型,对应不可压流的压力传播;本章推导的扩展压力修正方程是双曲型,对应可压流的激波传播。这是 SIMPLE 算法家族从"纯不可压"扩展到"全 Mach 数范围"的关键创新。

§16.1 历史回顾 —— CFD 求解的两大流派: - 密度基 (Density-Based) —— Roe、Harten-Yee 等基于 Riemann 求解器的方法,传统上用于超声速流动 - 压力基 (Pressure-Based) —— SIMPLE、SIMPLEC、PISO 等基于压力修正的方法,传统上用于不可压流

本书的贡献是把压力基方法推广到全 Mach 数范围。

§16.2 压力的"双重角色" —— 压力在不可压与可压流中扮演不同角色:

Mach 数 压力角色 连续性方程含义
\(Ma \to 0\)(不可压) 压力仅影响速度场(\(\nabla p\) 项) 连续性方程是速度约束(无密度方程)
\(Ma \to \infty\)(高超声速) 压力仅影响密度场(状态方程) 连续性方程是密度方程(有密度对流)

这种"双重角色"是 SIMPLE 算法可以扩展到全 Mach 数范围的物理基础。

§16.3 控制方程 —— 可压缩 N-S 方程组 (Eq. 16.1-16.3): - 连续性方程 (Eq. 16.1) - 动量方程 (Eq. 16.2) —— 包含 Stokes 体积黏性项 \(-\frac{2}{3} \mu (\nabla \cdot \mathbf{v}) \mathbf{I}\) - 能量方程 (Eq. 16.3) —— 温度形式的能量方程 - 状态方程 (Eq. 16.4) —— 理想气体 \(p = \rho R T\)

§16.4 动量方程离散 —— 与 Ch 15 类似,但增加两点差异: 1. 密度 \(\rho\) 在面的插值 —— 高 Ma 数下,CDS 产生振荡,需用迎风限制格式 2. Stokes 体积黏性项 —— 新增项 \(-\frac{2}{3} \nabla \cdot (\mu \nabla \cdot \mathbf{v})\),需要用 Ch 2 Eq. 2.85 散度定理的标量形式离散

§16.5 能量方程离散 —— 温度形式 (Eq. 16.3) 的 FVM 离散,涉及 \(c_p\) 在面的插值与 \(Dp/Dt\) 项的处理。

§16.6 压力修正方程的扩展 —— 本章核心。从 Ch 15 推导开始:

  • 不可压压力修正方程 (Ch 15 Eq. 15.20):

$\(\sum_f \frac{\rho V_P}{a_P} (\nabla p')_f \cdot \mathbf{S}_f = -\sum_f \rho \mathbf{v}_f^* \cdot \mathbf{S}_f\)$

这是椭圆型 PDE(左侧只有扩散项 \(\nabla^2 p'\)),仅适合不可压流。

  • 可压缩压力修正方程的推导 —— 通过密度修正 \(p' \to \rho'\) 引入"对流项"。具体推导包括:
  • 状态方程线性化:\(\rho' = \left( \frac{\partial \rho}{\partial p} \right) p' + \left( \frac{\partial \rho}{\partial T} \right) T'\)
  • 密度修正进入连续性方程
  • 速度修正同时考虑压力梯度 + 密度修正

  • 扩展压力修正方程 (Eq. 16.50)

$\(\sum_f \left[ \frac{\rho V_P}{a_P} (\nabla p')_f \cdot \mathbf{S}_f - \rho' \mathbf{v}_f^* \cdot \mathbf{S}_f \right] = -\sum_f \rho \mathbf{v}_f^* \cdot \mathbf{S}_f\)$

左侧第一项是"压力扩散项"(椭圆型),第二项是"密度对流项"(双曲型)。

  • 数学性质转变 —— 在低 Ma 数下,密度对流项可忽略,方程退化为 Ch 15 的椭圆型;在高 Ma 数下,密度对流项主导,方程变为双曲型,支持激波传播

§16.7 全 Mach 数模拟 —— 综述如何在同一算法框架下处理全 Ma 数范围:

  • 亚声速 (\(Ma < 0.3\)) —— 椭圆型,传统 SIMPLE 足够
  • 跨声速 (\(0.8 < Ma < 1.2\)) —— 双曲型,扩展 SIMPLE + HR 格式 (Ch 12)
  • 超声速 (\(Ma > 1.2\)) —— 强双曲型,需 Riemann 求解器(HLL、HLLC)
  • 高超声速 (\(Ma > 5\)) —— 激波 + 边界层 + 化学反应,需要特殊处理

§16.8 边界条件 —— 可压缩流的特殊边界条件: - 入口 —— 给定总温 \(T_0\)、总压 \(p_0\)、马赫数 \(Ma\)(或速度) - 出口 —— 给定静压 \(p\)(静压边界)或外推 - 壁面 —— 绝热壁(无热流)或等温壁(给定 \(T_w\)) - 远场 —— Riemann 不变量(\(R^-, R^+\))边界条件,用于外流问题

§16.9 计算指针 —— uFVM 与 OpenFOAM 的实现: - OpenFOAM rhoSimpleFoam(稳态可压)、rhoPimpleFoam(瞬态可压) - 状态方程通过 thermoType 配置:hePsiThermo(理想气体)、heRhoThermo(真实气体) - pRef 配置参考压力(亚声速问题需要)

§16.10 闭包 —— 总结可压缩 SIMPLE 算法的核心创新。

核心方程与概念

  • 可压缩 N-S 方程组 (Eq. 16.1-16.4)

$\(\frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{v}) = 0 \tag{16.1}\)$

$\(\frac{\partial (\rho \mathbf{v})}{\partial t} + \nabla \cdot (\rho \mathbf{v} \mathbf{v}) = -\nabla p + \nabla \cdot (\mu \nabla \mathbf{v}) - \frac{2}{3} \nabla (\mu \nabla \cdot \mathbf{v}) + \rho \mathbf{g} \tag{16.2}\)$

$\(\frac{\partial (\rho c_p T)}{\partial t} + \nabla \cdot (\rho c_p \mathbf{v} T) = \nabla \cdot (k \nabla T) + \rho T \frac{D c_p}{Dt} + \frac{Dp}{Dt} - \frac{2}{3} \mu W + \mu U + \dot{q}_V \tag{16.3}\)$

$\(\rho = \frac{p}{RT} \tag{16.4}\)$

其中 \(W = \nabla \cdot \mathbf{v}\)\(U\) 是应变率张量的二阶不变量。

  • 不可压压力修正方程 (Ch 15 Eq. 15.20)

$\(\sum_f \frac{\rho V_P}{a_P} (\nabla p')_f \cdot \mathbf{S}_f = -\sum_f \rho \mathbf{v}_f^* \cdot \mathbf{S}_f\)$

仅含扩散项,椭圆型。

  • 可压缩压力修正方程 (Eq. 16.50)

$\(\sum_f \left[ \frac{\rho V_P}{a_P} (\nabla p')_f \cdot \mathbf{S}_f - (\rho'_f) \mathbf{v}_f^* \cdot \mathbf{S}_f \right] = -\sum_f \rho \mathbf{v}_f^* \cdot \mathbf{S}_f\)$

含扩散项 + 对流项,椭圆-双曲型。

  • 状态方程线性化

$\(\rho' = \left( \frac{\partial \rho}{\partial p} \right)_T p' + \left( \frac{\partial \rho}{\partial T} \right)_p T'\)$

对理想气体,\(\partial \rho / \partial p = 1/(RT)\)\(\partial \rho / \partial T = -p/(RT^2)\)

  • Mach 数判据

  • \(Ma < 0.3\):不可压近似

  • \(0.3 < Ma < 0.8\):弱可压
  • \(0.8 < Ma < 1.2\):跨声速(可能出现局部超声速)
  • \(Ma > 1.2\):超声速
  • \(Ma > 5\):高超声速(激波 + 边界层 + 化学反应)

关键结论

  1. SIMPLE 算法可以扩展到全 Mach 数范围 —— 通过引入"密度修正"项,压力修正方程从椭圆型变为双曲-椭圆混合型,能够捕捉激波。
  2. 压力在不可压与可压流中扮演"双重角色" —— 不可压时影响速度场,可压时同时影响速度与密度场(通过状态方程)。
  3. Moukalled 这本教材的"独家特色"是统一处理全 Mach 数范围 —— 这是相对其他 CFD 教材的明显优势。
  4. Riemann 求解器(HLL, HLLC, Roe, AUSM)是激波捕捉的现代标准,但本书仅在扩展压力修正方程的"双曲项"层面处理,未深入 Riemann 求解器的细节。
  5. OpenFOAM rhoSimpleFoam / rhoPimpleFoam 是工业可压缩 CFD 的标准求解器。

挑战和开放性问题

  1. 激波-边界层相互作用的精确捕捉 —— 高超声速飞行器表面激波与边界层的相互作用是现代 CFD 的研究热点,本书未深入。
  2. 真实气体效应(高温非理想气体) —— 高超声速下空气分子解离、激发、电离,理想气体状态方程失效。需用 Van der Waals、Redlich-Kwong 等真实气体 EOS。
  3. 化学反应流 —— 超燃冲压发动机、火箭发动机等需要详细化学反应(几十到几百个基元反应)。本书未涉及。
  4. 辐射传热 —— 高超声速下热辐射显著(特别是再入大气层飞行器),需要辐射输运方程。
  5. 多相流(液滴、颗粒) —— 喷雾燃烧、固体推进剂等需要 Lagrangian 颗粒追踪 + Euler 流体。
  6. GPU 加速的可压缩 CFD —— 现代研究方向。
  7. 机器学习辅助的激波捕捉 —— NN 加速 Riemann 求解器是 2020 年后的研究热点。

个人反思与批判性分析

本章是 Moukalled 这本教材"全 Mach 数"特色的核心章节,60+ 页篇幅覆盖了 SIMPLE 算法家族从不可压到全 Ma 数的扩展。从写作特点看:

  • "双重角色"概念的清晰阐释 —— 作者用"亚声速(压力影响速度)vs 高超声速(压力影响密度)"的对比,把压力的两种作用讲透。这种"同一变量在不同极限下的不同物理意义"的分析是 Moukalled 教材的"独家特色"。
  • 从 Ch 15 椭圆型压力修正方程到 Ch 16 双曲-椭圆混合型 —— 通过引入"密度修正"项,把 Ch 15 的公式自然推广到 Ch 16。这是"统一框架"的典范,读者可以看到 SIMPLE 算法家族如何通过单一公式变化而覆盖全 Ma 数范围。
  • "全 Mach 数模拟"综述 —— 给出 5 个 Ma 数区间的处理方法(亚声速、跨声速、超声速、高超声速),帮助读者建立"方法选择地图"。这种"问题 → 方法选择"的决策树对工程实践非常有价值。
  • OpenFOAM rhoSimpleFoam 的对应 —— 把抽象的算法映射到具体的 OpenFOAM 求解器,是工程实用性的体现。thermoType 配置(hePsiThermo 理想气体、heRhoThermo 真实气体)使读者能快速上手。
  • "伪时间步"概念在亚声速问题中的应用 —— 通过 pRef 配置参考压力,OpenFOAM rhoSimpleFoam 可以稳定求解亚声速问题(此时压力几乎是常数,但密度依赖温度)。

但本章也存在以下不足:

  • Riemann 求解器的细节 缺失。本书仅给出扩展压力修正方程的"双曲项"形式,未深入 HLL、HLLC、Roe 求解器的具体实现。这是高超声速 CFD 必备知识。对高超声速激波捕捉感兴趣的读者需要参考 Toro Riemann Solvers and Numerical Methods for Fluid Dynamics
  • 真实气体效应 未涉及(仅理想气体)。高超声速下空气分子解离、激发、电离,理想气体状态方程失效。需用 Van der Waals、Redlich-Kwong 等真实气体 EOS,或更复杂的 SAE 表格。
  • 化学反应流 完全未涉及(这是超燃冲压发动机、火箭发动机等问题的关键)。典型问题涉及几十到几百个基元反应,需要专门的化学求解器(如 Cantera、Chemkin)。
  • 辐射传热 未涉及。高超声速下热辐射显著(特别是再入大气层飞行器),需要辐射输运方程或更高阶的辐射模型。
  • 多相流 完全未涉及。喷雾燃烧、固体推进剂等需要 Lagrangian 颗粒追踪 + Euler 流体。
  • 非平衡热力学(双温度、三温度模型)未涉及。高超声速下电子温度、振动温度、转动温度不再平衡,需要多温度模型。
  • 机器学习辅助的可压缩 CFD 是 2020 年后的研究热点(如 NN 加速 Riemann 求解器),本书出版年代限制未涉及。

总体而言,本章是 CFD 教材中"全 Mach 数"特色的代表章节,与 Anderson Modern Compressible Flow(更纯可压理论)、Patankar 1980(更纯不可压)、Toro 2009(更 Riemann 求解器深入)形成四角对标。Moukalled 的优势在于"统一框架(不可压 + 可压) + 工程实践(OpenFOAM rhoSimpleFoam)"两位一体。本章是工业 CFD 用户解决"亚声速到高超声速全范围"问题的"统一参考"。

从工程实践角度,可压缩 SIMPLE 的工程价值:

  • 亚声速内流(如 HVAC 管道、化工厂气体输送)—— OpenFOAM rhoSimpleFoam + 理想气体 EOS
  • 跨声速外流(如飞机机翼、燃气轮机叶片)—— OpenFOAM rhoSimpleFoam + 限制器
  • 超声速内流(如 Laval 喷管、超燃冲压发动机)—— 需 Riemann 求解器
  • 高超声速外流(如再入飞行器、火箭喷管)—— 需真实气体 + 化学反应 + 辐射
  • CFD 代码选型 —— OpenFOAM、ANSYS Fluent、SU2(开源)、CFL3D(NASA 高超)都是工业可选

读者需要根据具体问题选择合适的方法,并通过 benchmark 比较精度与计算成本。

重要参考文献

  • [X1] Harlow F.H., Amsden A.A. (1971) A numerical fluid dynamics calculation method for all flow speeds. Journal of Computational Physics, 8(2): 197-213. (全 Mach 数方法的早期工作)
  • [X2] Patankar S.V. (1980) Numerical Heat Transfer and Fluid Flow. Hemisphere. (SIMPLE 算法原始文献)
  • [X3] Patankar S.V. (1981) A calculation procedure for two-fluid Navier-Stokes equations. Numerical Heat Transfer, Part A, 4(4): 409-425.
  • [X4] Karki K.C., Patankar S.V. (1989) Pressure based calculation procedure for viscous flows at all speeds in arbitrary configurations. AIAA Journal, 27(9): 1167-1174. (SIMPLE 扩展到可压缩)
  • [X5] Harten A. (1983) High resolution schemes for hyperbolic conservation laws. Journal of Computational Physics, 49(3): 357-393.
  • [X6] Roe P.L. (1981) Approximate Riemann solvers, parameter vectors, and difference schemes. Journal of Computational Physics, 43(2): 357-372.
  • [X7] Toro E.F. (2009) Riemann Solvers and Numerical Methods for Fluid Dynamics, 3rd Edition. Springer.
  • [X8] Anderson J.D. (2002) Modern Compressible Flow: With Historical Perspective, 3rd Edition. McGraw-Hill. (可压缩流经典教材)
  • [X9] Hirsch C. (2007) Numerical Computation of Internal and External Flows, 2nd Edition. Butterworth-Heinemann.
  • [X10] Moukalled F., Darwish M. (2001) A unified formulation of the segregated class of algorithms for the incompressible Navier-Stokes equations. Computers & Fluids, 30(5): 561-588. (SIMPLE 系列的统一推导)
  • [X11] OpenFOAM Foundation (2014) The Open Source CFD Toolbox — User Guide. (rhoSimpleFoam / rhoPimpleFoam 实现)
  • [X12] Ferziger J.H., Perić M. (2002) Computational Methods for Fluid Dynamics, 3rd Edition. Springer.