线性化隐式时间步进

计算科学 有限差分 稳定 隐式方法 时间积分
2021-12-07 11:33:59

考虑一般的 FD隐式时间步进方案

xt+1xtΔt=f(xt+1),

其中是感兴趣的向量变量,是一些函数,通常是非线性的。xf

我们可以使用牛顿法从推进到来求解上述非线性方程。但是,这可能会变得非常昂贵。xtxt+1

如果我们改为,其中表示的雅可比行列式,我们得到时间步长方案f(xt+1)f(xt)+Jf(xt)(xt+1xt)Jff

xt+1xt=(IΔtJf(xt))1Δtf(xt)

谁能告诉我关于这个非常笼统的方案的任何信息,任何参考资料?它叫什么名字?稳定性能?

1个回答

这个特殊的例子通常被称为线性隐式欧拉它的线性稳定性与非线性隐式欧拉相同,但非线性稳定性可能是一个限制因素,尤其是对于较大的时间步长。您可以在 Ropp、Shadid 和 Ober 2004 中找到一些关于反应扩散系统的讨论。

更正式地说,这是 Rosenbrock 方法的最简单示例。在 Hairer 和 Wanner 的求解常微分方程 II:刚性和微分代数问题中有一个很好的章节,包括一套基准问题的工作精度图。对于大多数问题,Rosenbrock 方法对于中等公差非常有效。对于强非线性问题,完全隐式方法通常需要稍大的时间步长,而当需要非常严格的公差时,极高阶的方法是好的。请注意,还有一些 Rosenbrock-W 方法只需要雅可比矩阵的近似值。

对于软件,您可以从 Hairer 和 Wanner 找到 RODAS Fortran 77 实现。我还在 PETSc 中实现了这一系列方法,如果您使用并行线性代数或稀疏直接求解器,这可能是合适的。为了进行实验,您可以先查看这个用 Python 编写的 ODE 示例,它生成了这个图您可以使用运行时选项比较不同的方法,例如-ts_type sundials将生成此图