Highly parallel drift-kinetic semi-Lagrangian simulations in Python
Emily Bourne, Yaman Güçlü · ESAIM Proceedings and Surveys · 2024
This paper describes PyGyro, a parallel 4D drift-kinetic code which implements backward semi-Lagrangian methods combined with field-aligned interpolation and time-splitting. The purpose of PyGyro is twofold: to develop an advanced parallelisation scheme based on fast data transpositions, and to demonstrate the efficacy of a development workflow with code written in Python. Bottlenecks are accelerated with the Pyccel transpiler to achieve Fortran-like execution times. The resulting simulations are shown to correctly reproduce the expected physics and demonstrate good strong scaling, well beyond what was achieved by an existing Fortran code.