最近,我正在尝试使用 FV-WENO 重建来解决 2D Euler 方程。对于平滑的初始问题,组件方式的 WENO 重建效果很好。我的问题是,如果我想解决双马赫反射问题,我需要做特征分解吗?似乎在 2D 中进行特征分解不像在 1D 中那样容易。
求解二维欧拉方程是否需要进行特征分解?
当您说“特征分解”时,我认为它是指找到欧拉通量雅可比行列式的特征值和特征向量。这在近似黎曼求解器(例如 Roe 求解器)中是必需的。
然而,有几个黎曼求解器并不明确需要通量雅可比行列式的特征分解。其中包括 Van Leer 的通量矢量分裂、AUSM 系列方案和其他几个方案。例如,这里简要描述了一些 1D 版本: http: //chimeracfd.com/programming/gryphon/fluxmain.html。如果您使用良好的限制器,许多较新的通量矢量分裂方案(例如 AUSM+)可以很好地解决冲击等问题。由于您使用的是WENO,所以应该没问题。您可能需要稍微调整一下 WENO 参数。
对于 2D 和 3D 问题,黎曼求解器本身几乎没有任何区别。本质上,一维黎曼求解器是在垂直于两个单元之间的面的方向上应用的。例如,如果一维方案需要左单元马赫数, 2D 方案需要左单元面-法线马赫数在哪里是计算通量的面的法线。质量通量,而不是, 变成, 等等。
您可以使用任何常见的黎曼求解器(Roe、HLLC 等)来执行此操作,而不仅仅是前面提到的那些。例如,请参阅https://web.stanford.edu/group/frg/course_work/AA214B/CA-AA214B-Ch7.pdf中的最后一部分。它们也在一些书中有所描述,例如 J. Blazek,“计算流体动力学:原理和应用”。
通过特征分解,您将获得更好的结果。这为您的方案带来了逆风特性,这对于双曲线问题来说是最关键的。
如果您使用基于黎曼求解器的逆风通量,则该方案中已经内置了逆风。所以对守恒变量做 WENO 可能没问题。但是如果你使用像 Lax-Friedrich 这样的中心通量,那么最好对特征变量进行 WENO 重构。
WENO 是一种限制器,它试图强制执行一些最大原则或单调性条件。守恒变量没有最大值原理,但特征变量有,至少在局部线性化意义上。因此,如果您不介意额外费用,我建议您始终将 WENO 应用于特征变量。或者至少在您的代码中有两个选项,因此您可以同时尝试两个选项,看看哪一个最适合您的问题。
通常,Riemann 求解器或近似 Riemann 求解器用于求解需要冲击捕获的测试用例,例如这个。它是特征变量上风向非线性方程的延伸,所以我认为这就是特征分解的意思。
二维黎曼问题确实比一维问题复杂得多。例如,请参阅有关多维黎曼求解器的本课程。
然而,对于许多应用程序,单元角处的二维效应被忽略,仅解决沿边缘的一维黎曼问题。这个近似值可能足以解决您的测试用例。
不,它并不总是必要的。所谓的中心方案(如https://en.wikipedia.org/wiki/MUSCL_scheme#Kurganov_and_Tadmor_central_scheme)不使用黎曼求解器。他们搜索的关键字是黎曼求解器免费方案。