计算平流-扩散的稳定时间步长 DG 方法

计算科学 计算物理学 数字 不连续-galerkin
2021-12-25 23:00:31

对于传输方程的 RKDG 方法的稳定时间步,我们要求

ΔtΔxCFL(2k+1)|λ|,
其中是我们守恒定律的特征值,对于扩散,我相信我们需要λk=0,1,

ΔtΔx2ν,
其中是扩散系数。为了计算稳定的时间步,我正在执行以下操作, 它适用于k = 1到 160 个元素。对于k = 2ν
Δtmin{Δx2ν,ΔxCFL(2k+1)|λ|}.
k=1k=2,它只能为多达 80 个元素生成稳定的时间步长。解决方案不会爆炸,但我没有得到正确的收敛速度。因此,我很好奇是否有人有文献参考,或者可以提供关于如何计算稳定时间步长的正确表达式,从而产生正确的收敛速度。暂时我想坚持使用显式的 RK 方法,因为我还在学习 DG。作为旁注,我选择的 CFL 条件非常小,即CFL=0.05CFL=0.01

1个回答

一般来说,你应该考虑:

对流:

ΔtCCFLαRK(p)Δx(2k+1)|λ|.

扩散:

ΔtDDFLβRK(p)Δx2(2k+1)2ν.

最后:

Δt=min(ΔtC,ΔtD).

这里是不同 RK 方法的比例因子,取决于多项式次数和空间算子。αβ

请注意此外,这些条件仅适用于笛卡尔网格或更精确的 - 适用于一维情况。对于非结构化网格,您还必须考虑度量项。CFL<=1DFL<=1