Skip to content

Python scripts to solve the Vlasov-Poisson system with external magnetic field in a three-dimensional phase space using discontinuous Galerkin methods

License

Notifications You must be signed in to change notification settings

crewsdw/Vlasov1D2V

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This collection of Python codes solves the Vlasov-Poisson system in 1D+2V using the Runge-Kutta Discontinuous Galerkin finite element method using CUDA-accelerated libraries, namely CuPy. The solver is capable of up to 9th order spatial and 3rd order temporal accuracy.

Some example solutions are found here

Abstract:

The discontinuous Galerkin (DG) operators in the Lobatto basis are constructed to arbitrary order for tensor-product n-cube elements, for which only the one-dimensional gradient operators are needed. This is done by characterizing interpolating polynomials on Lobatto quadrature points as a Fourier-Legendre approximation to the quadrature-weighted identity of that point. The DG gradient operators are then shown to be approximations to the derivative of the identity. Interpreting the nodal basis in this way leads to useful and interpretable operations such as integration with the exponential kernel for Fourier analysis, leading to a high-order discrete Fourier transform. In this work the high-order transform is shown to solve the Poisson equation with O((∆x)^n+1/2)-accuracy. Efficient calculation of high-dimensional flows is illustrated by solving the Vlasov-Poisson system in 1D+2V phase space to simulate the instability of a loss-cone distribution to perpendicular-propagating cyclotron harmonic waves.

Use

You'll need a CUDA-compatible GPU and an install of the CuPy library.

To use the scipts: download the files, make a data folder, and adjust the run parameters (resolutions, domain length, etc.) at the beginning of the "main.py" file. To play around with different initial conditions, adjust the eigenvalue parameter "om" (for frequency, omega) during initialization of the distribution function.

About

Python scripts to solve the Vlasov-Poisson system with external magnetic field in a three-dimensional phase space using discontinuous Galerkin methods

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages