Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- reconnaître un problème aux limites dans une situation d'ingénieur — une barre chargée axialement, un mur traversé par un flux de chaleur, une membrane tendue — et distinguer les conditions imposées sur la valeur de l'inconnue de celles imposées sur un effort ou un flux;
- établir l'équation de la barre à partir de l'équilibre d'une tranche, et la ramener par adimensionnement au problème modèle sur ;
- expliquer pourquoi les solutions exactes s'épuisent dès que la géométrie, la section ou le matériau cessent d'être simples;
- discrétiser le problème modèle par différences finies, démontrer par la formule de Taylor que le schéma à trois points est consistant d'ordre 2, et vérifier cet ordre en exécutant le calcul;
- décrire en une page l'idée des éléments finis — approximation affine par morceaux, énergie, assemblage élément par élément — et résoudre à la main le cas à deux éléments;
- organiser une analyse en pré-traitement, résolution et post-traitement, et nommer les quatre sources d'erreur qui la menacent: modélisation, discrétisation, arrondi et utilisation.
Ce premier chapitre est volontairement léger en théorie. Il pose les objets, fait calculer, et montre où l'on va; les justifications rigoureuses — formulation faible, espaces de fonctions, méthode de Galerkin — sont l'affaire des chapitres 2 et 3, et la construction systématique des éléments celle du chapitre 4.
Les problèmes aux limites de l'ingénieur
Une grande part du calcul des structures, de la thermique du bâtiment, de l'hydrogéologie ou de l'électrostatique se ramène à la même forme de question: une grandeur inconnue — un déplacement, une température, une charge hydraulique, un potentiel — vérifie une équation différentielle dans un domaine, et elle est contrainte sur le bord de ce domaine. La valeur au milieu dépend de ce qui se passe aux deux extrémités à la fois. C'est ce qui distingue ces problèmes des problèmes d'évolution que vous avez rencontrés en Analyse II (chapitre 1) et en Analyse numérique (chapitres 9 et 10), où l'on connaît tout au temps initial et où l'on avance pas à pas.
La barre chargée axialement
Considérons une barre droite de longueur , d'axe , de section et de module d'Young , soumise à une charge répartie axiale (en N/m: le poids propre d'une tige verticale, le frottement d'un pieu dans le sol) et éventuellement à une force concentrée à son extrémité. On cherche le déplacement axial de chaque section.
Isolons une tranche comprise entre et (figure 1.1). Trois forces axiales agissent sur elle: l'effort normal exercé par la partie droite de la barre sur la face droite, l'effort exercé par la partie gauche sur la face gauche, et la résultante de la charge répartie. Avec la convention usuelle — effort normal positif en traction, c'est-à-dire dirigé vers l'extérieur de la face —, l'équilibre de la tranche s'écrit
En divisant par et en faisant tendre vers zéro:
L'équation (1.1) est une loi d'équilibre et ne dit rien du matériau. Il faut lui adjoindre une loi de comportement. Si le matériau est élastique linéaire, la contrainte vaut (loi de Hooke), la déformation axiale est la dérivée du déplacement, , et l'effort normal est la résultante de la contrainte sur la section:
En portant (1.2) dans (1.1), on obtient l'équation de la barre:
C'est une équation différentielle du deuxième ordre. Elle ne détermine qu'à deux constantes près, et ces deux constantes sont fixées par ce qui se passe aux deux extrémités: c'est là qu'est toute la différence avec un problème de Cauchy. À l'extrémité encastrée, le déplacement est imposé, . À l'extrémité libre chargée par , c'est l'effort qui l'est: , soit
Les deux conditions de la barre ne sont pas de même nature, et la distinction est l'une des plus importantes du cours.
Le chapitre 2 montrera que ces deux conditions jouent des rôles très différents dans la méthode des éléments finis: la première devra être imposée explicitement, la seconde «viendra toute seule» dans la formulation. On les appellera alors essentielle et naturelle. Retenez dès maintenant la lecture physique: on impose soit un déplacement, soit une force, jamais les deux au même point dans la même direction. Une extrémité qui n'est ni fixée ni chargée est une condition de Neumann homogène, , et non une absence de condition.
Laquelle de ces situations conduit à un problème aux limites au sens de la définition 1.1?
La conduction de la chaleur dans un mur
Changeons de physique sans changer de mathématiques. Un mur plan d'épaisseur sépare un intérieur chauffé de l'extérieur. Si les températures ne varient que dans l'épaisseur, la température ne dépend que de , et la chaleur traverse le mur avec une densité de flux (en W/m²). Le bilan d'énergie d'une tranche en régime stationnaire — ce qui entre moins ce qui sort, plus ce qui est produit par une éventuelle source volumique (en W/m³), est nul — donne
et la loi de Fourier, , joue le rôle de la loi de Hooke, avec la conductivité thermique (en W/(m·K)). D'où
C'est la même équation que (1.3). Le tableau suivant met les deux problèmes côte à côte; il vaut pour toute la suite du cours, et le chapitre 8 l'étendra au plan.
| Barre | Mur | Rôle |
|---|---|---|
| déplacement | température | inconnue |
| déformation | gradient | dérivée de l'inconnue |
| rigidité | conductivité | coefficient du matériau |
| effort normal |
Le signe moins de la loi de Fourier est la seule différence de la ligne «grandeur conjuguée»: l'effort normal croît avec la pente du déplacement, alors que la chaleur s'écoule vers les températures décroissantes. Il ne change rien à l'équation (1.5), puisque les deux signes moins se compensent, mais il compte dès qu'on écrit un flux imposé sur une face. Une troisième condition, propre à la thermique, apparaît dès que la surface échange de la chaleur avec l'air par convection. Sur la face extérieure , où le flux sortant est , elle s'écrit , où est un coefficient d'échange et la température de l'air; sur la face , où le flux sortant est , le signe s'inverse. Elle mêle la valeur et le flux; on l'appelle (ou de Fourier), et elle reviendra au chapitre 8.
Une membrane tendue
En dimension 2, l'analogue de la barre est une membrane — une toile tendue, une peau de tambour, une bâche — tendue sous une tension uniforme (en N/m; dans cette section seulement, désigne la tension et non la température) et chargée par une pression (en Pa). Sa flèche vérifie
L'équation s'obtient comme (1.3), par l'équilibre vertical d'un petit élément de surface, en remplaçant le bilan sur deux faces par un bilan sur un contour: c'est le théorème de la divergence dans le plan, sous la forme flux du théorème de Green (Analyse III, chapitre 3, théorème 3.4), qui fait le passage, et le chapitre 8 de ce cours le refera en détail pour la conduction plane. Pour une membrane circulaire de rayon , la solution est connue en forme close, , ce que l'on vérifie en calculant le laplacien en coordonnées polaires. Pour un carré, il faut déjà une série infinie — celle-là même qui fournit la valeur de référence de la plaque carrée du chapitre 8. Pour un domaine en L, ou percé d'un trou, il n'y a plus rien d'explicite.
Une tige d'acier de longueur m et de section pend sous son poids propre et porte une charge kN à son extrémité inférieure ( GPa, , ). Quel est l'allongement total , en millimètres?
Le problème modèle
Les équations (1.3), (1.5) et (1.6) diffèrent par leurs coefficients et leurs unités, pas par leur structure. Pour apprendre la méthode, il est commode d'en retenir la forme la plus dépouillée.
Les deux solutions se vérifient en dérivant deux fois: et , et toutes deux s'annulent en et en . Le problème (1.7) a d'ailleurs solution: si et en sont deux, leur différence vérifie , donc est affine, et s'annule aux deux extrémités, donc est nulle.
Le problème modèle n'est pas une abstraction gratuite: c'est exactement le problème d'une barre de rigidité constante, fixée aux deux extrémités et chargée uniformément, écrit dans de bonnes unités. Partons de sur avec , et posons
Comme , l'équation devient sur avec : c'est (1.7) avec . Le déplacement maximal de la barre vaut donc , et toute la physique tient dans le facteur d'échelle . Ce procédé d' est l'outil de base de l'ingénieur qui veut comparer des modèles: il enlève les unités et ne laisse que la forme.
Nous utiliserons ces deux seconds membres pour tout tester. Le premier est si simple que plusieurs méthodes le résolvent exactement, ce qui en fait un bon test de programmation: si votre code ne retrouve pas au milieu, il est faux. Le second a une solution qui n'est pas un polynôme, ce qui en fait un bon test de précision: aucune méthode polynomiale par morceaux ne le reproduit exactement, et l'erreur commise devient mesurable.
Pourquoi les solutions exactes s'épuisent
En dimension 1, la barre a une propriété remarquable: elle s'intègre toujours. De (1.1), l'effort normal s'obtient par une intégration, , et de (1.2), le déplacement par une seconde, . Les deux constantes se fixent par les conditions aux limites. Autrement dit, le problème de la barre se réduit au calcul de deux primitives. C'est ce qu'a fait l'exemple 1.1, et c'est ce que fera l'exercice 1.2 pour une barre conique, où apparaît un logarithme.
Cette facilité est trompeuse, et pour trois raisons.
La géométrie. Dès que la section est donnée par un plan, par un relevé ou par une fonction quelconque, la primitive de n'a plus d'expression élémentaire: il faut une quadrature numérique. En dimension 2 ou 3, c'est bien pire: aucune réduction à des primitives n'existe en général. La membrane circulaire de (1.6) a une solution en une ligne parce que le disque est symétrique; le carré demande une série; une dalle percée de trémies, un barrage dans sa vallée, une pièce mécanique avec congés et alésages n'ont aucune solution explicite, et n'en auront jamais.
Les matériaux. Un mur composite (exemple 1.2) se traite encore à la main, couche par couche. Mais une conductivité qui dépend de la température, , rend l'équation non linéaire; un sol stratifié en couches inclinées, un béton armé dont l'acier n'occupe que certaines zones, un matériau composite orienté rendent le coefficient variable dans deux ou trois directions à la fois. Chaque «cas d'école» des tables de formules correspond à un choix de géométrie et de matériau d'une simplicité qu'aucun ouvrage réel ne respecte.
Les conditions aux limites et les charges. Un appui sur une partie seulement du bord, une charge sur une surface irrégulière, un contact qui s'ouvre ou se ferme: chaque complication du bord se paie par une perte de solution exacte.
La conclusion n'est pas que les solutions exactes sont inutiles: elles sont indispensables pour vérifier les méthodes numériques, et ce cours les utilisera à chaque chapitre dans ce rôle exact. Mais elles ne suffisent pas à calculer. Il faut une méthode qui, au lieu de chercher dans l'ensemble infini des fonctions, la cherche dans un ensemble de dimension finie bien choisi, où le problème devient un système d'équations algébriques — c'est-à-dire, pour un problème linéaire, un système linéaire, que l'Analyse numérique (chapitre 3) vous a appris à résoudre. C'est le sens du mot discrétisation.
Première discrétisation: les différences finies
La plus ancienne façon de discrétiser (1.7) consiste à remplacer les dérivées par des quotients de différences. On découpe en intervalles égaux de longueur , aux nœuds
et l'on cherche des nombres . Les valeurs au bord sont connues, ; les sont les valeurs intérieures .
Dans ce cours, le texte numérote ainsi les nœuds et les inconnues comme on les écrit au tableau; en Python, les listes commencent à 0. Dans le code de cette section, l'élément u[i] de la liste renvoyée contient ; dans celui de la section suivante, qui garde les deux valeurs au bord, u[i] contient . Chaque listing le rappelle dans sa docstring.
Le schéma à trois points
L'Analyse numérique (chapitre 8) a établi l'approximation de la dérivée seconde par la différence centrée seconde,
En l'écrivant pour chaque nœud intérieur et en remplaçant les valeurs exactes par les inconnues, (1.7) devient le schéma à trois points:
Chaque équation ne relie qu'un nœud et ses deux voisins. Les poids , divisés par , forment ce qu'on appelle le stencil du schéma (figure 1.2, en haut).
Il faut savoir à quel point (1.8) imite (1.7). La mesure naturelle consiste à injecter la solution exacte dans le schéma et à regarder ce qui reste.
Le résultat suivant est la seule démonstration exigée de ce chapitre, et elle est courte; elle n'utilise que la formule de Taylor avec reste de Lagrange (Analyse I, chapitre 9).
Démonstration. La formule de Taylor à l'ordre 3 avec reste de Lagrange, appliquée en avec les accroissements et , donne deux points et tels que
En additionnant, les termes d'ordre impair s'annulent — c'est la symétrie du stencil qui travaille —, et il reste
La moyenne de deux valeurs de la fonction continue est comprise entre ces deux valeurs; par le théorème des valeurs intermédiaires, elle est atteinte en un point situé entre et , donc dans . En divisant par , on obtient (1.10).
Pour la seconde affirmation, on applique (1.10) en : le quotient de (1.9), pris avec le signe opposé, vaut , et comme ,
Il reste à majorer par .
Deux conséquences immédiates. D'abord, si la solution exacte est un polynôme de degré au plus 3, alors , l'erreur de troncature est nulle, et nous allons voir que le schéma donne alors les valeurs nodales exactes: c'est le cas du problème modèle avec . Ensuite, pour , on a , donc , et l'erreur de troncature est d'environ : elle doit être divisée par 4 chaque fois que est divisé par 2.
De la consistance à la convergence
La consistance dit que la solution exacte vérifie presque le schéma. Ce n'est pas encore ce que l'on veut savoir, qui est l'inverse: la solution du schéma est-elle proche de la solution exacte? Le passage de l'un à l'autre s'appelle la stabilité, et c'est le même mécanisme que pour les équations différentielles ordinaires de l'Analyse numérique (chapitre 9): consistance et stabilité entraînent convergence.
Écrivons (1.8) sous forme matricielle, , avec , et
Si désigne le vecteur des valeurs exactes, la définition (1.9) se lit . En soustrayant , l'erreur nodale vérifie
Tout se joue donc sur la taille de : si elle reste bornée quand , l'erreur se comporte comme l'erreur de troncature.
Démonstration. Étape 1: un principe du maximum discret. Soit un vecteur, complété par , tel que pour tout . Montrons que pour tout . Sinon, le minimum des est strictement négatif; soit le indice où il est atteint. On a puisque , et , soit parce que , soit par minimalité de . Comme par ailleurs ,
ce qui contredit l'hypothèse.
Étape 2: est à coefficients positifs ou nuls. La -ième colonne de vérifie , dont toutes les composantes sont positives ou nulles; par l'étape 1, . (L'étape 1 montre aussi que est inversible: entraîne et, appliqué à , .)
Étape 3: la norme de . Soit , la solution du schéma pour . La solution exacte correspondante, , est un polynôme de degré 2: par le théorème 1.1 son erreur de troncature est nulle, donc par (1.12) coïncide avec elle aux nœuds, . Comme ,
C'est (1.13).
La démonstration fait apparaître la structure de toute preuve de convergence: une erreur de troncature petite (théorème 1.1), multipliée par une «constante de stabilité» bornée, ici . Pour , la borne (1.13) vaut , soit pour et pour .
Le calcul
En Python, avec la bibliothèque standard seulement, la matrice est une liste de listes et la résolution est une élimination de Gauss avec pivot partiel. La fonction resoudre(K, F) ci-dessous est celle du chapitre 3 d'Analyse numérique, à peine condensée; elle servira dans tout le cours sous ce nom.
from math import pi, sin
def resoudre(K, F):
"""Resout K d = F par elimination de Gauss avec pivot partiel."""
n = len(F)
M = [ligne[:] for ligne in K]
c = list(F)
for k in range(n - 1):
p = max(range(k, n), key=lambda i: abs(M[i][k]))
Le schéma lui-même tient en quelques lignes. On remplit la matrice (1.11) et le second membre, puis on résout:
def differences_finies(f, n):
"""Valeurs approchees u_1, ..., u_{n-1}: u[i] contient u_{i+1}."""
h = 1.0 / n
m = n - 1
K = [[0.0] * m for _ in range(m)]
for i in range(m):
K[i][i] = 2.0 / h**2
if i > 0:
2 2.3370e-01
4 5.3029e-02
8 1.2951e-02
16 3.2190e-03
32 8.0358e-04
Disposée en tableau avec le rapport entre deux erreurs successives, la sortie se lit ainsi:
| erreur nodale max | rapport | borne (1.13) | |
|---|---|---|---|
| 2 | — | — | |
| 4 | 4,407 |
Le rapport tend vers 4 sans l'atteindre: c'est l'ordre 2 du théorème 1.2, qui est un comportement asymptotique. Sur un maillage grossier, les termes d'ordre supérieur négligés dans la formule de Taylor pèsent encore, et le rapport vaut 4,407 entre et . Ne l'arrondissez pas à 4: c'est précisément l'écart qui vous dit que vous n'êtes pas encore dans le régime asymptotique. La borne (1.13), elle, est respectée partout, et elle est réaliste: elle ne surestime l'erreur que de 20 à 23 %.
Le coût, enfin. La matrice est tridiagonale: on la stocke ici comme une matrice pleine par simplicité, mais l'algorithme de Thomas du chapitre 3 d'Analyse numérique résout un tel système en opérations au lieu de . Elle est aussi symétrique définie positive (Algèbre linéaire, chapitre 11) — ses valeurs propres valent , , toutes strictement positives —, de sorte que Cholesky s'applique sans pivotage. Ces deux propriétés, creux et définie positivité, se retrouveront dans toutes les matrices de rigidité du cours.
Ce programme de différences finies oublie le facteur 1/h² du schéma (1.8): il assemble la matrice tridiagonale avec les poids 2 et -1 seulement. Réparez-le. Avec f = 1 et n = 4, il doit afficher les valeurs exactes 3/32, 1/8 et 3/32, à six décimales.
On résout le problème modèle avec par le schéma (1.8) avec , c'est-à-dire une seule inconnue au milieu. Quelle valeur le schéma donne-t-il pour ? La valeur exacte est .
L'idée des éléments finis en une page
Les différences finies remplacent l'équation par des relations entre des valeurs ponctuelles. Les éléments finis font autre chose: ils cherchent une fonction approchée, définie partout, dans un ensemble de fonctions simples, et ils la choisissent par un principe d'énergie. Trois idées suffisent, et chacune fera l'objet d'un chapitre entier.
Première idée: une approximation affine par morceaux. On découpe en éléments — ici les intervalles — séparés par des nœuds; l'ensemble forme le maillage. On cherche une approximation continue sur et . Une telle fonction est entièrement décrite par ses valeurs aux nœuds, et elle s'écrit
où est la fonction chapeau du nœud : affine par morceaux, égale à 1 au nœud , à 0 à tous les autres nœuds, donc nulle hors des deux éléments qui touchent (figure 1.2, en bas). Les coefficients sont alors exactement les valeurs nodales, . Les nœuds du bord n'ont pas de fonction chapeau dans (1.14): la condition est satisfaite d'office.
Deuxième idée: le choix par l'énergie. Pour la barre, l'énergie potentielle totale d'un champ de déplacement admissible ( aux appuis) est l'énergie de déformation moins le travail des charges:
Le principe du minimum de l'énergie potentielle dit que le déplacement d'équilibre est celui qui minimise parmi tous les champs admissibles. Pour le problème modèle, . Le chapitre 2 démontrera que ce minimum est atteint en la solution de (1.7), et le chapitre 3 justifiera la démarche suivante: En y reportant , l'énergie devient une fonction quadratique des nombres ,
et son minimum est atteint là où le gradient s'annule, c'est-à-dire en la solution du système linéaire
La matrice s'appelle la matrice de rigidité, le vecteur des charges, et le vecteur des valeurs nodales les degrés de liberté.
Troisième idée: l'assemblage, élément par élément. Les intégrales de (1.15) se découpent en somme d'intégrales sur les éléments. Sur un élément de longueur , seules deux fonctions chapeau sont non nulles, celles de ses deux nœuds, et leurs dérivées y valent et . Les quatre intégrales forment la
et la matrice globale s'obtient en ajoutant chaque aux lignes et aux colonnes des deux nœuds de l'élément. Un nœud partagé par deux éléments reçoit deux contributions. Pour la barre, le même calcul donne à la place de : c'est la raideur d'un ressort de longueur , et l'assemblage n'est rien d'autre que la mise en série de ressorts. Le chapitre 4 dérivera (1.17) et le vecteur des charges élémentaire proprement, sur l'élément de référence.
Cette observation se généralise et elle est importante. Sur un maillage uniforme, la matrice des éléments finis linéaires est exactement fois la matrice (1.11) des différences finies; les deux méthodes ne diffèrent que par la façon de former le second membre. Avec — ce qu'on appellera une charge nodale — on retrouve les différences finies à l'identique. Avec , calculé exactement, on obtient pour le problème modèle des valeurs nodales , quel que soit . Ce n'est pas un hasard propre à : c'est une propriété des éléments linéaires pour l'opérateur en dimension 1, dont le chapitre 4 donnera la raison. Elle ne se généralise pas à la dimension 2, et l'erreur, elle, ne disparaît pas: elle .
Le programme suivant, qui réutilise resoudre, assemble la matrice élément par élément, comme dans l'exemple 1.4, et vérifie cette exactitude nodale pour plusieurs maillages. Pour , on utilise la valeur exacte , que l'exercice 1.5 vous fera établir.
from math import pi, sin, cos
def elements_finis(n):
"""Elements lineaires sur n elements egaux; u[i] contient u_i, i = 0..n."""
h = 1.0 / n
K = [[0.0] * (n + 1) for _ in range(n + 1)]
for e in range(n): # boucle sur les elements
noeuds = [e, e + 1
2 1.2e-16
4 3.3e-16
8 2.2e-16
16 1.1e-15
32 1.2e-14
L'erreur nodale reste au niveau de la précision machine; elle grandit légèrement avec , parce que la matrice devient moins bien conditionnée — nous y reviendrons dans la section sur les sources d'erreur. Les quatre lignes de la boucle sur les éléments sont l'assemblage, et elles sont le cœur de tout programme d'éléments finis, du plus simple au plus gros logiciel commercial: une boucle sur les éléments, une petite matrice élémentaire, et un += dans la grande.
Cette fonction assemble la matrice de rigidité complète, de taille (n+1) × (n+1), pour un maillage dont les nœuds x_0, ..., x_n ne sont pas forcément équidistants. Elle contient l'erreur d'assemblage la plus fréquente: elle écrase la contribution d'un élément au lieu de l'ajouter. Corrigez-la. Pour les nœuds 0; 0,25; 0,5; 1, le programme doit afficher les quatre lignes de K.
Le moment est venu de voir la méthode fonctionner sur autant de maillages qu'on veut.
Augmentez le nombre d'éléments et regardez où vit l'erreur. Avec la charge intégrée exactement, la ligne brisée passe par la solution exacte à chaque nœud, quel que soit : l'erreur nodale reste au niveau de l'arrondi, et toute l'erreur se loge entre les nœuds. Passez à la charge nodale : on retrouve les différences finies, et les nœuds décollent de la courbe.
L'explorateur assemble et résout le système (1.16) à chaque mouvement du curseur; la solution exacte n'y sert qu'à mesurer l'erreur. Trois lectures s'imposent. D'abord, avec la charge exacte, l'erreur nodale reste inférieure à pour tout : la ligne brisée passe par la courbe à chaque nœud. C'est l'invariant de la figure. Ensuite, l'erreur maximale sur , qui est atteinte entre deux nœuds, vaut pour , pour et pour : elle est divisée par environ 4 quand double, comme l'erreur d'interpolation d'une fonction régulière par une ligne brisée. , l'erreur en énergie — l'écart des , mesuré par — ne fait que se diviser par 2: elle vaut pour et pour . La dérivée d'une ligne brisée est une fonction en escalier, et elle approche moins bien que la ligne brisée n'approche . Cette perte d'un ordre sur les dérivées — donc sur les déformations et les contraintes — est un fait central de la méthode, que les chapitres 4 et 11 rendront précis. Passez enfin à la charge nodale: les nœuds se détachent de la courbe, et l'on retrouve exactement les erreurs du tableau des différences finies.
La démarche d'une analyse
Un calcul par éléments finis réel ne se réduit pas à la résolution de (1.16). Il s'organise en trois phases, que tous les logiciels distinguent dans leur interface et que la figure 1.3 résume.
Le pré-traitement construit le modèle. On décide d'abord de la physique: quelle équation, quelles hypothèses (élasticité linéaire, petits déplacements, régime stationnaire), quelles propriétés de matériaux. On définit ensuite la géométrie, on choisit un type d'élément (barre, poutre, triangle, quadrilatère, linéaire ou quadratique) et l'on maille. On impose enfin les conditions aux limites — appuis, températures imposées — et les charges. C'est la phase où l'ingénieur décide le plus, et donc celle où il se trompe le plus.
La résolution est la partie automatique: calcul des matrices élémentaires, assemblage, prise en compte des conditions aux limites, résolution du système. Pour les modèles industriels, a des centaines de milliers ou des millions de lignes, et la résolution utilise des factorisations creuses ou des méthodes itératives (Analyse numérique, chapitres 3 et 4) dont la matrice symétrique définie positive garantit le bon fonctionnement.
Le post-traitement transforme les degrés de liberté en grandeurs utiles: déformations, contraintes, efforts, flux, réactions d'appui. Il comprend aussi — et c'est la partie qu'on néglige — les contrôles: l'équilibre global est-il respecté (la somme des réactions équilibre-t-elle les charges?), l'ordre de grandeur est-il plausible (comparé à un calcul à la main), le résultat change-t-il quand on raffine le maillage?
Remettez dans l'ordre les étapes d'une analyse par éléments finis d'une barre.
Glissez les éléments pour les mettre dans le bon ordre
- Contrôler l'équilibre global et la sensibilité au maillage
- Calculer les efforts normaux, les contraintes et les réactions
- Imposer les appuis et les charges
- Calculer les matrices élémentaires et les assembler dans
- Choisir le modèle physique: barre élastique linéaire,
- Mailler: placer les nœuds et définir les éléments
- Résoudre
- Définir la géométrie, la section et le matériau
Les sources d'erreur
La figure 1.3 nomme quatre erreurs. Elles n'ont ni la même origine, ni le même ordre de grandeur, ni le même remède, et la première compétence d'un utilisateur d'éléments finis est de savoir laquelle il est en train de regarder.
L'erreur de modélisation
C'est l'écart entre l'ouvrage réel et la solution exacte du problème aux limites choisi. Elle vient des hypothèses: une tige suspendue traitée comme une barre parfaitement droite, un mur traité en une dimension alors que ses angles et ses linteaux font des ponts thermiques, un encastrement supposé parfaitement rigide, un matériau supposé homogène. Elle vient aussi des données: le module d'Young du béton ou la conductivité d'un isolant ne sont connus qu'à quelques pour cent, parfois à quelques dizaines de pour cent. Aucune méthode numérique ne la réduit, et c'est la seule que l'on ne puisse estimer qu'en comparant à des mesures. La comparaison d'un modèle à la réalité s'appelle la validation; le chapitre 11 la distinguera soigneusement de la vérification, qui compare le calcul à la solution exacte du modèle.
L'erreur de discrétisation
C'est l'écart entre la solution exacte du modèle et la solution du problème discret, calculée sans erreur d'arrondi. Elle dépend du maillage et du type d'élément, et elle tend vers zéro quand on raffine, à une vitesse — un ordre — qui se mesure. Pour les éléments linéaires sur le problème modèle avec , les valeurs suivantes sont fixées pour tout le cours et seront démontrées aux chapitres 3, 4 et 11:
| rapport |
|---|
La norme d'énergie , qui vaut ici , mesure l'erreur sur les pentes; la norme mesure l'erreur sur les valeurs, en moyenne quadratique. Les deux seront définies au chapitre 2. La première décroît à l'ordre 1, la seconde à l'ordre 2, et les rapports, calculés, approchent 2 et 4 sans les atteindre. La pratique de l'ingénieur est de : si deux maillages successifs donnent des résultats qui diffèrent peu, l'erreur de discrétisation est probablement petite — probablement, car le chapitre 11 montrera des cas, autour des singularités, où cette règle trompe.
L'erreur d'arrondi
Le système (1.16) est résolu en virgule flottante, et chaque opération est arrondie à près (Analyse numérique, chapitre 1). L'erreur qui en résulte sur la solution est amplifiée par le conditionnement de la matrice (Analyse numérique, chapitre 4), et celui de (1.11) se calcule exactement à partir de ses valeurs propres: . Il croît comme : pour , pour , pour .
L'expérience suivante le rend visible. On résout le schéma (1.8) pour , équations multipliées par , par l'algorithme de Thomas en double précision, et l'on compare l'erreur nodale maximale observée à l'erreur de troncature prédite, :
| erreur observée | |||
|---|---|---|---|
| 10 |
Jusqu'à , l'erreur observée suit exactement la troncature: c'est l'erreur de discrétisation qui domine. À , elle est déjà quatre fois plus grande que prévu, et à , elle a remonté de trois ordres de grandeur: raffiner a dégradé le résultat. C'est l'image, en éléments finis, du compromis troncature–arrondi de la dérivation numérique (Analyse numérique, chapitre 8). La dernière colonne donne la borne pessimiste : l'erreur réelle reste bien en dessous, mais elle croît comme elle. En pratique, en dimension 1, on n'atteint jamais ces maillages; en dimension 3 avec des éléments mal formés, des matériaux de raideurs très différentes ou des unités mal choisies, le conditionnement peut devenir le problème dominant bien plus tôt.
L'erreur d'utilisation
C'est la plus banale et, dans les bureaux d'études, la plus fréquente: une unité mal convertie, un appui oublié ou placé sur le mauvais nœud, une charge appliquée deux fois, un matériau attribué au mauvais groupe d'éléments, un résultat lu à un point qui n'est pas celui qu'on croit. Aucune théorie ne la borne. Elle ne se combat que par des contrôles indépendants: l'équilibre global, un calcul à la main de l'ordre de grandeur, la symétrie quand le problème est symétrique, la déformée tracée et regardée.
Vous modélisez une console avec 4 éléments, puis avec 8 éléments; la flèche calculée à l'extrémité change de 3 %. Quelle erreur cette comparaison permet-elle d'estimer?
La fonction ordres(hs, es) doit renvoyer l'ordre observé entre deux maillages successifs, p = ln(e_k / e_k+1) / ln(h_k / h_k+1). Telle qu'elle est écrite, elle renvoie seulement le rapport des erreurs, ce qui ne vaut l'ordre que pour un rapport de pas particulier et dans une échelle particulière. Corrigez-la. Le programme affiche alors les trois ordres observés des différences finies sur le problème modèle, à trois décimales.
Un peu d'histoire
La méthode des éléments finis a deux racines, l'une mathématique, l'autre structurale, qui se sont développées longtemps sans se reconnaître.
La racine mathématique est variationnelle. Au début du vingtième siècle, Walther Ritz (1909) propose de chercher le minimum d'une énergie parmi les combinaisons d'un petit nombre de fonctions choisies, et Boris Galerkin (1915) formule la variante qui porte son nom; ce sont les méthodes du chapitre 3. Leurs fonctions sont globales — des polynômes ou des sinus définis sur tout le domaine —, ce qui les rend difficiles à adapter à une géométrie compliquée. En 1943, Richard Courant publie dans le Bulletin of the American Mathematical Society un article sur les méthodes variationnelles pour les problèmes d'équilibre et de vibration, où il utilise des fonctions affines par morceaux sur des triangles pour un problème de torsion: c'est, rétrospectivement, l'élément triangulaire linéaire du chapitre 8. L'idée reste alors sans suite pratique, faute de machines pour résoudre les systèmes qu'elle produit.
La racine structurale est matricielle. L'industrie aéronautique des années 1950 doit calculer des ailes en flèche, des structures minces de forme complexe, et dispose des premiers ordinateurs. En 1956, Turner, Clough, Martin et Topp publient dans le Journal of the Aeronautical Sciences une méthode qui découpe la structure en éléments triangulaires, calcule la matrice de rigidité de chacun et les assemble: la méthode des rigidités, étendue des barres aux milieux continus. John Argyris, à Londres puis à Stuttgart, développe à la même époque une formulation matricielle des théorèmes énergétiques des structures. En 1960, Ray Clough emploie l'expression finite element method dans une communication sur l'analyse des contraintes planes; le nom reste.
La jonction des deux racines — la reconnaissance que l'assemblage des ingénieurs est une méthode de Ritz–Galerkin avec des fonctions locales — se fait dans les années 1960. Olgierd Zienkiewicz, à Swansea, en fait une méthode générale pour toute la mécanique des milieux continus, la conduction et les écoulements, et son ouvrage, réédité et augmenté depuis 1967, devient la référence du domaine. Les mathématiciens fournissent dans la décennie suivante la théorie de la convergence (chapitres 3 et 11). Ce cours suit l'ordre logique plutôt que l'ordre historique: la formulation faible d'abord, l'assemblage ensuite.
Synthèse
- Les problèmes de la barre chargée axialement, de la conduction dans un mur et de la membrane tendue sont des problèmes aux limites: une équation différentielle d'ordre 2 dans le domaine, et des conditions sur le bord, soit sur la valeur de l'inconnue (Dirichlet: déplacement, température), soit sur le flux associé (Neumann: effort, flux de chaleur).
- L'équation de la barre combine l'équilibre d'une tranche, , et la , ; par adimensionnement, la barre uniforme fixée aux deux bouts devient le sur , .
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
Un mur plan d'épaisseur et de conductivité est le siège d'une source de chaleur volumique (en W/m³). On note la température et la densité de flux de chaleur dans la direction .
- Écrire le bilan d'énergie stationnaire d'une tranche de section unité, et en déduire .
Une barre d'acier de longueur m est encastrée en et chargée par une force kN à son extrémité libre. Sa section décroît linéairement de à l'encastrement jusqu'à à l'extrémité: . On prend GPa et l'on néglige le poids propre.
On résout le problème modèle (1.7) par le schéma (1.8) avec , donc et deux inconnues , .
On reprend les deux éléments finis linéaires de l'exemple 1.4, sur le problème modèle, avec la même matrice réduite .
- Pour , calculer et . Comparer à la charge nodale .
On considère le problème modèle avec sur un maillage uniforme de intervalles, , . On note le vecteur de composantes , .
Références
- Zienkiewicz, O. C., Taylor, R. L. et Zhu, J. Z., The Finite Element Method: Its Basis and Fundamentals, Butterworth-Heinemann, chap. 1 à 3 (problèmes aux limites, discrétisation, historique de la méthode).
- Fish, J. et Belytschko, T., A First Course in Finite Elements, Wiley, chap. 1 à 3 (barres, conduction en une dimension, différences finies et éléments finis comparés).
- Hughes, T. J. R., The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover, chap. 1 (le problème modèle en une dimension).
- Dhatt, G., Touzot, G. et Lefrançois, E., Méthode des éléments finis, Hermès / Lavoisier (en français; démarche d'une analyse et programmation).
- Cook, R. D., Malkus, D. S., Plesha, M. E. et Witt, R. J., Concepts and Applications of Finite Element Analysis, Wiley (modélisation, sources d'erreur et contrôles des résultats).
- Courant, R., «Variational methods for the solution of problems of equilibrium and vibrations», Bulletin of the American Mathematical Society, 1943; Turner, M. J., Clough, R. W., Martin, H. C. et Topp, L. J., «Stiffness and deflection analysis of complex structures», Journal of the Aeronautical Sciences, 1956; Clough, R. W., «The finite element method in plane stress analysis», communication à la deuxième conférence de l'ASCE sur le calcul électronique, 1960.