什么时候应该在双曲 PDE 积分中使用隐式方法?

计算科学 pde 双曲-pde 稳定 隐式方法 显式方法
2021-12-05 22:45:04

求解 PDE(或 ODE)的数值方法分为两大类:显式方法和隐式方法。隐式方法允许更大的稳定时间步长,但每步需要更多的工作。对于双曲 PDE,普遍的看法是隐式方法通常不会奏效,因为使用大于 CFL 条件允许的时间步长会导致非常不准确的结果。但是,在某些情况下会使用隐式方法。对于给定的应用程序,应该如何选择是使用显式方法还是隐式方法?

1个回答

核心问题是哪些物理过程(波或源项)具有您有兴趣解决的时间尺度,并且您更愿意跳过哪些时间尺度。如果您对系统中最快的时间尺度不感兴趣,那么这些方程称为“僵硬”。双曲守恒定律通常写成一阶系统

ut+F(u)=G(u,u,...)

在哪里u包含守恒变量,F是通量,并且G称为“源项”。请注意,使用此术语,通量F不包含导数,因此必须输入扩散项和分散项G. 当源项是僵硬的时,使用隐式或半隐式积分是很常见的,就像许多化学反应问题一样,当存在扩散或分散时。化学反应通常可以在每个元素中局部隐式求解,因为它不与相邻单元耦合。

为了计算波速,我们检查通量雅可比行列式的特征值A=[F/u]. 如果我们决定某些波的相位不具有物理意义,那么我们可能想要跨过它们。

例如,如果您正在模拟海洋的长期演化,您可能对表面重力波(例如海啸)不感兴趣。不幸的是,改变波速(或者减慢它以使用显式方法或将其加速到可以使用投影的“刚性盖子”模型)通过改变涡流传播的方式来改变物理学。海洋中的漩涡是重力波几乎与对流平衡但不完全平衡的一种效应。

另一个例子是可压缩欧拉,例如通过数据中心的气流。声波速度比对流快得多,只有后者对传热很重要。如果您对声学不感兴趣,您可能想要使用隐式方法。

与可用于显式方法的步长相比,隐式方法的相对效率取决于在每个步骤/阶段求解代数系统的成本。有效地求解这样的代数系统是一个活跃的研究课题。(提出另一个问题,我会回答它并从这里参考。)

在以下情况下,您可能还想使用隐式方法:

  • 你的方程有有意义的稳态,你想直接探索,也许是为了表征稳定性
  • 您正在解决涉及长期历史的逆/数据同化问题
  • 您想规避顺序障碍以使用具有某些稳定性属性的非常高阶时间积分方法
  • 您正在使用时空自适应方法
  • 您正在使用已经需要求解代数系统的空间离散化(例如具有一致质量矩阵的连续有限元方法)