• Aucun résultat trouvé

La simulation 3D à longue distance reste coûteuse en terme de ressources de calcul, malgré les développements apportés au modèle ITM lors cette thèse. Cette section présente brièvement deux méthodes permettant de réduire davantage les coûts numériques, à savoir : le recours à une fenêtre de calcul glissante, et le calcul parallèle. Ces deux approches sont utilisées dans les précédentes versions de ITM, et ont été implémentées dans ITM4.

1.3.1 Méthode de la fenêtre de calcul glissante

Comme mentionné à plusieurs reprises, la simulation numérique dans le domaine temporel facilite l’étude des signaux impulsionnels. Il s’avère que les signaux impulsionnels peuvent eux aussi faciliter la simulation numérique.

Les sons impulsionnels permettent en effet l’utilisation de techniques de fenêtres glissantes [80, 190, 1, 107, 223, 15], en tirant parti du support spatial limité des champs acoustiques. Si les phénomènes de rétrodiffusion acoustique peuvent être négligés, le domaine de calcul peut être restreint à une petite région autour de l’impulsion, qu’il va suivre au cours de sa propagation à la vitesse c, sans qu’il soit nécessaire de modéliser l’ensemble du domaine physique ; les

Fig. 1.5 : Procédure schématique utilisée par ITM4 pour résoudre les équations de propagation en FDTD.

ressources de calcul nécessaires sont ainsi considérablement réduites. Ceci permet de considérer des distances de propagation très importantes, d’autant plus que le temps de calcul total devient approximativement proportionnel à la distance de propagation3. Le principe de cette approche est illustré sur les figures 1.6 et 1.7.

Fig. 1.6 : Illustration d’une fenêtre de calcul glissante se déplaçant dans la direction des x croissants depuis une source vers un microphone (non à l’échelle).

La fenêtre de calcul glissante est implémentée par une permutation circulaire du vecteur

3. Ce n’est pas tout à fait vrai : on verra dans les chapitres 2, 3 et 4 que plus la distance de propagation est importante, plus le domaine de calcul doit être grand (pour assurer, par exemple, l’efficacité des conditions de non-réflexion, pour prendre en compte l’allongement des signatures temporelles dû aux effets de sol, ou dans le cas d’une atmosphère réfractive ou turbulente).

x z sol δxy z sol (a) (b)

Fig. 1.7 : Coupes longitudinale (a) et transverse (b) de la fenêtre glissante de la figure 1.6. La position des couches parfaitement adaptées (PML), introduites dans le prochain chapitre, est indiquée en gris. La ligne verticale en pointillé délimite l’« entrée » de la fenêtre, où le vecteur solution q est réinitialisé à zéro après chaque déplacement. Un étirement de grille est utilisé à la « sortie » de la fenêtre (la zone hachurée) pour éviter l’apparition d’instabilités numériques, comme détaillé dans l’annexe C.

solution q de δxpoints de grille toutes les δtitérations temporelles (les paramètres atmosphériques sont aussi permutés, puisqu’ils peuvent varier le long de l’axe de propagation, de même que les variables PML et les variables liées au sol, introduites dans les chapitres 2 et 3). Le décalage

δx est calculé à partir du nombre de Courant, avec la relation δx= δtCFL, pour s’assurer que la vitesse moyenne de la fenêtre de calcul coïncide avec la vitesse de propagation des ondes (dans le cas contraire, les ondes peuvent sortir de la fenêtre). Le décalage δx doit être un nombre entier pour ne pas avoir à interpoler spatialement les champs. Dans ce travail, δt est choisi comme δt = 10. Le pas temporel ∆t peut également être modifié d’après ∆t = ∆CFL/(c ± c), où le terme de correction c  c rend compte des éventuels effets convectifs le long de l’axe de propagation ; ces effets peuvent modifier la célérité effective des ondes (par exemple, si du vent est présent et/ou dans le cas d’une atmosphère hétérogène). Comme illustré sur la figure 1.7(a), la région la plus à droite du domaine de calcul correspond à « l’entrée » de la fenêtre, de longueur

δx∆, où la valeur des variables acoustiques est remplacée par zéro après chaque déplacement, et où les paramètres du milieu peuvent être introduits.

Notons que l’implémentation présentée ci-dessus correspond à une approche « eulérienne » de la méthode de la fenêtre glissante, qui est la plus couramment utilisée dans la littérature. Une alternative « lagrangienne » consiste à introduire le changement de variable x −→ x + (c ± c)t directement dans les équations de propagation, ce qui a pour avantage de grandement réduire les erreurs de dispersion numérique [80]. La fenêtre glissante lagrangienne n’a pas été retenue dans ce travail car elle complique le traitement des conditions de rayonnement à l’entrée et à la sortie de la fenêtre ; cette approche peut toutefois constituer une perspective de développement du modèle ITM.

Un premier exemple de calcul en fenêtre glissante sera considéré dans la section 1.4.

1.3.2 Calcul massivement parallèle

Le calcul parallèle permet de réduire le temps d’exécution d’un programme, et de répartir l’utilisation de la mémoire, grâce à l’utilisation simultanée de différents nœuds de calcul. Le recours à cette stratégie est indispensable pour des simulations FDTD en trois dimensions, qui

plus est pour des configurations à longue distance.

À la différence de la plupart des méthodes de résolution d’équations d’Euler linéarisées, la méthode FDTD a pour avantage d’être assez facilement parallélisable, car le milieu de propagation est discrétisé sur une grille cartésienne, et car les schémas de différences finies ne nécessitent que la valeur des champs à proximité immédiate du point de grille considéré. La parallélisation consiste alors à décomposer le milieu en N sous-domaines (de préférence homogènes, de manière à équilibrer la charge de calcul [94]), et des répartir ces sous-domaines entre N nœuds. Chaque nœud va alors réaliser des calculs (essentiellement de différences finies) au sein du sous-domaine qui lui est attribué, indépendamment des autres nœuds ; une illustration est proposée sur la figure 1.8.

Fig. 1.8 : Principe de décomposition en sous-domaines de calcul, d’après une topologie cartésienne 3D, pour une architecture de 4 nœuds.

Dans le cas d’une architecture à mémoire distribuée (voir la section 2.2.10 de Ehrhardt [72]), où chaque nœud dispose de sa propre mémoire, un protocole de communication doit être utilisé pour assurer l’échange de données entre deux nœuds mitoyens (pour pouvoir, par exemple, appliquer les schémas de différences finies sur les bords des sous-domaines sans avoir à décentrer les schémas) ; le modèle ITM utilise le standard MPI (pour Message Passing Interface [93]). Comme illustré sur la figure 1.9, des points fantômes doivent être définis sur les bords des grilles FDTD pour permettre l’échange d’information.

Un algorithme détaillé de parallélisation d’un code FDTD en ordre faible peut être trouvé dans Guiffaut et Mahdjoubi [94], dans le contexte de la propagation d’ondes électromagné-tiques ; l’algorithme utilisé dans ITM4 lui est assez similaire, à l’exception du nombre de points fantômes à considérer (qui dépend de la taille des schémas spatiaux).

La plupart des simulations présentées dans ce documents ont été réalisées soit sur le calculateur interne de l’ISL, soit sur le calculateur Ada de l’Institut du Développement et des Ressources en Informatique Scientifique (IDRIS). Pour donner un ordre d’idée, ces simulations ont requis des temps « physiques » de calcul s’échelonnant de l’heure à plusieurs jours, en utilisant en moyenne une centaine de processeurs par simulation.

Fig. 1.9 : Principe de l’échange de données entre deux nœuds mitoyens via le protocole MPI, à partir de points fantômes définis sur les bords des grilles FDTD ; le nombre de points fantômes affiché est ici arbitraire.