跳转至

第13章 时间离散:瞬态项(Temporal Discretization: The Transient Term)

作者

本章由 F. Moukalled、L. Mangani 和 M. Darwish 合著。本章是 Ch 8-12 空间离散的"时间维度补充" —— 处理一般守恒方程 (Eq. 3.93) 中瞬态项 \(\partial (\rho \phi) / \partial t\) 的离散化。本章为 Ch 15-16 的 N-S 方程瞬态求解、Ch 19 的 OpenFOAM 完整算例提供时间积分基础。

内容概述

本章 65+ 页篇幅是全书时间离散的"完整工具集",从"有限差分法 (FDM)"到"有限体积法 (FVM)"两套思路展开瞬态项离散化。

§13.1 引言 —— 时间离散与空间离散的"维度差":空间网格是非结构多维的,时间网格是结构 1D 的(\(\Delta t\) 等距或自适应)。FVM 在空间上基于"控制体 + 通量守恒";在时间上可以沿用 FDM 的"泰勒展开 + 多时间层"或 FVM 的"时间元素"。

§13.2 有限差分法 (FDM) 路径 —— 把瞬态项用 Taylor 展开表示为相邻时间层的差分。

  • 前向 Euler (Forward Euler) (Eq. 13.6) —— 一阶精度、显式、CFL 条件 \(\Delta t \leq \Delta x / u\) 严格

$\(\frac{\phi_C^{n+1} - \phi_C^n}{\Delta t} + L(\phi_C^n) = 0\)$

优点:实现简单、无需求解线性系统。缺点:CFL 严格、时间步长小。

  • 后向 Euler (Backward Euler) (Eq. 13.9) —— 一阶精度、隐式、CFL 条件 \(\Delta t\) 无限制

$\(\frac{\phi_C^{n+1} - \phi_C^n}{\Delta t} + L(\phi_C^{n+1}) = 0\)$

优点:时间步长不受 CFL 限制(绝对稳定)。缺点:每步需解线性系统。

  • Crank-Nicolson (Eq. 13.15) —— 二阶精度、隐式

$\(\frac{\phi_C^{n+1} - \phi_C^n}{\Delta t} + \frac{1}{2} L(\phi_C^n) + \frac{1}{2} L(\phi_C^{n+1}) = 0\)$

优点:二阶精度、无条件稳定。缺点:可能产生非物理解(特别是非线性问题),需要"deferred correction"修正。

  • 二阶 Runge-Kutta (RK2) (Eq. 13.19-13.21) —— 显式、二阶精度

$\(\phi^* = \phi^n + \Delta t \cdot L(\phi^n)\)$

$\(\phi^{n+1} = \frac{1}{2}(\phi^n + \phi^* + \Delta t \cdot L(\phi^*))\)$

  • Adams-Bashforth —— 多步法,利用前 \(k\) 个时间层的信息达到 \(k\) 阶精度

  • BDF (Backward Differentiation Formula) —— 多步隐式法,1 阶 / 2 阶 / 3 阶 / 4 阶 / 6 阶形式

§13.3 有限体积法 (FVM) 路径 —— 把瞬态项视为"时间维度上的对流项",构造"时间元素",在时间维度上做体积 / 通量积分。

  • FVM 时间元素 (Eq. 13.27-13.29) —— 在 \((x, t)\) 平面内构造"时空控制体"

$\(\int_{t_n}^{t_{n+1}} \int_{V_C} \frac{\partial (\rho \phi)}{\partial t} dV dt = \int_{V_C} [(\rho \phi)^{n+1} - (\rho \phi)^n] dV\)$

这与"时间维度的对流通量"等价,因此可以把"时间对流"与"空间对流"统一处理。

  • 隐式、显式、Crank-Nicolson 统一形式 (Eq. 13.36)

$\(\frac{(\rho \phi)^{n+1} - (\rho \phi)^n}{\Delta t} = -f \cdot L(\phi^{n+1}) - (1 - f) \cdot L(\phi^n)\)$

其中 \(f\) 是隐式因子:\(f = 0\) 为显式 Euler,\(f = 1\) 为隐式 Euler,\(f = 0.5\) 为 Crank-Nicolson。

  • 稳定性的 von Neumann 分析 —— 离散系统的稳定性取决于 \(f\)\(G = 1 - \Delta t \cdot \lambda\)\(\lambda\) 是空间算子的特征值)的乘积。\(|fG| \leq 1\) 为稳定。

§13.4 非结构网格上的时间离散 —— 1D 情形下时间网格是结构化的;多维情形下每个 cell 有自己的"时间步进"(局部时间步进,Local Time Stepping, LTS)。

§13.5 隐式 / 显式混合策略 —— 在 N-S 方程求解中,隐式处理扩散项 + 显式处理对流项是常见的工程策略(既保证扩散稳定,又减少计算量)。

§13.6 计算指针 —— uFVM 与 OpenFOAM 的实现: - OpenFOAM 通过 system/fvSchemes 中的 ddtSchemes 配置:Euler(隐式)、CrankNicolson 0.9(CN + 90% 隐式)、backwardlocalEuler(LTS) - system/fvSolution 中的 application 控制时间步进方式

§13.7 收敛性诊断 —— 残差下降、时间步长适应、稳态到达判据。

§13.8 闭包 —— 总结时间离散的选择规则。

核心方程与概念

  • 一般瞬态方程 (Eq. 13.1)

$\(\frac{\partial (\rho \phi)}{\partial t} + L(\phi) = 0 \tag{13.1}\)$

其中 \(L(\phi)\) 是空间算子(对流 + 扩散 + 源)。

  • FVM 时间元素离散 (Eq. 13.27)

$\(\int_{V_C} [(\rho \phi)^{n+1} - (\rho \phi)^n] dV + \int_{t_n}^{t_{n+1}} \int_{V_C} L(\phi) dV dt = 0 \tag{13.27}\)$

  • 统一时间离散格式 (Eq. 13.36)

$\(\frac{(\rho \phi)^{n+1} - (\rho \phi)^n}{\Delta t} = -f \cdot L(\phi^{n+1}) - (1 - f) \cdot L(\phi^n) \tag{13.36}\)$

其中 \(f \in [0, 1]\) 是隐式因子。

\(f\) 名称 精度 稳定性
0 显式 Euler 1 阶 CFL 严格
0.5 Crank-Nicolson 2 阶 无条件稳定
1 隐式 Euler 1 阶 无条件稳定
\(f > 0.5\) 加权隐式 介于 1-2 阶 无条件稳定
  • 二阶 BDF (BDF2) (Eq. 13.22)

$\(\frac{3 \phi^{n+1} - 4 \phi^n + \phi^{n-1}}{2 \Delta t} = L(\phi^{n+1})\)$

优点:二阶精度、无条件稳定。缺点:每步存储 2 个时间层。

  • Runge-Kutta 4 阶 (RK4) —— 4 阶精度、显式,但每步需 4 次函数求值。

  • CFL 条件 (Forward Euler 情形) (Eq. 13.50)

$\(\Delta t \leq \min_C \frac{\Delta x_C}{|\mathbf{v}_C| + c_C}\)$

其中 \(c\) 是声速(可压缩流情形)。对显式 Euler,CFL 是硬性限制。

关键结论

  1. FVM 在时间维度上可以采用 FDM 或 FVM 两种思路:FDM 更简洁(泰勒展开),FVM 更"统一"(与空间离散共享"控制体 + 通量"框架)。本书两种都展开。
  2. 隐式 vs 显式的选择取决于"时间步长" vs "每步计算量"的 trade-off:显式时间步长受 CFL 限制但每步便宜;隐式时间步长无限制但每步需解线性系统。
  3. Crank-Nicolson 在非线性问题上可能产生非物理解,需要"deferred correction"或"亚松弛"修正。工业 CFD 常用 90% 隐式 + 10% 显式(CrankNicolson 0.9)以兼顾精度与稳定性。
  4. BDF2 是工业上常用的二阶隐式时间格式:相比 Crank-Nicolson 在刚性问题上更稳定。
  5. Local Time Stepping (LTS) 在多维非结构网格上能显著加速稳态求解:每个 cell 独立选择最大允许时间步长,加快收敛。
  6. OpenFOAM 的 ddtSchemes 配置是工业 CFD 用户最常调整的参数之一。Euler 是默认稳定选择,CrankNicolson 0.9 是工程上"精度 + 稳定性"的最优平衡。

挑战和开放性问题

  1. 非线性问题的隐式求解 —— 当 \(L(\phi)\) 非线性时,\(\phi^{n+1}\) 出现在方程两侧,需要迭代(如 PISO 算法)。
  2. 刚性问题的稳定性 —— 当 \(\Delta t\) 远大于物理时间尺度时,显式格式崩溃;隐式格式需要更复杂的时间步进(SDIRK、ESDIRK 等 Runge-Kutta 隐式方法)。
  3. 多时间尺度耦合 —— 工业 CFD 中常出现"化学反应快 / 流体慢"的多时间尺度问题,需要 IMEX(隐式-显式)方法。
  4. 保结构时间积分 —— 对 Hamilton 系统(无黏流、可压缩流某些极限情形),需要保能量、保动量的特殊时间格式(如 AVF、Lie 群方法)。
  5. GPU 加速的时间积分 —— Runge-Kutta 与多步法的 GPU 并行化是研究热点。

个人反思与批判性分析

本章是 FVM 时间离散的"完整工具集",65 页篇幅覆盖了 FDM 与 FVM 两套思路下的全部主流时间格式。从写作特点看:

  • "FDM 路径"与"FVM 路径"的并列展开 —— 这是 Moukalled 这本教材的特色:把同一问题的两种处理思路都展示给读者,让读者根据工程需要选择。FDM 路径的优势是"简洁直观"(直接用 Taylor 展开),FVM 路径的优势是"与空间离散统一"(同样的控制体 + 通量框架),后者使整个求解器在代码层面更一致。
  • 隐式因子的统一形式 (Eq. 13.36) —— 把显式 Euler、Crank-Nicolson、隐式 Euler 统一为单一公式,便于理解与实现。读者只需调整隐式因子 \(f\) 即可在 1 阶显式、1 阶隐式、2 阶 CN 之间切换,这是工业 CFD 求解器设计中的核心 trade-off 控制。
  • CFL 条件的清晰分析 —— 给出显式 Euler 情形的 CFL 判据 \(\Delta t \leq \min_C \Delta x_C / (|\mathbf{v}_C| + c_C)\),帮助读者理解"为什么显式格式时间步长受限制"。CFL 条件是 CFD 求解器设计中的"金科玉律",违反 CFL 会导致数值崩溃。
  • 稳定性分析(von Neumann) —— 通过 Fourier 模式 \(e^{i k x}\) 分析离散系统的放大因子 \(G(k)\),判断稳定条件。本节是数值分析标准工具的应用。
  • OpenFOAM ddtSchemes 的对应 —— 把抽象的时间格式映射到具体的 OpenFOAM 配置选项。例如 CrankNicolson 0.9 表示 90% 隐式 + 10% 显式的二阶时间格式,是工业上"精度 + 稳定性"的最优平衡。

但本章也存在不足:

  • BDF2 及更高阶 BDF 的稳定性分析不够详细 —— 6 阶 BDF 是工业上常用的"高精度时间格式",但 BDF 阶数 > 2 时对非平滑解会出现"瞬态不稳定"(transient instability),需要"second derivative damping"等技巧修正。本书未深入。
  • Runge-Kutta 隐式方法 (SDIRK, ESDIRK) 是刚性问题的标准解法,本书未涉及。这些方法在天体力学、化学反应 CFD 中非常重要。
  • 保结构时间积分 是 2010 年代后的研究热点(针对 Hamilton 系统、无黏流),本书未涉及。Hairer 等的 Geometric Numerical Integration 是该领域的标准参考。
  • Local Time Stepping (LTS) 的实现细节(如对 \(\Delta t\) 的局部限制、稳定性分析)展开不够。OpenFOAM 的 localEuler 是 LTS 的工业实现,但未详细讨论其稳定性保证。
  • 双时间步进 (Dual Time Stepping, DTS) 是不可压缩 N-S 方程瞬态求解(Ch 15)的核心技术 —— 用"伪时间步"迭代求解每个物理时间步。本书 Ch 15 会涉及,但本章未深入 DTS 的稳定性与收敛性分析。
  • 时间精度 vs 空间精度的匹配 —— 工业 CFD 中常见的"二阶空间 + 一阶时间"的不匹配会导致"时间误差主导"问题,本书未展开匹配原则。

总体而言,本章是 FVM 时间离散的"标准工具集"参考章节,与 Ferziger-Peric、Hirsch 的对应章节形成对标。Moukalled 的优势在于"FDM + FVM 双视角 + 统一形式(隐式因子)"的连贯叙述。本章与 Ch 8-12 空间离散方法一起构成 FVM 数值方法的"完整工具集",是 Ch 15-16 算法、Ch 17 湍流模型、Ch 19 完整算例的前置基础。

从工程实践角度,时间离散格式的选择对 CFD 求解器性能影响巨大:

  • 不可压缩流稳态求解(Ch 15) 常用 SteadyState(隐式 + 局部时间步进 LTS),时间精度不重要
  • 不可压缩流瞬态求解 常用 CrankNicolson 0.9(90% 隐式 + 10% 显式)或 backward(BDF2)
  • 可压缩流稳态求解 常用 SteadyState + localEuler(LTS)
  • 可压缩流瞬态求解 常用 backward(BDF2)或 CrankNicolson
  • DNS/LES 瞬态求解(高阶精度)常用 RK3 / RK4 显式(低存储 Runge-Kutta)

读者需要根据具体工程问题选择合适的时间格式,并通过 benchmark 比较精度与计算成本。

重要参考文献

  • [X1] Hundsdorfer W., Verwer J.G. (2003) Numerical Solution of Time-Dependent Advection-Diffusion-Reaction Equations. Springer. (时间离散标准参考)
  • [X2] Hairer E., Nørsett S.P., Wanner G. (1993) Solving Ordinary Differential Equations I: Nonstiff Problems. Springer. (Runge-Kutta 标准教材)
  • [X3] Hairer E., Wanner G. (1996) Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. Springer. (BDF、隐式 RK 教材)
  • [X4] Crank J., Nicolson P. (1947) A practical method for numerical evaluation of solutions of partial differential equations of the heat-conduction type. Mathematical Proceedings of the Cambridge Philosophical Society, 43(1): 50-67. (Crank-Nicolson 原始文献)
  • [X5] Courant R., Friedrichs K., Lewy H. (1928) Über die partiellen Differenzengleichungen der mathematischen Physik. Mathematische Annalen, 100(1): 32-74. (CFL 条件原始文献)
  • [X6] OpenFOAM Foundation (2014) OpenFOAM: The Open Source CFD Toolbox — Programmer's Guide. (OpenFOAM ddtSchemes 实现)
  • [X7] Ferziger J.H., Perić M. (2002) Computational Methods for Fluid Dynamics, 3rd Edition. Springer. (时间离散标准参考)
  • [X8] Versteeg H.K., Malalasekera W. (2007) An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd Edition. Pearson.
  • [X9] Gaitonde A.L., Visbal M.R. (2001) High-order schemes for Navier-Stokes equations: Algorithm and implementation into FDL3DI. AFRL-VA-WP-TR-1998-3060. (高阶时间格式参考)
  • [X10] Kennedy C.A., Carpenter M.H. (2003) Additive Runge-Kutta schemes for convection-diffusion-reaction equations. Applied Numerical Mathematics, 44(1-2): 139-181. (IMEX 格式)