Crank-Nicolson是反应扩散对流(对流)方程的稳定离散化方案吗?


26

我对PDE的常见离散化方案不是很熟悉。我知道Crank-Nicolson是离散化扩散方程的流行方案。平流期也是一个不错的选择吗?

我对解决反应扩散对流方程很感兴趣,

ut+(vuDu)=f

其中D是物质的扩散系数uv是速度。

对于我的特定应用,方程式可以写成

ut=D2ux2Diffusion+vuxAdvection (convection)+f(x,t)Reaction

这是我应用的Crank-Nicolson方案,

ujn+1ujnΔt=D[1β(Δx)2(uj1n2ujn+uj+1n)+β(Δx)2(uj1n+12ujn+1+uj+1n+1)]+v[1α2Δx(uj+1nuj1n)+α2Δx(uj+1n+1uj1n+1)]+f(x,t)

注意αβ条件。这使方案可以在以下之间移动:

  • β=α=1/2 Crank-Niscolson,
  • β=α=1它是完全隐式的
  • β=α=0完全明确

值可以不同,从而允许扩散项为Crank-Nicolson,对流项为其他。什么是最稳定的方法,您会推荐什么?

Answers:


15

这是一个结构合理的问题,非常容易理解。Korrok正确地将您引荐给von Neumann分析和LeVeque的书。我可以添加更多。我想写一个详细的答案,但目前我只有一点时间:

使用,您将获得一种对于任意大步长绝对稳定且二阶精确的方法。但是,该方法不是L稳定的,因此不会抑制非常高的频率,这是不物理的。α=β=1/2

使用,您获得的方法也是无条件稳定的,但仅精确到一阶。此方法非常耗散。它是L稳定的α=β=1

如果采用,则您的方法可以理解为对中心差半离散应用加性Runge-Kutta方法。这种方法的稳定性和准确性分析要复杂得多。关于这种方法的一篇很好的论文在这里αβ

推荐哪种方法在很大程度上取决于的大小,您要处理的初始数据的类型以及所追求的精度。如果可接受非常低的精度,则是非常可靠的方法。如果是中等或较大,则问题是扩散为主且非常僵硬。通常会给出很好的结果。如果非常小,则对流项使用显式方法和高阶迎风可能会比较有利。Dα=β=1Dα=β=1/2D


一个非常有见地的答案,谢谢!是否有办法定义以扩散为主和以对流为主的不同制度?除了比较条款的大小?例如,仅通过比较系数?技术术语L稳定性的含义是什么。大家都推荐这本书,我必须买!
boyfarrell

我给您的标准仅涉及系数。简而言之,L稳定性意味着高频将被强烈衰减。
David Ketcheson

因此,当是一个平滑函数(从某种意义上说,它不具有高频傅立叶分量)时,Crank-Nicolson是一个不错的选择。但是,如果具有尖锐的边缘,则是一个不错的选择。u(x)u(x)β=1
boyfarrell 2013年

这是一个合理的,虽然很粗糙的概括。如果您不需要很高的准确性,那么这些选择至少会起作用。
David Ketcheson

10

一般而言,您需要对抛物线方程式(扩散部分)使用隐式方法-抛物线PDE的显式方案需要很短的时间步才能稳定。相反,对于双曲部分(平流),您将需要一种显式方法,因为它更便宜并且不会破坏您必须通过使用隐式扩散方法解决的线性系统的对称性。在这种情况下,您要避免像这样的居中差异,而切换到单面差异出于稳定性的原因,。(uj+1uj1)/2Δt(ujuj1)/Δt

我建议您看Randy Leveque的书Dale Durran的 “冯·诺伊曼稳定性分析”书。如果您具有周期性边界条件,这是确定离散化方案稳定性的一种通用方法。(还有一个很好的维基文章在这里。)

基本思想是假设您的离散近似值可以写成平面波的总和,其中是波数,是频率。您将平面波塞入到PDE的近似值中,并祈祷它不会爆炸。我们可以将平面波重写为并希望确保。ei(kjΔxωnΔt)kωξneikjΔx|ξ|1

通过说明,考虑具有完全隐式微分的普通扩散方程:

ujn+1ujnΔt=Duj1n+12ujn+1+uj+1n+1Δx2

如果我们用平面波替代,然后除以和,我们得到方程ξneikjΔx

ξ1Δt=DeikΔx2+eikΔxΔx2ξ

现在清理一点,我们得到:

ξ=11+2DΔtΔx2(1coskΔx)

这总是小于一,因此您无事。尝试将其应用于对流方程的显式集中式方案:

ujn+1ujnΔt=vuj1nuj+1n2Δx

,看看你。(这次将有一个虚构的部分。)您会发现,这真是令人难过的时刻。因此,我告诫您不要使用它。如果可以做到,那么为整个对流扩散方程找到稳定的方案就不会有太多麻烦。ξ|ξ|2>1

就是说,我将对扩散部分使用完全隐式的方案。改变在平流部分的差分到,如果和,如果,并选择一个时间步长,使得。(这是Courant-Friedrichs-Lewy条件。)它仅是一阶精确的,因此,如果您对此感兴趣,则可能需要查找更高阶的离散化方案。ujuj1v>0ujuj+1v<0VΔt/Δx1


这是一个非常详细的答案,谢谢。
boyfarrell

该答案仅考虑基于时间向前和向后欧拉方法的离散化。问题是关于Crank-Nicholson。
David Ketcheson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.