Accueil > Recherche > Axes Transverses > Simulation Numérique > Description codes numériques > Codes particulaires (ou codes PIC)
Codes particulaires (ou codes PIC)
Utilisateurs : Philippe Savoini et Joël Stienlet
1. Caractéristiques numériques :
* code PIC relativiste avec traitement cinétique des électrons et ions (introduction de particules individuelles)
* 1D : 1 dimension spatiale, 3 composantes pour tous les vecteurs champs et vitesses
* 2D : 2 dimensions spatiales, 3 composantes pour tous les vecteurs champs et vitesses
* Code électromagnétique : résolution de l’ensemble des équations de Maxwell sans approximation
* intégration temporelle par la méthode du "saut de grenouille" (leap-frog) explicite
* calcul des charges et des courants par la méthode d’interpolation SUDS (Substracted Dipole Scheme).
* Résolution des équations des champs : technique spectrale (utilisation de transformées de Fourier rapides)
cette technique autorise la séparation des champs en composantes électrostatiques (longitudinales) et électromagnétiques (transverses)
* conditions aux limites : les codes peuvent être soit périodique, soit non-périodique (reste périodique suivant Y)
* pour les simulations non périodiques :
- murs absorbants pour les composantes de champs (suivant X)
- murs réfléchissants pour les particules (suivant X)
* génération d’une onde de choc (plane ou courbe) à l’aide d’un piston magnétique
2. Caractéristiques techniques :
code 1D
* langage de programmation : fortran 77
* code portable (tourne sur SX8, sur Mac et sur PC linux)
* programme scalaire
code 2D
* langage de programmation : fortran 90
* code portable (tourne sur SX8, sur Mac et sur PC linux)
* programme complètement parallélisé (bibliothèque OpenMP)
- parallélisation des boucles sur les particules pour le pousseur de particules
- parallélisation du calcul des charges et des courants (implémentation
d’une décomposition en domaines du plan de simulation, couplée à un tri spatial des particules)
- parallélisation des FFTs par distribution des différentes composantes de champs
- parallélisation de la résolution des équations de Maxwell dans l’espace de Fourier
par un découpage suivant les différents modes spectraux.
- parallélisation des opérations de sortie (écriture des données)
* vectorisation du calcul des charges et des courants par la méthode de Héron et Adam.
* vectorisation du pousseur de particules (calcul des positions et vitesses)
* technique de décomposition en domaines de la grille spatiale
* ajustage dynamique de la taille des domaines pour équilibrer la charge CPU
* les méthodes utilisées rendent vectorisation et parallélisation complètement indépendantes

Dans la même rubrique :