一般而言,您需要对抛物线方程式(扩散部分)使用隐式方法-抛物线PDE的显式方案需要很短的时间步才能稳定。相反,对于双曲部分(平流),您将需要一种显式方法,因为它更便宜并且不会破坏您必须通过使用隐式扩散方法解决的线性系统的对称性。在这种情况下,您要避免像这样的居中差异,而切换到单面差异出于稳定性的原因,。(uj+1−uj−1)/2Δt(uj−uj−1)/Δt
我建议您看Randy Leveque的书或Dale Durran的 “冯·诺伊曼稳定性分析”书。如果您具有周期性边界条件,这是确定离散化方案稳定性的一种通用方法。(还有一个很好的维基文章在这里。)
基本思想是假设您的离散近似值可以写成平面波的总和,其中是波数,是频率。您将平面波塞入到PDE的近似值中,并祈祷它不会爆炸。我们可以将平面波重写为并希望确保。ei(kjΔx−ωnΔt)kωξneikjΔx|ξ|≤1
通过说明,考虑具有完全隐式微分的普通扩散方程:
un+1j−unjΔt=Dun+1j−1−2un+1j+un+1j+1Δx2
如果我们用平面波替代,然后除以和,我们得到方程ξneikjΔx
ξ−1Δt=De−ikΔx−2+eikΔxΔx2ξ
现在清理一点,我们得到:
ξ=11+2DΔtΔx2(1−coskΔx)。
这总是小于一,因此您无事。尝试将其应用于对流方程的显式集中式方案:
un+1j−unjΔt=vunj−1−unj+12Δx
,看看你。(这次将有一个虚构的部分。)您会发现,这真是令人难过的时刻。因此,我告诫您不要使用它。如果可以做到,那么为整个对流扩散方程找到稳定的方案就不会有太多麻烦。ξ|ξ|2>1
就是说,我将对扩散部分使用完全隐式的方案。改变在平流部分的差分到,如果和,如果,并选择一个时间步长,使得。(这是Courant-Friedrichs-Lewy条件。)它仅是一阶精确的,因此,如果您对此感兴趣,则可能需要查找更高阶的离散化方案。uj−uj−1v>0uj−uj+1v<0VΔt/Δx≤1