非线性方程的 CFL 方程

计算科学 有限差分 cfl
2021-12-07 03:08:32

我正在尝试用有限差分法以数值方式(显然)求解无粘性 Burgers 方程。等式如下:

tu+uxu=0

这也读

tu+12xu2=0

并且由于离散解是正的,迎风方案读取

ujn+1=ujn+ΔtΔx[(ui1n)2(uin)2]

剩下的就是定义计算域并将其全部放在一个循环中,就是这样,对吗?为了确定这个域,我知道我们可以使用著名的 CFL 条件。我在学校从未听说过这种情况,我只知道如何将它用于简单的对流案例,例如

tu+cxu=0,CFLcΔtΔx1.

我没有找到任何描述在我的案例或任何其他案例中应用此条件的一般方法的文件。我刚刚发现这项工作涉及相同的问题,但我不明白条件使用的解释如下:

节能灯使用

无论如何,我需要帮助来了解如何使用这种情况。我已经设法实现了我的算法并获得了解决方案,但我想了解正在发生的一切。

先感谢您。

2个回答

对于最简单的线性平流情况,应用冯诺依曼稳定性分析对时间步长大小进行了必要的限制,称为 CFL 条件:

cΔtΔx1

对于像 Burgers 方程这样的非线性方程,由于非线性,不可能推导出对时间步长的必要限制的表达式。在实践中,对于非线性问题,使用与线性平流方程相同的表达式,其中c现在被替换为Smaxn,整个域的最大波速在时间n. 对于 Burgers 方程,一个明显的选择Smaxn

Smaxn=maxi|uin|

更彻底的选择是考虑存在的任何冲击波或膨胀波的波速:

Smaxn=maxi(|12(uin+ui+1n)|,max(uin,ui+1n))

时间步长计算为

Δt=CFLΔx/Smaxn

其中是用户指定的系数。在实践中,的值通常适合说明估计中的不确定性(Toro 1997)。CFL1CFL=0.9

CFL 条件并不总是相同的。它根据方程和离散化而变化。例如,这里没有固定的 c,并且有可变的声速和非线性 PDE。您应该尝试做的是冯诺依曼分析,看看您是否可以为一些基本的线性情况(如平流或热扩散)推导出 CFL 条件。然后你可以在非线性情况下尝试它,比如这个(有一些特殊的处理可以用于非线性情况 iirc,但我认为你不能为汉堡方程得到真正的 CFL)。然后阅读您发布图片的作品,因为它相当深入,您需要背景才能真正理解它。