Kinetic models are used in a wide range of applications, ranging from rarefied gas dynamics to biology. They are however very demanding from a computational point of view. A major difficulty is related to the fact, that a distribution function, which defines the state of the system depends on seven variables: three coordinates in physical space, three coordinates in velocity space and the time. As a consequence, the existing methods are time and resource consuming. The project aims at developing fast and efficient deterministic methods for the kinetic equations in the framework of the discrete velocity methods (DVM) and semi-Lagrangian schemes. Efficient parallel implementation (OpenMP, GPU and MPI) will allow to perform realistic numerical simulations.
We heve devolped a C++ code for solving multidimensional (from 0D to 3D in physical space and from 1D to 3D in velocity space) kinetic equations for BGK or Boltzmann collision operators. The collison operator is OpenMP/CUDA parallelized depending on the system. Physical or velocity space (depending on the kernel) is MPI parallelized resulting in code with good scaling properties: parallel efficiency greater than 97% for the Boltzmann operator up to 1024 computational nodes (16384) of the Curie supercomputer at the TGCC (see figure below)
The figure below shows the Kelvin-Helmholtz 3D instabilities obtained with a fast kinetic scheme solving the Boltzmann-BGK equation on a six dimmensional mesh: 2003 points in physcal space ant 103 points in velocity space, giving a total of 8.103 points. The method was implemented and GPU parallelized. The code was run on a platform equipped with two GPUs under CUDA architecture. The simulation of 8000 time steps took 29 hours. It is worth noting that the sequential code for the same method and problem would run for more than 200 days.
The next figure shows the 3D re-entry test case simulated with an OpenMP version of the code run on 32 cores. The mesh size is this time 1003 x 163.
Publications