Cycle postgrade ingénierie mathématique Applications sur ordinateur Calcul scientifique, projet 5 Assistant: Aleš Janka Résolution des grandes systémes d’équations linéaires par la méthode Schwarz domain decomposition Considérons un problème de la chaleur posé sur un carré Ω ⊂ R2 , Ω = [−1, 1] × [−1, 1], (1) (2) (3) −∆u = f dans Ω, u = u0 sur ΓD , ~nΓ grad u = 0 sur ΓN . (4) La discrétisation de ce problème par éléments finis (et aussi par différences finies ou volumes finis) mène à la résolution d’un grand système d’équations linéaires A~x = ~b avec A ∈ RN ×N une matrice creuse (sparse), symétrique définie positive, et ~b, ~x ∈ RN vecteurs de second membre et de la solution. Les valeurs de ~x, {xi }, correspondent aux valeurs de la solution u aux noeuds du maillage 2D. Très souvent dans les applications de l’ingénierie, le nombre de nœuds N varie de quelques centaines de milliers jusqu’aux quelques dizaines de millions. Pour les systèmes de cette taille, il est envisagable de traiter la résolution par les ordinateurs paralléles, en découpant le problème original en plusieurs sous-problèmes et en les distribuant sur plusieurs processeurs. Découpons le domaine de calcul Ω en plusieurs sous-domaines Ωi , i = 1, . . . , K qui se récouvrent SK et Ω = i=1 Ωi , cf. Fig. 1. Ω2 Ω3 Ω1 Ω4 recouvrement Figure 1: Géométrie du problème résolu par décomposition de domaines, nombre de sous-domaines K=4 L’algorithme de Schwarz multiplicatif consiste à traiter successivement les sous-problèmes sur les sous-domaines Ωi . 1 Algorithme de Schwarz multiplicatif 1. Choisir une solution initiale u0 2. Répeter pour i = 1, . . . , J jusqu’à convergence: (a) Noter la solution intérmediaire u0i = ui−1 et chercher sa correction w1 sur Ω1 , ie. résoudre le sous-problème sur Ω1 −∆w1 = f + ∆u0i dans Ω1 , w1 = 0 sur ∂Ω1 \ ΓN , ~nΓ grad w1 = 0 sur ∂Ω1 ∩ ΓN . (b) Noter la solution intérmediaire u1i = u0i + w1 et chercher sa correction w2 sur Ω2 , ie. résoudre le sous-problème −∆w2 = f + ∆u1i dans Ω2 , w2 = 0 sur ∂Ω2 \ ΓN , ~nΓ grad w2 = 0 sur ∂Ω2 ∩ ΓN . K−1 (c) Continuer ainsi jusqu’au K-ième sous-problème pour obtenir ui+1 = uK + wK . i = ui 3. Fin de la répétition. Questions: • Déduire de (1)-(3) la formulation faible du problème: multiplier (1) par une fonction test w, intégrer sur Ω, puis utiliser le Theoréme de la divergence et les conditions aux bords (3). • Discrétiser le problème par la méthode des éléments finis et implémenter en Matlab. Un code 2D éléments finis pour discrétiser l’opérateur de Laplace sera fourni. • Reécrire les sous-problèmes sur Ωi aussi dans la formulation faible. Faire l’hypothèse que les bords artificiels ∂Ωi \ ∂Ω sont alignés avec les arêtes du maillage. • Réecrire les sous-problèmes sur Ωi purement algébriquement, en n’utilisant que la matrice A, et une matrice Ni ∈ RNi ×N , Ni est le nombre de noeuds à l’intérieur de Ωi , Ni (j, k) = 1 si noeud k appartient dans Ωi et correspond à la j-ième unconnue du problème local sur Ωi . • Implémenter l’algorithme de Schwarz en Matlab. • Tester la vitesse de convérgence de l’algorithme en fonction du nombre de sous-domaines Ωi et de la largeur de leur découvrement. Réaliser, que la méthode de Schwarz pour le recouvrement minimal coincide avec une méthode de Gauss-Seidel par block. • Eventuellement, utiliser une itération de méthode de Schwarz comme le préconditionneur de la méthode des gradients conjugés, mesurer le conditionnement du problème original et du problème préconditionné. La méthode du gradient conjugé avec l’estimation du conditionnement (implementée en Matlab) sera fourni. 2