Analysis of tensor-product discontinous Galerkin operators for Vlasov-Poisson simulations and GPU implementation on Python
Abstract
The discontinuous Galerkin (DG) finite element method is conservative, lends itself well to parallelization, and is high-order accurate due to its close affinity with the theory of quadrature and orthogonal polynomials. When applied with an orthogonal discretization (i.e. a rectilinear grid) the DG method may be efficiently implemented on a GPU in just a few lines of high-level language such as Python. This work demonstrates such an implementation by writing the DG semi-discrete equation in a tensor-product form and then computing the products using open source GPU libraries. The results are illustrated by simulating a problem in plasma physics, namely an instability in the magnetized Vlasov-Poisson system. Further, as DG is closely related to spectral methods through its orthogonal basis it is possible to calculate a transformation to an alternative set of global eigenfunctions for purposes of analysis or to perform additional operations. This transformation is also posed as a tensor product and may be GPU-accelerated. In this work a Fourier series is computed for example (although this does not beat discrete Fourier transform), and is used to solve the Poisson part of the Vlasov-Poisson system to O( xn+1/2)-accuracy.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.