Logiciel d`analyse par éléments finis

Transcription

Logiciel d`analyse par éléments finis
Logiciel d’analyse par éléments finis
Nicolas Laurent
20 juin 2004
2
Avant toute chose, précisons un détail important : le nom “haplo” est emprunté au héros des
romans de Margaret Weis et Tracy Hickman. J’espère que ces dames ne m’en tiendront pas
rigueur.
Haplo est un logiciel libre; vous pouvez le redistribuer et/ou le modifier selon le termes de la
Licence Publique GNU comme publiée par la Free Software Foundation; que ce soit la version
2 de la licence, ou (à votre jugement) toute version postérieure.
Ce programme est distribué dans l’espoir d’être utile, mais sans aucune garantie.
Je précise que le projet Haplo est un projet strictement personnel développé sur mon temps
libre et qu’il n’a aucun rapport avec mes activités professionnelles actuelles ou passées.
c 1999-2003
Copyright Nicolas Laurent
18, Résidence La Chapelle
78990 Elancourt
<[email protected]>
Ce document a été entièrement composé sous LATEX 2ε sur une plateforme Debian GNU/Linux.
TABLE DES MATIÈRES
3
Table des matières
I
Manuel de l’utilisateur
7
II
Manuel de référence
11
1 Elasticité linéaire
1.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Formulation variationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
15
2 Discrétisation du problème
2.1 Méthode de Ritz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Méthode de Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
17
3 Numérotation des inconnues
3.1 Optimisation de la numérotation . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Algorithmes de Cuthill Mac Kee . . . . . . . . . . . . . . . . . . . . .
3.1.2 Choix d’un premier sommet . . . . . . . . . . . . . . . . . . . . . . . .
19
19
19
19
4 Conditions aux limites
4.1 introduction . . . . . . . . . . . . .
4.2 Multiplicateurs de Lagrange . . . .
4.2.1 Le problème . . . . . . . . .
4.2.2 Principe . . . . . . . . . . .
4.3 Inconvenients de cette méthode . .
4.3.1 Condition d’utilisation de la
4.4 La double dualisation . . . . . . .
4.4.1 Principe . . . . . . . . . . .
4.4.2 Equivalence . . . . . . . . .
4.5 Conditionnement du système . . .
4.6 Implémentation . . . . . . . . . . .
23
23
23
23
24
25
26
27
27
28
29
30
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
factorisation
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Chargement
31
6 Elements finis
33
7 Solver
7.1 Inversion de systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Méthode directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
35
35
4
TABLE DES MATIÈRES
7.2
7.3
III
7.1.2 Méthode itérative . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Valeurs et vecteurs propres . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes non-stationnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manuel du programmeur
35
35
35
37
8 Architecture
8.1 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
41
9 Les structures de données
9.1 introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 conditions aux limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
43
TABLE DES MATIÈRES
5
Conventions typographiques
Les quantités vectorielles sont notées en caractères gras. Leurs composantes sont en caractères ordinaires.
6
TABLE DES MATIÈRES
7
Première partie
Manuel de l’utilisateur
9
+1
10
11
Deuxième partie
Manuel de référence
13
+1
14
15
Chapitre 1
Elasticité linéaire
1.1
Formulation du problème
Soit le domaine Ω, de frontière ∂Ω = ∂U Ω ∪ ∂F Ω avec ∂U Ω ∩ ∂F Ω = . On a noté ∂U Ω,
la partie de la frontière où les déplacements ud sont imposés et ∂F Ω la partie de la frontière
chargée par des forces surfaciques F . ’interrieur du domaine est quant à lui chargé par la force
volumique f .
Le problème consite à trouver u, et σ tels que

u




 div σ + f
¯
σ ⊗n


σ



=
=
=
=
=
ud
sur ∂U Ω
0
sur Ω
F
sur ∂F Ω
¯
H ⊗
1
t
2 grad u + grad u
soit en écriture matricielle 1 :

ui




 σij,j + fi
σij nj


σij



ij
1.2
=
=
=
=
=
udi
sur ∂U Ω
0
sur Ω
Fi
sur ∂F Ω
Hijkl kl
1
2 (ui,j + uj,i )
Formulation variationnelle
On définit
u cinématiquement admissible si et seulement si u = ud sur ∂U Ω
u cinématiquement admissible à 0 si et seulement si u = 0 sur ∂U Ω
On a ∀δu cinématiquement adminsible à 0:
Z
(σij,j + fi ) · δui · dΩ = 0
Ω
1. Dans un repère orthonormé.
16
CHAPITRE 1. ELASTICITÉ LINÉAIRE
En intégrant par partie, il vient
Z
Z
Z
fi · δui · dΩ +
− σij · δij · dΩ +
Fi · δui · ds = 0
∂F Ω
Ω
Ω
En repportant la loi de comportement on obtient la formulation variationnelle du problème:
Z
Z
Z
− ij · Hijkl · δkl · dΩ +
fi · δui · dΩ +
Fi · δui · ds = 0
Ω
Ω
∂F Ω

 
11
σ11
 22 
σ22 
 


 
u1
 33 
σ33 





En notation matricielle, avec u = u2 , = 
et σ = 

σ12  on note
2
12


 
u3
223 
σ23 
σ13
212
Z
Z
Z
− t Hδ · dΩ +
f δu · dΩ +
F δu · ds = 0

Ω
Ω
∂F Ω
17
Chapitre 2
Discrétisation du problème
2.1
Méthode de Ritz
pipo et pipo
2.2
Méthode de Galerkin
molo poil
18
CHAPITRE 2. DISCRÉTISATION DU PROBLÈME
19
Chapitre 3
Numérotation des inconnues
3.1
Optimisation de la numérotation
Etant donné une matrice symétrique définie positive A, on considère sa factorisation
A = LDLt et la résolution de systèmes linéaires LDLt x = b. On peut aussi bien effectuer
la factorisation et la résolution pour la matrice P AP t qui résulte d’une renumérotation
des équations et des inconnues définissant la matrice de permutation P . En général, cette
opération de renumération a pour but d’optimiser l’espace mémoire et le temps de calcul
nécessaires à la factorisation et à la résolution.
3.1.1
Algorithmes de Cuthill Mac Kee
On cherche à éviter un profil avec de grandes valeurs de demi largeurs de bande li = i − ji .
On numérote les sommers du graphe les uns après les autres. Or, dès qy’un sommet est
numéroté, avec le numéro l, il impose une valeur jk = l à chacun de ses voisins non encore
numérotés, qui recevra ultérieurement le numéro k > l. La demi largeur de bande lk sera
égale à k − l. Pour la diminuer, on a donc intérêt à affecter le numéro le plus petit possible
aux voisins d’un sommet qui vient d’être numéroté.
Cette remarque conduit au principe de l’algorithme de Cuthille Mac Kee, qui est le suivant :
Ayant choisi le sommet n◦ 1, on numérote ses voisins, puis les voisins non encore numérotés
du sommet n◦ 2, puis les sommets non encore numérotés du sommet n◦ 3, et ainsi de suite.
Lorsqu’à une étape il y a plusieurs sommets à numéroter, on numérote en premier les sommets
qui ont le moins de voisins non encore numérotés.
La numérotation inverse d’une numérotation donnée pour une matrice d’ordre N est celle
qui associe le numéro 1+N −i au nœud qui était numéroté i. On montre que pour une matrice
dont les éléments onté été numérotés selon l’algorithme de Cuthill Mac Kee, le profil de la
numérotation inverse contient moins (ou au plus autant) d’élément. On parle de l’algorithme
de Cuthill Mac Kee inverse. La figure montre l’impact d’une telle ne-numérotation.
3.1.2
Choix d’un premier sommet
1. Choisir un sommet r quelconque comme raçine. Dans l’implementation, on choisit le
sommet n◦ 1.
2. Construire la stucture en niveu à partir de r. Soit e(r) l’excentricité de r et Ne(r) le
dernier niveau
20
CHAPITRE 3. NUMÉROTATION DES INCONNUES
Maillage
Matrice de rigidité
2
6
4
10
20
14
19
12
16
5
1
9
3
15
17
7
11
18
21
8
13
21
20
18
15
12
9
6
19
17
14
11
8
5
3
16
13
10
7
4
2
1
20
17
14
11
8
5
2
21
18
15
12
9
6
3
19
16
13
10
7
4
1
Taille du profile
162
84
77
Tab. 3.1 – Mise en œuvre de la renumérotation inverse de Cuthill Mac Kee
3.1. OPTIMISATION DE LA NUMÉROTATION
21
3. Choisir un sommet i ∈ Ne(r) , non encore choisi (en principe, on en choisit un ayant le
moins de voisins possible) et calculer e(i).
– si e(i) > e(r) alors remplacer r par i et retourner en 2
– si e(i) ≤ e(r) alors retourner en 3 pour essayer un autre sommet de Ne(r)
– si on a épuisé tous les sommets de Ne(r) alors prendre r comme premier sommet.
22
CHAPITRE 3. NUMÉROTATION DES INCONNUES
23
Chapitre 4
Conditions aux limites
4.1
introduction
Nous nous intéressons dans cette partie à la prise en compte des conditions aux limites
cinématiques dans la résolution du problème d’élasticité linéaire. La méthode retenue est
celle de la dualisation de ces conditions par l’introduction de nouvelles inconnues appelées
“multiplicateurs de lagrange”.
Cette méthode ainsi que sa documentation est très largement inspirée de [1].
4.2
4.2.1
Multiplicateurs de Lagrange
Le problème
Dans Haplo, on est amené à résoudre de nombreux systèmes linéaires. Souvent de tels
systèmes peuvent être considérés comme l’expression algébrique d’un poblème de minimisation
d’une fonctionnelle quadratique positive J(u) où u appartient à Rn tout en étant contraint
par un certain nombre de relations affines Ci t u = di .
C’est à ce problème de minimisation sous contraintes affines auquel on s’intéresse ici. Dans
la suite, on prendra comme exemple le cas de la mécanique statique linéaire. On parlera de
matrice de rigidité, de vecteur déplacement.
Soit le problème discrétisé :


min J(u)


u∈V⊂R



P1 J(u) = 12 hAu | ui − b · u





V = {u ∈ Rn / C t u = d , ∀i = 1, p}
i
i
Ce problème discret est résolu numériquement en exprimant que la “dérivée” de J(u) dans
V est nulle. On est alors ramené à résoudre un système linéaire d’équations. Le problème est
de “dériver” J(u) dans V ⊂ Rn .
En général, pour des raisons pratiques, l’expression de J(u) est calculée dans la base de
tous les déplacements nodaux, sans tenir compte des contraintes: u appartient alors à Rn où
n est le nombre d’inconnues nodales.
24
CHAPITRE 4. CONDITIONS AUX LIMITES
Si V est un sous-espace vectoriel de Rn engendré par n − p déplacements nodaux de base
alors la dérivation de J(u) se fait simplement : il suffit de suprimer dans les matrices A et b
les lignes et les colonnes correspondantes aux ddl fixés à zéro: ui = 0
Si les ddl contraints ne sont pas mis à zero mais affectés à des valeurs données, ui = di
alors il faut modifier b. Enfin, si les contraintes s’expriment en une relation linéaire entre les
ddl il faut modifier A et b.
4.2.2
Principe
Le principe des multiplicateurs de Lagrange permet de résoudre le problème sans toucher
aux matrices A et b mais en indroduisant des inconnues supplémenataires.
En effet, au lieu de résoudre le problème dans l’espace V de dimension n − p, on le
résout dans l’espace Rn+p . Les inconnues supplémentaires sont notées λi et sont nommés
multiplicateurs de lagrange.
Reprenons le problème précédent, on a


min J(u)


u∈V⊂R



P1 J(u) = 12 hAu | ui − b · u





V = {u ∈ Rn / hC | ui = d , ∀i = 1, p}
i
i
Les Ci sont des formes linéaires sur Rn , les di sont des constantes données. De plus, on
suppose que les p formes C i sont indépendantes entre-elles : la dimension de l’espace engendré
par les Ci est donc p.
On peut montrer que le problème P1 est équivalent au suivant :

n

V = {u ∈ R / hCi | ui = di , ∀i = 1, p}
P2 : u ∈ V hAu − b | vi = 0, ∀v ∈ V0


V0 = {v ∈ Rn / hCi | ui = 0, ∀i = 1, p}
Réécrivons le problème P2 différemment :
Il s’agit de trouver u ∈ Rn tel que
∀i = 1, p on a Ci u = di
∀v / Ci v = 0, alors hAu − b | vi = 0
On a donc Ci ∈ Rn et Au − b ∈ Rn orthogonaux à V0 .
V0 est le sous espace vectoriel de Rn orthogonal à {Ci , ∀i = 1, p}. Puisque la décomposition
de Rn en somme directe de 2 sous espaces orthogonaux est unique, on en déduit que Au − b
appartient à l’ensemble engendré par le Ci .
Il existe donc une famille de scalaires λi appelés multiplicateurs de Lagrange tels que :
Au − b +
X
λi Ci = 0
i
Cette égalité est vraie dans
Rn .
Le problème P2 devient alors
4.3. INCONVENIENTS DE CETTE MÉTHODE
(
u ∈ Rn
P3 :
∀i = 1, p λi ∈ R
25
(
∀i = 1, p Ci u = di
/
P
Au − b + i λi Ci = 0
Le problème P3 est le problème recherché. On dira que c’est le problème avec conditions
cinématique dualisées. Matriciellement on peut l’écrire :
Kx = F
soit
A Ct
C 0
u
b
=
λ
d
On peut noter que ce système peut être obtenu en cherchant à rendre extrémale la fonctionnelle :
1
hAu | ui − hb | bi + hλ | Cu − di
2
Cette fonctionnelle est appelée Lagrangien du problème initial. L’intérêt principal de cette
méthode est de s’affranchir des contraintes : u et λ sont cherchés dans Rn et Rp .
Les coefficients λi sont appelés coefficient de Lagrange du problème. On les nommera dans
la suite les “Lagrange”.
L(u, λ) =
4.3
Inconvenients de cette méthode
On voit d’après l’expression du Lagrangien que la matrice K n’est plus positive alors que
A l’était. En effet :
1
hAu0 | u0 i + λ0 Cu0 < 0
2
La perte de la positivité de la matrice K entraı̂ne que la résolution du système Kx = F ne
peut plus se faire, en général, par les algorithmes classiques de gradient ou par la factorisation
de Cholesky. L’algorithme de factorisation LDLt sans permutation des lignes et des colonnes
n’est plus garanti non plus. Or c’est ce dernier que l’on veut pouvoir continuer à utiliser.
Illustrons le problème par l’exemple suivant :
Un ressort de raideur k relie 2 noeuds N1 et N2 .
∃u0 / Cu0 6= 0 ⇒ ∃λ0 / L(u0 , λ0 ) =
k
N1
N2
– 2 inconnues : u1 et u2
– 2 forces nodales : f1 et f2 .
A=
– 1 contrainte : αu1 + βu2 = γ
k −k
−k k
x
26
CHAPITRE 4. CONDITIONS AUX LIMITES
Le problème dualisé s’écrit: Kx = F avec


 
 
k −k α
u1
f1





K = −k k β , x = u2 et F = f2 
α
β 0
λ
γ
4.3.1
Condition d’utilisation de la factorisation
La condition nécessaire et suffisante pour que l’algorithme LDLt − SP 1 est la suivante :
En notant Ki la sous-matrixe de K formée par les i premières lignes et colonnes de K.
Il n’y aura pas de pivot nul dans l’algorithme LDLt − SP si et seulement si Ki est inversible
pour tout i compris entre 1 et n.
Dans l’exemple précédent, la matrice K est écrite avec comme numérotation des inconnues,
l’ordre des composantes de x :
 
u1
– avec x = u2  il vient
λ


k −k α
K = −k k β 
α
β 0
k −k
ne vérifie pas la condition d’utilisation de la factorisation.
Or K2 =
−k k
 
λ
– avec x =  u1  on a
u2


0 α β
K = α k −k 
β k k
Dans ce cas, K1 n’est pas inversible.
 
u1
– avec x =  λ  on a
u2


k α −k
K=α 0 β 
−k β k
Dans ce cas :
– det K1 = k
– det K2 = α2
– det K1 = −k(α + β)
Cete numérotation fait que la matrice K respecte la condition d’utilisation de l’algorithme LDLt − SP avec les conditions supplémentaires:
– k > 0. Or, par définition, cette condition est repectée puisque k représente la
raideur du ressort.
1. Factorisation LDLt sans permutation
4.4. LA DOUBLE DUALISATION
27
– α + β 6= 0. Le cas α + β = 0 correspond à un “mauvais” blocage physique : la
condition u1 + u2 = c est un “mouvement de corps rigide” 2 pour A.
Pour que le problème global ait une solution unique, il fauten effet, que les conditions Ci u = di engendrent un espace de déplacements admissibles qui ne contiennent
aucun mouvements de corps rigide de A. On écrira
ker A ∩ V0 = {0}
On supposera dans la suite que cette condition est vérifiée. C’est-à-dire que les
contrainte C i bloque aux moins les mouvement de corps rigides de A. Lorsque
cette condition est vérifiée et que les conditions Ci sont indépendantes entre elles,
on dira que le problème est physiquement bien posé.
– K2 n’est inversible que si α 6= 0. Aussi, on voit qu’avec une telle numérotation le
blocage ne peut être réduit à u2 = δ. Dans ce cas, la symétrie du problème
t montre
que pour pouvoir traiter le problème il faut numéroter x = u2 λ u1 .
De cette exemple, on peut tirer quelques conclusions générales :
– Si on numérote tous les λi aprés les ui , si A est singulière alors Ki = A n’est pas
inversible.
– Soit une condition Ci u = di et λi le multiplicateur de Lagrange associé. Cette condition
ne fait pas en général intervenir toutes les inconnues ui : l’équation contraint certains
ddl. Si λi est numéroté avant les ddl qu’il contraint on a, avec j le numéro de l’équation
de λi :
Kj−1 0
Kj =
0
0
n’est pas inversible.
– Il existe des blocages qui imposent une certaine numérotation des ddl physiques : par
exemple on ne peut pas retenir une structure par son dernier ddl physique.
– Pour finir, nous pouvons remarquer : si K est inversible, on sait qu’il existe une numérotation
des inconnues permettant de factoriser K avec l’algorithme LDLt . Cette numérotation
est par exemple celle résultant de l’algorithme avec LDLt avec permutation. Mais cette
renumérotation ne concerne que les lignes de la matrice. Il y a donc perte de la symétrie
de K.
Toutes ces remarques montrent que la dualisation proposée dans cette section ne permet
pas d’utiliser LDLt − SP .
4.4
La double dualisation
4.4.1
Principe
La méthode proposée ici est celle mise en oeuvre dans les codes Castem 2000 et Code Aster.
Une présentation intuitive pourrait être la suivante :
On voit que le problème dualisé a des termes nuls sur la diagonales : ceux correspondants aux ddl de Lagrange. Cette propriété se remarque aussi sur le Lagrangien : il n’y a pas de terme quadratique en λ.
2. Un mouvement ou mode à energie nulle
28
CHAPITRE 4. CONDITIONS AUX LIMITES
Cette nullité des termes diagonaux empêche certaines permutations de lignes et
de colonnes : on ne peut pas numéroter un multiplicateur de Lagrange avant les
ddl physiques qu’il contraint.
Pour redonner de la souplesse au système, on peut penser faire apparaı̂tre des
termes non-nuls sur la diagonale de façon artificielle. Par exemple, on pourrait
“ajouter” un peu des premières lignes du système aux secondes, cette méthode
détruirait la symétrie de la matrice globale.
Il faut donc ajouter des nouvelles équations et de nouvelles inconnues qui combinée
à l’équation matricielle Cu = d rendent un système symétrique, équivalent au
premier et avec des termes non-nuls sur la diagonale.
L’idée est alors de décomposer chaque coefficient de Lagrange λ en 2 parties égales λ1 et λ2 .
L’équation Cu = d est remplacée par :
(
Cu − α(λ1 − λ2 ) = d
Cu + α(λ1 − λ2 ) = d
où α est une constante non nulle.
4.4.2
Equivalence
Montrons l’équivalence de l’ancien problème et du nouveau :
Problème
( 1 : “simple Lagrange”(
u ∈ Rn
Au + C t λ = b
trouver
tels
que
(S)
λ ∈ Rp
Cu = d


λ1 = λ2



λ = λ1 + λ2
on a (S) ⇐⇒

Au + C t λ = λ



Cu = d
D’où le problème équivalent
Problème 2 : “double Lagrange”
(
u ∈ Rn
trouver
(λ1 , λ2 ) ∈ Rp × Rp


Au + C t λ1 + C t λ2 = b



Cu − αλ1 + αλ2 = d
0
tels que (S )

Cu + αλ1 − αλ2 = d



α 6= 0
Le nouveau problème peut s’écrire :
K 0 x0 = F 0
avec

 
 
A Ct
Ct
u
b
K 0 = C −α1 αI  , x0 = λ1  et F 0 = d
C α1 −αI
λ2
d

4.5. CONDITIONNEMENT DU SYSTÈME
29
Le problème correspond à rendre extrémale la fonctionnelle
L0 (u, λ1 , λ2 ) =
α
1
hAu | ui − hb | bi + λ1 | Cu − d + λ1 | Cu − d − k λ1 − λ2 k
2
2
On peut montrer que si on observe une certaine règle de numérotation des inconnues
et on choisissant la constante α > 0, la matrice K 0 verifie la condition d’utilisation de la
factorisation LDLt − SP . Cette règle est la suivante :
Soit une relation de blocage Ci u = di , il lui correspond 2 multiplicateurs de Lagrange λ1i et λ2i . Cette relation fait intervenir un certain nombre de ddl physiques.
Pour toutes les relations de blocage, il faut placer λ1 avant le premier ddl physique
contraint et λ2 après le dernier ddl physique contraint.
Pour diminuer l’occupation mémoire de la matrice K, il faut chercher à minimiser la
largeur de bande. C’est ce que l’on fait dans Haploen “encadrant” les relations “au plus près”:
– λ1 est placé juste avant le premier ddl contraint
– λ2 est placé juste après le dernier ddl contraint.
La technique de la double dualisation associée à la règle précédente permet de résoudre
tout système linéaire physiquement bien posé avec l’algorithme LDLt −SP . La démonstration
suppose néanmoins que la matrice A soit symétrique et positive.
4.5
Conditionnement du système
Lorsque l’on regarde l’expression de la matrice que l’on va finalement factoriser K 0 , on voit
que ces différentes sous matrices A, C et αI peuvent être d’ordre de grandeur très différentes.
On sait qu’en général cette situation n’est pas favorable numériquement.
Il faut remarquer que les équations de liaison Cu = d peuvent être multipliées par une
constante arbitraire β sans changer le problème.De plus nous avons vu que les matrices αI
étaient également arbitraire avec α > 0. Nous disposons donc de deux paramètres permettant
de “régler” le conditionnement de la matrice.
Nous ne ferons pas de démonstration générale mais nous nous contenterons d’examiner le
cas le plus trivial qui soit : un ressort, un ddl, une liaison.
Soit k est la rigidité du ressort, la matrice K 0 s’écrit


k β
β
K 0 = β −α α 
β α −α
Le conditionnement de cette matrice est liée à la dispersion de ses valeurs propres µi . Calculons
le polynôme caractéristique de K 0 :
P (µ) = (µ + 2α)(−µ2 + kµ + 2β 2 )


µ = −2α

√
 1
k+ k2 +8β 2
µ
=
⇐⇒
2
√2


 µ = k− k2 +8β 2
3
2
< 0
> 0
< 0
30
CHAPITRE 4. CONDITIONS AUX LIMITES
k est la valeur propre du système non contraint. Cette valeur est l’ordre de gradeur recherché pour µ1 , µ2 et µ3 .
On remarque que µ1 < 0, µ3 < 0. C’est-à-dire que les 2 valeurs propres ajoutées par les
coefficients de Lagrange sont négatifs 3 .
On cherche à obtenir des valeurs propres d’un même ordre de grandeur :
| µ1 | ∼
= | µ2 | ∼
= | µ3 |
il vient
| µ1 µ3 | ∼
= | µ1 |2 ⇒ 2β 2 ∼
= 4α2
– Si β k, alors µ3 ∼
= k : ce n’est pas le résultat cherché.
= 0 et µ2 ∼
√
– Si β k, alors | µ2 | ∼
= | µ3 | ∼
= 2 | µ1 |. Les trois valeurs propre sont alors en valeur
absolue de l’ordre de β qui est une constante arbitraire très grande devant k.
Cette solution n’est pas celle que l’on retiendra car la valeur de k est, dans le cas général 4 ,
un ordre de grandeur des autres valeurs propres du système.
Dans Haploon prend
β=α∼
=k

∼

µ1 = −2k
⇒ µ2 ∼
= 2k

 ∼
µ3 = −k
Pratiquement dans Haplo, on choisit une valeur α unique pour tout le système. Cette valeur
est la moyenne des valeurs extrémales des termes diagonaux associées aux ddl physiques. De
plus on prend β = α.
4.6
Implémentation
3. C’est d’ailleurs à cause de cela que l’algorithme LDLt − SP n’est pas garanti sans précaution.
4. Cas avec un grand nombre de ddl.
31
Chapitre 5
Chargement
32
CHAPITRE 5. CHARGEMENT
33
Chapitre 6
Elements finis
34
CHAPITRE 6. ELEMENTS FINIS
35
Chapitre 7
Solver
7.1
Inversion de systèmes linéaires
7.1.1
Méthode directe
7.1.2
Méthode itérative
7.2
Valeurs et vecteurs propres
7.3
Problèmes non-stationnaires
36
CHAPITRE 7. SOLVER
37
Troisième partie
Manuel du programmeur
39
+1
40
41
Chapitre 8
Architecture
8.1
introduction
42
CHAPITRE 8. ARCHITECTURE
Fig. 8.1 – Diagramme de composants
43
Chapitre 9
Les structures de données
9.1
introduction
9.2
conditions aux limites
44
CHAPITRE 9. LES STRUCTURES DE DONNÉES
Fig. 9.1 – Diagramme des principales classes
9.2. CONDITIONS AUX LIMITES
Fig. 9.2 – Les conditions aux limites
45
46
CHAPITRE 9. LES STRUCTURES DE DONNÉES
BIBLIOGRAPHIE
Bibliographie
[1] DER/IMA. Code aster v3 – référence. Technical Report Tome 2, EDF. 23
47