Vous êtes sur la page 1sur 17

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: koko@sp.isima.fr

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 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

5 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

1 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, dans Ω, (2.1)

u = 0, sur Γ. (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, dans Ω,
u = uD , sur Γ,

avec α≥0 et ν>0 des constantes.

Élasticité linéaire: Ω est un corps solide élastique bidimensionnel, de coecients de


Lamé (réels strictement positifs) λ et µ. Le champ de déplacement u = (u1 , u2 ),
vérie

−∇ · σ(u) = f, dans Ω,
u = uD , sur Γ,

où σ 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
2 PROBLÈME MODÈLE 3

Introduisons l'espace vectoriel

V = v ∈ H 1 (Ω); v = 0

sur Γ ,

et les notations
Z
a(u, v) = ∇u · ∇v dx,

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), ∀v ∈ V. (2.3)

La fonctionnelle de l' énergie potentielle totale est

1
J(v) = a(v, v) − (f, v), (2.4)
2
de sorte que (2.3) est l'équation d'Euler-Lagrange du problème de minimisation

u∈V; J(u) ≤ J(v), ∀v ∈ V. (2.5)

La fonctionnelle (2.4) étant convexe coercitive sur V, le problème de minimisation (2.5)


(et donc l'équation variationnelle (2.3)) admet une solution unique.
Partitionnons le domaine Ω en sous-domaines disjoints Ω1 et Ω2 comme illustré sur la
Fig. 1. Notons Γ12 l'interface entre les deux sous-domaines, i.e. Γ= Ω1 ∩ Ω2 . La partition
{Ωi } induit une partition {Γi } sur Γ dénie par

Γ1 = Γ ∩ Ω 1 , Γ2 = Γ ∩ Ω 2 .

Γ12
Ω1 Ω2

Fig. 1  Décomposition de Ω en deux sousdomaines disjoints

Considérons les problèmes de Poisson découplés suivants (1 ≤ i ≤ 2)

−∆ui = fi , dans Ωi , (2.6)

ui = 0, sur Γi . (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 , (2.8)


∂u1 ∂u2
= − , sur Γ12 , (2.9)
∂n1 ∂n2
où ni est la normale (unitaire) sortante à Ωi en Γ12 . La décomposition (2.6)-(2.9) est
consistante, 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
ai (vi , wi ) = ∇vi · ∇wi dΩ; 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 ,.
En tenant compte des notations ci-dessus, la fonctionnelle de l' énergie potentielle totale
(2.4) devient
J(v) = J1 (v1 ) + J2 (v2 )

X1
Ji (vi ) = ai (vi , vi ) − (fi , vi )Ωi , i = 1, 2.
2
3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE 5

3 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 V × L2 (Γ12 ) par

2
X
L(v, µ) = 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 L par rapport à u et λ, on obtient les équations qui caractérisent
le point-selle (u, λ) de L

ai (ui , vi ) = (fi , vi )Ωi − εij (λ, vi )Γ12 , ∀vi ∈ Vi , i = 1, 2 (3.4)


2
(µ, [u12 ])Γ12 = 0, ∀µ ∈ L (Γ12 ), (3.5)

où εij représente le signe du sous-domaine Ωi 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 λ connu, l'équation (3.4)
est découplée. De l'équation (3.4), on déduit que

−∆ui = fi dans Ωi ,
∂ui
= −εij λ sur Γ12 ,
∂ni
de sorte que
∂u1 ∂u2
λ= =− .
∂n1 ∂n2
3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE 6

Le multiplicateur de Lagrange λ assure donc la continuité des dérivées normales à travers


Γ12 .
Supposons que u = u(λ) soit solution du problème découplé

ui (λ) ∈ Vi ; ai (ui (λ), v) = (fi , v)Ωi − εij (λ, v)Γ12 , ∀v ∈ Vi , i = 1, 2. (3.6)

En posant v = ui (λ) dans (3.6) et en remplaçant dans (3.3), on obtient la fonctionnelle


duale
2
1X
J ∗ (λ) := L(u(λ), λ) = − a(ui (λ), ui (λ))
2
i=1
Comme les formes bilinéaires ai 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 , (3.8)

k
où µ est une direction de montée de J ∗, 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, (3.9)

où w = (w1 , w2 ) ∈ V est solution du problème de sensibilité (découplé)

wi ∈ Vi ; ai (wi , v) = −εij (µ, v)Γ12 , ∀v ∈ Vi , i = 1, 2. (3.10)

En eet,
ai (ui (λ + tµ) − ui (λ), vi ) = −εij (tµ, vi )Γ12 , ∀vi ∈ Vi . (3.11)

Si wi est solution de
ai (wi , vi ) = −εij (µ, vi )Γ12 , ∀vi ∈ Vi ,
alors ui (λ + tµ) − ui (λ) = twi par unicité de la solution de (3.11) (la forme ai est coercitive
sur Vi ).
Connaissant la variation de u par rapport à λ, on peut calculer la dérivée directionnelle
de J ∗, dans la direction µ
2
∂J ∗ (λ) X
·µ=− ai (ui , wi ). (3.12)
∂λ
i=1
3 MÉTHODE DES MULTIPLICATEURS DE LAGRANGE 7

Comme la fonctionnelle J∗ est continûment diérentiable, son gradient ∇J ∗ (λ) existe et


doit vérier
∂J ∗ (λ)
· µ = (∇J ∗ (λ), µ)S . (3.13)
∂λ
En posant v = ui dans (3.10), on a que

ai (wi , ui ) = −εij (µ, ui )Γ12 , ∀v ∈ Vi , i = 1, 2,

c'est-à-dire
2
X
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 ], ∀λ ∈ L2 (Γ12 ), (3.15)

avec u = (u1 , u2 ) ∈ V solution de (3.6).


Avec le gradient de 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 k2L2 (Γ12 )
βk = , (3.16)
k γ k−1 k2L2 (Γ12 )

µk = γ k + βk µk−1 . (3.17)

Il ne nous reste plus qu'à calculer le pas tk pour compléter l'itération (3.8). Le pas de
déplacement tk est calculé de façon à maximiser la fonction (réelle d'une variable réelle) φ
dénie par
φ(t) = J ∗ (λk + tµk ).
Comme J ∗ est fortement concave, il sut de résoudre l'équation linéaire en t (φ est qua-
dratique) φ (t) = 0, i.e.
0

∂ ∗ k
0 = φ0 (t) = J (λ + tµk ) · µk = (∇J ∗ (λk + tµk ), µ)Γ12 . (3.18)
∂λ
En utilisant (3.9) dans (3.15), l'équation (3.18) devient

([uk12 ] + t[w12
k
], µk )Γ12 = 0.

Un calcul direct donne


([uk12 ], µk )Γ12
tk = − k ], µk )
. (3.19)
([w12 Γ12
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 VD = V1D × V2D .



sur Γi ,

Avec tous les éléments ci-dessus, nous pouvons maintenant donné l'algorithme de décom-
position de domaine utilisant les multiplicateurs de Lagrange.

Algorithme DDM/ML

Itération k = 0. Initialisation: λ0 donné

Calculer u0 = (u01 , u02 ) ∈ VD solution de

ai (u0i , v) = (fi , v)Ωi − εij (λ0 , v)Γ12 , ∀v ∈ Vi , i = 1, 2.

Gradient initial : γ 0 = [u012 ]


Direction initiale
0
: µ = γ
0

Itération k ≥ 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:

([uk12 ], µk )Γ12
tk = − k ], µk )
([w12 Γ12

Mise à jour des inconnues:

λk+1 = λk + tk µk
uk+1
i = uki + tk wik , i = 1, 2
Gradient:

γ k+1 = [uk+1
12 ]

Direction du gradient conjugué:

k γ k+1 k2L2 (Γ12 )


βk =
k γ k k2L2 (Γ12 )

µk+1 = γ k+1 + βk µk
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 i = 1, 2,

−∆ui = f dans Ωi , (4.1)

ui = 0 sur Γi , (4.2)
∂ui
= λ sur Γ12 , (4.3)
∂ni
où ni est la normale unitaire sortante en Γ12 .
La formulation variationnelle de (4.1)-(4.3) est alors donnée par

u i ∈ Vi ; ai (ui , vi ) = (fi , vi )Ωi + εij (λ, vi )Γ12 , ∀vi ∈ Vi , i = 1, 2. (4.4)

Un couple (u1 , u2 ) solution de (4.4), i.e. de (4.1)-(4.3), n'est pas forcément solution
du problème d'origine (2.1)-(2.2). Comme u = (u1 , u2 ) dépend de λ, on choisit donc λ de
sorte que u1 soit le plus proche possible de u2 à l'interface S . Ce qui revient à choisir λ
qui minimise la fonctionnelle
Z
1
F (λ) = |[u12 ]|2 ds. (4.5)
2 Γ12

Il est clair que la fonctionnelle F admet au moins un minimum, à savoir

∂u ∂u
λ= |Γ12 = − |Γ ,
∂n1 ∂n2 12
où u est solution de (2.1)-(2.2). En prenant u1 = u|Ω1 et u2 = u|Ω2 , on a bien F (λ) = 0.
Mais pour éviter les complications, on ne va choisir que les λ qui sont de norme raison-
nable. Donc au lieu de (4.5), on va minimiser la fonctionnelle régularisée
1

Z
1 δ
Fδ (λ) = [u]2 dΓ + k λ k2L2 (Γ12 ) , (4.6)
2 S 2
où δ>0 est le paramètre de régularisation. La coercivité de Fδ est évidente, puisqu'on a

δ
Fδ (λ) ≥ k λ k2L2 (Γ12 ) , ∀λ ∈ L2 (Γ12 ).
2
1
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 Fδ (λ). (4.7)


λ∈L2 (Γ12 )

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 u = (u1 , u2 ) est solution de (4.4), ou encore (4.1)-(4.3).
Soit z = (z1 , z2 ) 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
problème avec contraintes (4.7) est (avec les multiplicateurs z1
z2 ) point stationnaire du
et
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
le problème adjoint (découplé)
zi ∈ V i ; ai (zi , vi ) = εij ([u12 ], vi )Γ12 , ∀vi ∈ Vi , i = 1, 2. (4.9)

Le système adjoint (4.9) nous servira plus tard pour calculer le gradient de 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 problème de sensibilité (découplé)

wi ∈ Vi ; 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 11

où [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 , (4.12)

où [z12 ] = (z1 − z2 )|Γ12 .


En posant vi = wi dans (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 . (4.13)

Les formes bilinéaires a1 et a2 é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 ] + δλ. (4.16)

Comme Fδ 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+1 k2L2 (Γ12 )


βk = ,
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 12

Comme Fδ 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
([w12 ], [w12 ])Γ12 + δ(µk , µk )Γ12 t + ([uk12 ], [w12
k
])Γ12 + δ(λk , µk )Γ12 = 0.

On déduit alors que le pas de déplacement optimal est

([uk12 ], [w12
k ]) k k
Γ12 + δ(λ , µ )Γ12
tk = − k ] k2
. (4.19)
k [w12 L2 (Γ12 )
+δ k λk k2L2 (Γ12 )

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. Initialisation: λ0 , δ > 0


Calculer u0 = (u01 , u02 ) ∈ VD solution de

ai (u0i , vi ) = (fi , vi )Ωi + εij (λ0 , vi )Γ12 , ∀v ∈ Vi , i = 1, 2.

Calculer z 0 = (z10 , z20 ) ∈ V solution de

ai (zi0 , vi ) = εij ([u012 ], vi )Γ12 , ∀vi ∈ Vi , i = 1, 2.

Gradient initial : γ 0 = [z12


0 ] + δλ0

Direction initiale : µ0 = −γ 0
Itération k ≥ 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:

([uk12 ], µk )Γ12 + δ(λk , µk )Γ12


tk = − k ] k2
k [w12 L2 (Γ12 )
+δ k µk kL2 (Γ12 )
Mise à jour:

λk+1 = λk + tk µk
uk+1
i = uki + tk wik , i = 1, 2.
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+1 k2L2 (Γ12 )


βk =
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
triangulé. Soit 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,

Vih
où P1 (T ) est l'espace des polynômes de degré ≤ 1 sur le triangle T . La triangulation
Th = T1h ∪ T2h induit sur Γ12 une décomposition en segments Ih . O dénit 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
φj (x)uji ,
X
uih = ∀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 14

où l'indice i 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 Ai seront dénies positives.
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 : µ0 = γ 0
Itération k ≥ 0. On suppose λk , uki , γ k et µk connus

Sensibilité:

Résoudre

A1 w1k = −Fµk ,
A2 w2k = Fµk .

Pas de déplacement:

[uk12 ]> Fµk


tk = − k ]> Fµk
.
[w12
Mise à jour:

λk+1 = λk + tk µk
uk+1
i = uki + tk wik , i = 1, 2.
Gradient:

γ k+1 = [uk+1
12 ]

Direction du gradient conjugué:

(γ k+1 )> Fγ k+1


βk =
(γ k )> Fγ k
µk+1 = γ k+1 + βk µk
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, dans Ω,
u = 0, sur Γ.

On choisit le domaine Ω = [0, 2] × [0, 1] 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
sont stockées dans p(1:2,1:ns) et les noeuds des triangles dans t(1:3,1:nt). Un tableau
auxiliaire ref(1:ns) contient les références des noeuds, i.e. si ref(i)==0 alors le noeud i
est un noeud interne, sinon c'est un noeud du bord. Les segments consécutifs de l'interface
sont stockés dans le vecteur itf(1:ni). Alors le bout de code suivant lit un maillage .msh
(ici dans le chier sdm1_177.msh).

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'espace-
mémoire. Les sous-routines organisant le stockage ligne de ciel sont rassemblées dans le
chier 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
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 laplacemat,
dans le chier laplacemat.f90 (module msb_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 Choleski
dans le chier choleski.f90 (module msb_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 sous-
domaine. 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 γ k = [uk12 ]. Pour cela il sut d'échanger les valeurs de
uki 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 ( i.e. sous
forme de grille) on utilise la routine mpi_cart_create pour attribuer à chaque processeur
RÉFÉRENCES 17

des coordonnées (ip,jp) corespondant au sous-domaine de la grille à traiter. De sorte


que chaque processeur de coordonnées (ip,jp) puisse connaître les processeurs en charge
des domaines voisins, à savoir (ip-1,jp), (ip+1,jp), (ip,jp-1) et (ip,jp+1). Après, il
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. An optimization based domain decomposition
method for the navier-stokes equations. 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. Domain Decomposition Methods for Partial Dierential
Equations. Oxford University Press, 1999.

Vous aimerez peut-être aussi