The project : Kinetic equations and simulations for Bose-Einstein condensation

The main topic of the KINEBEC project is to solve numerically the Boltzmann-Nordheim equation thanks to spectral methods based on the use of fast Fourier transforms.

In this equation, f is the distribution function that depends on the time t, the position variable x ∈ ℝ³ and the velocity variable v ∈ ℝ³, and the collision operator Q(f) is trilinear in f in order to consider quantum effects of the collisions (see [1] for complementary details about the definition of the model).

The collision operator Q(f) induces a fastly increasing computational cost as the velocity grid is refined because of the trilinearity. Hence specific HPC techniques must be considered in order to produce accurate numerical simulation within a reasonable walltime.

In addition, the specific definition of Q(f) may induce quantum degeneracy when a specific criterion based on the rescaled Planck constant ℏ, the mass density ρ and the internal energy e is broken. Such physical phenomenon has already been observed in physics experiments but is not so well known from a mathematical point of view: indeed, at this point, only 3D Bose-Einstein condensation has been completely identified as a combination of a singular quantum maxwellian and a Dirac measure (see [2]). However, the mathematical investigation about the quantum degeneracy for fermions is not as rich as for bosons.


Main goals

Our goal is to build a highly parallelized code that uses spectral methods for solving Boltzmann-Nordheim equation. This code must embed:

In a first part, this code will be developed for solving the homogeneous Boltzmann-Nordheim equation and  will be used to investigate the quantum degenerative limit states that may reached by the distribution function in the case of Fermi-Dirac particles and that are not known as well as those for Bose-Einstein particles.

In a second part, we will make this code evolve in order to tackle the non-homogeneous case and its hydrodynamics limit.

About the code

At present time, the code is mainly written in C and several parallelizations techniques have been implemented for computing the collision term: more precisely, we have implemented versions in MPI, OpenMP and Cuda.

Along with this kernel code, we also use Cmake scripts for managing the compilation on the computing cluster we are using in Université de Lille and Laboratoire Paul Painlevé.

We also use many Python scripts for handling the pre-processing (configuration of the compilation, preparation of run sequences...) and the post-processing (visualization and diagnostics).

Even if the code is still under development, the version 1.0 has been released on HAL repository.

Contact