Soutenance de stage 16 Mai au 5 Août 2011 Une librairie C++ pour résoudre les équations aux dérivées partielles par la méthode des éléments finis Bonjour à tous, Je suis ici pour vous présenter les différents aspects que j’ai pu voir pendant mon stage que j’ai effectué au LJK pendant 12 semaines autour de la librairie Feel++ qui est une librairie développée en C++ qui permet de résoudre les EDP par la méthode des éléments finis. Soutenance de stage 16 Mai au 5 Août 2011 Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Pour ce faire, nous verrons dans un premier temps un bref aperçu du laboratoire dans lequel j’ai effectué mon stage puis le projet sur lequel j’ai eu la chance de travailler. Pour mener à bien ma mission, nous verrons dans un second temps les notions que j’ai du acquérir afin d’avoir toutes les clé en main pour mettre en place tout le travail que j’ai pu faire pendant ce stage Puis nous terminerons par aborder les éventuelles poursuites de ces travaux Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Baptiste Morin - Ricm 4
Le laboratoire Quelques chiffres LJK créé en Janvier 2007 Une unité mixte de recherche de 5 universités 250 personnes 4 projets européens 3 départements Le LJK est un laboratoire de mathématiques appliquées et d’informatique … Baptiste Morin - Ricm 4
L’entreprise Les départements Géométrie-Image Modèle et algorithmes déterministes Probabilités/Statistiques 6 équipes autour de la modélisation graphique et vision par ordinateur Recherches innovantes vers une insertion de la géométrie 3D 5 équipes qui développent des outils numériques pour de grosses résolutions Calcul exact et optimisations 6 équipes qui travaillent autour des mathématiques financières, sciences sociales ou encore des phénomènes aléatoires Baptiste Morin - Ricm 4
Le laboratoire Mon équipe : EDP Deux disciplines Trois applications Analyse fonctionnelle et équations aux dérivées partielles Analyse numérique et calcul scientifique Modélisation en biologie Mécanique des fluides Modélisation en physique Modèles et Algorithmes Déterministe Le projet qui m’a été confié était rattaché à l’équipe EDP qui fait partie du département Modèles et Algorithmes Déterministe du laboratoire. Cette équipe est spécialisée dans deux domaines d’applications que sont l’analyse fonctionnelle et évidemment EDP mais aussi l’analyse numérique et calcul scientifique. Ces deux disciplines s’intégrent dans trois applications majeures qui sont la modélisation en biologie, la mécanique des fluides et la modélisation en physique Image du haut : interaction d’un solide rigide avec une surface libre Image du bas : orientation des fibre dans un myocarde Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Nous allons maintenant s’intéresser au projet en lui-même et à la librairie sur laquelle j’ai été amené à travailler Baptiste Morin - Ricm 4
Le projet La librairie Feel++ Bibliothèque C++ pour la résolution d’EDP Problèmes en 1D, 2D et 3D Plusieurs types d’objets géométriques (maillages, segments, triangles…) Méthode des éléments finis Continuité du cours de MN (Ricm3) La librairie Feel++ est une librairie développée en C++ et permet de résoudre des EDP pour des problèmes dans les 3 dimensions. Cette librairie rend possible la manipulation d’objets géométriques complexe et variés Elle résout de telles équations par la méthode des éléments finis, cette méthode s’inscrit pleinement dans la continuité du cours de Méthodes Numériques dispensé en 1ère année. Cette méthode est un prolongement à la dernière section consacré aux équations différentielles ordinaires. Image du bas : potentiel électrique à la surface d’un crâne Baptiste Morin - Ricm 4
Le projet La librairie Feel++ Multi plateformes (Unix, Linux, Mac OS) Intégrée à Debian et Ubuntu Langage spécifique au domaine des EDP embarquées en C++ Diffusé et stable (www.feelpp.org) Documentée (manuel et références avec doxygen) Version actuelle : 0.9.23 Feel a l’avantage d’être multi plateformes : on peut s’en servir sur Linux, Windows, Mac ou encore ??, elle est même disponible dans les paquets Debian. Elle dispose de son propre langage intégré. Au niveau de sa diffusion, la version actuelle est 0.9.23 et son état est stable, elle est donc téléchargeable et opérationnelle à travers son site dédié ou sur la forge via subversion. Feel dispose d’un manuel largement documenté, pour l’installation, les premiers pas mais aussi les exemples concrets. Image du bas : maillage d’un cerveau coloré selon les différents quantités physiques Baptiste Morin - Ricm 4
Le projet Contributions Distribution Collaboration entre UJF, EPFL, l’Université de Coimbra (Portugal), Strasbourg, CNRS, IFPEN et EADS Financés par 2 projets ANR, un projet FNRAE, la région Rhône-Alpe et le MESR par de nombreuses thèses Distribution Open-Source Licence GNU GPL v3 et LGPL Feel++ est le fruit d’une collaboration entre 3 université: Joseph Fourier à Grenoble, L’école Polytechnique Fédérale de Lausanne et l’université de Coimbra au Portugal. Elle est également supportée par 2 projets de l’agence nationale de recherche mais aussi par un projet de la fondation nationale de recherche pour l’aéronautique et l’Espace. C’est une librairie open-source donc disponible pour tout le monde et elle est régie sous la licence publique GNU GPL. IFPEN: Institut Français du Petrol et de l’Enérgie Nouvelle EADS : European Aeronautic Defence and Space GPL: GNU General Public License LGPL: GNU Lesser General Public Licence Baptiste Morin - Ricm 4
Le projet Plusieurs aspects Théorie mathématique Puissances de l’IT Résolution d’équations complexes Méthodes de Galerkin, interpolation , systemes d’équation linéaire, système d’équations non linéaire… Optimisation Visualisation Analyse Au regard du projet qui m’était proposé, j’ai été particulièrement attiré par la possibilité de combiner plusieurs aspects dans des domaines distincts. Derrière Feel se dissimule d’une part une forte empreinte mathématique notamment parce que l’on y résout des équation complexes en employant des méthodes ?? Blabl qui font appel à des notions forte telles que l’interpolation ou la discrétisation d’espaces. Feel couvre également un large spectre du domaine des sciences de l’informatique avec l’optimisation des calculs pour réduire le temps de calcul grâceaux librairies Boost mais aussi des outils de visualisation performants comme Gmsh ou Paraview qui donnent un aspect esthétique aux résultats. Baptiste Morin - Ricm 4
Le projet Plusieurs aspects Calcul scientifique Mathématiques Informatique Calcul scientifique Attiré par la possibilité de combiner plusieurs aspects Forte empreinte maths : equations complexe et méthodes puissantes Mais couteuse : interoplation, discrétisation Informatique : code et optimisation Modelisation : Outils performant Gmsh et Paraview Au regard du sujet qui m’était proposé, j’ai été particulièrement attiré par la possibilité de combiner plusieurs aspects dans des domaines distincts. Derrière Feel se dissimule d’une part une forte empreinte mathématique notamment parce que l’on y résout des équation complexes en employant des méthodes puissantes mais coûteuse qui font appel à des notions fortes telles que l’interpolation ou la discrétisation d’espaces. Feel couvre également un large spectre du domaine des sciences de l’informatique avec l’optimisation pour réduire le temps de calcul grâce aux librairies Boost mais aussi des outils de visualisation et modélisation performants comme Gmsh ou Paraview qui donnent un aspect esthétique aux résultats. Boost : meta-programmation (Mpl et fusion) string_algo serialization boost.mpi pour le parallélisme boost.preprocessor Modélisation Baptiste Morin - Ricm 4
Le projet Environnement Programmation C++, Mpi, Boost, Python, Fortran, Doxygen, Latex Nombreux outils : Cmake, Gmsh, Paraview, … Subversion (révision 7645) Entre 20 et 30 participants, 5 thèses associées Contexte industriel (EADS et IFPEN) Outre l’aspect technique du projet, sa taille en terme de codes, de contributeurs, et son panel de connaissances à avoir en fait un projet réellement intéressant. Baptiste Morin - Ricm 4
Le projet Mon projet Appropriation de la théorie mathématique Refonte du manuel Actualisation et fusion de la documentation Mise à jour du tutoriel et de son code Ajout d’exemple et corrections Mise en place de tests journaliers Familiariser avec la MEF Etudiant M2 : fusion Mise à jour du code A terme : capable de mettre en place une application complete Si le temps le permet : Cmake/CTest Ma mission au sein de Feel avait plusieurs aspect : je devais dans un premier temps apprendre et être familier avec la méthode des éléments finis mais aussi reprendre le manuel déjà présent avec la librairie en le mettant à jour. Des étudiants de M2 en avait fait un, je devrais donc fusionner avec celui présent tout en apportant des modifications. Le manuel comportait également une partie dédiée au tutoriel avec des exemples basiques mais aussi des exemples d’applications complètes. Je devais alors ré-actualiser cette partie tout en me plongeant dans le code pour lui aussi le mettre à jour et ainsi uniformiser les deux entités. Enfin, au terme de ces différents travaux, je serais capable de mener à terme un exemple complet et concret, dans un domaine que l’on déterminerai plus tard. Finalement, si le temps le permet je devrais mettre en place des tests journaliers ou hebdomadaires en utilisant l’outil Ctest avec CMake. Baptiste Morin - Ricm 4
Le projet Cadre du stage Autonomie Encadrant sur place Messagerie instantanée Vidéoconférence Suivi par le dépôt de subversion Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites On va maintenant rentrer un peu plus dans le vif du sujet avec un aperçu de la théorie mathématique nécessaire au bon déroulement de mon stage Baptiste Morin - Ricm 4
La méthode des éléments finis Introduction Résolution numérique d’EDP Solution approchée fiable Notion de maillage Interpolation La méthode des éléments finis offre la possibilité de résoudre numériquement des équations aux dérivées partielles, ces valeurs numériques sont approchées mais fiable. Pour appliquer cette méthode, il est nécessaire de travailler sur des maillage. Ces maillages sont en réalités des discrétisatiosn de l’espace sur lequel on travaille. Cette discrétisation, qu’elle soit continue ou discontinue, fait appel au phénomène d’interpolation qui simplifie les calculs préliminaires et qui permet d’obtenir plutôt rapidement ce qu’on appelle les degrés de libertés, c’est-à-dire ici chaque intersection de la figure. Interpolation : construction d’une courbe à partir de points, ou construction d’une fonction à partir de ses valeurs Baptiste Morin - Ricm 4
La méthode des éléments finis Equations Problèmes connus de la Physique (nombreux domaines : transfert de chaleur, mécanique des fluide, phénomènes électriques) Conditions aux limites => unicité On voit ici une équation classique qualifiée d’EDP puisqu’elle comprend l’opérateur Laplacien qui correspond à la somme des dérivées partielles d’ordre 2 pour chaque variable de la fonction u. Une équation ainsi écrite possède une infinité de solution car on ne met aucune condition sur des valeurs précises qu’elle doit avoir à tel ou tel endroit de l’espace considéré. C’est pourquoi il est nécessaire d’imposer des conditions aux limites, celles-ci donne un caractère plus singulier à la solution , voir même un caractère unique. Baptiste Morin - Ricm 4
La méthode des éléments finis Domaine d’application Maillage Discrétisation spatiale d’un milieu Modélisation graphique d’un domaine Eléments proportionnés finis et définis Précision Variation de la taille du maillage Zones plus ou moins denses Grand nombre de modèles possibles Le domaine d’application ou maillage sur lequel les calculs sont effectués est d’une important capitale en terme de cout et de résultats. Le maillage représente la discrétisation spatiale de notre domaine, on obtient une modélisation graphique de celui-ci avec des éléments proportionnés entre eux. Si on le souhaite, la taille du maillage peut être différente à plusieurs endroits, on peut donc resserer le maillage aux endroits critiques ou les valeurs nous intéresses. En haut : tétraedres droits En bas : tétraedres avec bord courbés Même nb elements dans les 2 Baptiste Morin - Ricm 4
La méthode des éléments finis Formulation Forte Fonction test Intégration par partie Contraintes réduites sur l’inconnue Faible Du point de vue des équations, on part très souvent d’une formulation forte. Par exemple ici on a R qui est une relation quelconque faisant intervenir u, notre problème revient donc à trouver u telle que l’on satisfasse cette équation. La méthode des éléments finis fait intervenir une fonction que l’on appelle fonction test. Il suffit de multiplier les 2 membres de cette équation par cette fonction test puis d’intégrer par partie cette équation pour obtenir la formulation faible : avec cette technique on a ainsi diminué l’ordre de dérivabilité exigée initialement pour u. Cela augmente donc le nombre de solutions réalisable puisqu’à ce moment, nos conditions initiales ne sont pas encore appliquées. Baptiste Morin - Ricm 4
La méthode des éléments finis Principe général Equation sur Ω Intégration par partie avec v Formulation faible Discrétisation de l’espace qu’on munit d’une base (polynômes de Lagrange) Problème matriciel Pour terminer avec cette méthode, voici son principe global de fonctionnement : on souhaite résoudre une EDP sur un domaine Omega, on insère notre fonction test puis on intégre par partie. On obtient alors notre formulation faible. En fonction des simplifications choisie pour l’équation, on met en place la discrétisation de l’espace et on le munit d’une base adéquate qui simplifiera nos calculs. Une fois que cela est fait, on se ramène à un problème matriciel que l’on sait résoudre. Plusieurs méthodes puissantes ont été vue en MN l’an passé, notamment la méthode de résolution LU et aussi celle de Gauss. A VERIFIER Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Après avoir assimilé la méthode des éléments finis, j’ai pu passer au travail plus concret qui m’était demandé Baptiste Morin - Ricm 4
Le travail réalisé Documentation Correction Mise à jour Réorganisation Suppression J’ai commencé à m’attaquer à Feel par la documentation qui a pour but d’expliquer comment installer Feel sur sa machine. Elle datait un peu et des informations étaient erronées, j’ai donc modifié cela et j’ai aussi restructuré cette partie. Baptiste Morin - Ricm 4
Le travail réalisé Documentation Installation sur Mac : MacPorts Gestionnaire de paquets libres Dépendances Les indications concernant les machines Mac n’étaient pas disponibles, et comme je venais d’en acheter une l’ocasion était trop belle pour la saisir. Je me suis donc attelé à installer feel sur ma machine, non sans mal, mes retours ayant permis à Mr Prud’homme d’améliorer certaines dépendances dans les fichiers de configuration Cmake. Pour simplifier la chose, un port feel a été crée sur macports : c’est un gestionnaire de paquets libre qui permet d’installer facilement tout logiciel open-source à partir d’un Mac. J’ai donc installé feel par ce nouveau moyen et mes retours et essais ont permis de bâtir un port totalement fonctionnel. Lorsque que j’ai quitté le laboratoire, feel était même opérationnel sur le tout dernier système Lion. Baptiste Morin - Ricm 4
Le travail réalisé Tutoriel Exemples basiques Restructuration Mots-clés Illustrations Après avoir installé et expliqué comment le faire, je me suis penché sur la première partie du tutoriel destiné à donné les éléments clés pour débuter avec feel. Cette partie reprend des codes exemples qui sont donnés que j’ai légérement modifié afin qu’ils soient à jour puisque la librairie est constamment en évolution afin de simplifier au maximum son utilisation. Cette mise à jour est alors passé par une restructuration partielle des exemples et codes donnés ainsi que des illustration afin de rendre plus attractif le tutoriel. Baptiste Morin - Ricm 4
Le travail réalisé Améliorations Nouveaux maillages Format STL Script avec .geo Format medit Lien avec le standard .msh Modification dans le lecteur Pour compléter le panel des possibilités feel, nous avons décidé d’ajouter des formats de maillage lisibles par les méthodes de la librairies. Pour ce faire j’ai expliqué d’un part comment importer un maillage au format STL grâce à des scripts très simple dans les fichiers usité pour cela : les fichiers .geo. Pour l’ajout des format medit, il a fallu apporter une modification dans l’importation du maillage. En réalité, le lecteur standard de Gmsh procède par flag, et le flag « physical region » était considéré comme nul sur un maillage medit, il a donc fallu modifier ce physical en l’écrivant comme un « elementary region ». Une fois cela fait, nous avons pu vérifier que cela fonctionnait en appliquant un théorème simple, le résultat était celui escompté. Le théorème = Gauss qui stipule que le flux sortant d’un champ de vecteur à travers une surface fermée doit être égal à l’intégrale de la divergence sur le volume de cette surface. Test ave u=1 donc div(u)=0 on doit donc obtenir int(partialOmega, u . N ) Baptiste Morin - Ricm 4
Le travail réalisé L’application Dissipateur de chaleur Performances Paramétrage Visualisation Nous voici au cœur de mon stage: l’ajout d’un nouvel exemple complet et concret. Mon but était ici de réussir à programmer avec feel un simulateur des variations de températures au sein d’un dissipateur de chaleur pour ordinateur. Cette simulation doit aussi être paramétrable pour qu’on puisse juger des différents performances mais on doit aussi pouvoir visualiser facilement les résultats obtenus. Les paramètres physiques modifiables sont : Les densités volumiques Les conductivités thermiques Les capacités calorifiques La température ambiante Le flux de chaleur imposé par le processeur L’intensité du ventilateur La longeur de l’ailette La largeur de l’ailette La profondeur du radiateur en 3D Je vais donc vous monter les différentes étapes de la construction de cette application. Baptiste Morin - Ricm 4
Le travail réalisé L’application Géométrie Pour pouvoir mener correctement, j’ai étudié les différentes symétries du problèmes pour pouvoir en réduire la zone de calcul. Avec un schéma relativement simple on observe qu’il y’a de nombreuses symétrie. Je pensais me ramener à une seule ailette mais grâce aux symétries et aux conditions aux limites que j’imposerai, je pouvais encore réduire en ne prenant qu’une demi ailette. Ayant choisi la géométrie, il me restait à créer les maillages correspondant, tout en restant paramétrables. Baptiste Morin - Ricm 4
Le travail réalisé L’application Maillages Voici les maillages 2D et 3D que j’ai réalisé avec gmsh en écrivant les fichiers de configuration .geo, on voit dans chacun d’eux que l’ailette et la base constituent deux élément physiques différents, ce qui nous permetera par la suite de changer leur matériaux. Baptiste Morin - Ricm 4
Le travail réalisé L’application Equations Pour appliquer les conditions aux limites il a fallu nommer chacun des bords, ces noms sont les mêmes dans le code car grâce à Gmsh on peut nommer par des chaînes de caractères ces entités. Nous sommes partis de l’équation de la chaleur à laquelle toute température physique doit obéir. Puis nous avons rajouté les conditions aux limites qui convenait à notre problème. Baptiste Morin - Ricm 4
Le travail réalisé L’application Implémentation Résultats Base et ailette : cuivre Conductivité thermique kappa = 386 W.m-1.K-1 Densité volumique rho = 8940 kg.m-3 Capacité calorifique C = 385 J.kg-1.K-1 Flux de chaleur = 1e6 W.m-2 Coefficient thermique = 1e3 W.m-2.K-1 Température ambiante Tamb = 300 K Après calcul, on obtient cette grande équation, c’est celle-ci qui est implémentée dans l’application. Après traitement des calculs, le temps variant de la durée de la simulation mais aussi de la taille du maillage, on obtient en visualisant avec gmsh Baptiste Morin - Ricm 4
Le travail réalisé Baptiste Morin - Ricm 4
Le travail réalisé L’application Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Baptiste Morin - Ricm 4
Poursuites Quelques améliorations Maillage d’un dissipateur complet Affinage du résultat Plus de paramètres Baptiste Morin - Ricm 4
Poursuites Continuation sur le projet Maillage d’un dissipateur complet Plus de paramètres Tests journaliers/hebdomadaires Autres applications ou améliorations Pour aller encore plus loin dans ce projet, on pourra établir un maillage complet d’un radiateur et donc modifier légérement l’application. A partir de cela on pourra alors rendre plus précis la simulation tout en rajoutant plus de paramètres. Le nombre de modélisations physique étant très important, on pourra aussi en créer de nouveau tout en continuant à améliorer la librairie en la rendant toujours plus performante et accessible. C’est d’ailleurs ce que je ferais probablement bientôt puisque nous réfléchissions avec Mr Prud’homme à un contrat pour que je puisse continuer à travailler dessus en fonction de mon emploi du temps scolaire. OPUS: Open Platform for Uncertainty quantification in numerical Simulations (open source platform) Baptiste Morin - Ricm 4
Plan de la présentation I . Le laboratoire II . Le projet III . La méthode des éléments finis IV . Travail réalisé V . Poursuites Baptiste Morin - Ricm 4
Conclusion Première expérience Acquisition de méthodologie Grande autonomie Nouvelles connaissances Nombreux outils Solidification des connaissances Pour terminer, ce fût pour moi ma première expérience en tant que stage dans mes études supérieur et j’en suis très satisfait. J’ai pu évoluer en grande autonomie tout en acquérant beaucoup de méthodologie autour d’un gros projet. J’ai pu apprendre nouvelles connaissances mais aussi solidifier celles que j’avais déjà et c’est pour moi une satisfaction puisque c’est aussi le but d’un stage. J’ai enfin pu connaître de nouveaux outils qui me semblent important de connaître et de maîtriser, je saurais les réemployer à l’avenir. Baptiste Morin - Ricm 4
Merci pour votre attention Merci pour votre attention, si vous avez des questions je serais heureux d’y répondre Baptiste Morin - Ricm 4