科学仿真

CFL 条件的物理与数学:为什么时间步长不能随意选

导读:CFL(Courant-Friedrichs-Lewy)条件是 CFD 的第一戒律。它既是数值稳定性定理,也是一条物理常识:数值依赖域必须包含物理依赖域。

物理图像

双曲方程的信息以波速 $c$ 传播。显式格式的数值信息每步只传播一个网格。若 $c\Delta t > \Delta x$,物理扰动在一个时间步内跨过了数值格式「看不见」的区域,解必然出错。

这就是 CFL 条件 $\mathrm{CFL} = c\Delta t/\Delta x \le 1$ 的本质:让数值依赖域包含物理依赖域。

多维与隐式情形

多维时 CFL 按各方向分别计算取最严:$\mathrm{CFL}_x + \mathrm{CFL}_y \le 1$(对部分格式)。隐式格式不受此限,但精度分析仍建议 CFL 不过大,否则时间离散误差主导。

网格非均匀时,用局部最小网格尺寸计算 CFL——这是初学者最常翻车的地方。

工程实践

定常问题常用局部时间步长(各点按当地 CFL 取步长)加速收敛;非定常问题必须全局统一时间步。二者不可混淆。

常见误区

  • 在加密网格后忘记重算时间步,导致原本收敛的算例突然发散。
  • 把「隐式稳定」理解为「任意大步长仍精确」。

吃透自检

  • 能从截断分析或依赖域两条路径分别推出 CFL 条件
  • 能处理非均匀网格下的局部 CFL 计算
  • 能区分定常与非定常问题的时间步策略

← 科学仿真 书目精读列表 经典研读