Décomposition de domaine
Transcription
Décomposition de domaine
Méthodes de Décomposition de Domaine de Type Optimisation Jonas Koko LIMOS, Université Blaise Pascal CNRS FRE 2239 ISIMA, Campus des Cézeaux BP 10125 F63173 Aubière cedex, France email: [email protected] 27 février 2007 Table des matières 1 Introduction 1 2 Problème Modèle 2 3 Méthode des multiplicateurs de Lagrange 5 3.1 Sensibilité, gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Algorithme 8 4 5 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode des moindres carrés 9 4.1 Adjoint, sensibilité et gradient . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3 Discrétisation par éléments nis . . . . . . . . . . . . . . . . . . . . . . . . . 13 Le TP 15 5.1 Lecture des maillages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 Stockage et assemblage des matrices . . . . . . . . . . . . . . . . . . . . . . 16 5.3 Résolution des systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . 16 5.4 Parallélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Introduction Les méthodes de décomposition de domaine ont connu un intérêt fulgurant des der- nières années, en raison de leur implication évidente dans le calcul parallèle. Le principe est assez simple: on transforme un problème de grande taille en une suite de sous-problèmes découplés, de taille plus petite, qui peuvent être résolus en parallèle. L'ecacité des méthodes de décomposition de domaine est telle que même sur une architecture série, le gain de temps est considérable. 1 2 PROBLÈME MODÈLE 2 La littérature sur les méthodes de décomposition de domaine est trop énorme pour être citée ici de manière exhaustive. Le lecteur intéressé pourra consulter [5, 6]. Il existe une conférence annuelle sur les méthodes de décomposition de domaine et certains proceedings peuvent être télé-chargés gratuitement depuis http ://www.ddm.org/conferences.html. Dans ce cours nous ne traitons que des méthodes de décomposition de domaine basées sur l'optimisation pour une raison assez simple: la convergence ne fait appel qu'à des notions de bases d'optimisation (convexité, coercivité). Ces méthodes on été introduites par [2] et on été largement reprises et améliorées depuis [1, 3, 4]. Les méthodes de décomposition de domaine basées sur l'optimisation sont des méthodes de type décomposition/coordination dont l'étape de coordination consiste à minimiser (ou maximiser) un critère. 2 Problème Modèle Soit Ω un domaine borné de R2 de bord Γ. On considère le problème de Poisson −∆u = f, u = 0, dans sur Ω, (2.1) Γ. (2.2) Le problème (2.1)-(2.2) admet une solution et une seule. Les méthodes de décomposition de domaine développées à partir du problème modèle (2.1)-(2.2) s'appliquent aussi, moyennant quelques modications mineures, aux problèmes suivants. Problème de Poisson généralisé: αu − ν∆u = f, u = uD , avec α≥0 et ν>0 Élasticité linéaire: Ω dans Ω, sur Γ, des constantes. est un corps solide élastique bidimensionnel, de coecients de Lamé (réels strictement positifs) λ et µ. Le champ de déplacement vérie −∇ · σ(u) = f, u = uD , où σ dans Ω, sur Γ, est le tenseur des contraintes s'exerçant dans le solide σ(u) = λtr((u))I2 + 2µ(u), avec (u) le tenseur des déformations 1 (u) = (∇u + ∇uT ). 2 u = (u1 , u2 ), 2 PROBLÈME MODÈLE 3 Introduisons l'espace vectoriel V = v ∈ H 1 (Ω); v = 0 sur Γ , et les notations Z ∇u · ∇v dx, a(u, v) = Ω Z (f, v) = f v dx. Ω La formulation variationnelle du problème (2.1)-(2.2) est alors u ∈ V ; a(u, v) = (f, v), énergie potentielle totale La fonctionnelle de l' ∀v ∈ V. (2.3) est 1 J(v) = a(v, v) − (f, v), 2 (2.4) de sorte que (2.3) est l'équation d'Euler-Lagrange du problème de minimisation u∈V; J(u) ≤ J(v), La fonctionnelle (2.4) étant convexe coercitive sur ∀v ∈ V. V, (2.5) le problème de minimisation (2.5) (et donc l'équation variationnelle (2.3)) admet une solution unique. Partitionnons le domaine Fig. 1. Notons {Ωi } Γ12 Ω l'interface entre les deux induit une partition {Γi } disjoints Ω1 et Ω2 comme illustré sur la sous-domaines, i.e. Γ= Ω1 ∩ Ω2 . La partition en sous-domaines sur Γ dénie par Γ1 = Γ ∩ Ω 1 , Ω1 Fig. 1 Décomposition de Γ2 = Γ ∩ Ω 2 . Γ12 Ω Ω2 en deux sousdomaines disjoints Considérons les problèmes de Poisson découplés suivants (1 −∆ui = fi , ui = 0, dans sur Ωi , Γi . ≤ i ≤ 2) (2.6) (2.7) 2 PROBLÈME MODÈLE 4 On associe à (2.6)-(2.7), les conditions aux limites à l'interface Γ12 u1 = u2 , sur Γ12 , ∂u1 ∂u2 = − , sur Γ12 , ∂n1 ∂n2 où ni est la normale (unitaire) sortante à consistante, Ωi en Γ12 . (2.8) (2.9) La décomposition (2.6)-(2.9) est i.e. les problèmes (2.1)-(2.2) et (2.6)-(2.9) ont la même solution. Pour la suite on pose [u12 ] = (u1 − u2 )|Γ12 , l'erreur de la solution à l'interface. Le principe des méthodes de décomposition de domaine est de résoudre itérativement (2.6)-(2.7) pour satisfaire (2.8)-(2.9) à la convergence. Dans le cas des méthodes de décomposition de domaine basées sur l'optimisation, les itérations se déroulent de manière à satisfaire un critère d'optimisation. Nous nous limitons ici aux méthodes de décomposition de domaine de type moindres carrés ou multiplicateurs de Lagrange. Dans la méthode des moindres carrés le critère à minimiser est la norme de l'erreur à l'interface [u12 ]. Dans le cas de la méthode des multiplicateurs de Lagrange, c'est le multiplicateur de Lagrange associé à l'erreur à l'interface [u12 ] qui est calculé à chaque itération. Pour la suite, nous introduisons les sous-espaces vectoriels Vi = v ∈ H 1 (Ωi ); v = 0 sur Γi , et les notations suivantes Z ∇vi · ∇wi dΩ; ai (vi , wi ) = vi , wi ∈ Vi (2.10) Ωi Z (vi , wi )Ωi = vi wi dΩ; vi , wi ∈ Vi , Ωi Z (v, w)Γ12 = vw dΓ. S On pose u = (u1 , u2 ) et V = V1 × V2 ,. énergie potentielle totale En tenant compte des notations ci-dessus, la fonctionnelle de l' (2.4) devient J(v) = J1 (v1 ) + J2 (v2 ) où Ji (vi ) = X1 2 ai (vi , vi ) − (fi , vi )Ωi , i = 1, 2. 3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE 3 5 Méthode des multiplicateurs de Lagrange Considérons le problème d'optimisation avec contrainte Trouver u = (u1 , u2 ) ∈ V, tel que J1 (u1 ) + J2 (u2 ) ≤ J1 (v1 ) + J2 (v2 ), ∀(v1 , v2 ) ∈ V, (3.1) [u12 ] = 0. (3.2) A priori, le problème (3.1)-(3.2) n'est pas équivalent à (2.1)-(2.2). En eet, il manque la condition sur la continuité des dérivées normales à travers Γ12 , i.e. (2.9). Cet obstacle sera levé en utilisant une méthode convenable pour résoudre (3.1)-(3.2). Introduisons le Lagrangien L du problème (3.1)-(3.2), déni sur L(v, µ) = 2 X V × L2 (Γ12 ) par Ji (vi ) + (µ, [u12 ])Γ12 , (3.3) i=1 où µ ∈ L2 (S) est le multiplicateur de Lagrange associé à la contrainte (3.2). Grâce à la convexité, le problème d'optimisation (3.1)-(3.2) est équivalent au problème de point-selle (u, λ) ∈ V × L2 (Γ12 ); L(u, µ) ≤ L(u, λ) ≤ L(v, λ), ∀(v, µ) ∈ V × L2 (Γ12 ) ou encore max min L(u, λ). λ∈L2 (Γ12 ) u∈V En annulant les dérivées de le point-selle (u, λ) de L par rapport à u et λ, on obtient les équations qui caractérisent L ai (ui , vi ) = (fi , vi )Ωi − εij (λ, vi )Γ12 , (µ, [u12 ])Γ12 où εij ∀vi ∈ Vi , i = 1, 2 2 ∀µ ∈ L (Γ12 ), = 0, représente le signe du sous-domaine Ωi (3.4) (3.5) avec εji = −εij , i, j = 1, 2. Dans notre cas ε12 = 1 et ε21 = −1. Le principal avantage des équations (3.4)-(3.5) est que, pour est découplée. De l'équation (3.4), on déduit que −∆ui = fi ∂ui ∂ni dans = −εij λ Ωi , sur de sorte que λ= ∂u1 ∂u2 =− . ∂n1 ∂n2 Γ12 , λ connu, l'équation (3.4) 3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE λ Le multiplicateur de Lagrange 6 assure donc la continuité des dérivées normales à travers Γ12 . Supposons que u = u(λ) ui (λ) ∈ Vi ; En posant v = ui (λ) soit solution du problème découplé ai (ui (λ), v) = (fi , v)Ωi − εij (λ, v)Γ12 , ∀v ∈ Vi , i = 1, 2. (3.6) dans (3.6) et en remplaçant dans (3.3), on obtient la fonctionnelle duale 2 J ∗ (λ) := L(u(λ), λ) = − 1X a(ui (λ), ui (λ)) 2 i=1 ai Comme les formes bilinéaires sont fortement convexes, alors la fonctionnelle J∗ est fortement concave. Le problème de maximisation λ ∈ L2 (Γ12 ); J ∗ (λ) ≥ J ∗ (µ), ∀µ ∈ L2 (Γ12 ), (3.7) admet donc une solution unique. La méthode de décomposition de domaine proposée dans cette section est basée sur la résolution du problème (3.7) par une méthode itérative de type Uzawa λk+1 = λk + tk µk , k où µ est une direction de montée de J ∗, (3.8) i.e. ∂J ∗ (λk ) k ·µ >0 ∂λ et tk le pas de déplacement. 3.1 Sensibilité, gradient Remarquons d'abord que l'application λ 7→ u(λ) est linéaire et continue et on a u(λ + tµ) = u(λ) + tw, w = (w1 , w2 ) ∈ V où est solution du wi ∈ Vi ; problème de sensibilité ai (wi , v) = −εij (µ, v)Γ12 , (3.9) (découplé) ∀v ∈ Vi , i = 1, 2. (3.10) En eet, ai (ui (λ + tµ) − ui (λ), vi ) = −εij (tµ, vi )Γ12 , Si wi ui (λ + tµ) − ui (λ) = twi Vi ). alors J ∗, dans la direction ∀vi ∈ Vi , par unicité de la solution de (3.11) (la forme Connaissant la variation de de (3.11) est solution de ai (wi , vi ) = −εij (µ, vi )Γ12 , sur ∀vi ∈ Vi . ai est coercitive u par rapport à λ, on peut calculer la dérivée directionnelle µ 2 X ∂J ∗ (λ) ·µ=− ai (ui , wi ). ∂λ i=1 (3.12) 3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE Comme la fonctionnelle J∗ doit vérier En posant est continûment diérentiable, son gradient 7 ∇J ∗ (λ) ∂J ∗ (λ) · µ = (∇J ∗ (λ), µ)S . ∂λ v = ui existe et (3.13) dans (3.10), on a que ai (wi , ui ) = −εij (µ, ui )Γ12 , c'est-à-dire 2 X ∀v ∈ Vi , i = 1, 2, a(wi , ui ) = −(µ, [u12 ])Γ12 . (3.14) i=1 En remplaçant (3.14) dans (3.12) et en considérant (3.13), on déduit que γ := ∇J ∗ (λ) = [u12 ], avec u = (u1 , u2 ) ∈ V Avec le gradient de ∀λ ∈ L2 (Γ12 ), (3.15) solution de (3.6). J ∗ , on peut maintenant construire une direction de montée. Comme J ∗ est quadratique convexe, la meilleure direction est la direction du gradient conjugué. A chaque itération k, la direction de montée du gradient conjugué est donnée par βk = k γ k k2L2 (Γ12 ) k γ k−1 k2L2 (Γ12 ) , (3.16) µk = γ k + βk µk−1 . Il ne nous reste plus qu'à calculer le pas déplacement tk tk (3.17) pour compléter l'itération (3.8). Le pas de est calculé de façon à maximiser la fonction (réelle d'une variable réelle) φ dénie par φ(t) = J ∗ (λk + tµk ). J ∗ est fortement 0 dratique) φ (t) = 0, i.e. Comme concave, il sut de résoudre l'équation linéaire en 0 = φ0 (t) = ∂ ∗ k J (λ + tµk ) · µk = (∇J ∗ (λk + tµk ), µ)Γ12 . ∂λ t (φ est qua- (3.18) En utilisant (3.9) dans (3.15), l'équation (3.18) devient k ([uk12 ] + t[w12 ], µk )Γ12 = 0. Un calcul direct donne tk = − ([uk12 ], µk )Γ12 . k ], µk ) ([w12 Γ12 (3.19) 3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE 8 3.2 Algorithme On remplace la condition de Dirichlet homogène (2.2) par u = uD , sur Γ et on dénit ViD = v ∈ H 1 (Ωi ); v = uD sur VD = V1D × V2D . Γi , Avec tous les éléments ci-dessus, nous pouvons maintenant donné l'algorithme de décomposition de domaine utilisant les multiplicateurs de Lagrange. Algorithme DDM/ML Itération k = 0. Calculer Initialisation: λ0 u0 = (u01 , u02 ) ∈ VD donné solution de ai (u0i , v) = (fi , v)Ωi − εij (λ0 , v)Γ12 , Gradient initial : Direction initiale Itération k ≥ 0. ∀v ∈ Vi , i = 1, 2. γ 0 = [u012 ] 0 0 : µ = γ On suppose λ k , uk , γ k et µk connus Sensibilité: Calculer wk = (w1k , w2k ) ∈ V solution de ai (wik , v) = −εij (µk , v)Γ12 , ∀v ∈ Vi , i = 1, 2 Pas de déplacement: tk = − Mise à jour des inconnues: λk+1 = λk + tk µk uk+1 = uki + tk wik , i = 1, 2 i Gradient: γ k+1 = [uk+1 12 ] Direction du gradient conjugué: βk = k γ k+1 k2L2 (Γ12 ) k γ k k2L2 (Γ12 ) µk+1 = γ k+1 + βk µk ([uk12 ], µk )Γ12 k ], µk ) ([w12 Γ12 4 MÉTHODE DES MOINDRES CARRÉS 9 On itère jusqu'à ce que la norme du gradient ait susamment diminué, i.e. k γ k kL2 (Γ12 ) < ε. k γ 0 kL2 (Γ12 ) La parallélisation de la méthode est immédiate, car les sous-problèmes à résoudre à chaque itération sont complètement découplés. 4 Méthode des moindres carrés Considérons maintenant les équations de Poisson découplées suivantes, avec des condi- tions aux limites mixtes DirichletNeumann, pour −∆ui = f dans ui = 0 ∂ui = λ ∂ni où ni est la normale unitaire sortante en i = 1, 2, Ωi , (4.1) sur Γi , (4.2) sur Γ12 , (4.3) Γ12 . La formulation variationnelle de (4.1)-(4.3) est alors donnée par u i ∈ Vi ; Un couple ∀vi ∈ Vi , i = 1, 2. ai (ui , vi ) = (fi , vi )Ωi + εij (λ, vi )Γ12 , (u1 , u2 ) solution de (4.4), i.e. de (4.1)-(4.3), n'est pas forcément solution u = (u1 , u2 ) dépend de u2 à l'interface S . du problème d'origine (2.1)-(2.2). Comme sorte que u1 soit le plus proche possible (4.4) de λ, on choisit donc λ de Ce qui revient à choisir λ qui minimise la fonctionnelle 1 F (λ) = 2 Il est clair que la fonctionnelle F u |[u12 ]|2 ds. (4.5) Γ12 admet au moins un minimum, à savoir λ= où Z ∂u ∂u |Γ12 = − |Γ , ∂n1 ∂n2 12 est solution de (2.1)-(2.2). En prenant u1 = u|Ω1 et u2 = u|Ω2 , on a λ qui sont de Mais pour éviter les complications, on ne va choisir que les 1 bien F (λ) = 0. norme raison- nable. Donc au lieu de (4.5), on va minimiser la fonctionnelle régularisée 1 Fδ (λ) = 2 où δ>0 [u]2 dΓ + S δ k λ k2L2 (Γ12 ) , 2 est le paramètre de régularisation. La coercivité de Fδ (λ) ≥ 1 Z δ k λ k2L2 (Γ12 ) , 2 Fδ (4.6) est évidente, puisqu'on a ∀λ ∈ L2 (Γ12 ). On peut se passer de la régularisation, la démonstration de la coercivité est dans ce cas plus technique 4 MÉTHODE DES MOINDRES CARRÉS 10 Grâce à la coercivité, on montre l'existence d'une solution du problème d'optimisation max λ∈L2 (Γ12 ) Fδ (λ). (4.7) On montre aussi la convergence de la solution de (4.7) vers la solution de (2.1)-(2.2) lorsque δ → 0. La méthode de décomposition de domaine présentée dans cette section est basée sur la résolution de (4.7) par une méthode itérative de descente λk+1 = λk + tk µk , où µk est une direction de descente de Fδ . 4.1 Adjoint, sensibilité et gradient Commençons par remarquer que (4.7) est en fait un problème de minimisation avec contraintes car dans (4.6) le couple Soit z = (z1 , z2 ) u = (u1 , u2 ) est solution de (4.4), ou encore (4.1)-(4.3). les multiplicateurs de Lagrange associé aux contraintes (4.4). Le Lagrangien du problème avec contraintes (4.7) est dénie par L(λ, z) = Fδ (λ) − a1 (u1 , z1 ) + (f, z1 )Ω1 + (λ, z1 )S −a2 (u2 , λ2 ) + (f, z2 )Ω2 − (λ, z2 )S (4.8) Les conditions nécessaires d'optimalité du premier ordre nous disent qu'une solution du z2 ) point stationnaire du Lagrangien. En annulant les dérivées directionnelles de L par rapport à zi , on obtient les contraintes (4.4). En annulant les dérivées directionnelles de L par rapport à ui , on obtient problème avec contraintes (4.7) est (avec les multiplicateurs le z1 et problème adjoint (découplé) zi ∈ V i ; ai (zi , vi ) = εij ([u12 ], vi )Γ12 , ∀vi ∈ Vi , i = 1, 2. Le système adjoint (4.9) nous servira plus tard pour calculer le gradient de (4.9) Fδ . Notons que la fonctionnelle (4.6) est convexe et quadratique et que les contraintes sont linéaires. Donc avec un algorithme du gradient conjugué, on doit pouvoir espérer une convergence quadratique. L'application qui à λ associe ui (λ) solution de (4.4) est linéaire et u(λ + tµ) = u(λ) + tw où w = (w1 , w2 ) est solution du wi ∈ Vi ; problème de sensibilité (découplé) ai (wi , vi ) = εij (µ, vi )Γ12 , ∀v ∈ Vi , (4.10) La dérivée directionnelle de la fonctionnelle (4.6) est alors donnée par ∂ Fδ (λ) · µ = ([u12 ], [w12 ])Γ12 + δ(λ, µ)Γ12 , ∂λ ∀µ ∈ L2 (Γ12 ), (4.11) 4 MÉTHODE DES MOINDRES CARRÉS où 11 [w12 ] = (w1 − w2 )|Γ12 . Rappelons que le vecteur gradient ∇Fδ (λ) doit vérier ∂Fδ (λ) · µ = (∇Fδ (λ), µ)Γ12 . ∂λ En posant vi = zi dans (4.10), on obtient ai (wi , zi ) = εij (µ, zi )Γ12 , i = 1, 2. Ce qui donne, en additionnant les deux équations, a1 (w1 , z1 ) + a2 (w2 , z2 ) = (µ, [z12 ])S , où [z12 ] = (z1 − z2 )|Γ12 . En posant vi = wi dans (4.12) (4.9), on obtient ai (zi , wi ) = εij ([u12 ], wi )Γ12 , i = 1, 2. En sommant ces deux équations, il vient que a1 (w1 , z1 ) + a2 (w2 , z2 ) = ([u12 ], [w12 ])Γ12 . Les formes bilinéaires a1 et a2 (4.13) étant symétriques, (4.12) et (4.13) impliquent que ([u12 ], [w12 ])Γ12 = (µ, [z12 ])Γ12 , ∀µ ∈ L2 (Γ12 ). (4.14) Substituant (4.14) dans (4.11), on obtient que ∂ Fδ (λ) · µ = ([z12 ] + δλ, µ)Γ12 , ∂λ ∀µ ∈ L2 (Γ12 ). (4.15) D'où on conclut que γ := ∇Fδ (λ) = [z12 ] + δλ. Comme Fδ (4.16) est quadratique, la direction de descente idéale est la direction du gradient conjugué. A chaque itération k , la direction de descente du gradient conjugué (de Fletcher- Reeves) est donnée par βk = k γ k+1 k2L2 (Γ12 ) k γ k k2L2 (Γ12 ) , µk+1 = −γ k+1 + βk µk . La valeur optimale pour le pas de déplacement tk est calculée en minimisant la fonction réelle à variable réelle φ(t) = Fδ (λk + tµk ), t > 0. (4.17) 4 MÉTHODE DES MOINDRES CARRÉS Comme Fδ 12 est quadratique, un minimum de (4.17) est l'unique solution de l'équation linéaire φ0 (t) = ∂ Fδ (λk + tµk ) · µk = 0. ∂λ (4.18) En utilisant (4.11), l'équation (4.18) se réduit à h i k k k ([w12 ], [w12 ])Γ12 + δ(µk , µk )Γ12 t + ([uk12 ], [w12 ])Γ12 + δ(λk , µk )Γ12 = 0. On déduit alors que le pas de déplacement optimal est tk = − k ]) k k ([uk12 ], [w12 Γ12 + δ(λ , µ )Γ12 . k ] k2 k [w12 +δ k λk k2L2 (Γ12 ) L2 (Γ12 ) (4.19) 4.2 Algorithme Avec les résultats cidessus, nous pouvons maintenant présenter l'algorithme descente pour générer une suite minimisante de (4.6). Algorithme DDM/LS Itération k = 0. Calculer Initialisation: λ0 , δ > 0 u0 = (u01 , u02 ) ∈ VD solution de ai (u0i , vi ) = (fi , vi )Ωi + εij (λ0 , vi )Γ12 , Calculer z 0 = (z10 , z20 ) ∈ V solution de ai (zi0 , vi ) = εij ([u012 ], vi )Γ12 , Gradient initial : k ≥ 0. ∀vi ∈ Vi , i = 1, 2. 0 ] + δλ0 γ 0 = [z12 Direction initiale : Itération ∀v ∈ Vi , i = 1, 2. µ0 = −γ 0 On suppose λ k , uk , z k γ k et µk connus Sensibilité: Calculer wk = (w1k , w2k ) ∈ V solution de ai (wik , vi ) = εij (µk , vi )Γ12 , ∀v ∈ Vi , i = 1, 2. Pas de déplacement: tk = − ([uk12 ], µk )Γ12 + δ(λk , µk )Γ12 k ] k2 k [w12 +δ k µk kL2 (Γ12 ) L2 (Γ12 ) Mise à jour: λk+1 = λk + tk µk uk+1 = uki + tk wik , i = 1, 2. i 4 MÉTHODE DES MOINDRES CARRÉS 13 Gradient: Calculer z k = (z1k , z2k ) ∈ V solution de ai (zik+1 , vi ) = εij ([uk+1 12 ], vi )Γ12 , ∀v ∈ Vi , i = 1, 2. k+1 γ k+1 = [z12 ] + δλk+1 Direction du gradient conjugué: βk = k γ k+1 k2L2 (Γ12 ) k γ k k2L2 (Γ12 ) µk+1 = −γ k+1 + βk µk On itère jusqu'à ce que la norme du gradient ait susamment diminué, i.e. k γ k kL2 (Γ12 ) < ε. k γ 0 kL2 (Γ12 ) On remarque qu'à chaque itération, on résout deux problèmes découplés: le problème adjoint et le problème de sensibilité. La parallélisation de la méthode est donc évidente. 4.3 Discrétisation par éléments nis On ne s'intéresse ici qu'à la méthode des multiplicateurs de Lagrange. On suppose que chaque sous-domaines Ωi est de forme polygonale de sorte qu'il peu être entièrement Tih une triangulation de Ωi . On dénit les espaces d'éléments nis = v ∈ C 0 (Ωi ); v|T ∈ P1 (T ) ∀T ∈ Tih ; v = 0 sur Γi ⊂ Vi , i = 1, 2, triangulé. Soit Vih où P1 (T ) est l'espace des polynômes de degré ≤ 1 sur le triangle T . La Th = T1h ∪ T2h induit sur Γ12 une décomposition en segments Ih . O dénit triangulation alors l'espace d'éléments nis Λh = gh ∈ C 0 (Γ12 ); gh |I ∈ P1 (I) ∀I ∈ Ih ⊂ L2 (Γ12 ). Soit {φj } les fonctions de bases (globales), linéaires par morceaux, de Vih . Pour uih ∈ Vih on a uih = X φj (x)uji , ∀x ∈ Ωih , j où uji est la valeur de uih au n÷ud j du maillage, .e. uji = uih (xj ). Pour la formulation algébrique des problèmes discrets, nous introduisons les notations ui = {uih (xj )}j , gi = {(fi , φj )Ωi }j , λ = {λh (xj )}j , b(λ) = {(λh , φj )Γ12 }j , 4 MÉTHODE DES MOINDRES CARRÉS où l'indice i 14 fait référence au sous-domaine. En utilisant la méthode d'intégration des trapèzes à l'interface Γ12 , on obtient b(λ) = Fλ, où F est une matrice diagonale. La discrétisation des formes bilinéaires donne les matrices Ai = (ai (φj , φk ))j,k , i = 1, 2. Après la prise en compte des conditions aux limites, les matrices On peut maintenant donner l'algorithme discret. Algorithme DDM/ML Itération k = 0. Initialisation: λ0 donné Résoudre A1 u01 = f1 − Fλ0 , A2 u02 = f2 + Fλ0 . Gradient initial : γ 0 = [u012 ] Direction initiale : Itération k ≥ 0. µ0 = γ 0 On suppose λk , uki , γ k et µk connus Sensibilité: Résoudre A1 w1k = −Fµk , A2 w2k = Fµk . Pas de déplacement: tk = − Mise à jour: λk+1 = λk + tk µk uk+1 = uki + tk wik , i = 1, 2. i Gradient: γ k+1 = [uk+1 12 ] Direction du gradient conjugué: βk = (γ k+1 )> Fγ k+1 (γ k )> Fγ k µk+1 = γ k+1 + βk µk [uk12 ]> Fµk . k ]> Fµk [w12 Ai seront dénies positives. 5 LE TP 15 On arrête l'algorithme lorsque (γ k )T Fγ k < 10−6 . (γ 0 )T Fγ 0 On note que les matrices utilisées ne varient pas au cours des itérations. On pourra donc faire une factorisation de Choleski, une fois pour toutes, dans l'étape d'initialisation. Les résolutions suivantes se réduisent alors à des simples substitutions. 5 Le TP Soit à résoudre −∆u = f, u = 0, On choisit le domaine Ω = [0, 2] × [0, 1] dans sur Ω, Γ. et le second membre est f (x, y) = −2y cos x cos(πy/2) + π(x − 2) sin x sin(πy/2) 2 π + 1 y(x − 2) sin x cos(πy/2), ∀(x, y) ∈ Ω. + 4 En principe 2 f est choisie de telle sorte que la solution exacte du problème de Poisson soit uex = (x − 2)y sin x cos(πy/2). Les sous-domaines sont Ω1 = [0, 1] × [0, 1] et Ω2 = [1, 2] × [0, 1]. 5.1 Lecture des maillages Soit ns le nombre de noeuds du maillage, nt le nombre de triangles et ni le nombre de noeuds à l'interface des deux sous-domaines. Les coordonnées des noeuds du maillage p(1:2,1:ns) et les noeuds des triangles dans t(1:3,1:nt). Un tableau ref(1:ns) contient les références des noeuds, i.e. si ref(i)==0 alors le noeud i sont stockées dans auxiliaire est un noeud interne, sinon c'est un noeud du bord. Les segments consécutifs de l'interface itf(1:ni). Alors le bout de code suivant lit un maillage .msh sdm1_177.msh). sont stockés dans le vecteur (ici dans le chier open(unit=1,file='sdm1_177.msh',status='old',action='read') read(1,*) ns,nt,ni allocate(t(3,nt)) ! allocation tab connectivite allocate(ref(ns)) ! allocation tab ref des noeuds allocate(p(2,ns)) ! allocation tab coord. des noeuds do i=1,ns 2 i.e. modulo les erreurs de dérivation 5 LE TP 16 read(1,*) p(1,i),p(2,i),ref(i) end do do i=1,nt read(1,*) (t(k,i), k=1,3) ! lecture sommets des triangles end do read(1,*) ni allocate(itf(ni)) read(1,*) (itf(i),i=1,ni) close(1) 5.2 Stockage et assemblage des matrices Les matrices utilisées sont stockées en ligne de ciel (skyline) pour économiser l'espacemémoire. Les sous-routines organisant le stockage ligne de ciel sont rassemblées dans le sklstore.f90 (module msb_sklstore). La sous-routine sklstore initialise le vecteur de stockage des demi-largeurs de bande (tableau lband(1:ns)) et le vecteur des positions des éléments diagonaux (idiag(1:ns)). La position du dernier élément diagonal (i.e. ann pour une matrice d'ordre n) donne la chier taille du vecteur de stockage ligne de ciel. La fonction posij(i,j,idiag,lband) renvoie l'indice ij de l'élément aij dans le vec- teur de stockage ligne de ciel. L'assemblage des matrices du Laplacien est réalisé dans la sous-routine dans le chier laplacemat.f90 (module msb_laplacemat). laplacemat, 5.3 Résolution des systèmes linéaires Les matrices sont dénies positives. On utilise donc la factorisation de Choleski (A RRT ). La factorisation et/ou la résolution sont eectuées dans la sous-routine dans le chier choleski.f90 (module msb_choleski). = Choleski 5.4 Parallélisation La parallélisation avec la librairie MPI est la plus adaptée surtout pour la décomposition de domaine avec un nombre quelconque de sous-domaine. Chaque sous-domaine Ωi est alloué à un processeur avec la description standard d'un problème d'éléments nis pour un seul domaine. Chaque processeur assemble et factorise la matrice associée à son sousdomaine. L'interface Γ12 est traité comme un bord spécial sous condition de Neumann. Pour chaque processeur, les opérations non locales sont celles qui font intervenir les sauts à l'interface, par exemple pour calculer uki γ k = [uk12 ]. Pour cela il sut d'échanger les valeurs de de part et d'autre de l'interface: chaque processeur envoie sa contribution au processeur en charge du domaine voisin et reçoit sa contribution avant de calculer le saut. Pour réaliser ces opérations de manière ecace, il convient d'utiliser les fonctionalités topologiques de MPI. En dimension deux, avec une décomposition de domaine de type cartésienne ( forme de grille) on utilise la routine mpi_cart_create i.e. sous pour attribuer à chaque processeur RÉFÉRENCES des coordonnées 17 (ip,jp) corespondant au sous-domaine de la grille à traiter. De sorte (ip,jp) puisse connaître les processeurs en charge (ip-1,jp), (ip+1,jp), (ip,jp-1) et (ip,jp+1). Après, il que chaque processeur de coordonnées des domaines voisins, à savoir sut d'organiser les échanges non bloquants, entre processeurs traitant des sous-domaines voisins, avec la routine mpi_sendrecv. Références [1] Du Q. An optimization based nonoverlapping domain decomposition algorithms and their convergence. SIAM J. Numer. Anal., 39(3):10561077, 2001. [2] Glowinski R, Periaux J. and Vinh Dinh Q. Domain decomposition methods for nonlinear problems in uid dynamics. Research Report RR-147, INRIA, 1982. [3] Gunzburger M.D. and Lee H.K. method for the navier-stokes equations. An optimization based domain decomposition SIAM J. Numer. Anal., 37(5):14551480, 2000. [4] Gunzburger M.D., Peterson J. and Kwon H. An optimization based domain decomposition method for partial dierential equations. Comp. Math. Appl., 37:7793, 1999. [5] Meurant G. Computer Solution of Large Systems. Studies in Mathematics and its Applications. North Holland, 1999. [6] Quarteroni A. and Valli A. Equations. Domain Decomposition Methods for Partial Dierential Oxford University Press, 1999.