Stage en simulation plasma hybride Particle-In-Cell à raffinement de maillage adaptatif
Annonce transmise par Nicolas Aunai (LPP)
Candidature :
Contact : Nicolas Aunai, LPP/CNRS : nicolas.aunai@lpp.polytechnique.fr et Andrea Ciardi andrea.ciardi@obspm.fr
Merci d’envoyer CV et lettre de motivation
Profil : niveau Master, maîtrise du C++ et python, utilisation de git.
Note :
Une gratification de 6 mois de stage est acquise.
Le stage pourra éventuellement être le préambule d’une thèse dont le financement est déjà acquis.
Mots clés:
Particle-In-Cell, C++, open-source, plasmas astrophysiques
Contexte du projet :
La Laboratoire de Physique des Plasmas (LPP), situé sur le campus de l’école polytechnique à Palaiseau, est fortement impliquée dans la simulation numérique des plasmas astrophysique et de laboratoire. Ces codes sont utilisés de manière complémentaire aux expériences, de laboratoire (ex: mise au point de propulseurs plasmas), de grands instruments (ex: ITER) ou de mesures spatiales à bord de satellites (ex: mission Bepi-Colombo en vol vers Mercure). Dans la plupart de ces contextes, les processus plasmas étudiés sont faiblement collisionnels et leur dynamique s’établit sur une large gamme d’échelles spatiales et temporelles.
Depuis quelques années, le LPP, sous l’impulsion de la fédération de recherche Plas@Par, a entrepris le développement d’un nouveau code Particle-In-Cell hybride traitant les ions comme des particules et les électrons comme un fluide. Ce code, unique au monde, vise à résoudre les équations régissant l’évolution du plasma sur une hiérarchie de grille où à la fois la résolution spatiale et temporelle est incrémentalement raffinée, mais également le formalisme physique, afin de concentrer la haute résolution et la modélisation physique la plus fine aux régions critiques du système. Le code est écrit en C++17 et python, il est développé en open source sur github. Dans le contexte d’une transition de la communauté vers le calcul exascale, un gros travail est entamé sur le code notamment pour porter le calcul sur GPU, ainsi que d’accélérer l’évolution des modèles en incluant la possibilité pour le code de basculer sur un traitement totalement fluide dans certaines parties du domaine.
Objectifs du stage :
Ce stage à pour but de concevoir et développer la partie fluide du code, en résolvant les équations magnétohydrodynamiques adaptées à une hiérarchie de grilles cartésiennes. Le travail s’inspirera du code MHD Gorgon, couramment utilisé pour modéliser des jets et chocs astrophysiques, des magnétosphères et des expériences d’astrophysique de laboratoire. En fonction de l’avancement, le travail se poursuivra par la conception et le développement de méthodes permettant (i) la communication d’information entre les grilles fluides et cinétiques, (ii) l’apparition et disparition dynamique de grilles cinétiques dans un domaine MHD.
Le code est écrit en C++17 et python et en open source sur github. La réalisation de ce travail nécessite une bonne connaissance du C++ et python et de Git, une forte affinité pour la modélisation numérique et le calcul haute performance.
Le travail sera réalisé à l’école polytechnique (LPP) et sur le campus de Jussieu (LPP et LERMA). Il sera réalisé dans une petite équipe de développement constituée de 4 personnes.
Références :
Dépot du code : https://github.com/pharehub/phare