第 7 章 · 可压缩流与激波捕捉
一旦流速接近或超过声速,解里会出现激波——一个厚度只有几个分子自由程的间断。差分格式建立在"函数光滑"的假设上,遇到间断就会出乱子。这一节讲 CFD 如何"捕捉"激波:不给激波位置做任何先验假设,让数值解自己把它算出来。
弱解与 Rankine-Hugoniot 条件
经典解要求处处可微,激波处不满足。广义的弱解允许间断,但要求积分意义下守恒。跨过激波,通量必须平衡:
由此导出激波两侧状态的关系(Rankine-Hugoniot 关系)。弱解不唯一——膨胀激波这样的"非物理弱解"也满足方程,必须用熵条件排除它:物理激波上熵增,特征线进入激波而非离开。
激波捕捉格式的两个代价
1. 振荡:二阶格式在激波两侧出现 Gibbs 型振铃,压力可能算出负值导致崩溃。 2. 抹平:一阶格式稳定但把激波抹到好几个网格宽,精度差。
这两种代价的拉锯,催生了第 8 章之前的所有格式设计。
两个经典格式
- Lax 格式:把中心差分的时间点改成时间层平均 $\frac{u_{i+1}^n + u_{i-1}^n}{2}$,无条件线性稳定(CFL 内),但耗散极大。
- MacCormack 格式:预估步用后差、校正步用前差(下一步反过来),二阶精度,历史上第一个广泛使用的实用激波捕捉格式。一维激波管问题(Sod 问题)是它的标准考卷:算出的密度、速度剖面要与精确黎曼解对比。
老师的提醒
- 激波捕捉法的激波位置由通量守恒决定,不靠网格对齐——这正是它优于激波装配法(需预知激波位置)的原因。
- 负密度或负压力崩溃几乎总是振荡导致, remedies 是限制器(下一节)或降阶到一阶迎风。
自检
- 弱解为什么需要熵条件?
- Sod 问题的三波系结构是什么?
- Lax 格式为什么比 MacCormack 更耗散?
更深一层:激波是"非线性自我陡化"的终点站
激波的诞生过程值得用特征线图像完整走一遍:初始光滑的速度扰动里,幅值大的部分特征速度 $f'(q)$ 大、跑得快,幅值小的跑得慢——波形前缘被持续压缩,梯度 $\partial q/\partial x$ 越来越大。若没有耗散,数学上梯度会在有限时间 $t_s$ 变为无穷(伯格斯方程 $t_s = -1/\min q_0'$)。物理上分子粘性在极小尺度上接管,形成厚度仅几个分子自由程的薄层——激波。激波是"对流想陡化、粘性想抹平"两股力量达成平衡的产物:无粘理论里它是间断(厚度为零的极限),真实流体里它是内燃机爆震管里的纳米薄层。
数值方法的处境因此尴尬:网格尺度(毫米级)远大于激波物理厚度(微米级),永远无法解析激波内部。激波捕捉格式的哲学是——不解析它,用守恒律正确地"跳过"它:只要离散格式维持离散守恒,激波的位置与速度就自动正确(RH 条件是积分守恒的直接推论),厚度则由数值耗散虚构几格宽的过渡层。这是"用正确的弱解代替不可得的强解"的教科书级示范。
推导细读:为什么守恒形式"自动"给出正确的激波速度
用两个格式解同一个移动激波:守恒形式与非守恒形式(乘积展开版)。光滑区两者完全等价(只差恒等变形),但跨间断时离散乘积法则失效——非守恒格式在间断处产生一份虚假的"源项",激波速度错得离谱(经典教材有算例:速度错 30%)。守恒格式则因为通量差与跳跃严格对应,离散 RH 条件自动成立:
这就是 Lax-Wendroff 定理的思想:守恒格式的收敛极限必是弱解。它也解释了一条工程铁律:跨激波问题绝对禁止用非守恒(原始变量)形式离散——不是风格问题,是正确性问题。
在真实世界里:激波捕捉的三张成绩单
- 超音速进气道:多斜面压缩产生的斜激波串决定发动机能否起动——RANS 加激波捕捉格式是标准工具,激波/边界层干扰区的分离预测是难点(需要湍流模型校正)。
- 爆炸与爆轰:强激波、多材料界面,HLLC 类稳健格式 + 层网格自适应加密(AMR)是主流。
- 燃气轮机叶栅:槽道激波与附面层干扰造成损失与疲劳——叶轮机械 CFD 的精度分水岭就在激波分辨率。
三张成绩单的共同考点:激波位置(RH 保证)、激波锐度(格式耗散决定)、激波后物理量(振荡控制)。一套激波捕捉格式跑完这三个算例,性能便一目了然。
常见误区与辨析
- "激波被抹平几格是格式不行":在网格无法解析激波厚度的前提下,几格过渡层是捕捉法的固有代价;真正该比较的是位置与后状态。
- "熵条件只是理论细节":跨声速稀疏管问题里,无熵修复的 Roe 格式会收敛到一个带"膨胀激波"的解——数值上看着收敛良好、物理上完全错误,工程后果(推力、效率)全部失真。
- "人工粘性是可耻的":恰当设计的人工耗散是保证收敛与鲁棒性的正当手段;Lax-Wendroff 本质上就是"中心差分 + 显式人工粘性"的封装。
专题深入:熵条件的三种等价表述与它们的数值翻译
熵条件的三种表述值得并排读:Lax 熵条件(特征线进入激波:$f'(q_L) > s > f'(q_R)$)——几何语言;熵不等式(存在凸熵对 $(\eta, F)$ 使 $\eta_t + F_x \le 0$)——分析语言;粘性消失极限(物理解 = 粘性趋于零时的极限)——物理语言。三种表述对标量守恒律等价,对方程组各有强弱——多维系统的熵理论至今不完全。数值翻译:单调格式自动满足(熵条件的离散版)、高阶格式需熵粘性或熵稳定通量(Tadmor 学派)、Roe 格式需熵修复(Harten 修复)。
数学细节展开:Rankine-Hugoniot 的弱形式推导
RH 条件的完整推导只需一步分部积分:在含间断的窄带内对守恒律用弱形式,取带的宽度趋于零的极限,通量的跳跃必须平衡状态的跳跃——$s(q_R - q_L) = f(q_R) - f(q_L)$。RH 不是额外假设,是积分守恒律在间断处的自动推论——这就是为什么"守恒格式的激波位置自动正确":离散守恒 ⟹ 离散 RH ⟹ 激波速度正确。非守恒格式在间断处的虚假源项破坏了这条链——这就是为什么跨激波问题绝对禁止用非守恒形式。
工程案例细节:Sod 激波管的"三波系读图"
Sod 问题的三波系(左行稀疏波、接触间断、右行激波)是每个双曲求解器的"入门考卷"。读图要点:稀疏波是光滑扇形(连续分布)、接触间断只跳密度不跳压力速度、激波跳一切。数值验证的三对:位置对(RH 保证)、波形对(限制器质量)、后状态对(熵条件)。接触间断的数值糊化是任何格式的弱点—— Roe 与 HLLC 的主要差异就在接触间断的分辨率。这张图的三个区域分别是三种物理——学会分区读图,黎曼问题的求解就有了地图。
常见误区与辨析(补充)
- "激波是物理间断":激波有物理厚度(分子自由程量级),数值间断是网格尺度的"虚构"——但 RH 条件保证位置与状态正确。
- "熵条件是学术洁癖":膨胀激波的数值事故(负密度崩溃)就是熵条件被违反的直接后果。
例题
无粘伯格斯方程 $q_t + (q^2/2)_x = 0$,左右状态 $q_L = 2$、$q_R = 0$ 形成激波。用 Rankine-Hugoniot 条件求激波速度,并判断这是不是熵解。
解答
激波速度:
熵检查:特征速度 $f'(q) = q$,左侧 $q_L = 2 > s = 1 > q_R = 0$——特征线进入激波,满足 Lax 熵条件 ✓,是物理解。
- 对照:若 $q_L = 0, q_R = 2$(左小右大),同速度 $s=1$ 的间断是膨胀激波(非物理),真解是稀疏波。