Post on 23-Jan-2016
description
Proposition de club autour des codes particulaires pour
l’étude des plasmas astrophysiques
Fabrice Mottez
CETP
Codes particulaires
• Simuler le plasma comme une assemblée de particules dans un champ électromagnétique calculé sur une grille.
• L’algorithme PIC (= PM) élimine les collisions binaires, et garde les interactions collectives.
• Cousins des codes de simulation de gaz d’étoiles (galaxies).
Domaine d’intérêt des codes particulaires
• Plasmas non/peu collisionnels (hors ETL). Il faut une infinité d’équations fluides, ou une équation de fermeture crédible (rare). Les équations cinétiques (codes Vlasov et PIC) : une description complète avec peu d’équations.
• Permettent de simuler des phénomènes que le choix des variables fluides ne permet même pas d’envisager : création de faisceaux de particules, « trous » dans l’espace des phases (turbulence), etc.
• Ont (à part ça) des qualités et des défauts différents des codes fluides ou MHD, en termes de diffusion, échelles caractéristiques, niveau de bruit .
Quelques axes de développement des codes PIC
• Simuler des systèmes plus grands, des phénomènes plus lents.
Agir sur les équations
Agir sur le schéma numérique
Agir sur la géométrie
• S’affranchir du niveau de bruit élevé des codes particulaires.
Vers des grands systèmes :les équations (1)
• Dynamique complète des électrons et des ions. Petits systèmes, temps caractéristiques courts.
• Dynamique des centre guide des électrons : codes centre guide (on néglige leur rayon de Larmor).
• Dynamique centre guide des ions : codes gyrocinétiques (on tient compte des effets de rayon de Larmor fini des ions).
Vers des grands systèmes :les équations (2)
• Prise en compte des collisions
échanges de charges avec les neutres….
• Prise en compte de la gravitation
exosphères des planètes et des étoiles
Vers des grands systèmes :schéma numérique
• Codes PM explicites : décrivent tout. Coûtent cher en CPU et en mémoire. Petits systèmes, temps caractéristiques courts.
• Codes implicites : amortissent les hautes fréquences, justes sur les basses fréquences. Plus complexes. Codes méso-échelle.
• Code hybrides : eq. fluides sur les électrons, PIC sur les ions. Un compromis intéressant. Le problème de l’équation de fermeture demeure. Codes méso-échelle ou grande échelle (comme les codes MHD).
Vers des grands systèmes :la géométrie
• En général, équations aux différences finies, à maille régulière.
• Géométrie cartésienne ou cylindrique.
• Mailles variables, autres géométries (orthogonales si possible).
Le niveau de bruit
• Codes PIC classiques : Du fait du nombre réduit des particules (macroparticules), niveau
de bruit plus élevé que dans la nature.
Mais la plupart des particules des codes PM servent à décrire des parties de la fonction de distribution qui n’évoluent pas.
• Codes PIC perturbatifs : F(x,v,t)= F0(x,v) + dF(x,v,t)
F0 : état d’équilibre, non recalculé dans la simulation.dF : la partie que l’on recalcule dans la simulation.
Niveau de bruit réaliste avec peu de particules. Très adapté à l’étude de la stabilité et à la turbulence faible.
Les codes PIC en France (ceux dont j’ai entendu parler)
• Codes PIC classiques : tout le monde
• Codes PIC implicites p : CPHT (X), LESIA,
(CETP en cours)
• Codes PIC centre guide : CETP, CESR
• Codes hybrides : LESIA, CETP
• Codes perturbatifs : CETP (explicite)
• Codes exosphériques : LESIA, CETP (hybride, Mars)
Les problèmes techniques• Problèmes liés aux schémas numériques : stabilité,
justesse, estimation de la diffusion…• Problèmes liés aux conditions aux limites : problèmes
fondamentaux et difficultés pratiques de mise en œuvre.
• Problèmes d’analyse numérique liés à la résolution des équations du champ électrique.
• Difficultés de mise en oeuvre du codage des matrices creuses pour des équations un peu « longues ».
• Problèmes liés à l’optimisation, parallélisation.• Problèmes de gestion de gros fichiers (3D)• Problèmes liés aux diagnostics (3D)• …
Intérêt d’un club de développeurs de codes PIC
• Les domaines d’expertises sont inégalement répartis.
Chaque simulateur s’est attaqué sérieusement à au moins un des problèmes énoncés ci-dessus. Aucun (presque) ne les maîtrise tous.
Un club permettrait aux développeurs de codes de se rencontrer et de partager leur savoir faire pour la résolution des difficultés techniques.
• Des codes sont sous-employés, car les développeurs ne sont pas nécessairement conscients de tous les domaines d’application possibles.
Fonctionnement possible d’un « club codes particulaires »
Affaires intérieures : Développement de codes
• Eviter que chaque membre se ré-attaque à un problème déjà réglé par d’autres.
• Gain de temps : trouver le mode d’échange le plus économique possible.
• Pour chaque participant : équilibre entre le don et le bénéfice
Affaires extérieures : veille technologique, valorisation scientifique• Suivre ce qui se fait dans d’autres communautés• Faire connaître les codes que l’on maîtrise : autres simulateurs
et utilisateurs potentiels (qui ne connaissent pas nécessairement la simulation).
Fonctionnement possible d’un « club codes particulaires »
Don : pot commun et ateliers
• Chaque participant met au moins un code (documenté et ayant donné lieu à une publication récente) à la disposition des autres membres. Il reste le propriétaire du code, mais les autres sont libres de s’inspirer de ce qu’il y a dedans pour leurs propres développements.
• Il participe à des ateliers où il explique comment il a abordé/résolu certains problèmes rencontrés par d’autres membres.
Fonctionnement possible d’un « club codes particulaires »
Bénéfice : • Il peut mettre son nez dans les listings d’autres codes
(ceux du pot commun) y trouver des idées, des solutions.
• Il participe à des ateliers où il peut se permettre de poser des questions techniques aux autres, et espérer un exposé utile de leur part.
• Ouverture vers de nouvelles collaborations, toujours stimulées par ce genre d’interactions.
Fonctionnement possible d’un « club codes particulaires »
Charte : • Les codes mis au pot commun restent la propriété de leur
concepteur. Si on s’en inspire, on doit citer l’auteur dans les publications. Si on s’en inspire « beaucoup », on coopère et cosigne les publications. Si on fait tourner un code mis au pot commun, c’est dans le cadre d’une coopération, avec demande d’avis et co-signature des publications (sauf avis explicite de l’auteur du code mis au pot commun).
• Le code mis au pot commun doit être récent (présenter un intérêt par rapport aux problèmes actuels), mais pas une ultime version. Plutôt un code ayant déjà donné lieu à une/des publications.
Fonctionnement possible d’un « club codes particulaires »
Affaires extérieures :
• Nous faire connaître auprès des utilisateurs potentiels (ceux qui veulent expliquer le monde réel à l’aide d’observations ou de théories analytiques)
• Interagir (invitations aux ateliers) avec des simulateurs d’autres communautés :
communauté des plasmas de fusion et industriels communauté des codes PIC gravitationnels astrophysiciens adeptes des codes fluides
etc.