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.