Parallel Solver for the Poisson Equation on a Hierarchy of Superimposed Meshes, under a Python Framework. (Solveur Parallèle pour l'Equation de Poisson sur Mailles Superposées et Hiérarchiques, dans le Cadre du Langage Python)

Les discretisations adaptatives sont importantes dans les problemes de fluxcompressible/incompressible puisqu'il est souvent necessaire de resoudre desdetails sur plusieurs niveaux, en permettant de modeliser de grandes regionsd'espace en utilisant un nombre reduit de degres de liberte (et en reduisant letemps de calcul). Il existe une grande variete de methodes de discretisation adaptative, maisles grilles cartesiennes sont les plus efficaces, grâce a leurs stencilsnumeriques simples et precis et a leurs performances paralleles superieures.Et telles performance et simplicite sont generalement obtenues en appliquant unschema de differences finies pour la resolution des problemes, mais cetteapproche de discretisation ne presente pas, au contraire, un chemin faciled'adaptation.Dans un schema de volumes finis, en revanche, nous pouvons incorporer differentstypes de maillages, plus appropriees aux raffinements adaptatifs, en augmentantla complexite sur les stencils et en obtenant une plus grande flexibilite.L'operateur de Laplace est un element essentiel des equations de Navier-Stokes,un modele qui gouverne les ecoulements de fluides, mais il se produit egalementdans des equations differentielles qui decrivent de nombreux autres phenomenesphysiques, tels que les potentiels electriques et gravitationnels. Il s'agitdonc d'un operateur differentiel tres important, et toutes les etudes qui ontete effectuees sur celui-ci, prouvent sa pertinence.Dans ce travail seront presentes des approches de differences finies et devolumes finis 2D pour resoudre l'operateur laplacien, en appliquant des patchsde grilles superposees ou un niveau plus fin est necessaire, en laissant desmaillages plus grossiers dans le reste du domaine de calcul.Ces grilles superposees auront des formes quadrilaterales generiques.Plus precisement, les sujets abordes seront les suivants:1) introduction a la methode des differences finies, methode des volumes finis,partitionnement des domaines, approximation de la solution;2) recapitulatif des differents types de maillages pour representer de facondiscrete la geometrie impliquee dans un probleme, avec un focussur la structure de donnees octree, presentant PABLO et PABLitO. Le premier estune bibliotheque externe utilisee pour gerer la creation de chaque grille,l'equilibrage de charge et les communications internes, tandis que la secondeest l'API Python de cette bibliotheque, ecrite ad hoc pour le projet en cours;3) la presentation de l'algorithme utilise pour communiquer les donnees entreles maillages (en ignorant chacune l'existence de l'autre) en utilisant lesintercommunicateurs MPI et la clarification de l'approche monolithique appliqueea la construction finale de la matrice pour resoudre le systeme, en tenantcompte des blocs diagonaux, de restriction et de prolongement;4) la presentation de certains resultats; conclusions, references.Il est important de souligner que tout est fait sous Python comme framework deprogrammation, en utilisant Cython pour l'ecriture de PABLitO, MPI4Py pour lescommunications entre grilles, PETSc4py pour les parties assemblage et resolutiondu systeme d'inconnues, NumPy pour les objets a memoire continue.Le choix de ce langage de programmation a ete fait car Python, facile aapprendre et a comprendre, est aujourd'hui un concurrent significatif pourl'informatique numerique et l'ecosysteme HPC, grâce a son style epure, sespackages, ses compilateurs et pourquoi pas ses versions optimisees pour desarchitectures specifiques.