lundi 24 novembre 2008, par Carine Briand
Pour expliquer des phénomènes astrophysiques, deux approches sont souvent adoptées. La première consiste à essayer de reproduire une situation observée. C’est le domaine de la modélisation.
La seconde approche est plus exploratoire. Elle consiste à étudier les lois physiques fondamentales à l’origine de tel ou tel phénomène, sans chercher absolument à reproduire une situation précise. C’est le domaine de la simulation numérique. Par exemple, on cherche à comprendre les paramètres qui influencent la reconnexion magnétique, l’évolution d’un plasma dans le vide, ou le rôle de la masse des ions dans la dynamique des plasmas.
Ces deux approches sont complémentaires, les résultats de l’un conduisant souvent à des contraintes pour l’autre.
La plupart des problèmes astrophysiques font appel à de nombreux paramètres. Les phénomènes à étudier requièrent alors des équations couplées (l’évolution d’un paramètre dépendant d’un autre qui lui même va dépendre du premier ou d’un troisième... etc). Par ailleurs, les processus impliquent souvent des échelles spatiales et temporelles très différentes. C’est par exemple le cas lorsque l’on cherche à comprendre l’évolution d’un très grand nombre de particules chargées (plasma), les interactions entre les ondes et les particules, l’accélération du vent solaire, etc. Le problème se pose aussi pour l’étude du comportement d’un système instrumental ! Comment un sous-système réagit-il dans les conditions extrêmes de l’espace ?
La résolution analytique (par la résolution directe des équations) de l’évolution de tels systèmes est souvent impossible, ou alors requiert des approximations très fortes limitant le champ d’utilisation des résultats. La simulation numérique aide à pallier à certaines de ces limitations. L’idée est d’écrire un code informatique qui prend en compte les équations de base et qui se charge de calculer l’évolution finale du système.
Bien sûr, les choses ne sont pas aussi simples ! L’écriture même de tels codes peut prendre plusieurs semaines, voire plusieurs mois, en fonction de la complexité du problème envisagé. Le Fortran reste encore l’un des langages les plus utilisés pour les "gros calculs" avec parfois du Langage C ou C++.
Une autre contrainte majeure réside dans le temps de calcul. Pour réduire au maximum ce temps, des méthodes particulières d’analyse numérique sont employées. Mais ceci ne suffirait pas si les capacités de calculs des ordinateurs n’étaient pas augmentées. Pour des calculs modérément compliqués, des ordinateurs individuels peuvent suffire mais dès que les systèmes deviennent trop gros ou le nombre de paramètres trop importants, on doit faire appel à des grappes d’ordinateurs qui partageront et optimiseront leurs ressources. De tels calculateurs dits "parallèles" sont disponibles au Service Informatique de l’Observatoire de Paris (SIO) ainsi qu’au centre de calcul IDRIS du CNRS. Bien sûr, le langage de programmation doit être adapté pour permettre le dialogue entre les ordinateur (comme MPI ou Open-MP).