2. 守恒型偏微分方程基础

有限体积法的全部推导都建立在一个前提上:控制方程必须写成守恒形式。所谓守恒,不是指数值格式“看起来稳定”,而是指方程本身对任意控制体积都满足“内部变化 = 边界净通量 + 内部源项”这一收支平衡。本节先把这一结构讲清楚,再说明它如何决定后续离散方式。

一、从积分形式出发:守恒律的物理原型

取空间中一个固定不动的控制体积 \(V\),其边界为 \(\partial V\),外法向单位向量为 \(\mathbf{n}\)。设守恒量为 \(U\)(可以是质量、动量分量、能量等),通量向量为 \(\mathbf{F}(U)\),源项为 \(S(U,x,t)\)。则积分形式的守恒律写作:

d/dt ∫_V U dV + ∮_{∂V} F(U)·n dA = ∫_V S dV

三项含义非常明确:第一项是控制体内守恒量的时间变化率;第二项是穿过边界的净流出量(注意 \(\mathbf{n}\) 取外法向,流出为正);右端是体积内源项产生的总量。这个式子不依赖 \(U\) 是否光滑,即使出现激波、间断,只要积分有意义,守恒关系依然成立——这正是有限体积法选择积分形式作为出发点的根本原因。

对光滑解,用高斯散度定理把面积分转为体积分,并令 \(V\) 任意收缩,即得微分形式:

∂U/∂t + ∇·F(U) = S(U)

这一步转换是有代价的:微分形式要求 \(U\) 和 \(\mathbf{F}\) 可微,在激波处失效。因此工程上常说“积分形式更基本,微分形式是光滑解下的等价表述”。有限体积法直接在控制体积上离散积分形式,天然绕开了对解光滑性的要求。

守恒律的积分形式与离散收支 控制体积 V 守恒量 U 源项 S·V dU/dt · V F·n·A F·n·A F·n·A F·n·A 单元收支平衡 时间变化量 = 流入 − 流出 + 源项 相邻单元共用同一界面通量 → 内部通量成对抵消 → 全域严格守恒 积分形式对间断解仍成立;微分形式 ∂U/∂t + ∇·F = S 仅在解光滑处等价 有限体积法直接离散积分形式,因此天然适合激波与接触间断问题

二、通量函数:守恒结构的核心载体

通量函数 \(\mathbf{F}(U)\) 决定了信息往哪里传、以多快传。对一维标量守恒律 \(u_t + f(u)_x = 0\),通量的导数 \(f'(u)\) 就是特征速度,它告诉我们扰动沿哪个方向传播。这一点直接决定了有限体积法在界面上如何取通量:迎风思想、Roe 格式、Godunov 格式,本质上都是在用左右两侧状态构造一个满足守恒与熵条件的数值通量 \(\hat{F}_{i+1/2}\)。

数值通量的关键性质是相容性与一致性:当左右状态相等时,\(\hat{F}(U,U) = \mathbf{F}(U)\cdot\mathbf{n}\)。同时它必须满足守恒性——同一个界面,对左单元是流出、对右单元是流入,大小相等方向相反。正是这一条,使得把所有单元方程相加时,内部界面通量两两抵消,只剩边界通量,从而在离散层面复现了连续层面的守恒律。

以标量线性对流 \(f(u)=au\)(\(a>0\))为例,一阶迎风数值通量取 \(\hat{F}_{i+1/2}=a\,u_i\),即用上游值。代入半离散格式:

du_i/dt = -(a/Δx)(u_i - u_{i-1})

若取 \(a=1\)、\(\Delta x=0.1\)、初始为阶跃分布,用显式欧拉推进,时间步需满足 CFL 条件 \(a\,\Delta t/\Delta x \le 1\),即 \(\Delta t \le 0.1\)。这是示例参数下的稳定性约束,实际计算中应据此选取时间步并观察数值解是否出现非物理振荡。

三、源项的处理位置

源项 \(S\) 在积分形式中出现在体积分里,离散后通常写成 \(S_i V_i\),作为单元右端的附加项。看似简单,但源项与通量的平衡往往决定解的精度:例如浅水方程中的底坡源项、可压缩流中的重力源项,若与通量离散不“协调”,会在静止平衡态上产生虚假流动。工程做法是把源项在单元内做适当积分(如中点值或高斯积分),并尽量与通量离散保持一致的平衡性质(well-balanced)。

四、两类典型方程的守恒结构

标量守恒律是最小模型,\(U=u\),\(\mathbf{F}=f(u)\mathbf{e}_x\),结构简单但已包含激波形成、熵条件、迎风性等全部核心难点,适合用来验证格式的守恒性与单调性。

Euler 方程把守恒结构扩展到方程组。一维情形下守恒变量与通量为:

U = [ρ, ρu, ρE]^T
F = [ρu, ρu²+p, u(ρE+p)]^T

三个分量分别对应质量、动量、能量守恒。注意动量通量中的 \(p\) 和能量通量中的 \(u(\rho E+p)\) 都不是简单的“对流量”,而是对流与压力做功的耦合。Euler 方程的通量雅可比矩阵 \(A=\partial F/\partial U\) 有三个实特征值 \(u-c,\ u,\ u+c\),分别对应两道声波和一道熵波/接触波。有限体积法在界面上构造数值通量时,必须同时考虑这三个波的方向,这正是 Riemann 求解器(如 Roe、HLLC)的工作内容。

判断一个格式是否真正守恒,最直接的办法是检查:把所有单元方程求和后,内部界面通量是否严格抵消。若因浮点误差或界面通量不一致而残留,长时间积分会出现质量漂移。

五、从守恒结构到离散决策