Simuler pour décider
Pour le commun des mortels, les mots laboratoire et recherche, font généralement penser aux expérimentations, aux maquettes, aux tubes à essai et aux blouses blanches. Cependant, il existe bien des cas où il est tout simplement impossible, pour des raisons diverses (complexité, coût, inaccessibilité à l’échelle humaine, dangerosité), de réaliser certaines expériences. Dans ces cas, on fait appel à l’ordinateur à travers la simulation numérique qui fournit un outil pratique et très efficace afin de comprendre, de contrôler et de prévoir le fonctionnement des systèmes physiques. On parle alors d’expérience in silico. Dès lors, l’ordinateur est devenu un fantastique outil d’investigation et la simulation un outil indispensable, voire incontournable, dans plusieurs domaines de recherche et de développement notamment dans l’industrie. Son champ d’application est extrêmement vaste : on peut citer la mécanique des fluides, la science des matériaux, l’astrophysique, la physique nucléaire, l’aéronautique, la climatologie, la mécanique quantique, la biologie, la chimie, les sciences humaines, les mathématiques financières etc.
Si on devait définir la simulation numérique, on pourrait dire que c’est le procédé selon lequel on exécute un (des) programme(s) sur un (des) ordinateur(s) en vue de représenter un phénomène physique [CEA, 2007]. Elle fait gagner du temps (et beaucoup d’argent) aux constructeurs d’automobiles et d’avions. Elle permet aux météorologues de prévoir le temps qu’il fera dans plusieurs jours [Ghidaglia et Rittaud, 2004]. On pourrait presque résumer la simulation numérique à une adaptation aux moyens numériques des modèles mathématiques. En effet, le point de départ du processus de simulation est l’observation d’un phénomène physique. Le modèle est une traduction des observations en équations mathématiques. La modélisation d’un phénomène consiste alors à prendre en compte les principes fondamentaux (conservation de la masse, de l’énergie, etc) et à déterminer les paramètres essentiels (positions, vitesses, températures…) qui permettent une description simple et réaliste de chaque élément intervenant et de son évolution dans le temps. Le modèle est complet lorsque toutes les équations (traduisant les lois physiques qui régissent tous les éléments du système) sont écrites. De la modélisation mathématique, on passe ensuite à la simulation grâce à la programmation en langages informatiques. Des méthodes numériques spécifiques sont utilisées pour résoudre les équations issues des modèles. La mise en œuvre de ces méthodes est elle aussi, une étape incontournable du processus de simulation. Bien souvent, les modèles sont posés sous forme d’une équation aux dérivées partielles (EDP) ou d’un système d’EDPs et on dispose très rarement de solutions analytiques pour ces équations. Il est alors indispensable de se tourner vers des méthodes d’approximation. Le choix de ces méthodes doit se faire en adéquation avec la modélisation physique du problème. Deux approches sont principalement mises à contributions : les méthodes déterministes et les méthodes probabilistes (ou statistiques). Dans la première catégorie, on résout les équations après avoir discrétisé les variables. Les méthodes déterministes les plus connus sont les volumes finis, les différences finies et les éléments finis [Ern et Guermond, 2004]. Les méthodes probabilistes, encore appelées « Monte-Carlo », définissent les techniques permettant d’évaluer une quantité déterministe à l’aide de l’utilisation de tirages aléatoires [Kalos et Whitlock, 2008]. Les méthodes numériques ont fait et font l’objet de nombreuses études, la littérature sur le sujet est d’ailleurs très vaste. On peut cependant en trouver un large aperçu dans ces ouvrages [Allaire, 2005, Dautray et al., 1988, Lucquin et Pironneau, 1996]. La simulation numérique est finalement matérialisée par le logiciel de calcul. Cependant, en amont et en aval du processus, de nombreuses opérations complexes sont faites pour préparer l’expérimentation et ensuite pour exploiter au mieux les résultats. La CAO (conception assistée par ordinateur) permet de représenter les scènes avec des formes géométriques qui sont ensuite discrétisées par maillage. Les résultats des calculs sont sauvegardés et traités pour constituer une base qui puisse servir de références. Enfin, le processus se concrétise lorsque l’on visualise le phénomène étudié sur un écran. La dernière étape est donc la confrontation avec les observations de départ. Cette confrontation permet d’améliorer les modèles physiques, leurs paramètres et les logiciels de calcul. On pourrait presque dire que la simulation numérique est une autre approche du réel [CEA, 2007]. Il va sans dire, qu’elle ne peut supplanter les expérimentations et les observations, mais l’un de ses intérêts essentiels est de prédire les situations inédites. Simuler permet donc de mieux comprendre et d’anticiper. Pour les acteurs industriels, « simuler » permet principalement de décider. A titre d’exemple, l’investissement pour la construction d’un système hydro-informatique (un logiciel de calcul pour les simulations hydrauliques) est de l’ordre de 500000 à 1 million d’euros par an, mais les bénéfices pouvant provenir d’un tel ouvrage sont de grandeurs bien plus élevées. Ainsi une simulation numérique de l’impact d’un ouvrage d’art en situation de crue a évité récemment une dépense de 12 millions d’euros. Une autre permettant de prédire de manière convaincante l’évolution d’une tache thermique a permis de réduire de coûteuses campagnes de mesures [Hervouet, 2007].
La modélisation numérique chez EDF
Les enjeux de la modélisation numérique sont considérables pour l’industrie, notamment pour EDF, le premier fournisseur mondial d’électricité. En ce sens, la division Recherche et Développement (R&D) du Groupe a pour principale mission d’aider les départements métiers (ingénierie) à relever les défis énergétiques de demain [EDF R&D, 2012], notamment dans le cadre de la transition énergétique. Pour ce faire, EDF R&D conçoit de nombreux logiciels de simulation numérique adaptés aux besoins des ingénieurs du Groupe. Ces logiciels permettent aux départements métiers de prédire des phénomènes extrêmement complexes influençant la durée de vie des centrales nucléaires, de simuler des dizaines de milliers de scénarios pour optimiser la production et gérer les risques sur les marchés de l’énergie, etc. La suite logicielle Telemac-Mascaret , par exemple, est dédiée aux écoulements à surface libre [Hervouet, 2007]. Le logiciel Telemac résout les équations de Saint-Venant et de NavierStokes grâce à la méthode des éléments finis. Il est utilisé pour les études liées à l’environnement aquatique, aussi bien pour les études d’impact et le dimensionnement des ouvrages que le calcul des marées et la simulation des crues. Il s’agit là d’un intérêt stratégique pour le Groupe EDF car ses principaux outils de production (barrages, centrales thermiques et nucléaires) sont généralement situés en bord de mer ou de rivière. Le chapitre 6 présente de façon plus détaillée la suite Telemac-Mascaret ainsi que ses principaux domaines d’application. On peut également citer le Code_Aster (un des plus vieux d’EDF R&D dédié à la mécanique des structures et à la thermo-dynamique) ainsi que le Code_Saturne (dédié à la mécanique des fluides) [Archambeau et al., 2004] ou les codes Sim Diasca, SYRTHES et Code_Carmel3D. Un bref récapitulatif des principaux codes développés à la R&D d’EDF est présenté dans le tableau 1.1. Ajoutons que ces codes peuvent être couplés. Le couplage permet d’associer un ou plusieurs codes pour résoudre un problème plus complexe. La sortie du code A peut alors être utilisé comme paramètre d’entrée du code B. Dans d’autres cas, le code A est appelé dans le code B. Il n’est pas inutile de préciser que le couplage doit se faire tout en respectant les contraintes physiques. A titre d’exemple, le Code_Saturne peut être couplé avec d’autres codes mais également avec lui même. Il peut être également couplé avec le code de thermique SYRTHES (voir figure 1.1) ou le code de mécanique Code_Aster. Outre ces logiciels de simulation scientifique, EDF R&D développe aussi des chaînes de calcul de cœur dédiées à la simulation du fonctionnement des cœurs de centrale nucléaire. Ces chaînes de calcul permettent, grâce au calcul du flux neutronique angulaire [Marguet, 2011], de déterminer les paramètres pour une exploitation optimale des centrales. Elles sont également utilisées pour répondre aux exigences de l’Autorité de Sûreté Nucléaire (ASN). La chaîne actuelle en exploitation par les ingénieurs de la division production nucléaire est COCCINELLE [Hypolite et al., 2012]. Une autre chaîne plus récente, COCAGNE [Guillo et al., 2010b] a été développée. Cette dernière repose sur des modèles physiques plus aboutis et permet de faire des simulations plus complexes et plus proches de la réalité. COCAGNE a été principalement commanditée pour valider les plans de chargement de l’EPR Flamanville . Dans le souci d’intégrer tout le processus de simulation (pré-traitement, CAO, maillages, visualisation, calcul, post-traitement) dans un seul et unique système logiciel et surtout d’augmenter la productivité des études, EDF co-développe avec le CEA et une vingtaine de partenaires industriels, la plateforme SALOME . Cette plateforme open source permet la modélisation détaillée de l’ensemble des phénomènes physiques (mécanique, thermohydraulique, neutronique) et leurs interactions dans un environnement commun. On peut par exemple y lancer les principaux codes que nous avons mentionné plus tôt (tableau 1.1). Cette plateforme facilite ainsi le couplage de codes (comme nous l’évoquions au §3 section 1.2) et l’utilisation de modules externes comme Homard, un module dédié à l’adaptation de maillage [Nicolas et Fouquet, 2013]. Il faut donc souligner l’importance actuelle de la simulation numérique pour le monde industriel. Le progrès technique, avec l’amélioration des capacités des ordinateurs et les avancées dans les méthodes numériques ont alors permis à la simulation de prendre une nouvelle dimension.
Vers des applications de plus en plus performantes
L’évolution continue des architectures matérielles offre des puissances de calcul inimaginables il y a seulement 20 ans. Les supercalculateurs sont actuellement capables d’exécuter des millions de milliards d’opérations par seconde (pétaflopique) voire mille millions de milliards d’opérations par seconde (exaflopique) [Dongarra et al., 2011]. J.J.Dongarra et A.J. van der Steen illustrent parfaitement cette évolution dans [Dongarra et van der Steen, 2012] où ils dressent un bilan complet de l’évolution des systèmes HPC au cours des dernières décennies. Par exemple, il est intéressant de noter qu’un téléphone Iphone 4 est capable de réaliser 1.02 gigaFlops soit l’équivalent d’une machine du Top500 [Meuer et al., 2012] en 1995 [Dongarra, 2013]. En France, la machine Pangea de Total est la plus puissante. Sa performance crête théorique est estimée à 2, 296 pétaFlops et elle a été classée 11e au classement Top500 de juin 2013. Cette machine succède au palmarès à Curie dont la performance crête théorique est de 1, 667 pétaFlops (classée 15e au classement Top500 de juin 2013). EDF R&D est représenté dans ce classement avec ses machines Zumbrota (classée 38e , performance crête théorique de 838, 9 téraFlops) et Ivanoe (classée 205e , performance crête théorique de 191 téraFlops, voir annexe A.3 pour sa description détaillée). La première place du classement est actuellement occupée par une machine chinoise Tianhe-2 dont la performance crête théorique est estimée à 54, 902 pétaFlops. Elle succède à une machine américaine Titan qui a une performance crête théorique de 27, 112 pétaFlops (classée 2 e ). Dès lors, cette évolution permanente a apporté une nouvelle dimension à la simulation numérique.
|
Table des matières
1 Introduction générale
1.1 Simuler pour décider
1.2 La modélisation numérique chez EDF
1.3 Vers des applications de plus en plus performantes
1.4 Présentation de la thèse
1.4.1 Motivations
1.4.2 Contexte et objectifs
1.4.3 Environnement
1.5 Plan de lecture
2 La validation numérique : principes et méthodes
2.1 Parce que l’ordinateur n’est pas obligé d’être juste
2.1.1 Du réel au flottant
2.1.2 Notion d’arrondi
2.1.3 La qualité numérique des calculs
2.1.4 Ce que nous devrions tous savoir
2.2 L’ordinateur peut être source d’erreur… et alors ?
2.2.1 Analyser l’erreur
2.2.2 Éviter l’erreur
2.2.3 Détecter l’erreur
2.3 La validation numérique en industrie
2.4 Conclusion
3 L’arithmétique stochastique discrète et son implémentation
3.1 L’erreur d’arrondi dans un programme informatique
3.1.1 Notion de chiffres significatifs exacts
3.1.2 Erreurs d’arrondi à chaque opération arithmétique
3.1.3 Le résultat informatique
3.2 La méthode CESTAC
3.2.1 Approche stochastique des erreurs d’arrondi
3.2.2 Arithmétique aléatoire
3.2.3 Estimation de la précision
3.2.4 Validité de la méthode
3.2.5 Arithmétique stochastique discrète
3.3 Le logiciel CADNA
3.4 Les récents développements
3.5 Conclusion
4 Les types stochastiques et les bibliothèques de communication
4.1 Le standard MPI
4.2 Les fonctionnalités de l’extension
4.3 Développement
4.3.1 Un module Fortran90
4.3.2 CADNA_MPI pour C/C++
4.4 Mode d’utilisation
4.5 Tests et résultats
4.5.1 Temps de communication avec CADNA
4.5.2 Étude d’un code de produit matriciel avec ou sans CADNA
4.5.3 Élimination de Gauss sans recherche du pivot maximum
4.6 Conclusion
5 Conclusion générale