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