Résolution des grandes systémes d`équations linéaires par la

publicité
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
Téléchargement