11.3.6.3.1 : Le code \smilei


\smilei est un code Particle-In-Cell (PIC) explicite écrit en C++. Il sert à simuler la physique cinétique des plasmas. Les domaines d'applications sont très vastes et vont de l'astrophysique (jets relativistes, supernovae, vents solaires... ) aux plasmas de laboratoires. À l'IN2P3 il est utilisé pour la simulation d'expériences d'interaction laser-plasma. Il permet de préparer et d'interpréter les expériences mais aussi de mieux comprendre la physique en jeu. C'est un code massivement parallèle (MPI + OpenMP) destiné en premier lieu aux super-calculateurs.

\smilei utilise d'une part des schémas aux différences finies pour résoudre les équations de Maxwell sur un maillage et d'autre part des macro-particules échantillonnent l'espace des phases du plasma et sont libres de se déplacer dans tout le domaine de simulation. Le maillage est un ensemble de points immobiles et parfaitement ordonnés. Les particules, en revanche, sont a priori complètement désordonnées. Néanmoins, le déplacement des macro-particules génère les courants électriques qui sont les termes sources des équations de Maxwell, couplant ainsi les quantités définies sur le maillage et les particules. La difficulté de la vectorisation des codes PIC réside dans ces interactions entre deux structures très différentes.