导读:二阶以上的激波捕捉格式面临悖论:高阶区域要低耗散,间断处要无振荡。limiter 是这道题的工业解。
MUSCL:让重构线性化
把分段常数重构升级为分段线性:界面两侧的左/右状态由相邻单元值外推 $u_{i+1/2}^- = u_i + \frac{1}{2}\phi(r_i)(u_i - u_{i-1})$,其中 $r$ 是相邻梯度比。
limiter 函数 $\phi(r)$ 决定外推的「克制程度」:minmod 最保守、superbee 最激进、van Leer 居中。选择影响激波陡度与光滑区精度的平衡。
TVD 与可容许区间
TVD(总变差不增)保证无新振荡。Sweby 图给出 limiter 的可容许区间:$\phi$ 必须落在由 $\phi=1$、$\phi=r$ 围成的区域内。二阶精度与 TVD 不能兼得(极值点处必退化为一阶)——这不是缺陷,是定理。
更高阶(ENO/WENO)放弃 TVD 改用「自适应选择最光滑模板」,在光滑区拿到五阶、间断附近保持无振荡。
实践参数
时间积分用 SSP-RK(保 TVD 的 Runge-Kutta);CFL 一般取 0.4-0.6。调试时先算 Sod 算例,再看双马赫反射这类强间断考题。
常见误区
- 在极值点附近强推二阶精度,产生非物理过冲。
- limiter 太激进(superbee)导致光滑解呈台阶状。
吃透自检
- 能实现 minmod/van Leer limiter 的 MUSCL 格式
- 能画出 Sweby 可容许区域并解释
- 能说明 TVD 与高阶精度的相容性结论