求解可压缩欧拉方程的可能方法有哪些

计算科学 pde 双曲-pde 有限元
2021-12-13 01:41:47

我想为可压缩欧拉方程编写自己的求解器,最重要的是我希望它在所有情况下都能稳健地工作。我希望它是基于 FE 的(DG 可以)。有哪些可能的方法?

我知道做 0 阶 DG(有限卷),它应该工作得非常稳健。我已经实现了一个基本的 FVM 求解器,效果很好,但是收敛速度很慢。但是,这绝对是一种选择。

我已经为线性欧拉方程实现了一个有限元求解器(适用于任何网格和任何元素上的任何多项式阶数),但是我得到了虚假的振荡(最终它会爆炸,所以我不能使用它来解决我的问题)和我在文献中读到需要稳定它。如果我实施一些稳定化,这对所有问题(=边界条件和几何)是否有效?收敛速度会是多少?

除此之外,欧拉方程是否还有其他稳健的方法(即具有一定稳定性的高阶 DG)?

我知道很多人在他们的研究代码中尝试了很多不同的东西,但我对适用于所有几何和边界条件的稳健方法感兴趣(编辑:2D 和 3D)。

1个回答

求解非线性一阶双曲偏微分方程系统(如欧拉方程(用于可压缩、无粘性流动))的主要数值困难在于,即使初始数据是平滑的,在有限时间后解中也会出现不连续性(冲击波)。为了解决这个问题,大多数现代代码同时使用

  • 斜率(或通量限制器,它提供了一种在不连续性附近精确计算导数的方法,而不会引入虚假振荡;
  • 近似黎曼求解器,局部(在每个网格边缘/面)求解具有分段常数初始数据和单个不连续点的初始值问题。

存在结合了限制器和黎曼求解器的有限差分 (FD)、有限体积 (FV) 和有限元 (FE) 离散化,它们都可以变得非常精确,至少远离冲击。因此,断然地说 FE 方法比 FV 方法收敛得更快是没有意义的——如果使用可比较的阶离散化,它们将具有可比性。

在 FE 方法中,不连续的 Galerkin 方法在这里最合适,因为解实际上是不连续的。如果你想实现自己的,我建议你阅读这篇评论论文并获得一份Hesthaven & Warburton 的文本以了解基础知识。然后有很多关于可压缩流动的 DG 论文

如果你愿意使用别人的代码,而且我知道你使用 Python,你可以看看Andreas Kloeckner 的 Hedge 代码,它有一个 Python 接口并且可以在 GPU 上运行。可能还有其他好的 DG 代码可用,以及许多好的 FV 代码(例如Clawpack,它也有Python 接口)。

还有更新的高阶方法,例如光谱差异。有关最近的观点,请参见Cheng & Shu 2009,CFD 的高阶方案:回顾Ekaterinaris 2005,空气动力学的高阶精确、低数值扩散方法