• Aucun résultat trouvé

Les méthodes numériques présentées ci-après sont caractérisées par la façon dont elles calculent l'accélération qui s'exerce sur chaque particule du système dont l'évolution est simulée. Nous nous limitons donc à la description de l'algorithme de calcul de l'accélération, et omettons de parler de l'avancement des particules dans le temps.

Plusieurs schémas numériques d'intégration en temps diérents peuvent être associés à ces algorithmes de calcul de l'accélération, le plus simple étant probablement le schéma d'ordre 2 saute-mouton, ou leap-frog (voir l'annexe A2). Le schéma saute-mouton est également l'un des plus largement utilisés, mais certaines méthodes sont associées à des schémas d'intégration en temps plus sophistiqués  tels que les schémas à pas de temps individuels utilisés dans les codes à N corps direct écrits par S.J.Aarseth1  permettant un gain de performance ou un meilleur traitement de phénomènes ns,

comme les étoiles binaires. Codes à N corps directs (P2)

Les codes de type N corps directs  ou particule-particule (P2) calculent l'interaction gravitation-

nelle entre chacune des N particules en sommant les interactions à deux corps. Par son gradient, le

1Voir [1] pour des explications concernant les pas de temps individuels ou [2] pour la présentation de l'un de ses

potentiel permet d'obtenir l'accélération subie par chaque particule. Pour éviter que cette accélération n'atteigne des valeurs trop élevées lorsque deux particules se trouvent très proches l'une de l'autre, ce code utilise un potentiel adouci. L'expression du potentiel au point ri, position de la i-ème particule,

est ainsi ψ(ri) = − N X i6=j=1 Gmj  (ri− rj) 2 + ε2 1/2 ,

où ε > 0 est le paramètre d'adoucissement du potentiel.

Le calcul de toutes les accélérations s'eectue en un nombre d'opérations proportionnel à N2à chaque

pas de temps (si le pas de temps est identique pour toutes les particules). Ce temps de calcul repré- sente le principal inconvénient des codes à N corps directs, mais ces codes permettent d'eectuer des simulations d'une grande précision, la seule approximation introduite étant due à ε.

Codes particule-grille (PM) et P3M

Les codes particule-grille (ou PM pour l'anglais particle-mesh) se diérencient des codes particule- particule (tels que les codes à N corps directs et le treecode) en divisant l'espace à l'aide d'une grille et en calculant les interactions entre les diérentes cellules de cette grille plutôt qu'entre les diérentes particules constituant le système. Il n'est donc plus nécessaire de calculer la distance séparant chaque particule, ce qui représente un avantage en terme de temps de calcul.

L'espace est donc divisé en J3 cellules cubiques, de côté a, et repérées par les indices i, j et k. La

masse contenue dans une cellule est supposée se trouver en son centre. Le potentiel exercé sur la cellule (i, j, k)est ainsi égal à

ψi,j,k= J X i0=1 J X j0=1 J X k0=1 D (i, j, k, i0, j0, k0) M (i0, j0, k0) , (2.1) où D (i, j, k, i0, j0, k0) = − G ah(i − i0)2+ (j − j0)2+ (k − k0)2+ ε2/a2i1/2 ,

et M (i, j, k) la masse contenue dans la cellule d'indices (i, j, k). Notons que cette fonction D, qui joue le rôle de fonction de Green, ne doit être évaluée qu'une fois au début de la simulation.

L'équation (2.1) est une convolution discrète. Il est donc possible de remplacer cette convolution par un produit en travaillant dans l'espace de Fourier. En eet, la transformée de Fourier d'une convolution est égale au produit des transformées de Fourier, i.e.

˜ ψ = 1

J3/2D ˜˜M . (2.2)

˜

Dne doit également être évalué qu'une seule fois.

L'algorithme de transformée de Fourier rapide (ou FFT pour l'anglais Fast Fourier Transform) permet d'eectuer la transformée de Fourier discrète de N points en N log N opérations. Il est donc possible d'obtenir le potentiel exercé sur chaque grille en J3log J opérations à chaque pas de temps, ce qui

représente un gain conséquent si on compare ce nombre aux J6 opérations nécessaires si l'on n'utilise

pas l'espace de Fourier. À ce temps de calcul, il convient d'ajouter le temps nécessaire à l'obtention de M.

Cette méthode possède cependant un sérieux inconvénient. Le potentiel (2.1) n'est une bonne ap- proximation que si la densité de masse dans les cellules voisines est à peu près constante. Dans le cas contraire, les contrastes de densité présents dans chaque cellule ne sont pas pris en compte dans le

calcul du potentiel, et le potentiel (2.1) ne représente plus une approximation acceptable. La densité ne peut pas être constante dans les cellules voisines lorsque le système étudié présente de fortes in- homogénéités, puisque le nombre de cellules est limité. Cette méthode ne semble donc adaptée qu'à l'étude des systèmes homogènes ou quasi homogènes.

Des évolutions de la méthode PM, les codes P3M et les grilles adaptatives, permettent de résoudre

ce problème. Les codes P3M sont des hybrides de codes PM et particule-particule. Ils calculent le

potentiel à l'aide d'une grille sur les grandes échelles et à l'aide des interactions particule-particule sur les petites échelles, c'est-à-dire pour les cellules voisines. L'inconvénient des codes P3M réside dans le

temps de calcul parfois prohibitif de l'interaction sur les petites échelles, lorsque le système comporte une forte surdensité de matière. Les grilles adaptatives permettent quant à elles de diviser les cellules contenant beaucoup de matière, et donc de réduire le coup de calcul de la partie particule-particule d'une code P3M.

Développement en harmoniques sphériques

Cette catégorie de codes, décrite entre autres par T.S.van Albada et J.H.van Gorkom [55] repose sur le développement du potentiel en harmoniques sphériques. Si la particule i est repérée par les coordonnées sphériques (ri, θi, ϕi), alors le potentiel créé au point de coordonnées (r, θ, ϕ) par cette

particule est égal à (voir par exemple [9] p.62-67 pour la démonstration) ψ (r, θ, ϕ) = −4πG ∞ X l=0 rl ril−1 l X m=−l ˜ σlm(i) Ylm(θ, ϕ) si r < ri, (2.3) ψ (r, θ, ϕ) = −4πG ∞ X l=0 ril+2 rl+1 l X m=−l ˜ σlm(i) Ylm(θ, ϕ) si r > ri, (2.4) avec ˜ σlm(i) = mi 4π (2l + 1) r2 i Ylm?(θi, ϕi) , (2.5) où Ym

l est l'harmonique sphérique et Y m?

l le complexe conjugué de Y m

l . L'algorithme permettant

d'exploiter ce développement est dès lors relativement clair. Il sut de déterminer dans un premier temps le point du système correspondant au minimum du potentiel gravitationnel  ce point est le centre du système si ce système présente une symétrie sphérique  et d'en faire l'origine de notre repère sphérique. Puis nous pouvons calculer les L + 1 coecients ˜σlmpour chacune des N particules,

avec l < L. Ceci nous permet de calculer une valeur approchée du potentiel en tout point ˜ ψ (r, θ, ϕ) = −4πG L X l=0 l X m=−l " rlX r<ri ˜ σlm(i) rl−1i + 1 rl+1 X ri>r rl+2i ˜σlm(i) # Ylm(θ, ϕ) . (2.6) Lorsque L tend vers l'inni, cette valeur approchée ˜ψ tend vers le véritable potentiel ψ. Mais il sut d'un L relativement faible (quelques unités) pour obtenir une approximation satisfaisante du potentiel. L'utilisation optimale de cet algorithme nécessite un ordonnancement des particules par ri croissant,

mais ce tri s'eectue rapidement entre chaque pas de temps pour peu que le pas de temps soit susamment faible, puisque dans ce cas l'ordre des particules dans la liste ne varie que très peu. Lorsque les particules sont triées, le calcul du potentiel s'eectue en O (N) opérations (voir [9] ou [22]). D'autre part, le calcul des coecients ˜σlm s'eectue en O(N (L + 1)

2

)opérations. Le temps de calcul pour chaque pas de temps est donc proportionnel au nombre de particules.

Ce type de codes se révèle très véloce, comparativement aux autres, pour des systèmes comprenant beaucoup de particules. Il présente également l'avantage de posséder une excellente dénition au centre.

Son utilisation doit cependant être réservée à la simulation de systèmes présentant une symétrie sphérique2. De plus, d'après L.Hernquist et J.E.Barnes [22], le fait que ce type de code soit non

collisionnel n'a jamais été prouvé.

Documents relatifs