Many modern discontinuous Galerkin (DG) methods for conservation laws make use of summation by parts operators and flux differencing to achieve kinetic energy preservation or entropy stability. While these techniques increase the robustness of DG methods significantly, they are also computationally more demanding than standard weak form nodal DG methods. We present several implementation techniques to improve the efficiency of flux differencing DG methods that use tensor product quadrilateral or hexahedral elements, in 2D or 3D respectively. Focus is mostly given to CPUs and DG methods for the compressible Euler equations, although these techniques are generally also useful for other physical systems including the compressible Navier-Stokes and magnetohydrodynamics equations. We present results using two open source codes, Trixi.jl written in Julia and FLUXO written in Fortran, to demonstrate that our proposed implementation techniques are applicable to different code bases and programming languages.
翻译:许多现代用于守恒律的间断Galerkin(DG)方法采用求和分部算子和通量差分技术以实现动能保持或熵稳定性。虽然这些方法显著增强了DG方法的鲁棒性,但其计算量比标准弱形式节点DG方法更大。本文提出了若干实现技术,用于提升采用二维或三维张量积四边形/六面体单元的通量差分DG方法的计算效率。研究主要聚焦于CPU架构和可压缩欧拉方程的DG求解,不过这些技术通常也适用于可压缩纳维-斯托克斯方程和磁流体动力学方程等其他物理系统。我们利用两个开源代码——基于Julia语言的Trixi.jl和基于Fortran语言的FLUXO——展示所提出的实现技术可适用于不同代码库及编程语言。