Résolution des systèmes linéaires -...

37
Méthodes des Éléments Finis Méthodes des Éléments Finis Résolution des systèmes linéaires Résolution des systèmes linéaires Vincent Chiaruttini DMSE / LCME Vincent Chiaruttini DMSE / LCME [email protected] [email protected] 26 30 novembre 2007 - ENSMP 26 30 novembre 2007 - ENSMP

Transcript of Résolution des systèmes linéaires -...

Méthodes des Éléments FinisMéthodes des Éléments Finis

Résolution des systèmes linéairesRésolution des systèmes linéaires

Vincent Chiaruttini DMSE / LCME–Vincent Chiaruttini DMSE / LCME–

[email protected]@onera.fr

26 30 novembre 2007 - ENSMP–26 30 novembre 2007 - ENSMP–

Simulation d'un problème de mécaniqueSimulation d'un problème de mécanique

objet dans son environnement

équations locales

½div ¾ = 0¾ = K "

modélisationmodélisationmathématique MMCmathématique MMC

formulation faibleformulation faiblediscrétisations temporellediscrétisations temporelle

et spatialeet spatiale

Problème linéaire ?Problème linéaire ?

ouioui nonnon

méthode de Newton-Raphson

à résoudre : [A] [x] = [b]

Comment résoudre efficacement un système linéaire de Comment résoudre efficacement un système linéaire de grande dimension (10grande dimension (1044 à 10 à 1077) dans un contexte EF ?) dans un contexte EF ?

modèle discrétisé

• Démarche de résolution d'un problème d'évolutionDémarche de résolution d'un problème d'évolution

Méthodes pour la résolution des systèmes linéairesMéthodes pour la résolution des systèmes linéaires

•Méthodes de résolution directes• Gauss-Jordan• Décomposition LU• Cholesky

•Méthodes itératives• Point fixe : Gauss-Seidel, Relaxation, Jacobi• Solveurs de Krylov : Gradient-conjugué et GMRes

•Spécificités des problèmes éléments finis• Matrices creuses• Largeur de bande et renumérotation• Solveurs frontaux

•Parallélisme décomposition de domaine–• Méthode primale et dual• Préconditionneurs

Méthodes de résolution Méthodes de résolution directesdirectes

• Méthodes directesMéthodes directes

• Gauss-JordanGauss-Jordan

• Décomposition LUDécomposition LU

• CholeskyCholesky

• Méthodes itérativesMéthodes itératives

• Point fixePoint fixe

• Solveurs de KrylovSolveurs de Krylov

• Problèmes éléments finisProblèmes éléments finis

• Matrices creusesMatrices creuses

• Largeur de bande Largeur de bande

• Solveurs frontauxSolveurs frontaux

• Décomposition de domaineDécomposition de domaine

• Méthode primale et dualMéthode primale et dual

• Préconditionneurs Préconditionneurs

Méthodes de résolution directesMéthodes de résolution directes

•Objectif

• Trouver la solution de A x = b

•A matrice n x n inversible

•x vecteur inconnu de dimension n

•b "second membre" de dimension n

Coût des méthodes directes : nombre d'opérations

Stabilité : sensibilité à la propagation des erreurs d'arrondi

Méthode de Gauss-JordanMéthode de Gauss-Jordan

•Principe : opérations sur une matrice augmentée pour transformer le bloc de gauche en l'identité

SystèmeSystème Augmentation Transformation Augmentation Transformation

inversion

[A] [x] = [b] [Ajb] [Injx][Ajbi] [Injxi][AjIn]

£InjA¡1

¤[A] [xi] = [bi]

Méthodes de résolution directesMéthodes de résolution directes

•Objectif

• Trouver la solution de A x = b

•A matrice n x n inversible

•x vecteur inconnu de dimension n

•b "second membre" de dimension n

• Se ramener à la résolution de systèmes triangulaires

Coût des méthodes directes : nombre d'opérations

Stabilité : sensibilité à la propagation des erreurs d'arrondi

[ ] [] = []00[ ] [] = []ou

Résolution d'un système triangulaireRésolution d'un système triangulaire

•Écriture du système

•Résolution

•De même pour un système supérieur

•Coût : n² opérations

descente du système

[ ] [] = []0

remontée du système0[ ] [] = []

a11x1 = b1a21x1 + a22x2 = b2...

......

an1x1 + an2x2 + ¢ ¢ ¢ + annxn = bn

x1 = b1a11

x2 = 1a22

(b2 ¡ a21x1)...

......

xn = 1ann

(bn ¡Pnk=1 ankxk)

Décomposition LUDécomposition LU

•Principe• Décomposition en produit d'une matrice triangulaire inférieure (Lower)

et supérieure (Upper)

A=LU (dans cadre général A=PLU où P matrice de permutation)

•Démarche de résolution

• Factorisation

Manque de relations : n² relations pour n²+n inconnues=> termes de la diagonale de L sont fixés à 1

• Résolution après factorisation

•1 montée + 1 descente

nX

k=1

LikUkj = Aij

½Lik = 0; 8i > kUkj = 0; 8j < k

LU x = b ,½

y = U xLy = b

L y = b descente pour trouver yU x = y remonte pour trouver x

Décomposition LUDécomposition LU

•On se place dans le cas où il n'y a pas besoin d'échanges ligne/colonne

•Pour effectuer la factorisation, il suffit d'étudier le résultat de la multiplication LU

Soit à vérifier :

nX

k=1

LikUkj = Aij

Aij = Uij +i¡1X

k=1

LikUkj ; i · j

Aij = LijUij +

j¡1X

k=1

LikUkj ; i > j

Algorithme de Crout pour la décomposition LUAlgorithme de Crout pour la décomposition LU

Coût de la décomposition en nCoût de la décomposition en n33

Boucle sur j de 1 à n

Boucle sur i de 1 à j

Uij à Aij ¡i¡1X

k=1

LikUkj

Boucle sur i de j+1 à n

Lij Ã1

Uij

ÃAij ¡

j¡1X

k=1

LikUkj

!

Méthode de CholeskiMéthode de Choleski

•Hypothèses : A matrice carrée symétrique définie positive

• Symétrique

• Positive

• Définie

•Théorème

• A est carrée symétrique définie positive ssi il existe une matrice L triangulaire inférieure inversible telle que A=LLT

Si on ajoute la condition Lii>0 alors la matrice L est unique.

•Algorithme

Boucle sur i de 1 à n

Boucle sur j de i à n

Lji à 1Lii

³AiJ ¡Pi¡1

k=1 LikLjk´

Lii ÃqAii ¡

Pi¡1k=1 L

2ik

AT = A

8x 2 Rn; xTAx ¸ 0

xTAx = 0) x = 0

Méthode de CholeskiMéthode de Choleski

•Hypothèses : A matrice carrée symétrique définie positive

• Symétrique

• Positive

• Définie

•Théorème

• A est carrée symétrique définie positive ssi il existe une matrice L triangulaire inférieure inversible telle que A=LLT

Si on ajoute la condition Lii>0 alors la matrice L est unique.

•Algorithme

Coût de la décompositionCoût de la décomposition1/3 n1/3 n33 +1/2 n²+1/6 n +1/2 n²+1/6 n

Boucle sur i de 1 à n

Boucle sur j de i à n

Lji à 1Lii

³AiJ ¡Pi¡1

k=1 LikLjk´

Lii ÃqAii ¡

Pi¡1k=1 L

2ik

AT = A

8x 2 Rn; xTAx ¸ 0

xTAx = 0) x = 0

Méthodes de résolution Méthodes de résolution itérativesitératives

• Méthodes directesMéthodes directes

• Gauss-JordanGauss-Jordan

• Décomposition LUDécomposition LU

• CholeskyCholesky

• Méthodes itérativesMéthodes itératives

• Point fixePoint fixe

• Solveurs de KrylovSolveurs de Krylov

• Problèmes éléments finisProblèmes éléments finis

• Matrices creusesMatrices creuses

• Largeur de bande Largeur de bande

• Solveurs frontauxSolveurs frontaux

• Décomposition de domaineDécomposition de domaine

• Méthode primale et dualMéthode primale et dual

• Préconditionneurs Préconditionneurs

Méthodes de résolution itérativesMéthodes de résolution itératives

•Principe• Construction d'une suite de vecteurs tels que :

• En pratique on se donne une initialisation x0

•Définitions • Convergence : une méthode itérative est convergente ssi la suite xn converge vers A-1 b

quel que soit le choix de x0

• Rayon spectral :

• Norme matricielle vérifie : ex :

•Théorème - A carré de dim n, équivalence entre :• La série converge

• La suite converge vers 0

•Remarquesi alors et

limn!1

xn = A¡1b

½(A) = supvap(A) j¸jkABk < kAkkBk kAk = supkxk=1 kAxk

P1k=0 A

k

Ak

½(A) < 1

kAk < 1 ½(A) < 1 (I ¡A)¡1 =P1

k=0Ak

Méthodes de point fixeMéthodes de point fixe

•Principe

• Décomposition de A : avec M facilement inversible

• Construction de la suite : avec x0 donné

• Convergence (avec A inversible) si

• Cas particulier : si A et MT+N sym. def. positives alors convergence

•Propriété

• si B= M-1 N

A =M ¡N

Mxn+1 = Nxn + b

kx¡ xnk · kBnkkx¡ x0k

½(M¡1N) < 1

MéthodeMéthode Décomposition Décomposition Convergence Convergence

Gauss-Seidel M = D - L ; N = U si A sym. def. pos. si A à diagonale strict. dominante

Relaxation M = 1/ω D - L Condition nécessaire : 0 < ω < 2successive N = (1-ω)/ω D - U si A sym. def. pos. et 0 < ω < 2

Jacobi M = D ; N = L+U si A à diagonale strict. dominante

Méthodes de point fixeMéthodes de point fixe

• A s'écrit sous la forme

• Critère d'arrêt

• Fiable : courant :

Méthodes applicables en utilisant des décompositions par blocsMéthodes applicables en utilisant des décompositions par blocsJacobi est directement parallélisableJacobi est directement parallélisable

kxn+1 ¡ xnkkxn+1k · ´

kb¡Axn+1kkbk · ´

D-L

-U

Solveurs de KrylovSolveurs de Krylov

• Résidu si xi approximation de Ax=b après i itérations, ri=b-Axi

• Espace de Krylov

• Principe du solveur recherche de xm sous contraintes

• La relation d'orthogonalité permet de définir plusieurs approches

• GMRes

• Gradient conjugué pour les matrices SDPGradient conjugué pour les matrices SDP

Km(A; r0) = Vect¡r0;Ar0; : : : ;A

m¡1r0¢

½xm 2 x0 +Km(A; r0)rm ?? Km(A; r0)

GMRes General Minimun Residual–GMRes General Minimun Residual–

•Pour une matrice quelconque, principe de recherche :

•Soit trouver minimisant •Algorithme

pour j de 0 à m-1 faire

pour i de 0 à j faire

si alors stop sinon finsi

si m=n la méthode converge si m=n la méthode converge en au plus n itérationsen au plus n itérations

la méthode ne calcule pas la méthode ne calcule pas l'approximation de la solution l'approximation de la solution à chaque itérationà chaque itération

½xm 2 x0 +Km(A; r0)rm ? AKm(A; r0)

xm 2 x0 +Km(A; r0) krmk2

r0 Ã b¡Ax0 v0 Ã r0=kr0k2

wj à Avj

h(j+1)j à kwjk2wj à wj ¡ hijvi

vj+1 Ã wj=h(j+1)j

hij à (vi; wj)

krjk2 · ´

xm à x0 + v ym

ym à argminy kkr0k2e1 ¡ hyk

Méthode du gradient conjuguéMéthode du gradient conjugué

•Pour une matrice SDP, principe de recherche :

•Soit trouver : minimisant

•Algorithme

• pour j de 0 à m faire

½xm 2 x0 +Km(A; r0)rm ? Km(A; r0)

xm 2 x0 +Km(A; r0) kxm ¡ xkA

si m=n la méthode converge ensi m=n la méthode converge enau plus n itérationsau plus n itérations

base des résidus orthogonalebase des résidus orthogonalebase des directions de descente est A-orthogonalebase des directions de descente est A-orthogonaleen pratique réothogonalisation complèteen pratique réothogonalisation complète

r0 Ã b¡Ax0 w0 Ã r0

xj+1 Ã xj + ®jwj

rj+1 Ã rj ¡ ®jAwj

wj+1 Ã rj+1 + ¯jwj

®j à (rj ; wj)=(wj ; Awj)

¯j à ¡(rj+1; Awj)=(wj ; Awj)si alors stopkrjk2 · ´

Convergence du gradient conjuguéConvergence du gradient conjugué

•Résultat de convergence du GC

•k : conditionnement de la matrice A :

: rapport entre les |valeurs propres| min et max de A

ConditionnementConditionnement 100100 1 0001 000 10 00010 000

Nombre d'itérations 70 218 690

kx¡ xmkA · 2

Ãpk ¡ 1pk + 1

!mkx¡ x0kA

k =j¸maxjj¸minj

PréconditionnementPréconditionnement

• Mauvais conditionnement

• Effets de structures élancées

• Discrétisations éléments finis défaillantes

• Propriétés physiques trop différentes

• non-linéarités

• ...

• Préconditionnement• remplacer le système de sorte que le conditionnement de P-1A soit meilleur que celui de A

(idéalement P-1 proche de A-1)

• Exemple préconditionneur diagonal

P¡1Ax = P¡1b

Pii = Kii; Pij = 0

Spécificités des problèmes Spécificités des problèmes éléments finiséléments finis

• Méthodes directesMéthodes directes

• Gauss-JordanGauss-Jordan

• Décomposition LUDécomposition LU

• CholeskyCholesky

• Méthodes itérativesMéthodes itératives

• Point fixePoint fixe

• Solveurs de KrylovSolveurs de Krylov

• Problèmes éléments finisProblèmes éléments finis

• Matrices creusesMatrices creuses

• Largeur de bande Largeur de bande

• Solveurs frontauxSolveurs frontaux

• Décomposition de domaineDécomposition de domaine

• Méthode primale et dualMéthode primale et dual

• Préconditionneurs Préconditionneurs

Spécificités des problèmes éléments finisSpécificités des problèmes éléments finis

•Fonctions de forme à support compact

• équations usuelles relient les degrés de liberté qui appartiennent à un même élément

• les systèmes sont de type « bande »

•Largeur de bande

•Application

• ex: pour les solveurs directs

complexité en : n BW²

Comment réduire la largeur de bande ?Comment réduire la largeur de bande ?

2666666666666664

o o oo o o

o o o oo o o

o o oo o o

o o oo o

o oo

3777777777777775

BW=5

valeurs nulles

maxe2EF

max(ddli;ddlj)2DDLe

(indice(ddli)¡ indice(ddlj))

Largeur de bande sur un problème EFLargeur de bande sur un problème EF

22

15

8

1

23

16

9

2

24

17

10

3

25

18

11

4

26

19

12

5

27

20

13

6

28

21

14

7

Mauvais !

RenumérotationRenumérotation

1

2

3

4

5

6

7

8

9

10

11

112

13

14

15

116

17

18

19

20

21

22

23

24

25

26

27

28

Optimale

Solveurs creuxSolveurs creux

• Objectif - ne prendre en compte que les valeurs non nulles

• Gain de mémoire et de temps calcul

• Mise en oeuvre

• Renumérotation pour minimiser le remplissage

• Calcul du remplissage induit par la factorisation

• Factorisation des seuls termes non nuls

Solveur frontalSolveur frontal

•Objectif : assembler et factoriser en même temps

• Intérêts

Lien avec le code EFOptimisation du cache

• Solveurs multifrontauxDissection emboîtéeProgression de plusieurs fronts simultanément

1

2

3

4

5

6

7

8

9

10

11

112

13

14

15

116

17

18

19

20

21

22

23

24

25

26

27

28

1

2

3

4

5

ÉlémentÉlément Matrice frontaleMatrice frontale DDL éliminés DDL éliminés

1 1 2 5 6 12 2 5 6 3 7 23 5 6 3 7 4 8 3 44 5 6 7 8 9 10 55 6 7 8 9 10 11 6...

ParallélismeParallélismedécomposition de domainedécomposition de domaine

• Méthodes directesMéthodes directes

• Gauss-JordanGauss-Jordan

• Décomposition LUDécomposition LU

• CholeskyCholesky

• Méthodes itérativesMéthodes itératives

• Point fixePoint fixe

• Solveurs de KrylovSolveurs de Krylov

• Problèmes éléments finisProblèmes éléments finis

• Matrices creusesMatrices creuses

• Largeur de bande Largeur de bande

• Solveurs frontauxSolveurs frontaux

• Décomposition de domaineDécomposition de domaine

• Méthode primale et dualMéthode primale et dual

• Préconditionneurs Préconditionneurs

Calculateurs à architecture parallèleCalculateurs à architecture parallèle

ArchitecturesArchitectures• ClusterCluster• SMPSMP• Cluster de SMPCluster de SMP

" Exemple - Onera DMSE « petit » cluster

" 182 processeurs (Opteron, Xeon)

" 460 Go RAM

" environ 15 To DD

" performance crête environ 800 Gflops

Red Storm Sandia National Labs–Red Storm Sandia National Labs–

Supercalculateurs parallèlesSupercalculateurs parallèles

212 992 processeurs !212 992 processeurs !596 378 milliards d'opérations par seconde !596 378 milliards d'opérations par seconde !

Décomposition de domaine sans recouvrementDécomposition de domaine sans recouvrement

Problème localProblème local Conditions de raccordConditions de raccord

Problème globalProblème global

,

+

8<:

r ¢ ¾ ¡ f = 0 dans ­1;2¾ = A

¡"¢dans ­1;2

+ CL sur @­ \­1;2

8<:

r ¢ ¾ ¡ f = 0 dans ­

¾ = A¡"¢dans ­

+ CL sur @­ ΩΩ11

ΩΩ22

Γ3

½u1 = u2 sur ¡

3

¾1n1 + ¾

2n2 = 0 sur ¡3

Construction d'un problème condenséConstruction d'un problème condenséaux interfacesaux interfaces

•Choix du type d'inconnue et de CL d'interface• Variable d'interface

• Nature du problème local

•Choix associé du type de condition de raccord• Problème condensé sur l'interface

Méthode primale (BDD)Méthode primale (BDD) Méthode duale (FETI)Méthode duale (FETI)

Conditions de type DirichletConditions de type Dirichlet Conditions de type NeumannConditions de type Neumann

u12 = u1j¡3 = u21 = u2j¡3 ¸12 = ¾1j¡3n1 = ¡¸21 = ¡¾

2j¡3n2

Utilisation des compléments de Schur primaux pour éliminer les DDL internes

Utilisation des compléments de Schur duaux pour éliminer les DDL internesEF EF

¾1j¡3n1 + ¾

2j¡3n2 = 0u1j¡3 = u2j¡3

Préconditionneurs classiquesPréconditionneurs classiques

•Mise en oeuvre de solveurs itératifs de type Krylov

• Problèmes de petites dimensions

• Opérateurs de Schur généralement mieux conditionnés par rapport aux tailles de mailles

•Préconditionneurs efficaces

• Idée : remplacer l'inverse de la somme des contributions locales par la somme des inverses des contributions locales

ex : approche primale

avec

on propose :

complément de Schur primal du domaine s

complément de Schur dual du domaine s

P¡1Spub = P¡1bp Sp =X

s

S(s)p

P¡1 =X

s

S(s)d

Performances des méthodesPerformances des méthodesde décomposition de domainede décomposition de domaine

• Solveur mixte direct/itératif

• Direct en local (réponse des sous-domaines)

• Itératif sur le problème condensé

• Parallélisme à « gros grains »

• Calculs locaux importants (par domaine)

• Peu de communications

• Gradient conjugué efficace

• Peu d'inconnues (vs nombre de total de DDL)

• Préconditionneurs performants

•(indépendants du nombre de sous-domaines)

• Accélérations de convergence pour les problèmes non-linéaires

• Réutilisation des espaces de Krylov précédemment générés par les itérations Newton-Raphson

ExempleExemple

Demi roueDemi roue115 239 degrés de libertés115 239 degrés de libertés

SolveurSolveur T (s)T (s) Mém. (Mio)Mém. (Mio) # itér. # itér. Direct 93 725 0Itératif GC 244 81 504DD 4 SD 130 159 82DD 8 SD 58 82 117DD 12 SD 40 50 133

FinFin