收敛率分析:时间收敛问题

计算科学 pde 数值分析 收敛
2021-12-26 04:25:33

我编写了一个代码来解决 Navier-Stokes 方程的不可压缩公式。它对时间和空间导数都使用高阶方法。我一直在进行收敛速度分析,以验证我的求解器的高阶方面。

对于空间收敛,问题相对简单。例如,我选择一个时间步长dt=104, 以 32 分开始 (nxny) 网格并将我的网格细化为 2。在 1024 网格中,L2-error 达到了一个平台,这对应于前导误差项来自时间离散化方案的点。

时间收敛性研究并不那么容易。我正在使用显式的低存储 RK3 方法。问题是我需要有一个足够精细的网格,以便主要误差项是时间离散化的。根据 CFL 条件,这会产生非常小的dt使模拟稳定。当减少dt为了计算收敛速度,我很快就达到了高原,这表明主要误差项来自空间离散化。因此,我需要进一步细化我的网格,这反过来会导致更小的时间步长等等。这感觉就像蛇咬自己的尾巴。

例如,假设我针对 4096 点网格和时间步长及时开始收敛分析dt=104. 我获得L2-错误为dt=5x105,2.5x105,1.25x105并观察收敛顺序2.99,2.700.26,最后一个值表明前导误差项现在已成为空间离散化的前导误差项。最后,与上面提到的空间方案相反,没有太多的收敛可以显示。

所以现在我想知道,我是否采取了正确的方法对于看似简单的任务,这似乎过于复杂和耗时。

1个回答

这完全取决于您要验证的内容。通常人们希望确认完全离散化的收敛,这需要同时在空间和时间上进行细化。我建议以这种方式进行收敛性研究。

如果您确实想研究时间离散化的纯粹收敛并且您正在使用线的方法,我认为考虑收敛到半离散系统的精确解而不是 PDE 是正确的。这通常在有关数值时间离散化的文献中完成。