使用不连续 Galerkin 方法求解带强迫的平流方程

计算科学 不连续-galerkin 平流
2021-11-24 16:47:39

通过阅读 Hesthaven 和 Warburton 的书,我一直在学习不连续 Galkerin 方法,并且遇到了强制平流方程的问题

ut+ux=g(x,t)

继这本书之后,我已经能够实现一种有效的方法g(x,t)=0在 Mathematica 中,但在强制功能处于活动状态时无法获得稳定的方法。

此外,我的域名为[0,1]有 4 个元素,并尝试了以下两种情况,元素顺序不同,边界和初始条件是

u(0,t)=sin(t)

u(x,0)=sin(x)

我想我遗漏了一些非常明显的东西,但我已经尝试将它实现为“直接方法”

ut=M1Su+M1[f]+M1gh

在哪里

[f]是 DG 通量和

gh=g(x,t)l(x)dx

l(x)是拉格朗日多项式,只要强制函数在原点处变为零,它似乎就可以工作,但当它没有变为零时会失败,并且当 g(x,t) = 1 时尤其糟糕

以及一种“间接”方法,其中

ut=M1Su+M1[f]+g(x,t)

即在本书之后,您从 g 的离散化中获得的质量矩阵(我不是 100% 清楚,但这是一个不同的问题)被来自的反质量矩阵抵消了ut根本不起作用的术语。

问题是,我假设一般来说是否正确g(x,t)可以是任何函数,包括非零常数,无需额外修正,例如人工粘度?

我是否遗漏了公式中的任何内容,例如元素间通量是否需要包含来自g(x,t)?

1个回答

你的数值积分技术也需要稳定到ut=g(x,t)它可能具有与双曲线项不同的时间步限制。