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 GPU computing and 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方法的通量差异的效率,分别在2D或3D中采用。重点主要放在可压缩的Euler方程式的CPU和D方法上,尽管这些技术一般也可用于GPU计算和其他物理系统,包括可压缩导航-Stokes和磁力动力等方程式。我们用两种开源代码,即用朱丽亚书写的Trixi.jl和用福特兰书写的FLUDUS,来展示我们提议的执行技术适用于不同的代码和编程语言。我们提出了结果。我们用两种开源代码,即用朱莉亚书写的Trixi.jl,用FUV,以福特兰书写成,以证明我们提议的执行技术适用于不同的代码基础和编程语言。