反向欧拉中具有小时间步长的解振荡

计算科学 pde 稳定 有限元
2021-12-16 05:30:31

我在 FEM 方案中使用反向欧拉来解决对流扩散问题。正如预期的那样,在给定的网格上,我可以采取任意大的时间步长。但是如果我减少时间步长,在某些时候它会在解决方案中产生振荡(尖峰)。这是一种已知的行为吗?教科书中没有提到它,至少我知道的那些。Crank-Nicolson 方案会消除这个问题吗?

上述问题只是演示这一现象的最简单的问题。我附上了我真正问题中发生的事情的图像:瞬态(这里只有二维)不可压缩流。ρ=1, 动态的η=1×103, 平进水口 1, 缸径 0.1 (Re=100)。如果时间步长为 0.0001,则会发生这种振荡。如果时间步长为 0.005,解决方案会变得平滑,并且我会以适当的频率重现 von Karman 涡流,因此代码中不太可能存在错误。

这是标准 Galerkin FEM,没有使用直接求解器求解稳定。

任何其他想法这如何可能以及如何知道小时间步“太小”。

在此处输入图像描述

感谢您的任何提示。

多米尼克

2个回答

假设您保持空间网格(网格)大小不变并减少时间步长,可能发生的一件事是,当您减少时间步长时,您会进入右半部分的反向欧拉方法的小而不稳定的区域-稳定性图的平面。(参见Ascher 和 Petzold,第 52 页。)后向欧拉的不稳定区域是{zC:|1z|1}, 在哪里z=hλ,h成为你的步长和λ是检验方程的特征值y˙(t)=λy(t).

由于对流扩散的真解算子只有实部为负的特征值,如果你的半离散化产生的特征值是正实部,那么它是一个非常糟糕的半离散化!

您是否对代码进行了收敛测试?

从绝对稳定性的角度来看(认为非线性 PDE 的必要但不是充分的稳定性条件),在保持线型离散方法中固定的空间离散化的同时减少时间步长应该是安全的。因此,当时间步长被细化时,稳定性似乎会恶化,这令人惊讶。

后向欧拉法是如何实现和解决的?除了可以立即使用直接求解器的线性 PDE 之外,通常使用不动点迭代方案或 Newton-Raphson 方法来求解隐式方案以将解推进一个时间步长。在这两种情况下,减少时间步长应该是有利的。

你是如何施加边界条件的?

对您的数值方案进行更详细的描述将有助于准确理解您所做的事情。