Beruflich Dokumente
Kultur Dokumente
lments finis
Antoine Legay
Cnam-Paris
2016-2017
Table des matires
I Introduction 1
I.1 Outil daide au dimensionnement 1
I.2 Du rel au modle mathmatique mcanique 2
I.2.1 Problme rel 2
I.2.2 Modle mathmatique mcanique 2
I.3 Espace vectoriel associ au modle mathmatique mcanique 3
I.3.1 Ensemble des champs de dplacements 3
I.3.2 Espace vectoriel des champs de dplacements 4
I.3.3 Dfinitions et proprits dun espace vectoriel 5
I.4 Vers le modle lments finis 7
I.5 Les sources derreurs 7
I.5.1 Erreur entre le problme rel et le modle mathmatique 7
I.5.2 Erreur entre le modle mathmatique et le modle lments finis 8
I.6 lment fini de barre pour le calcul des treillis 8
I.6.1 Introduction llment de barre 8
I.6.2 quilibre de llment barre 9
I.6.3 tude de deux barres 10
I.6.4 lment barre pour le calcul des treillis plans 13
II Problme de rfrence 15
II.1 Rappel de mcanique des milieux continus 15
II.2 Champ de dplacement cinmatiquement admissible 17
II.2.1 Espace vectoriel des champs de dplacements 17
II.2.2 Espace des champs de dplacements cinmatiquement admissibles 17
ii
VI Problme discrtis 47
VI.1 Dfinition de lerreur de discrtisation 47
VI.2 criture du problme discrtis 47
VI.2.1 Rappel des diffrents espaces introduits 47
VI.2.2 Solution en dplacement 48
VI.2.3 criture matricielle du problme discrtis 49
VI.3 Rsolution du problme discrtis 50
VI.3.1 Sparation des quations 50
VI.3.2 Rsolution en dplacements 51
VI.3.3 Ractions aux appuis 51
VI.3.4 Systme matriciel complet 52
VI.3.5 Blocage des mouvements de solides rigides 52
iii
111
000 111
000
000
111 000
111
000
111 2 variables 000
111 3 variables
000
111 000
111
000
111 000
111
1 variable 000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
000
111 000
111
a) poutre b) coque c) tridimensionnel
le champ de dplacement
u est dfini comme :
u rgulier : R3 R3
M 7
v (M )
On pose lensemble V des champs de dplacement suffisamment rguliers dfinis de vers
R : 3
(
v rgulier : R3 R3
)
V=
M 7
v (M )
La notion de fonction suffisamment rgulire nest pas dtaille ici, cela fait appel des
proprits mathmatiques des fonctions qui permettent de les driver, de les intgrer, et plus parti-
culirement dintgrer le carr de leurs drives. Ces espaces sont appels espace de Sobolev ou
espace de Hilbert, il est ncessaire de se placer dans ces espaces pour que les dveloppements
effectus dans ce cours soient corrects dun point de vue mathmatique. Cependant, ce cours ayant
pour vocation dexpliquer les choses simplement, nous parlerons de fonction suffisamment r-
gulire dans la suite.
u ,
v V,
w =
u +
v
o
w V vaut
M ,
w (M ) =
u (M ) +
v (M ).
Lopration externe de multiplication avec R est dfinie comme :
u V et a R,
w =a
u
o
w V vaut
M ,
w (M ) = a
u (M ).
Llment neutre 0 V de V est le champ de vecteurs qui a tout point M associe le vecteur
nul de R3 .
Preuve On vrifie aisment que :
u,v ,
w V
et a, b R, on a :
u +
v =
v +
u V
u +( v + w ) = ( u +
v )+
w
u +( u ) = 0 V ( u dsigne loppos de
u)
u+0 = u
V
a (
u +
v)=a u +a
v
(a + b) u = a u +b u
(ab)
u = a (b
u)
1 u = u
I.3 Espace vectoriel associ au modle mathmatique mcanique 5
F =(
u 1,
u 2 , ...,
un )
Tous vecteur
v V scrivant sous la forme
a1
u 1 +a2
u 2 +...+an
un
2 (b)
I.4 Vers le modle lments finis 7
la gomtrie,
les liaisons,
le chargement,
le matriau,
les quations que doivent satisfaire les variables du problme (en particulier le champ de
dplacement)
o chaque vecteur
i appartient V. La dimension de V h est le nombre de vecteurs que lon se
donne, ici n.
Tout vecteur de V h scrit alors comme une combinaison linaire des vecteurs de la base :
a1
1 +a2
2 +...+an
n
Lorsque la structure est construite, puis place dans son environnement, cette solution est
partiellement accessible par des mesures (jauges de dformations, matriau photolastique,...) ;
Dans tous les cas, lerreur de modle est difficilement quantifiable, elle doit pourtant tre matrise
et justifie au mieux par le concepteur.
8 Introduction
Figure I.3 Liens entre le rel, le modle mcanique et le modle lments finis.
Figure I.4 Exemple de calcul par lments finis dun pylne lectrique (lments barres).
1 2
x
Avant dformation :
u1 u2
O
Aprs dformation :
F1
x F2
x
Le mme lment de barre est trait de faon plus cohrente avec le cours dans le chapitre XI.
ou bien
n o n o
KO = ext. 1 N = F1
ES ES
N= l N = (u2 u1 )
l l
10 Introduction
La matrice " #
ES 1 1
k=
l 1 1
est appelle la matrice de rigidit de llment barre.
Exercice I.2 On prend une poutre encastre gauche (u1 = 0), et on applique un effort F lextrmit droite
(F2 = F ). Le systme matriciel rsoudre est le suivant :
ES 1 1 u1 F1
=
l 1 1 u2 F2
F1 + N1 = 0 N1 = F1
I.6 lment fini de barre pour le calcul des treillis 11
E1 , S1 E2 , S2
u1
x u2
x u3
x
tat dform
1 I 2 II 3
x 1 N1
F1
x
N1
x I N1
x
x 2 N2
N1
x
F2
x
N2 x II N2
x
x 3 F3
N2
x
quilibre du nud 2
F2 N 1 + N 2 = 0 N 1 N 2 = F2
quilibre du nud 3
F3 N2 = 0 N2 = F3
lment I :
E1 S1
N1 = (u2 u1 )
L1
lment II :
E2 S2
N2 = (u3 u2 )
L2
En remplaant dans les expressions des quilibres des nuds, on a les trois quations sui-
vantes :
E 1 S1
(u2 u1 ) = F1
L1
E1 S1 E2 S2
(u2 u1 ) (u3 u2 ) = F2
L1 L2
E 2 S2
(u3 u2 ) = F3
L2
12 Introduction
Cette opration est lopration dassemblage des matrices de rigidit lmentaires, la matrice
K est appele matrice de rigidit de la structure, le vecteur Q est le vecteur des inconnues de
dplacements et le vecteur F est le vecteur des forces extrieures :
KQ = F
u1 u2 u2 u3
" # " #
k1 = k1 k1 u1 et k2 = k2 k2 u2 .
k1 k1 u2 k2 k2 u3
On range ensuite dans la matrice de rigidit K de la structure chaque terme des deux matrices
la ligne et la colonne correspondante :
u1 u2 u3
k1 k1 0 u1
K =
k1 k1 + k2 k2 u2 .
0 k2 k2 u3
Si le dplacement est connu en un nud alors la force est inconnue, si la force est connue alors le
dplacement est inconnu.
La troisime tape est la rsolution du systme dquations complet afin de dterminer toutes
les inconnues
k1 k1 0 0 F1
u2 = 0
k1 k2 + k1 k2
0 k2 k2 u3 F
I.6 lment fini de barre pour le calcul des treillis 13
Y
u2Y
x
2
u2X
u1Y
X
1
u1X
Une fois toutes les inconnus trouves, on peut calculer les efforts normaux dans chaque barre :
E 1 S1
N1 = (u2 u1 )
l1 |{z}
=0
et
E2 S2
N2 = (u3 u2 ).
l2
u = uX cos + uY sin .
En notant uX
1 et u1 les dplacements suivant X et Y du nud 1 de la barre dans le repre global,
Y
u1 = uX Y
1 cos + u1 sin .
u2 = uX Y
2 cos + u2 sin .
soit
q = TQ
o Q est le vecteur des inconnus de dplacements aux nuds de llment dans le repre global
et T est la matrice de transformation passant du repre global au repre local.
Il est possible dcrire les mmes relations pour les forces extrieures agissant aux nuds de
llment :
x = F1X X + F1Y Y et F 2 = F2
F 1 = F1
x = F2X X + F2Y Y
donc
F1X = F1
x X = F1 cos et F1Y = F1
x Y = F1 sin
de mme,
F2X = F2 cos et F2Y = F2 sin
ce qui scrit sous forme matricielle
F1X cos 0
" #
FY sin 0 F
1 1
X =
F 0 cos F2
2
F2Y 0 sin
| {z }
=TT
La matrice qui apparait pour les forces est la transpose de celle prsente dans les relations des
dplacements. Finalement, lquilibre de la barre crit en fonction des dplacements et des forces
dans le repre local la barre
" # " #" #
F1 ES 1 1 u1
=
F2 l 1 1 u2
devient en fonction des dplacements et des forces dans le repre global
FX cos 0 uX
1 " #" # 1
FY sin 0 ES 1 1 cos sin 0 0 uY
1 1
X = X
F
2 0 cos
l 1 1 0 0 cos sin u
2
F2Y 0 sin uY2
Tous calculs faits, lquilibre de la barre en deux dimensions scrit
cos2 cos sin cos2 cos sin uX
1 F1X
ES
cos sin sin2 cos sin sin2 uY
1
FY
1
X = X
l
cos2 cos sin cos2 cos sin u
2
F
2
cos sin sin2 cos sin sin2 uY2 F2Y
| {z }
=kg
u F
ud
f
d
F
Figure II.1 Problme de rfrence en statique.
16 Problme de rfrence
et
n = F d , M F
avec
n qui est le vecteur normal extrieur F .
3. La relation de comportement :
= C(
u)
1
(
u)= Grad(
u ) + GradT (
u) .
2
Pour un matriau isotrope, les coefficients dlasticit se rduisent deux constantes indpen-
dantes (, ) ou (E, ) o et sont Les coefficients de Lam, E est le module dYoung et est
le coefficient de Poisson. La relation de comportement devient la loi de Hooke, soit
= 2 + T r() 1
o 1 dsigne la matrice identit. Les coefficients de Lam (, ) sont relis (E, ) par
E E
= et = .
(1 + )(1 2) 2(1 + )
1+
= T r() 1 .
E E
ou encore Z
div + f d = 0
M , div + f = 0
Lquilibre en moment de permet de montrer que loprateur des contraintes est symtrique.
II.2 Champ de dplacement cinmatiquement admissible 17
o la base est prcise en indice. On utilise la notation indicielle vi pour manipuler les compo-
santes de v. Avec les conventions classiques de notations indicielles, on peut crire
3
v (M ) =
X
vi (M )
ei
i=1
ou encore
v (M ) = vi (M )
ei
avec la convention de sommation implicite.
Cet espace nest pas un espace vectoriel car il ne contient pas llment neutre, sauf dans le cas
particulier o
ud = 0.
On dit que
u est cinmatiquement admissible si et seulement si
u U.
Par soucis de simplicit, la loi interne est note + dans la suite, la loi externe est note sans
symbole.
sym.
On peut utiliser une base de M3,3 (R), par exemple la base canonique eij , pour reprsenter
un lment de C. La reprsentation matricielle de dans la base canonique de R3 est
11 12 13
=
21 22 23
31 32 33 (
e
e 2 ,
e 3)
1,
sym.
qui scrit dans la base canonique de M3,3 (R) :
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 +22 0 1 0 +33 0 0 0 +23 0 0 1 +32 0 0 0
= 11
0 0 0 0 0 0 0 0 1 0 0 0 0 1 0
| {z } | {z } | {z } | {z } | {z }
=e11 =e22 =e33 =e23 =e32
0 0 1 0 0 0 0 1 0 0 0 0
+13 0 0 0 +31 0 0 0 +12 0 0 0 +21 1 0 0
0 0 0 1 0 0 0 0 0 0 0 0
| {z } | {z } | {z } | {z }
=e13 =e31 =e12 =e21
= i ei
II.3 Champ de contrainte statiquement admissible 19
o la base est prcise en indice. Cette notation est appele la notation de Voigt. Dans la suite, un
lment de C est not lorsque lon utilise sa reprsentation dans la base (ei ). Autrement dit,
lorsque lon utilise la notation de Voigt ; on ne prcise alors plus la base, elle est implicite :
11 1
22 2
33 3
=
=
23 4
13 5
12 6
Exercice II.2 crire loprateur des contraintes en notations de Voigt dans le cas des contraintes planes.
Solution :
Dans le cas des contraintes planes dans le plan (
e 1,
e 2 ), on a
33 = 13 = 23 = 0
donc,
11 12 0
= 12 22 0
0 0 0 (
e 1, e 2, e 3)
soit aussi
1 0 0 0 0 0 0 1 0
= 11 0 0 0 + 22 0 1 0 + 12 1 0 0
0 0 0 0 0 0 0 0 0
En criture de Voigt, loprateur des contraintes devient
11
= 22
12
Exercice II.3 crire loprateur des contraintes en notations de Voigt dans le cas dun problme axisymtrique.
= C(
u)
avec
1
(
u)= Grad(
u ) + GradT (
u)
2
La solution du problme crit en dplacement devient :
Le champ de dplacement
u U est solution du problme si et seulement si C(
u)S
Exercice II.4 tablir lensemble des champs de dplacements cinmatiquement admissibles, ainsi que lensemble
des champs defforts normaux statiquement admissibles dune barre en traction (x [0, L]), encastre en x = 0,
dont lquation dquilibre est
N (x) + p = 0 avec N (L) = F
o N est leffort normal, p est une charge linique et F est une force applique en x = L. On rappelle que le
dplacement u(x) est reli leffort normal par la relation
N (x)
u (x) =
ES
o E est le module dYoung et S est laire de la section.
En dduire lcriture de la solution du problme.
III criture variationnelle
ij,j ui + fi ui = 0 M et ij nj = Fid M F
Soit Z Z
ij,j ui d + fi ui d = 0 et ij nj = Fid M F
En intgrant par partie, on a
Z Z Z
(ij ui ),j d ij ui,j d + fi ui d = 0 et ij nj = Fid M F
Ud
x = L Problme
x=0
F
Ud
x = L Solution
x=0
F
Exemples de champs V
Exemples de champs U
Exemples de champs U0
On peut utiliser les notations de Voigt pour crire plus simplement la formulation variationnelle
propose. La notation de Voigt de est donne par
11 1
22 2
33 3
=
=
23 4
13 5
12 6
La notation de Voigt de est un peu diffrente car lon souhaite que la somme des produits terme
terme de par donne exactement ij ij . Autrement dit, on souhaite que T = ij ij en
utilisant les notations habituelles de multiplication et de transposition des matrices. En dtaillant,
on a
ij ij = 11 11 + 22 22 + 33 ij + 223 23 + 213 13 + 212 12
1 0 0 0 0 0 11
0 1 0 0 0 0
22
0 0 1 0 0 0
33
ij ij = [ 11 22 33 23 13 12 ]
0 0 0 2 0 0 23
0 0 0 0 2 0
13
0 0 0 0 0 2 12
La matrice qui intervient ci-dessus reprsente loprateur produit doublement contract entre
et . Afin dviter de faire intervenir cette matrice dans la suite, on note loprateur des dforma-
tions en notations de Voigt sous la forme :
11 1
22 2
33 3
=
=
223 1
213
2
212 3
= C.
On a
11 + 2 0 0 0 11
22
+ 2 0 0 0
22
33 + 2 0 0 0 33
=
=
23 0 0 0 0 0 223
13
0 0 0 0 0
213
12 0 0 0 0 0 212
| {z }
=C
Exercice III.1 Montrer que dans le cas des contraintes planes, la loi de comportement scrit en notations de Voigt
sous la forme suivante :
11 1 0 11
E
= 22 = 2
1 0 22 = C
1 1
12 0 0 2
212
Exercice III.2 Montrer que loprateur diffrentiel D reliant les dformations au dplacement dans le cas dun
problme plan vaut :
11 x
0
ux
= 22 = 0 y = Du
uy
212 y x
Exercice III.3 Dans le cas dun problme crit en repre cylindrique, le dplacement
u est not
u = u
er + v
e + w
z.
Dans le cas dun problme axisymtrique, les quantits ne dpendent pas de et v est nul. Montrer que lcriture de
D se simplifie et devient
r
0
rr 1
r 0
u
= =
zz
= Du .
0
w
2rz z
z r
ou bien Z Z Z
(Du)T C Du d uT F d dS uT f d = 0
F
26 criture variationnelle
Exercice III.4 tablir la formulation variationnelle en dplacement dune barre en traction (x [0, L]) dont
lquation dquilibre est
N (x) + p = 0 avec N (L) = F
o N est leffort normal, p est une charge linique et F est une force applique en x = L. La barre est encastre en
x = 0. On rappelle que le dplacement u(x) est reli leffort normal par la relation
N (x)
u (x) =
ES
o E est le module dYoung et S est laire de la section.
o Ri sont les ractions des liaisons sur le bord u . Pour un champ de dplacement cin-
matiquement admissible u U on a :
Z Z Z
W(
u)= ui fi d + ui Fid dS + udi Ri dS
F u
Ep (
u ) = ED (
u ) W(
u)
Preuve On suppose que
u est solution du problme. Lorsque
u varie dune petite variation u avec u U0 ,
lnergie de dformation varie de ED :
Z
1
ED (
u + u) = Cijkl ij (
u + u) kl (
u + u) d
2
Z Z
1 1
= Cijkl ij (
u ) kl (
u ) d + Cijkl ij (u) kl (
u ) d
2
2
Z Z
1 1
+ Cijkl ij (
u ) kl (
u ) d + Cijkl ij (u) kl (
u ) d
2
2
| {z }
ngligeable
Le dernier terme est ngligeable devant les trois autres termes. tant donne la symtrie de la loi de comportement
(Cijkl = Cklij ), le deuxime et le troisime terme sont gaux, lexpression de ED (
u + u) devient
Z Z
1
ED (
u + u) = Cijkl ij (
u ) kl (
u ) d + Cijkl ij (
u ) kl (u) d
2
| {z } | {z }
=ED (
u) =ED
ED (
u + u) = ED (
u ) + ED
do par identification on a
Z
ED = Cijkl ij (
u ) kl (u) d
Lorsque
u U varie de u avec u U0 , le travail des forces extrieures varie de W :
Z Z Z Z Z
W(
u + u) = ui fi d + ui Fid dS + udi Ri dS + ui fi d + ui Fid dS
F u F
| {z } | {z }
=W(
u) =W
W(
u + u) = W(
u ) + W
avec Z Z
W = ui Fid dS + ui fi d
F
cest dire
u U0 , ED W = 0
soit aussi
u U0 , Ep = 0
L: V R Z Z Z
v 7 L(
v)=
v f d +
v F d dS +
v R dS
F u
a: V V R Z
u , v 7 a( u , v ) = T (
u )C(
v ) d
u V est solution du problme
Thorme III.2
u U et v U0 , a(
u ,
v ) = L(
v)
On remarque que
Z
1 1 1 2
E D (
u)= T (
u ) d = a(
u )C(
u ,
u)= k
u kE
2 2 2
IV Espace dapproximation E.F.
IV.1 Introduction
Le problme de statique linaire consiste chercher la solution en dplacement
u dans un espace
de dimension infinie V. Sauf quelques cas particuliers, la solution exacte, note
u ex nest pas
accessible.
Lide de la mthode des lments finis est de chercher une solution approche, note
u h (h
fait rfrence la taille dun lment fini) dans un espace de dimension finie n not V h .
Lobjet de ce chapitre est de prsenter la construction de cet espace vectoriel.
Plusieurs fonctions de V sont reprsentes sur la figure IV.1 ; il en existe une infinit.
Lobjectif est de construire un sous-espace vectoriel V h de dimension finie n de V. Pour
construire ce sous-espace, on peut se donner n fonctions simples i (x) V avec i [ 1, 2, .., n ].
Ces n fonctions engendrent un sous-espace vectoriel de V. Si elles sont linairement indpen-
dantes, elles forment alors une base de V h . Elles sont appeles les fonctions de base (ou fonction
de forme) de lespace dapproximation V h . Pour les construire simplement, on dcoupe linter-
valle [A, B] en n 1 intervalles appels lments. On introduit les n points xi [A, B] tels que
x1 = A et xn = B, ces points sont appels les nuds.
30 Espace dapproximation E.F.
A B
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
La figure IV.2 prsente un intervalle [A, B] dcoup en 4 lments par 5 nuds. La fonction
i est associe au nud i, elle vaut 1 en ce nud et 0 aux autres. Elle sannule dans les lments
qui ne sont pas directement adjacents (ou connects) au nud i. Sur lexemple propos, comme
on a choisit 5 nuds, on construit 5 fonctions i . Ces 5 fonctions engendrent un sous-espace
vectoriel V h de lespace vectoriel V de dimension infinie. On voit clairement que les fonctions
sont linairement indpendantes, cest dire que lon ne peut pas en obtenir une partir des
autres ; ces fonctions forment donc une base de V h qui est alors de dimension 5. Dans le cas plus
gnral de n points, le sous-espace vectoriel V h peut tre crit comme :
V h = vect {1 , 2 , ...n }
Tout lment (vecteur) de V h scrit comme une combinaison linaire des fonctions i :
uh = 1 1 + 2 2 + ...n n
uh = u1 1 + u2 2 + ...un n
On donne sur la figure IV.3 un exemple de combinaison linaire des fonctions de base avec 5
points pour les valeurs suivantes :
u1 = 1 ; u2 = 0, 5 ; u3 = 2 ; u4 = 1, 5 ; u5 = 3
32 Espace dapproximation E.F.
Afin de simplifier les critures, on note U la reprsentation de uh dans la base des fonctions de
forme i ; la base tant implicite :
u1
u2
U = ..
.
un
En notant la matrice contenant les fonctions de forme sous la forme :
= [ 1 2 n ]
Exercice IV.1 Dessiner les 6 fonctions de base i construites sur le maillage suivant. Tracer la fonction uh asso-
cie u1 = 1, 5 ; u2 = 0, 5 ; u3 = 1 ; u4 = 1 ; u5 = 2 ; u6 = 0.
1
bc bc bc bc bc bc
x1 = A x6 = B
u(x, y)
u(x, y)
y
x
(x, y)
Figure IV.4 Une fonction deux variables dfinie sur un domaine du plan.
Figure IV.5 Pavage dun domaine du plan avec des triangles 3 nuds.
avec plusieurs lments et chaque lment est construit partir de plusieurs nuds (3 pour des
triangles 3 nuds).
On associe chaque nud du maillage une fonction de base i (x, y). Le nombre de nuds n
du maillage donne alors la dimension de V h . La fonction de base associe un nud stend sur
tous les lments en contact avec ce nud, elle est dfinie par morceaux. Les rgles de construc-
tion des fonctions de base i sont :
i vaut 1 au nud i : i (xi , yi )=1 ;
i vaut 0 pour tous les autres nuds j 6= i : i (xj , yj )=0 ;
i vaut 0 dans tous les lments non connects directement au nud i ;
i est continue et drivable.
Sur lexemple de la figure IV.6, la fonction de forme du nud 1 est reprsente. Elle vrifie
toutes les rgles prcdentes.
La fonction de base i (x, y) est donc construite par morceaux. Pour lexemple des triangles
3 nuds utilis ici, chaque portion de i (x, y) est un plan passant par 3 points.
Lespace V h peut alors tre dfinie comme lespace engendr par les fonctions i :
V h = vect {1 , 2 , ...n }
Autrement dit, tout lment uh V h scrit sous la forme dune combinaison linaire des i :
uh = 1 1 + 2 2 + ...n n
34 Espace dapproximation E.F.
2 3 1
6
1
y
1
0
x 7
4 5
Figure IV.6 Fonction de forme associe un nud.
uh = u1 1 + u2 2 + ...un n
Afin de simplifier les critures, on note U la reprsentation de uh dans la base des fonctions de
forme i ; la base tant implicite :
u1
u2
U = ..
.
un
En notant la matrice contenant les fonctions de forme sous la forme :
= [ 1 2 n ]
2 4
y 1
x
3 5
IV.4 Fonction vectorielle deux variables 35
V h = vect {1 (x, y)
e 1 , 1 (x, y)
e 2 , . . . n (x, y)
e 1 , n (x, y)
e 2}
ou encore
uh = U
avec " #
1 0 2 0 . . . n 0
=
0 1 0 2 . . . 0 n
o est appele la matrice des fonctions de forme et U est la reprsentation de uh (x, y) dans la
base des fonctions de forme :
u1
v1
..
U =
.
un
vn
Figure IV.7 Maillage dun domaine tridimensionnel avec des ttradres 4 nuds.
La fonction i (x, y, z) est construite par morceaux de faon valoir 1 au nud i, zro aux
autres nuds et zro dans tous les lments non connects au nud i. Le dtail de ces fonctions
est donn dans la suite du cours.
Lespace V h est alors dfini comme lespace engendr par les fonctions i (x, y, z) :
La dimension de V h est n. Autrement dit, tout lment uh V h scrit sous la forme dune
combinaison linaire des i (x, y, z) :
o uh (xi , yi , zi ) = ui
On peut crire plus simplement uh dans la base des i comme :
u1
u2
uh =
..
.
un (i )
Afin de simplifier les critures, on note U la reprsentation de uh dans la base des fonctions de
forme i ; la base tant implicite :
u1
u2
U = ..
.
un
IV.6 Fonction vectorielle trois variables 37
V h = vect {1 (x, y, z)
e 1 , 1 (x, y, z)
e 2 , 1 (x, y, z)
e 3, . . . ,
(x, y, z) e , (x, y, z) e , (x, y, z)
n
1 n
2 n
e } 3
ou encore
uh = U
avec
1 0 0 . . . n 0 0
=
0 1 0 . . . 0 n 0
0 0 1 . . . 0 0 n
o est appele la matrice des fonctions de forme et U est la reprsentation de uh dans la base
des fonctions de forme :
u1
v
1
w1
.
..
U =
u
n
vn
wn
V Construction de la base E.F.
Les fonctions de forme des nuds connects llment e forment un sous-espace vectoriel de
Ve de dimension finie gale au nombre de nuds n connects llment e. On peut dfinir cet
espace Veh comme tant engendr par les n fonctions i .
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
1
bc bc bc bc bc
x1 = A x2 x3 x4 x5 = B
La dimension de Veh est 2. Une fonction uhe appartenant Veh scrit comme une combinaison
linaire de a et b :
x [a, b], uhe (x) = ua a (x) + ub b (x)
On cherche crire les fonctions de forme comme des polynmes en x. La base canonique poly-
nomiale contenant 2 termes est [ 1 x ] : On peut alors r-crire Veh comme un espace engendr par
V.1 Construction des fonctions de forme dans un lment 41
1
1 2 2 3 3 4 4 5
bc bc bc bc bc bc bc bc
x1 = A x2 x2 x3 x3 x4 x4 x5 = B
bc bc
a b
la base [ 1 x ] :
Veh = vect {1, x}
xb bx xa xa
a (x) = = et b (x) = =
ab l ba l
avec l = b a. En faisant un changement dorigine sur laxe x tel que x = x a, on a :
x x
a (x ) = 1 et b (x ) =
l l
Ces 2 fonctions sont traces sur la figure V.4.
1
x
a (x ) = 1 l
x
b (x ) = l
bc bc
x
0 l
Aa =
yb Ab =
b
M
e2
Ac =
a
e1
xb
Figure V.5 Triangle 3 nuds.
La dimension de Veh est 3. Une fonction uhe appartenant Veh scrit comme une combinaison
linaire de a , b et c :
On cherche crire les fonctions de forme comme des polynmes deux variables x et y. Comme
la dimension de Veh est 3, on cherche une base de Veh ayant trois termes.
Le choix de la base [ 1 x y ] contenant 3 termes conduit un lment 3 nuds, cest dire
un triangle 3 nuds. La base est symtrique, on peut changer x et y sans changer la base. Des
bases plus compltes sont possibles, ces lments sont dtaills dans la suite.
Finalement, le passage de la base canonique polynmiale [ 1 x y ] la base des fonctions de
forme [ a b c ] est un changement de base. Il suffit dcrire la base canonique dans la base
des fonctions de forme pour trouver les expressions de a , b et c :
x, y e , 1 = 1a + 1b + 1c
x, y e , x = xa a + xb b + xc c
x, y e , y = ya a + yb b + yc c
c
1
a
1 b
c c 0 c
1
0
a a 0 a
b b b
Figure V.6 Fonctions de forme du triangle 3 nuds.
On peut rsoudre ce systme par la mthode de Cramer, il faut alors calculer les quantits sui-
vantes :
1 1 1 1 1 1
2A = det
xa xb xc
2Aa = det x x b xc
ya yb yc y y b yc
1 1 1 1 1 1
2Ab = det
xa x x c
2Ac = det
xa xb x
ya y y c ya yb y
o A est laire du triangle passant par les 3 nuds, Aa est laire du sous-triangle M bc, Ab est laire
du sous-triangle M ac et Ac est laire du sous-triangle M ab (Fig. V.5). La solution du systme
scrit :
Aa (x, y) Ab (x, y) Ac (x, y)
a (x, y) = b (x, y) = c (x, y) =
A A A
Les fonctions sont traces sur la figure V.6.
Exercice V.1 Donner les expressions des fonctions de forme associes au triangle 3 nuds (a, b et c) suivant.
Tracer ces fonctions.
h
x
a b
h
44 Construction de la base E.F.
e3
c
za
a
ya
e2
b
xa
e1
Veh = vect {a (x, y, z), b (x, y, z), c (x, y, z), d (x, y, z)}
La dimension de Veh est 4. Une fonction uhe appartenant Veh scrit comme une combinaison
linaire de a , b , c et d :
On cherche crire les fonctions de forme comme des polynmes trois variables x, y et z.
Comme la dimension de Veh est 4, on cherche une base de Veh ayant quatre termes. Le choix de la
base [ 1 x y z ] contenant 4 termes conduit un lment 4 nuds, cest dire un ttradre
4 nuds. La base est symtrique, on peut changer x, y et z sans changer la base. Des bases plus
compltes sont possibles, ces lments sont dtaills dans la suite.
En appliquant la mme mthode que prcdemment pour trouver les fonctions de base dans
llment, on abouti au systme suivant qui permet de trouver les fonctions de forme dans un
lment :
1 1 1 1 a (x, y, z) 1
x xb xc xd
b (x, y, z)
x
a
=
ya yb yc yd
c (x, y, z)
y
za zb zc zd d (x, y, z) z
La solution de ce systme est
1
i (x, y, z) = (i + i x + i y + i z)
6v
avec les coefficients calculs comme les dterminants suivants :
xj xk xl 1 1 1
p+1 p
i = (1) yj yk yl i = (1) yj yk yl
zj zk zl zj zk zl
V.2 Table de connectivit et coordonnes des nuds 45
i j k l p i j k l p i j k l p i j k l p
a b c d 1 b a c d 0 c a b d 1 d a b c 0
Tableau V.1 Permutations pour les fonctions de forme de llment ttradre 4 nuds
.
2 3
1
1 4
2 5
3
4 7
y 6
5
x
Figure V.8 Exemple de maillage.
1 1 1 1 1 1
p+1 p
i = (1) xj xk xl i = (1) xj xk xl
zj zk zl yj yk yl
o v est le volume de llment et en utilisant la permutation donne dans le tableau V.1. Le
volume v de llment est donn par le dterminant suivant :
1 1 1 1
1 xa xb xc xd
v=
6 ya yb yc yd
za zb zc zd
Exercice V.2 Donner les expressions des fonctions de forme associes au ttradre 4 nuds (a, b, c et d) suivant.
laide dune chelle de couleur, dessiner les 4 fonctions de forme.
e3
h b
e2
d
h
h a
e1
Les coordonnes des nuds sont donnes dans un tableau dont le nombre de lignes est le
nombre de nuds du maillage (7 ici) et le nombre de colonnes est la dimension de lespace de
modlisation (2 ici, x et y) :
Les algorithmes de construction dun maillage partir dune dfinition gomtrique numrique
de la pice (CAO) ne sont pas dcrits dans ce cours.
Exercice V.3 Tracer le maillage constitu de triangles associ ces coordonnes et cette connectivit :
2 1 2 4 3 0.0 1.0
3 2 5 4 4 1.0 1.0
5 2.0 1.0
VI Problme discrtis
e =
u ex
uh
On remarque que
e V.
On dfinit lerreur en nergie comme la norme nergtique de
e :
e =k
e kE
Cas o
u d 6= 0 Cas o
ud = 0
V V
U0 U0 = U
0 0
U
Vh U0h Uh Vh U0h = U h
Figure VI.1 Diffrents espaces introduits
v h V h , a(
v h,
e)=0
v h U0h , a(
v h,
e)=0
cest dire
v h U0h , a(
v h,
u ex
u h ) = 0 ou encore a(
v h,
u h ) = a(
v h,
u ex )
v U0 , a(
v ,
u ex ) = L(
v)
Vh
e
u ex
uh
uh = U
v h = V et (v h ) = BV
avec
..
.
. . . i 0 0 ... ui
et U =
=
... 0 i 0 ... vi
... 0 0 i ... w
i
.
..
Dans cette dernire expression, on remarque que U et V ne dpendent pas du point M dans le
domaine , ni sur le bord F , on peut donc les sortir des intgrales.
On pose Z
K= B T CB d
et Z Z
F = T F d dS + T f d
F
La matrice K est appele la matrice de rigidit de la structure. Cette matrice reprsente lappli-
cation bilinaire a(, ) introduite prcdemment pour les champs de dplacements lments finis
appartenant V h , autrement dit :
u h U h ,
v h U h , a(
u h,
v h ) = U T KV = V T KU
Le vecteur F V h est appel le vecteur des forces aux nuds. Ce vecteur est la projection dans
V h des forces extrieures la structure, il reprsente lapplication linaire L() pour les champs
de dplacements lments finis appartenant V h , autrement dit :
v h U h , L(
v h) = V T F
V T KU = V T F
Avec ces notations, [l] dsigne lensemble des degrs de liberts libres, [p] dsigne lensemble des
degrs de liberts prescrits.
Un champ de dplacement virtuel
v h U0 scrit
" #
V [l]
V =
0[p]
o F d[l] correspond aux forces appliques sur la structure (connues) et F [p] correspond aux rac-
tions dappuis (inconnues).
On dcompose la matrice de rigidit de la mme faon :
K[ll] K[lp]
K= T
K[lp] K[pp]
o K[ll] correspond aux lignes et colonnes de K des dplacements libres, K[pp] correspond aux
lignes et colonnes de K des dplacements bloqus, K[lp] correspond aux lignes des dplacements
libres et colonnes des dplacements bloqus.
Puisque cette quation est valable quelque soit V [l] , cela revient rsoudre le systme suivant :
Figure VI.3 Exemple de blocage des modes de dplacements de solide rigide en bidimensionnel.
Dans ce nouveau problme, les forces de ractions F [p] sont supposes connues et le dplacement
impos U d[p] est suppos inconnu. Le problme rsoudre est :
Trouver U d[p] tel que V [p] , on ait
" # " #
K[ll] K[lp] U [l] F d[l]
[0T[l] V T[p] ] T = [0T[l] V T
[p] ]
K[lp] K[pp] U d[p] F [p]
On a alors lgalit :
T
F [p] = K[lp] U [l] + K[pp] U d[p]
En sachant que le dplacement est compltement connu suite la rsolution du problme en
dplacements, on peut donc calculer les forces de ractions.
et
T
K[lp] U [l] + K[pp] U d[p] = F [p]
on peut crire le systme matriciel suivant :
" # " #
K[ll] K[lp] U [l] F d[l]
=
T
K[lp] K[pp] U d[p] F [p]
o les inconnues sont U [l] , les dplacements libres, et F [p] les ractions aux appuis. Ce systme
est rsolu dans la pratique en deux temps : calcul de U [l] puis calcul de F [p] .
I 1 4 2
0 0 0 0 1 0
II 5 2 4
3 6 II = 0 1 0 0 0 0
III 2 5 3
IV 0 0 0 1 0 0
IV 6 3 5
u1
2 III 5
u2
u
II 5
u3
U II = u2
U = U II = II U
u4
1 I 4 u4
u5
u6
Figure VI.4 Exemple dutilisation de la matrice de localisation dans le cas dun maillage de triangles
3 nuds.
Preuve Les dplacements de solide rigide W V h de la structure sont ceux pour lesquels lnergie de dformation
est nulle, soit
1
ED (
w ) = W T K W = 0 avec W 6= 0 .
2
Cela veut aussi dire que les forces ncessaires pour dplacer la structure sont nulles, donc F = 0 (problme de statique,
il ny a pas dinertie), et on a aussi :
K W = 0 avec W 6= 0 .
Les modes de dplacements de solide rigide correspondent alors au vecteurs propres de K associs des valeurs propres
nulles.
Dans la pratique, cette matrice est calcule comme la somme des contributions de chaque lment :
nb.
X lts Z
K= B T CB de
e=1 e
U e = e U .
uhe (M ) = e U e
B e = De
Pour tout point M de llment, cet oprateur lmentaire B e est reli loprateur B par la
matrice de localisation :
B = B e e .
= BU
on a
nb.
X lts
K= eT K e e .
e=1
Exercice VI.1 Dans le cas dune fonction vectorielle, dfinie dun domaine tridimensionnel vers R3 , et en
utilisant un ttradre 4 nuds (dfini par les 4 points a, b, c et d), donner e , U e et B e dans un lment.
Solution :
On rappelle que les expressions des fonctions de forme de cet lment scrivent sous la forme :
1
a (x, y, z) = (a + a x + a y + a z)
6v
1
b (x, y, z) = (b + b x + b y + b z)
6v
1
c (x, y, z) = (c + c x + c y + c z)
6v
1
d (x, y, z) = (d + d x + d y + d z)
6v
o les coefficients i , i , i et i sont calculs partir des coordonnes des 4 nuds de llment et o v est le
volume de llment.
VI.4 Construction du problme discrtis 55
Le champ de dplacement
u h scrit dans llment sous la forme :
M (x, y, z) e ,
u he (M ) = ua a (M )
e 1 + va a (M )
e 2 + wa a (M )
e3
+u (M ) e + v (M ) e + w (M )
b
b
1
e b b 2 b b 3
+uc c (M )
e 1 + vc c (M )
e 2 + wc c (M )
e3
+u (M ) e + v (M ) e + w (M ) e
d d 1 d d 2 d d 3
En crivant
u he dans la base (
e 1,
e 2,
e 3 ) de R3 , on a :
uhe (M ) = e U e
U e = [ ua va wa ub vb wb uc vc wc ud vd wd ]T
La matrice e est une matrice 312, et le vecteur U e est une matrice colonne 12 lignes.
Loprateur gradient discrtis est dfini dans un lment comme une matrice 612 :
a d
x
0 0 ... x
0 0
a d
0 y
0 ... 0 y
0
a d
0 0 ... 0 0
B e = De = a
z
a d
z
d
0 z y
... 0 z y
a a d d
z
0 x
... z
0 x
a a d d
y x
0 ... y x
0
Dans ce cas particulier du ttradre 4 nuds, tant donn que la matrice Be (M ) est constante dans llment,
le calcul de K e est immdiat (v est le volume de llment) :
K e = v B eT C e B e .
Le terme A agit sur tous les lments subissant une force volumique (Fig. VI.5). Le terme B agit
sur les lments dont une frontire est soumise une force impose (Fig. VI.5).
En utilisant la matrice de localisation prcdente, on a :
nA
X Z nB
X Z
F = eT eT f de + eT eT F d dS
e=1 e e=1 F e
56 Problme discrtis
f Fd
e
Terme A Terme B
o nA est le nombre dlments dans le volume, et nB est le nombre dlments touchant la surface
F . Le vecteur des forces aux nuds est donc calcul comme une somme de contributions de
chaque lment.
VII Calculs au niveau lmentaire
La solution est
y
a (x, y) = (1 x)(1 y) ; b (x, y) = x(1 ) ;
1+
xy
c (x, y) = ; d (x, y) = y(1 x) ;
1+
Les fonctions de forme sont traces sur la figure VII.1. La fonction a devrait sannuler sur
les bords opposs au nud a (bords c d et b c) afin dviter que ce nud ait une influence
hors de llment, mais a ne vaut pas 0 sur le bord c d. La mme conclusion apparat pour la
58 Calculs au niveau lmentaire
y y
1+ c
1 a
d
1
a b x 0 x
0 d
1
b c
Figure VII.1 Elment quadrangle dont les fonctions de forme ne sannulent pas sur les bords.
fonction b . Cet lment ne peut pas sassembler avec dautres le long du bord cd : les fonctions
de forme ne seraient pas continues. On construit alors les fonctions de forme dans un lment de
rfrence de forme gomtrique simple, puis une transformation gomtrique permet le passage
de llment de rfrence llment physique.
Un lment de rfrence est un lment de forme simple qui permet de construire les fonctions
de forme. Un systme de coordonnes lui est attach, gnralement compris entre 1 et +1 dans
chaque direction. Une transformation permet de passer de llment de rfrence llment
physique.
Plusieurs exemples dlments de rfrence sont dcrits sur la figure VII.2.
On se place dans le cas des fonctions 2 variables dfinies de llment du plan e vers R.
On utilise llment quadrangle 4 nuds dans la suite pour illustrer le principe (Fig. VII.3).
Lespace vectoriel Veh engendr par les 4 fonctions de forme associes aux 4 nuds a, b, c et d est
de dimension 4.
On dfinit un systme de coordonnes de rfrence (r, s) tel que sur les bords de llment on
ait r = 1 et s = 1 . Le carr dfini dans le repre (r, s) dont les sommets ont pour coordonnes
(1, 1) et (1, 1) est appel lment de rfrence. Les coordonnes dun nud i dans llment
de rfrence sont notes (ri , si ).
La base canonique polynomiale de Veh , de dimension 4, doit contenir 4 termes. Pour le qua-
drangle 4 nuds, on choisit [ 1 r s rs ] dans llment de rfrence. Cette base est symtrique,
on peut changer r et s sans changer la base. Le passage de la base canonique la base des
VII.1 lment de rfrence 59
1
y quadrangle 1 1
r
1
x
t
+1
z hexadre +1 s
+1
1
r
x y
s
y triangle 1
x r
1
t
1
z ttradre
1 s
x y 1
r
Figure VII.2 Quelques lments physiques et lments de rfrences associs.
s=1 s
(xc , yc ) (1, 1) (1, 1)
s
(xd , yd )
r=1 d c
r = 1
r
r
y a b
a d
b c
1 T3
Q9 1 r s
1
r s r s
2
rs 2 r2 rs s2
r s Q4
2 2 r3 r2 s rs2 s3 1
r s rs
r2 s2 r s
r2 s2
r s rs
1 T6
r s
r2 rs s2
xe = e X e
o e est la matrice des fonctions de forme. Un tel lment est dit isoparamtrique car il fait in-
tervenir la mme approximation pour la gomtrie (passage de llment de rfrence llment
physique) et pour le dplacement.
On dfinit le gradient F de la transformation permettant de passer de llment de rfrence
llment physique comme :
x x x
r s t
x x
r s
y y y
en 3 dimensions : F =
; en 2 dimensions : F =
r s t y y
z z z r s
r s t
Application au quadrangle 4 nuds
Par exemple, pour llment quadrangle 4 nuds du plan, on a
xa
ya
xb
" #
e a (r, s) 0 b (r, s) 0 c (r, s) 0 d (r, s) 0 yb
x =
0 a (r, s) 0 b (r, s) 0 c (r, s) 0 d (r, s) xc
yc
xd
yd
ou encore
d
X d
X
x= i (r, s)xi , y = i (r, s)yi .
i=a i=a
x x
Le calcul de r et de s sobtient par :
x x
a a
x h i x x h i x
b b
= a,r b,r c,r d,r , = a,s b,s c,s d,s .
r xc
s xc
xd xd
y y
Le calcul de r et de s sobtient par :
ya ya
y h i y y h i y
b b
= a,r b,r c,r d,r , = a,s b,s c,s d,s .
r yc
s yc
yd yd
VII.2 Matrice de rigidit dans llment de rfrence 63
o e est llment physique. Cette intgrale scrit dans llment de rfrence en faisant in-
tervenir le dterminant du gradient F de la transformation permettant de passer de llment de
rfrence llment physique :
Z
T
Ke = B e (r, s) C e B e (r, s) det F dref
ref
uhe = e (r, s) U e
o ui
e 1 + vi
e 2 est le dplacement du nud i.
Le champ de dformation associ uhe vaut :
avec
0
x
D= 0 .
y
y x
64 Calculs au niveau lmentaire
Or i (r, s) est une fonction de r et s, dont les drives par rapport x et y valent
i i r i s i i r i s
= + et = +
x r x s x y r y s y
ce qui scrit sous forme matricielle,
i
r s i
x x x
r
=
i r s i
y y y s
| {z }
T
= F
o F est le gradient de la transformation passant dun point (r, s) de llment de rfrence son
image (x, y) dans llment physique. Les drives des fonctions i (r, s) par rapport r et s
sont facilement calculables de faon analytique. On a pour le quadrangle 4 nuds :
1 1 1 1
a,r = (1 s) , a,s = (1 r) , b,r = (1 s) , b,s = (1 + r) ,
4 4 4 4
1 1 1 1
c,r = (1 + s) , c,s = (1 + r) , d,r = (1 + s) , d,s = (1 r) .
4 4 4 4
Le calcul de la transformation pour passer de llment de rfrence llment physique ainsi
que le calcul de F sont dtaills dans le paragraphe prcdent pour le quadrangle 4 nuds.
Lexpression de la matrice de rigidit du quadrangle 4 nuds est
Z Z 1 Z 1
T T
Ke = B e (M ) C e B e (M ) d = he B e (r, s) C e B e (r, s) det F dr ds
e 1 1
Exercice VII.2 Construire les fonctions de forme du cube 8 nuds dans llment de rfrence. Reprendre la
dmarche prcdente en lappliquant au cas tridimensionnel de lhexadre 8 nuds.
t
5 8
8
5 +1
6
6 7
7
z +1 s
1 4 +1
w3
2 3 v3 1
4
y r
x u3
2 3
VIII Intgration numrique
Ce calcul nest en gnral pas ralisable de faon analytique, on calcule alors numriquement une
approximation de cette intgrale. Lide est de transformer lintgrale en une somme de termes
valus en des points prcis (points dintgration) de llment de rfrence, pondrs par des
coefficients (poids). En notant G le nombre de points dintgration, lapproximation de la matrice
de rigidit lmentaire vaut
G
X T
Ke = B e |g C e B e |g det F |g wg
g=1
o la notation |g veut dire que la quantit est value au point dintgration g et wg est le poids
associ ce point.
Lalgorithme de calcul de K e par intgration numrique est alors :
1. Initialiser K e zro
2. Pour chaque point dintgration g faire :
(a) Dterminer les coordonnes du point dans llment de rfrence et son poids wg
(b) Calculer les drives des fonctions de forme i par rapport aux coordonnes de rf-
rence au point dintgration g
66 Intgration numrique
bc bc
1 1
1 (x) 2 (x)
bc bc bc bc bc bc bc bc
x1 x2 x3 x4 x5 x1 x2 x3 x4 x5
bc bc
1 1
3 (x) 4 (x)
bc bc bc bc bc bc bc bc
x1 x2 x3 x4 x5 x1 x2 x3 x4 x5
bc
1
5 (x)
bc bc bc bc
x1 x2 x3 x4 x5
kg = B T |g C B|g det F |g wg
(g) Ajouter kg K e :
K e = K e + kg
Le calcul des forces extrieures se fait aussi par intgration numrique en utilisant la mme
stratgie dintgration.
Dans la suite du cours, on examine les positions et les poids dintgration pour les lments
1, 2 et 3 variables.
Les fonctions i sont alors dfinie comme des polynmes de Lagrange (Fig. VIII.1) puisque lon
connat leurs zros :
nj=1,j6=i (x xj )
i (x) = .
nj=1,j6=i (xi xj )
Le numrateur annule i aux points xj avec i 6= j tandis que le dnominateur permet davoir
i (xi ) = 1 (sans sommation implicite). On note Pin1 ce polynme de Lagrange associ au point
i.
On peut aussi les construire comme la solution du systme dquations permettant de passer
de la base canonique polynomiale la base des polynmes de Lagrange (voir le cours sur la
construction des fonctions de forme) :
1 1 ... 1 1 (x) 1
x1 x2 ... xn
2 (x) x
x21 x22 ... x2n
3 (x) =
x2
.. .. .. .. .. ..
. . . .
.
.
x1n1 x2n1 . . . xnn1 n (x) xn1
| {z }
=A
n
j=1,j6=i (x xj )
i (x) =
n
j=1,j6=i (xi xj )
Exercice VIII.2 Trouver les polynmes de Lagrange associs aux 3 points 1, 0 et 1. Ces polynmes sont dessi-
ns sur la figure VIII.2.
68 Intgration numrique
bc 1 1.0 bc 3 bc
0.5
bc bc bc
1.0 0.5 0.5 1.0
f (1) f (r)
bc
f (ri ) bc
f (1)
bc bc
bc
bc Z 1
I= f (r) dr
1
1 = r1 r2 ri +1 = rn
o Pin1 (r)
est le polynme de degr n 1 qui vaut 1 en ri et 0 en rj6=i . En crivant Pin1 (r)
comme un polynme de Lagrange, on a
nj=1,j6=i (r rj )
Pin1 (r) = .
nj=1,j6=i (ri rj )
ou encore n
X
I = f (ri )wi
i=1
avec Z 1
wi = Pin1 (r) dr
1
VIII.2 Intgration des fonctions une variable 69
f (1)
bc
f
f (1)
bc
I
f
1 1
Figure VIII.4 Mthode de Newton avec 2 points dintgration - Formule des trapzes
f (1)
bc
f (1)
f bc
f (0)
bc
f
I
1 1
que lon sait calculer puisque les fonctions Pin1 (r) sont connues. Les nombres wi sont appels
poids dintgration associs aux points dintgration ri .
Cette mthode intgre exactement les polynmes de degr n 1 avec n points dintgration,
puisque f(r) reproduit exactement les polynmes de degr n 1. Les figures VIII.4 et VIII.5
montrent de faon graphique lintgration dune fonction avec 2 puis 3 points dintgration.
On remarque que la somme des poids dintgration est toujours gale la longueur de linter-
valle intgr, soit 2 ici. En effet, si f (r) = 1, alors
Z 1 n
X
I = I = 1 dr = 2 = wi
1 i=1
Exercice VIII.3 Trouver les poids associs 3 points dintgration placs en 1, 0 et 1 (fig. VIII.5).
f (r) = a0 + a1 r + a2 r2 + a3 r3
3 5 0,7745966692 0,5555555556
0,0000000000 0,8888888889
4 7 0,8611363116 0,3478548451
0,3399810436 0,6521451549
5 9 0,9061798459 0,2369268850
0,5384693101 0,4786286705
0,0000000000 0,5688888889
6 11 0,9324695142 0,1713244924
0,6612093865 0,3607615730
0,2386191861 0,4679139346
7 13 0,9491079123 0,1294849662
0,7415311856 0,2797053915
0,4058451514 0,3818300505
0,0000000000 0,4179591837
I = wf (R) + wf (R)
soit
I = w(2a0 + 2a2 R2 ) = 2w(a0 + a2 R2 ) .
et ce, quels que soient a0 , a1 , a2 et a3 donc
Pour que f soit intgre exactement, il faut que I = I,
2 1
I = I 2a0 + a2 = 2w(a0 + a2 R2 ) w = 1 et R2 = .
3 3
1
Finalement, en prenant comme points dintgration r1 = 3 et r2 = 13 avec comme poids
w1 = w2 = 1, on intgre exactement tous les polynmes dordre 3 dans lintervalle [1, 1].
On peut gnraliser pour les polynmes dordre 2n 1, le tableau VIII.1 donne les positions
et les poids des points de Gauss pour n de 2 7. Une intgration par points de Gauss ncessite
moins de points que par la mthode de Newton-Ctes, ce qui entrane un gain en temps de calcul.
Exercice VIII.4 Retrouver les positions et les poids pour 3 points de Gauss donns dans le tableau VIII.1.
y s
1
r
x 1 1
ly
1
lx
Figure VIII.6 lment quadrangle physique de forme rectangulaire et lment de rfrence quadrangle.
o he est lpaisseur dans llment. Le choix du nombre de points de Gauss se fait en exami-
nant les termes polynomiaux intgrer. On suppose que llment physique a la mme forme
que llment de rfrence, soit un rectangle dans le cas du quadrangle (Fig. VIII.6). Avec cette
hypothse, le gradient de la transformation F est constant ainsi que son dterminant. En effet, la
transformation pour passer de llment de rfrence llment physique scrit
lx ly
x= r; y= s
2 2
Le gradient de la transformation vaut alors
x x lx
r 0
s
2
F =
=
y y ly
0
r s 2
Le dterminant vaut
lx ly
det F =
4
Avec cette hypothse, F est constant et B e ne fait intervenir que les drives de la base ca-
nonique polynomiale du dplacement. En prenant de plus un matriau homogne dans llment,
T
C est aussi constant. Finalement, les termes de B e (r, s) C e B e (r, s) det F intgrer ne font
T
intervenir que les termes prsents dans B e (r, s) multiplis un un. Les plus haut degrs en r et
s donnent le nombre de points de Gauss prendre dans chaque direction.
Exercice VIII.5 Trouver les positions et les poids des points de Gauss pour llment quadrangle 4 nuds.
Solution :
La base canonique polynomiale dapproximation du dplacement du quadrangle 4 nuds est [ 1 r s rs ] ;
en drivant cette base par rapport r dune part et s dautre part, on obtient les termes prsents dans B(r, s) soient
[ 1 r s ]. Les termes intgrer sont alors :
[ 1 r s ] [ 1 r s ] = [ 1 r s r2 s2 rs ]
Les termes de plus haut degr dans chaque direction sont 2 pour r et 2 pour s dans ce cas. On trouve le nombre de
points de Gauss n en crivant 2n 1 > 2 soit n = 2 dans chaque direction.
Lexpression du calcul de la matrice de rigidit est alors pour le quadrangle 4 nuds
2 X
X 2
T
e
K = h wi wj B e (ri , sj ) C e B e (ri , sj ) det F (ri , sj )
i=1 j=1
soit aussi
4
X T
Ke = h wg B e (rg , sg ) C e B e (rg , sg ) det F (rg , sg )
g=1
e
r
0 1
Figure VIII.7 lment triangle de rfrence.
r s poids
0,5773502692 0,5773502692 1
0,5773502692 -0,5773502692 1
-0,5773502692 0,5773502692 1
-0,5773502692 -0,5773502692 1
s
1
1
3
r
13
1
1 1 1 1
3 3
Exercice VIII.6 Trouver les positions et les poids des points de Gauss pour llment suivant dont la base cano-
nique dapproximation est [ 1 r r2 ] [ 1 s ]
o ref est le domaine triangulaire de rfrence (Fig. VIII.7) ; les variables r et s sont cou-
ples. Les points dintgration sont placs dans le triangle suivant des rgles particulires. Le
tableau VIII.2 donnent les positions et poids suivant le degr des polynmes intgrer. Il existe
VIII.4 Intgration des fonctions trois variables 73
1 1
3
1
3
1
2
1 1 1
2 2 6
2 0 1
2
1
6
1 1
2 0 6
1 1 27
3 3 96
3 0, 6 0, 2 25
96
25
0, 2 0, 6 96
25
0, 2 0, 2 96
ly t
z
+1
lz
+1 s
y
x +1
lx
Figure VIII.8 lment hexadre physique de forme paralllpipde rectangle et lment de rfrence
hexadre.
dautres rgles dveloppes par diffrents auteurs et pour des degrs suprieurs, on ne donne ici
que quelques exemples de positions et poids.
La somme des poids donne toujours laire du triangle de rfrence, soit 0, 5.
Le choix du nombre de points de Gauss se fait en examinant les termes polynomiaux intgrer.
On suppose que llment physique a la mme forme que llment de rfrence, soit un parall-
lpipde rectangle dans ce cas (Fig. VIII.8).
Avec cette hypothse, F est constant et B e ne fait intervenir que les drives de la base ca-
nonique polynomiale du dplacement. En effet la transformation pour passer de llment de
74 Intgration numrique
1 s
1 1
o ref est le domaine ttradrique de rfrence (Fig. VIII.9) ; les variables r, s et t sont cou-
ples. Les points dintgrations sont placs dans le ttradre suivant des rgles particulires. Le
tableau VIII.3 donnent les positions et poids suivant le degr des polynmes intgrer. Il existe
dautres rgles dveloppes par diffrents auteurs et pour des degrs suprieurs, on ne donne ici
que quelques exemples de positions et poids.
La somme des poids donne toujours le volume du ttradre de rfrence, soit 16 .
1 1
4
1
4
1
4
1
6
h h
h
h h
1
>1
Figure VIII.10 Taux de distorsion pour le quadrangle.
de rfrence (r, s, t). Loprateur gradient discrtis, qui est calcul partir de F 1 , contient alors
des fractions polynomiales en (r, s, t). Finalement, le terme "B T CB det F " contient aussi des
fractions polynomiales en (r, s, t), qui ne peut pas sintgrer exactement par points dintgration.
Cela engendre des erreurs dans le calcul numrique par points dintgration de la matrice de
rigidit. Cette erreur est matrise en contrlant la qualit du maillage : les lments doivent tre
le plus proche possible de la forme de llment de rfrence associ.
Plusieurs critres sont utiliss pour garantir la qualit du maillage. Par exemple pour le qua-
drangle, on peut utiliser le taux de distorsion dun lment (Fig. VIII.10) dfini comme le rapport
entre la plus grande longueur h sur le diamtre du plus grand cercle inscrit ; le critre est alors :
h
< valeur donne (de 3 10 gnralement)
Un autre critre utilis concerne le respect des angles dans llment quadrangle : les angles
de llment physique doivent tre les plus proches possibles dangles droits.
Dautres critres de qualit de maillage propres chaque logiciel de maillage et chaque type
dlment existent, ils sont dtaills dans les notices dutilisation.
IX Analyse des rsultats E.F.
x
Contrainte lments finis h Contrainte lisse
Figure IX.1 Contrainte obtenue par lments finis et contrainte lisse pour les triangles 3 nuds.
o n est le nombre de nuds du maillage et o contient les contraintes aux nuds du maillage
( est la reprsentation de dans la base des fonctions de forme).
Lobjectif est de trouver ( ou de faon quivalente ) permettant dapprocher au mieux h .
Ceci est ralis par une minimisation par moindres carrs de la fonction "distance" entre et h
dfinie par la fonction J suivante :
Z
1
J() = ( h )2 d
2
soit aussi Z
1
J() = ( h )( h ) d
2
ou encore Z
1
J() = (T T h )( h ) d
2
Z Z Z
1 1 2
J() = T T d T T h d + h d
2 2
| {z } | {z } |
{z }
A b c
1
J() = T A T b + c
2
En utilisant la notation indicielle on a
n X n n
1X X
J() = i Aij j i b i + c
2 i=1 j=1 i=1
A = b
et doit tre calcul pour chaque composante de loprateur des contraintes. Aprs assemblage, le
second membre devient
1
Z
2
h
b= . d
.
.
n
Le systme dquations tant rendu diagonal, la rsolution est immdiate et donne au nud i
et pour chaque composante de loprateur des contraintes :
Z
i h d
i = Z .
i d
o (e)xx
h
est la valeur de la contrainte calcule partir de la solution en dplacements
u h dans
llment e. De mme, on a pour les contraintes yy et xy :
1 1
ae ae
byy
e
h
= (e)yy 1
et bxy
e
h
= (e)xy 1
3 3
1 1
En notant Ei lensemble des lments connects au nud i, on obtient que les contraintes lisses
au nud i du maillage valent :
P h
eEi ae (e)xx
(i)xx = P ,
eEi ae
P h
eEi ae (e)yy
(i)yy = P ,
eEi ae
P h
eEi ae (e)xy
(i)xy = P .
eEi ae
e =
u ex
uh
e =k
e kE
k
e kE
=
k u ex kE
donc
k
e k2E k
u ex
u h k2E
2 = = .
k
u ex k2E ku ex k2E
c hp
p=1
p=2 1 p=0
p=3 x y p=1
x2 xy y2 p=2
3 2 2 3
x xy xy y p=3
x2 y 2
log()
1
Erreur
plus p
faible
log(h)
Plus dlments
appel ZZ1. Cet estimateur est frquemment utilise par les codes de calculs. Il a par contre
linconvnient de ne pas assurer de donner une estimation de lerreur coup sr suprieure
lerreur vraie, autrement dit, il peut sous-estimer lerreur vraie.
On rappelle que lerreur relative globale vaut
k uex uh k2 a(uex uh , uex uh )
2 = =
k uex k2 a(uex , uex )
Le dnominateur vaut Z
a(uex , uex ) = T (uex )C(uex ) d
La relation entre la contrainte exacte et le champ de dformations du dplacement exact
u ex est :
ex = C(uex )
ou encore
(uex ) = C 1 ex
Donc en remplaant dans lexpression de a(uex , uex ), on a :
Z
a(uex , uex ) = exT C 1 ex d
Le numrateur vaut
Z
a(uex uh , uex uh ) = T (uex uh )C(uex uh ) d
soit aussi
Z
a(uex uh , uex uh ) = T (uex ) T (uh ) C (uex ) (uh ) d
En suivant la mme dmarche que pour le dnominateur, on a :
Z
T
a(uex uh , uex uh ) = exT h C 1 ex h d
Finalement, lerreur relative globale vaut
Z
T
exT h C 1 ex h d
2
= Z
exT C 1 ex d
La contrainte exacte ex
nest pas connue, mais lide est de la remplacer par la contrainte
lisse . La contrainte lisse est en effet plus rgulire que la contrainte (uh ), elle approche
mieux la ralit que (uh ).
En remplaant ex par on obtient une estimation de lerreur relative , on note cette estima-
tion : Z
T
T h C 1 h d
2 = Z
T C 1 d
En notant e la quantit dfinie pour llment e telle que
Z
T
T h C 1 h d
e
e2 = Z
T C 1 d
84 Analyse des rsultats E.F.
maillage initial
rsolution de KU = F
calcul de la contrainte lisse
calcul de la contribution e de chaque lment Plerreur globale
calcul de lestimation de lerreur globale 2 = e2
non <
oui
Une plaque est un domaine dont une dimension, lpaisseur note h, est plus petite que les deux
autres (Fig. X.1). Le plan moyen (not S) de la plaque a pour repre (
x ,
y ). La troisime direc-
tion z est celle de lpaisseur. Le domaine de la plaque peut tre dfini comme :
h h
=S ,
2 2
h
z y
y
M (x, y, z)
x z
m(x, y)
x S : plan moyen
x y
z
z
M
z x h z y
m
z u
z v
z
x
y
w
xx u,x x,x
yy = v,y +z y,y
2xy u,y + v,x x,y + y,x
| {z } | {z }
=e =
" # " #
2xz x + w,x
= .
2yz y + w,y
| {z }
=
Avec ces notations, les relations entre les contraintes et les dformations scrivent :
xx 1 0 xx
yy = E
2 1 0 yy
1 1
xy 0 0 2 2xy
| {z }
C1
et " # " #
E
xz 2(1+) 0 2xz
= E
yz 0 2(1+) 2yz
| {z }
C2
Dans le cas homogne isotrope, les matrices de comportement C1 et C2 sont constantes dans
lpaisseur et ne dpendent donc pas de z, ce qui nest pas le cas pour les matriaux composites.
Les intgrales dans lpaisseur valent :
Z h Z h Z h
2 2 2 h3
dz = h ; z dz = 0 ; z 2 dz = .
h2 h2 h2 12
Lnergie de dformation vaut alors
h3
Z
1 n T o
ED = he Ce + T C1 + h T C2 dS
2 S 12
On remarque que les termes de couplage entre et e disparaissent dans le cas dun matriau
homogne et isotrope, contrairement un matriau composite pour lequel il y a un couplage.
Finalement, en posant les matrices de comportement suivantes intgres dans lpaisseur :
1 0
Eh
Cm = hC1 = 1
,
0
1 2 1
0 0 2
X.1 Modle de plaque 89
z Kirchoff
Mindlin
1 0
h3 Eh3
Cf = C1 = 2
1
,
0
12 12(1 ) 1
0 0 2
" #
Eh 1 0
Cc = hC2 = ,
2(1 + ) 0 1
lnergie de dformation scrit sous la forme :
Z Z Z
1 1 1
ED = eT Cm e dS + T Cf dS + T Cc dS.
2 S 2 S 2 S
Lnergie de dformation peut tre spare en 3 contributions :
Z
m 1
ED = eT Cm e dS , nergie de dformation de membrane,
2 S
Z
f 1
ED = T Cf dS , nergie de dformation de flexion,
2 S
Z
ct 1
ED = T Cc dS , nergie de dformation de cisaillement transverse.
2 S
On a alors :
m f ct
ED = ED + ED + ED .
xz = yz = 0.
Dun point de vue cinmatique cela veut dire quun segment initialement droit et perpendiculaire
la surface moyenne le reste aprs dformation. Dun point de vue lments finis, il faut alors
quil y ait compatibilit entre w et les rotations x et y . Lespace dapproximation de w est gn-
ralement construit avec des polynmes de degr 3 et les fonctions de forme sont des polynmes
dHermite. Ce modle est adapt aux plaques lances et minces.
90 lment fini de plaque
V h = V ect {1 , 2 , , n }
= [ 1 , 2 , , n ]
on a alors :
n
X n
X
uh (x, y) = i (x, y)ui = U ; v h (x, y) = i (x, y)vi = V
i i
n
X n
X
wh (x, y) = i (x, y)wi = W ; xh (x, y) = i (x, y)ix = x
i i
n
X
yh (x, y) = i (x, y)iy = y
i
o U , V , W , x et y sont respectivement les dplacements et rotations aux nuds du maillage. Le
calcul au niveau lmentaire utilise toute la stratgie du calcul par lments finis dtaille dans les
chapitres prcdents. Aucune forme dlment nest impose, ceci est valable pour les triangles
et les quadrangles.
Soit
x 0 " #
U
e(
v h) =
0
y
.
V
y x
X.2 lment fini de type Reissner-Mindlin 91
on a " #
U
e(
v h ) = Bm .
V
La partie courbure des dformations vaut pour un champ de dplacement
v h de V h :
h
x,x x 0 " # x 0 " #" #
xh 0 x
(
v h) = h
y,y = 0
y
=
0
y
.
h h
yh
0 y
x,y + y,x y x y x
Soit
x 0 " #
x
=
0 y
.
y
y x
on a " #
x
(
v h ) = Bf .
y
La partie dformations transverses des dformations vaut pour un champ de dplacement
v de V h :
h
" #
wh
0 0 W
xh + w,x
h 1 0 1 0
(
v h) = = x h = x 0 0 x .
yh + w,y
h
y 0 1 xh
y 0 1
y 0 0 y
Soit
W
x 0
=
x .
y 0
y
En posant Bct loprateur gradient discrtis pour la partie dformations transverses tel que
x 0
Bct =
y 0
on a
W
h
( v ) = Bct x
.
y
92 lment fini de plaque
S
y
Fz
fz
L
fy
x fx
Figure X.4 Forces extrieures appliques sur la plaque.
Z n " # " #
1 T T T U T T x
ED = [U V ]Bm Cm B m + [ x y ]BfT Cf Bf
2 S V y
W
o
+[ W T x T y T ]Bct
T
Cct Bct
x
dS
y
h i
T 0
Z Bm Cm B m
1 T
T
ED = Q
Bct Cct Bct ...
dS Q
2 S 0 . h i
.. +BfT Cf Bf
avec Q = [ U T V T W T x T y T ]T .
La matrice de rigidit de llment plaque de Reissner-Mindlin vaut donc :
h i
T 0
Z Bm Cm B m
e T
K =
Bct Cct Bct ...
dS.
S 0 . h i
.. T
+Bf Cf Bf
Les forces extrieures sont appliques sur le contour de la plaque ainsi que sur la surface moyenne
(fig. X.4). Sur le contour, les forces surfaciques sont notes [ fx fy fz ]. On suppose que la
force surfacique applique sur la surface moyenne nest porte que par z et vaut Fz . On note
s labscisse curviligne sur la ligne moyenne L du contour de la plaque. Le travail des efforts
X.3 Assemblage de plaques dans lespace 93
x
3
Y 2
y
X
1
Z
o tx (s), ty (s) et tz (s) sont respectivement les efforts liniques sur le contour de la plaque suivant
x,y et z , et o mx (s) et my (s) sont les moments liniques sur le contour suivant y et
x . Le
travail des forces extrieures dans un champ de dplacement v lments finis de la plaque vaut
h
Z Z Z
W(
v h) = U T tx (s)T ds + V T ty (s)T ds + W T tz (s)T ds
L
Z ZL L
Z
T T T T T
+x mx (s) ds + y my (s) ds + W Fz T dS
L L S
on a
W(
v h ) = QT F .
laxe
x est port par le vecteur 12 reliant le nud 1 au nud 2 :
12
x = ,
k 12 k
le vecteur
z est construit de faon tre perpendiculaire au triangle :
x 13
z = ,
k
x 13 k
on en dduit laxe
y =
z
x.
Le dplacement et la rotation dun segment dans le repre global ( X , Y , Z ) sont nots :
u = UX X + UY Y + UZ Z et = X X + Y Y + Z Z
o K2d
e
est la matrice de rigidit de llment de plaque dans son plan vue dans la section prc-
dente.
La matrice de rigidit de llment plaque dans lespace vaut donc
e
K3d = T T K2d
e
T.
XI lments finis de barre et poutre
Dans le cadre de ce cours, on ne sintresse quaux poutres droites. De plus, on suppose que
les poutres ont des sections constantes.
On tudie un lment fini de poutre connect 2 nuds a et b (Fig. XI.2). Un repre local
( x ,
y ,
z ) est attach llment, laxe
x coincide avec la ligne moyenne de la poutre. Ll-
ment a pour longueur L suivant x et a pour section constante S. Le domaine tridimensionnel
associ la poutre est alors
= [0, L] S
96 lments finis de barre et poutre
y S
M
x
m
a b
z L
donc
u (M ) = u(x)
x + v(x)
y + y(x)
x
soit " #
u(x) + y(x)
u (M ) =
v(x) (
x ,
y)
x [0, L] ; (y, z) S,
v (x, y, z) = (u(x) + y(x))
x + v(x)
y
avec u, v, V.
2xy = (u + y) + v = + v,x
y x
yy = zz = xz = yz = 0.
Seules les dformations xx et xy ne sont pas nulles. On note alors les dformations sous la forme
" #
xx
= .
2xy
En notant
la dformation de membrane e = u,x ,
la courbure = ,x ,
et la dformation transverse = v,x + ,
on a les relations suivantes reliant xx et 2xy avec e, et :
xx = e + y , et 2xy = .
La loi de Hooke
1+
= T r() 1
E E
donne alors :
1+ 1 1+
xx = xx xx = xx et xy = xy
E E E E
soit " #
E 0 E 0
C= E
=
0 2(1+) 0
v(x)
x
0 x L
avec Z Z Z
1 L f 1 L 1 L
m
ED = ES e2 dx ; ED = EI 2 dx ; ED ct
= S 2 dx
2 0 2 0 2 0
Lnergie de dformation peut scrire sous forme de trois contributions :
ED
m
: nergie de dformation de traction-compression (membrane),
f
ED : nergie de dformation de flexion,
ED
ct
: nergie de dformation de cisaillement transverse.
Hypothse de Timoshenko
Lhypothse de Timoshenko prend en compte la dformation transverse xy . Ce modle est valable
pour les poutres dites "paisses".
Soit aussi Z
1 L
m
ED = U Te T
ES Bm Bm dxU e .
2 0
100 lments finis de barre et poutre
a
e = 0 e : barre e
b
e2 e = le e
e1
on a
m 1
ED = U Te Km
e
U e.
2
En remplaant Bm par son expression, on a :
" #
T 1 1 1
Bm Bm = 2
L 1 1
e2 b
le e = le
e
e e
a
e = 0
e1
Lnergie de dformation dune barre ne dpend que des composantes axiales des dplace-
ments des nuds :
m 1
ED = U Te Kme
U e.
2
avec " #
e ES 1 1
Km =
le 1 1
et "
#
u (nud a) e
Ue =
u (nud b) e
Or en notant
u (nud a) = Ua
e 1 + Va
e2
on a
u (nud a) e = Ua
e 1 e + Va
e 2 e = Ua cos e + Va sin e
De mme, on a :
u (nud b) e = Ub cos e + Vb sin e
En posant la matrice de passage Te permettant de passer des dplacements des nuds crits dans
le repre global aux dplacements des nuds crits dans le repre local :
" #
cos e sin e 0 0
Te =
0 0 cos e sin e
m 1
ED = U Te TeT Km
e
Te U e .
2
102 lments finis de barre et poutre
o Km
e
est la matrice de rigidit de la partie axiale de la poutre dveloppe prcdemment :
" #
e ES 1 1
Km =
le 1 1
Le calcul de TeT Km
e
Te donne la matrice de rigidit de llment barre dans le plan (x, y) :
cos2 e cos e sin e cos2 e cos e sin e
2
e ES cos e sin e
sin e cos e sin e sin2 e
Kbarre =
le
cos2 e cos e sin e cos2 e cos e sin e
2
cos e sin e sin e cos e sin e sin2 e
m 1
ED = U Te Kbarre
e
U e.
2
v h (x) = e V e
avec
e = [ 1 (x) 2 (x) 3 (x) 4 (x) ]
et
V e = [ va a vb b ]T .
1.0 1 1.0
0.5 0.5
2
bc bc bc bc
0.5 1.0 0.5 1.0
1.0 1.0
0.5 0.5
3
4
bc bc bc bc
0.5 1.0 0.5 1.0
pour uh (x) = x : uh (x) = 1
uh (0) = 0, uh (L) = L
2 (x) + 3 (x)L + 4 (x) = x
pour uh (x) = x2 : uh (x) = 2x
uh (0) = 0, uh (0) = 0, uh (L) = L2 , uh (L) = 2L
3 (x)L2 + 4 (x)2L = x2
pour uh (x) = x3 : uh (x) = 3x2
uh (0) = 0, uh (0) = 0, uh (L) = L3 , uh (L) = 3L2
3 (x)L3 + 4 (x)3L2 = x3
2v
= ,
x2
soit pour un champ de dplacement discrtis v h :
2
= e V e .
x2
En posant Bf loprateur gradient discrtis pour la partie flexion tel que
2
Bf = e = [ 1 (x) 2 (x) 3 (x) 4 (x) ] ,
x2
on a
= Bf V e .
XII.1 Objectifs
Les objectifs de la dcomposition de domaine sont multiples :
Lide est de sparer le "gros" problme initial en plusieurs "petits" problmes rsoudre spar-
ment.
La mthode de Schur (1) primale porte son nom du fait que les inconnues nodales de linterface
sparant les domaines sont des variables de dplacements, cest dire les mmes que celles des
sous-domaines. La mthode de Schur duale introduit pour sa part la variable duale du dplacement
linterface, soit le vecteur contrainte.
interface
Ensemble des d.d.l. de U U3
sous-structure 1 sous-structure 2
U1 U2
11111111111
00000000000
00000000000
11111111111 00000000000
11111111111
000000011111111111
111111100000000000
000000
111111
0000000
1111111
0000000
1111111 000000
111111
000000
111111
0000000 111111
1111111
U
000000
U
0000000
1111111 000000
111111
1sl 2sl
0000000
1111111
0000000
1111111 000000
111111
0000000 111111
1111111 000000
000000
111111
0000000
1111111
1111111 000000
111111
0000000 111111
000000
Figure XII.1 Dcomposition en deux sous-structures.
o K est la matrice de rigidit, U est le vecteur des inconnues de dplacements nodaux et F est
le vecteur des forces nodales. Afin de simplifier les notations, le vecteur U ne contient que les
degrs de libert non bloqus. Le problme mcanique associ est reprsent sur la figure XII.1.
Par soucis de simplicit, la structure est dcompose en seulement deux sous-structures (nu-
mrotes 1 et 2). Elles ne sont pas connectes entre elles mais elles sont en contact avec lin-
terface (numrote 3). Lensemble des nuds de la structure est renumrot de faon avoir les
inconnues nodales appartenant la sous-structure 1 dans le vecteur U 1 . On fait de mme pour la
sous-structure 2 et linterface 3 pour les vecteurs U 2 et U 3 . En utilisant ces notations, le systme
rsoudre devient
K1 0 K13 U1 F1
K2 K23 U2 = F 2
0
T T
K13 K23 K3 U3 F3
On remarque que dans ce systme, il ny a pas de couplage entre les sous-structures puisquelles
sont choisies de faon tre dconnectes.
Exercice XII.1 Proposer une numrotation des nuds du maillage de la figure XII.1 afin dobtenir la sparation
entre les sous-domaines 1, 2 et 3.
La premire tape est la rsolution du problme sans liaison pour chaque sous-structure. Cela
revient rsoudre indpendamment les deux systmes suivants :
K1 U 1sl = F 1 , et K2 U 2sl = F 2 .
Les deux vecteurs U 1sl et U 2sl obtenus sont complts par les solutions avec liaison en introdui-
XII.2 Mthode de Schur primale 107
On remarque que cette premire tape dite "sans liaison" revient rsoudre pour chaque sous-
structure un problme pour lequel linterface est encastre (Fig. XII.1).
En remplaant dans le systme initial, il vient
K1 0 K13 U 1sl + U 1al F1
0 U 2sl + U 2al = F 2 .
K2 K23
T T
K13 K23 K3 U3 F3
et
K2 U 2sl + K2 U 2al + K23 U 3 = F 2 .
soit
T T T T
K13 U 1al + K23 U 2al + K3 U 3 = F 3 K13 U 1sl K23 U 2sl
En notant
T T
B = F 3 K13 U 1sl K23 U 2sl
on a alors
T T
K13 U 1al + K23 U 2al + K3 U 3 = B
En notant
T
S = K3 K13 K11 K13 K23
T
K21 K23
108 Dcomposition de domaine
U2
interface U 4
U1
U3
1111111111111111
0000000000000000
Figure XII.2 Dcomposition en n 1 sous-structures avec n = 4.
SU 3 = B
K1 U 1sl = F 1 , et K2 U 2sl = F 2 .
3. Rsolution de linterface :
T T
SU 3 = F 3 K13 U 1sl K23 U 2sl
Ki U isl = F i ,
pour i = 1 n 1
2. Calcul du complment de Schur :
n1
X
S = Kn T
Kin Ki1 Kin
i=1
3. Rsolution de linterface :
n1
X
T
SU n = F n Kin U isl
i=1
pour i = 1 n 1
5. Construction de la solution complte :
U i = U isl + U ial
pour i = 1 n 1
Exercice XII.2 Reprendre la dmarche de rsolution pour 3 sous-structures et une interface comme indiqu sur la
figure XII.2
T
S = K3 K13 K11 K13 K23
T
K21 K23 .
Ce calcul fait intervenir linverse des matrices de rigidit K1 et K2 . Ces matrices tant en gnral
trs importantes, il nest pas raliste den calculer directement linverse. De plus K11 est multi-
plie droite par K13 et gauche par K13 T
ce qui donne finalement une matrice dont la taille est
rduite celle de linterface en gnral trs faible.
Une faon de calculer directement le produit K11 K13 sans calculer linverse de K1 est de
rsoudre une succession de problmes en imposant les dplacements des nuds de linterface
0 ou 1 (Fig. XII.3) : la ime colonne de K11 K13 est exactement la solution X i du problme
suivant : " #" # " #
K1 K13 Xi 0
T
=
K13 K3 Ii Yi
o I i est le dplacement unitaire impos linterface dfini par
1
1
0
0110 0
11111111
00000000
0
00000000
11111111
0
0
1
00000000
11111111
0
1
00000000 0
11111111 00000000
11111111
I1 =
0
I2 =
0
00000000 0
11111111
00000000
11111111
0
0
0
00000000
11111111
0 0
00000000
11111111
0
00000000
11111111
00000000
11111111
X 1 = colonne 1 de K11 K13 00000000
11111111
X 2 = colonne 2 de K11 K13
Figure XII.3 Dplacement unitaire impos linterface pour la calcul du complment de Schur.
interface
U1 U2
11111111111
00000000000 0000000
1111111
00000000000 1111111
11111111111 11
00
0000000 11 000000
111111
00 000000
111111
problme complet sous-structure 1, sous-structure 2,
domaine 1 domaine 2
et o Y i sont les efforts de raction inconnus du problme associ. En effet, le premier groupe
dquations scrit
K1 X i + K13 I i = 0
X i = K11 K13 I i
1
n 1 = 2
n 2 sur
o
n 1 et
n 2 sont respectivement les normales unitaires sortantes de 1 et 2 . En notant le
vecteur contrainte linterface on a
1
n 1 = sur et 2
n 2 = sur
Lide est dajouter ce vecteur contrainte aux inconnues du problme. Avec cette convention,
est laction de 2 sur 1 travers linterface . Linterface est une frontire des domaines 1 et
2 sur laquelle les efforts extrieurs valent respectivement et . Le vecteur contrainte est
souvent appel multiplicateur de Lagrange.
La formulation variationnelle dans le domaine 1 est alors :
Trouver
u 1 cinmatiquement admissible, tel que u1 avec u1 = 0 sur u 1 on ait
Z Z Z
T1 C1 1 d uT1 F d1 dS uT1 dS = 0
1 F 1
XII.3.2 Discrtisation
La discrtisation dans les domaines 1 et 2 se fait de faon classique :
u 1 = 1 U 1 et
u 2 = 2 U 2
2
1
U T1 K1 U 1 +U T1 C1 = U T1 F 1 ; U T2 K2 U 2 +U T2 C2 = U T2 F 2 ; T CT1 U 1 +T CT2 U 2 = 0
Ce systme peut tre rsolu en suivant la dmarche de la mthode de Schur primale (avec K3 =
0).
Un langage de programmation est une interface entre lhomme et lordinateur qui permet de don-
ner des successions dordres celui-ci. Les ordres sont crits dans un fichier texte sans mise en
forme, appel fichier source, laide dun diteur de texte ( ne pas confondre avec un traitement
de texte). Ce fichier source est ensuite lu, puis transform en langage machine par lordinateur qui
peut alors lexcuter.
Les langages ont beaucoup volu depuis le premier langage de programmation (assembleur)
qui tait trs difficile comprendre. Les langages modernes permettent dutiliser des fonctions
(ou sous-routines), et sont, pour certains, orients objet.
Les langages peuvent tre interprts ou compils :
langage interprt : les instructions du programme sont lues, interprtes en langage ma-
chine puis excutes au fur et mesure. Lavantage rside dans la facilit de lecture et de
modification du programme, linconvnient est la lenteur dexcution.
langage compil : le programme est lu puis transform en langage machine par un com-
pilateur pour crer un fichier excutable. Ce fichier est ensuite excut. Les avantages sont
dabord davoir une vitesse dexcution du programme rapide, ensuite de pouvoir donner
le fichier excutable une personne tierce afin quil puisse lutiliser sans lui dvoiler le fi-
chier source. Linconvnient est que aprs chaque modification du fichier source, il faut le
re-compiler, ce qui rend la programmation plus lourde.
114 Initiation la programmation
# l i b r a i r i e de c a l c u l s c i e n t i f i q u e
import s c i p y
a =3.14
b =2.78
i =3
w= 1 + 1 . 0 j
c=a b
p r i n t ( " a b = : " , c )
c= s c i p y . s q r t ( a )
p r i n t ( " r a c i n e c a r r e e de a = : " , c )
i = i +1
p r i n t ( " on a j o u t e 1 a i : " , i )
i = i +1
p r i n t ( " on r a j o u t e e n c o r e 1 a i : " , i )
affectation de variable, cest dire que linstruction i=i+1 ajoute 1 i : ce nest pas une quation
une inconnue rsoudre. Le rsultat de laffichage de ce programme est donn sur la figure
XIII.2.
Linstallation de Python est relativement simple :
Pour programmer, le plus pratique est dutiliser un IDE (en anglais pour integrated development
environment, cest dire environnement de dveloppement intgr) : par exemple idle-python
mais il en existe dautres. Une fentre dexcution souvre, on peut diter les fichiers en les ouvrant
dans un diteur de texte intgr (file/open) puis les excuter avec run.
Exercice XIII.1 crire un programme en Python qui calcule la flche dune poutre encastre-libre partir de sa
longueur L, de son module dYoung E, de son moment quadratique de section I et de leffort appliqu F .
E, I F L3
3EI
L
i =6 # Chiffre a deviner
j =1 # Compteur d e s e s s a i s
w h i l e ( j <= 3 ) :
print ( " Essai " , j )
print ( " Entrez votre proposition : " )
k = i n t ( input ( ) )
i f ( k== i ) :
p r i n t ( " Bravo " )
j =99
i f ( k< i ) :
p r i n t ( "Mon c h i f f r e e s t p l u s g r a n d " )
i f ( k> i ) :
p r i n t ( "Mon c h i f f r e e s t p l u s p e t i t " )
j = j +1
i f ( j ==4):
p r i n t ( " Vous n a v e z p a s t r o u v e , mon c h i f f r e etait " , i )
import random
p r i n t ( " R e v i s i o n de l a t a b l e de m u l t i p l i c a t i o n . " )
k=0 # Compteur d e s b o n s r e s u l t a t s
f o r i i n range ( 2 0 ) :
a= i n t ( random . u n i f o r m ( 2 , 1 0 ) )
b= i n t ( random . u n i f o r m ( 2 , 1 0 ) )
print ( a , "" , b , " =" )
c = i n t ( input ( ? ) )
i f c ==( a b ) :
p r i n t ( " Oui " )
k=k+1
else :
p r i n t ( " Non " )
f (a) > 0
bc
f (c)
bc
f
f (x) = 0
bc
a c= a+b x b
2
bc
f (b) < 0
Figure XIII.5 Recherche du zro dune fonction par dichotomie
Exercice XIII.2 crire un programme en Python qui calcule la suite de Syracuse partir dun entier donn par
lutilisateur. Le principe est de partir dun nombre entier plus grand que zro ; sil est pair, on le divise par 2 ; sil
est impair, on le multiplie par 3 et on ajoute 1. En rptant lopration, on obtient une suite dentiers positifs dont
chacun ne dpend que de son prdcesseur. La conjecture de Syracuse est que cette suite calcule depuis nimporte
quel entier strictement positif atteint 1. On peut utiliser la commande python x%y qui renvoie le reste de la division
de x par y.
Initialisation de a et b
Tant que b a >tolrance faire
a+b
c= 2
Ce programme est donn sur la figure XIII.6. La fonction mathmatique pour laquelle on
souhaite connatre le zro est entre dans la fonction Python que lon nomme mafonction. Len-
tre est x, la sortie est valeur. Ici, on a choisit de chercher le zro de la fonction cosinus. Le
118 Initiation la programmation
def mafonction ( x ) :
import s c i p y
value = scipy . cos ( x )
return value
p r i n t ( " Z e r o de l a f o n c t i o n c o s i n u s e n t r e 0 e t 3 . " )
a =0.0
b =3.0
j =1 # Compteur d e s i t e r a t i o n s
w h i l e ( ( abs ( ab ) ) > 1 e 8 ) :
j = j +1
ya = m a f o n c t i o n ( a )
c = 0 . 5 ( a+b )
yc = m a f o n c t i o n ( c )
i f ( ( ya yc ) > 0 . 0 ) :
a=c
else :
b=c
import s c i p y
A= s c i p y . a r r a y ( [ [ 1 . 1 , 0 . 0 ] ,
[ 8.7 , 0.0] ,
[ 0.0 , 2 . 6 ] ] )
B= s c i p y . a r r a y ( [ [ 6 . 1 , 4 . 5 , 0 . 0 , 0 . 0 ] ,
[0.0 , 5.5 , 3.7 , 1 . 9 ] ] )
C= s c i p y . d o t (A, B)
print C
import s c i p y
import s c i p y . s p a r s e
V= s c i p y . a r r a y ( [ 4 . 6 , 1 . 0 , 2 . 0 , 5 . 5 , 8 . 0 , 6 . 9 , 1 . 5
,3.8 ,3.0 ,9.2 ,9.0 ,7.0 ,7.0])
I=scipy . array ([0 ,1 ,2 ,3 ,4 ,0 ,1 ,1 ,2 ,1 ,3 ,3 ,4])
J= scipy . array ([0 ,1 ,2 ,3 ,4 ,1 ,0 ,2 ,1 ,3 ,1 ,4 ,3])
A= s c i p y . s p a r s e . c s c _ m a t r i x ( (V , ( I , J ) ) , s h a p e = ( 5 , 5 ) )
print A. todense ( )
On stocke les valeurs des termes de la matrice dans le tableau V de rels, les indices des ligne et
colonne correspondant chaque terme sont stocks dans deux tableaux de pointeurs I et J. Les
pointeurs en Python commencent 0, cest dire que la premire ligne dune matrice est la ligne
0. On peut commencer par stocker les termes de la diagonale, puis les autres ensuite, mais lordre
na pas dimportance :
Le programme Python correspondant cet exemple est donn sur la figure XIII.8.
Lavantage du stockage creux des matrices est que lon peut rpter plusieurs fois les mmes
indices de lignes et colonnes avec des valeurs diffrentes, les valeurs sadditionnent automatique-
ment. Par exemple, on veut assembler les deux matrices suivantes 22 dans une matrice 33 :
" #
10 10
10 10
120 Initiation la programmation
import s c i p y
import s c i p y . s p a r s e
V= s c i p y . a r r a y ( [ 1 0 , 1 0 , 1 0 , 1 0 , 2 0 , 2 0 , 2 0 , 2 0 ] )
I=scipy . array ([0 ,0 ,1 ,1 ,1 ,1 ,2 ,2])
J= scipy . array ( [ 0 ,1 ,0 ,1 ,1 ,2 ,1 ,2] )
A= s c i p y . s p a r s e . c s c _ m a t r i x ( (V , ( I , J ) ) , s h a p e = ( 3 , 3 ) )
print A. todense ( )
V = [ 10 10 10 10 20 20 20 20 ]
I=[ 0 0 1 1 1 1 2 2 ]
J =[ 0 1 0 1 1 2 1 2 ]
dans une matrice 55 en assemblant sur les lignes et colonnes [0,1],[1,2],[2,3],[0,3],[3,4]. On pourra avantageuse-
ment utiliser un tableau de connectivit element tel que
elements=scipy.array([[0,1],[1,2],[2,3],[0,3],[3,4]]).
PROGRAM B o n j o u r
C commentaires : D e c l a r a t i o n des v a r i a b l e s
real a , b , c
integer i
complex w
C C o r p s du programme p r i n c i p a l
C En f o r t r a n , on commence en 7eme c o l o n n e
c on a r r e t e en 72eme :
C23456|
p r i n t , Programme q u i d i t b o n j o u r
a =3.14
b =2.78
i =3
w= cmplx ( 1 , 1 )
c=a b
p r i n t , ab = : , c
c= s q r t ( a )
p r i n t , r a c i n e c a r r e e de a = : , c
i = i +1
p r i n t , on a j o u t e 1 a i : , i
i = i +1
p r i n t , on r a j o u t e e n c o r e 1 a i : , i
END
72me colonne. Ce programme excute les mmes actions que son quivalent en Python de la
figure XIII.1. La premire ligne du programme commence par la commande PROGRAM En langage
Fortran, il faut dclarer les variables avant de les utiliser, cest dire prciser leurs types et leurs
tailles. Ici, a et b sont des rels dclars de type real ; la variable i est un entier dclar de type
integer.
Linstallation de Fortran est relativement simple :
Sous Ubuntu : via synaptic, installer : gfortran
Sous Windows : tlcharger gfortran depuis le site
http://gcc.gnu.org/wiki/GFortranBinaries#Windows,
puis suivre les instructions.
Pour excuter le programme, il faut le compiler pour en faire un programme excutable. Il
suffit de taper la commande suivante dans un terminal (en supposant que le fichier sappelle
bonjour.f) :
gfortran bonjour.f
Cela a pour effet de crer un fichier excutable a.out que lon peut lancer en tapant ./a.out
dans le terminal.
Exercice XIII.5 crire un programme en Fortran qui calcule la flche dune poutre encastre-libre partir de sa
longueur L, de son module dYoung E, de son moment quadratique de section I et de leffort appliqu F .
E, I F L3
3EI
L
Exercice XIII.6 crire un programme en Fortran qui calcule la suite de Syracuse partir dun entier donn par
lutilisateur. Le principe est de partir dun nombre entier plus grand que zro ; sil est pair, on le divise par 2 ; sil
est impair, on le multiplie par 3 et on ajoute 1. En rptant lopration, on obtient une suite dentiers positifs dont
chacun ne dpend que de son prdcesseur. La conjecture de Syracuse est que cette suite calcule depuis nimporte
quel entier strictement positif atteint 1.
PROGRAM J e u
integer i , j , k
p r i n t , D e v i n e z mon c h i f f r e , v o u s a v e z 3 e s s a i s .
i =6 ! C h i f f r e a d e v i n e r
j =1 ! Compteur d e s e s s a i s
do w h i l e ( j . l e . 3 )
print , Essai , j
print , Entrez votre proposition :
read , k
i f ( k . eq . i ) t h e n
p r i n t , Bravo
r e t u r n ! t h i s e n d s programme
endif
i f ( k . l t . i ) then
p r i n t , Mon c h i f f r e e s t p l u s g r a n d
endif
i f ( k . g t . i ) then
p r i n t , Mon c h i f f r e e s t p l u s p e t i t
endif
j = j +1
enddo
PROGRAM M u l t i p l i c a t i o n s
i m p l i c i t none
integer i , k , a , b , c
real rand
p r i n t , R e v i s i o n de l a t a b l e de m u l t i p l i c a t i o n .
k=0 ! Compteur d e s b o n s r e s u l t a t s
do i =1 ,20
a= f l o o r ( 8 r a n d ( 0 ) ) + 2
b= f l o o r ( 8 r a n d ( 0 ) ) + 2
print , a , ,b , = ?
read , c
i f ( c . eq . ( a b ) ) t h e n
p r i n t , Oui
print ,
k=k+1
else
p r i n t , Non
print ,
endif
enddo
p r i n t , Note s u r 2 0 : , k
END
PROGRAM D i c h o t o m i e
integer i , j , k
d o u b l e p r e c i s i o n a , b , c , ya , yc , m a f o n c t i o n
p r i n t , Z e r o de l a f o n c t i o n c o s i n u s e n t r e 0 e t 3 .
a =0.0
b =3.0
j =1 ! Compteur d e s i t e r a t i o n s
do w h i l e ( ( a b s ( ab ) ) . ge . 1 e 6)
j = j +1
ya = m a f o n c t i o n ( a )
c = 0 . 5 ( a+b )
yc = m a f o n c t i o n ( c )
i f ( ( ya yc ) . ge . ( 0 . 0 ) ) t h e n
a=c
else
b=c
endif
enddo
p r i n t , nombre d i t e r a t i o n s : , j
p r i n t , Z e r o de l a f o n c t i o n : , c
END
PROGRAM M a t r i c e s
d o u b l e p r e c i s i o n A( 3 , 2 ) , B ( 2 , 4 ) , C ( 3 , 4 )
integer i , j , k
A( 1 , 1 ) = 1 . 1 ; A( 1 , 2 ) = 0 . 0
A( 2 , 1 ) = 8 . 7 ; A( 2 , 2 ) = 0 . 0
A( 3 , 1 ) = 0 . 0 ; A( 3 , 2 ) = 2 . 6
do i =1 ,3
do j =1 ,4
C( i , j ) = 0 . 0
do k =1 ,2
C( i , j ) =C( i , j ) +A( i , k ) B( k , j )
enddo
enddo
enddo
do i =1 ,3
p r i n t , ( C( i , j ) , j = 1 , 4 )
enddo
END
Exercice XIII.7 Programmer en Fortran le calcul de lintgrale dune fonction f (x), par exemple cos x, entre a
et b par la formule des rectangles avec n intervalles dfinir.
SUBROUTINE p r o d m a t (A, B , C , l , m, n )
i n t e g e r l , m, n , i , j , k
r e a l 8 A( l ,m) , B(m, n ) , C( l , n )
C e n t r e e s / s o r t i e s pour Python
Cf2py i n t e n t ( i n ) A
Cf2py i n t e n t ( i n ) B
Cf2py i n t e n t ( o u t ) C
do i =1 , l
do j =1 , n
C( i , j ) = 0 . 0
do k =1 ,m
C( i , j ) =C( i , j ) +A( i , k ) B( k , j )
enddo
enddo
enddo
return
END
import s c i p y
import l i b _ m u l t i p l i c a t i o n
A= s c i p y . a r r a y ( [ [ 1 . 1 , 0 . 0 ] ,
[ 8.7 , 0.0] ,
[ 0.0 , 2 . 6 ] ] )
B= s c i p y . a r r a y ( [ [ 6 . 1 , 4 . 5 , 0 . 0 , 0 . 0 ] ,
[0.0 , 5.5 , 3.7 , 1 . 9 ] ] )
p r i n t ( l i b _ m u l t i p l i c a t i o n . __doc__ )
p r i n t ( l i b _ m u l t i p l i c a t i o n . p r o d m a t . __doc__ )
C= l i b _ m u l t i p l i c a t i o n . p r o d m a t (A, B)
p r i n t (C)
Figure XIII.16 Utilisation dune libraire crite en Fortran dans un programme en Python
c = prodmat(a,b,[l,m,n])
Parameters
----------
a : input rank-2 array(d) with bounds (l,m)
b : input rank-2 array(d) with bounds (m,n)
Other Parameters
----------------
l : input int, optional
Default: shape(a,0)
m : input int, optional
Default: shape(a,1)
n : input int, optional
Default: shape(b,1)
Returns
-------
c : rank-2 array(d) with bounds (l,n)
[[ 6.71 4.95 0. 0. ]
[ 53.07 39.15 0. 0. ]
[ 0. 14.3 9.62 4.94]]
Figure XIII.17 Rsultat de laffichage de lutilisation dune libraire crite en Fortran dans un programme
en Python
XIV Code SILEX
XIV.1 Prsentation
SILEX est un code de calcul par lments finis crit en Python et en Fortran. La figure XIV.1
montre les articulations entre les langages ainsi que les liens avec le logiciel Gmsh.
SILEX est articul de la faon suivante :
Cur
Gmsh
Fortran
Python Rsultats
1 1 1 1 1 1
p+1 p
i = (1) xj xk xl i = (1) xj xk xl
zj zk zl yj yk yl
o v est le volume de llment et en utilisant la permutation donne dans le tableau suivant :
i j k l p i j k l p i j k l p i j k l p
a b c d 1 b a c d 0 c a b d 1 d a b c 0
XIV.2 Cur crit en Fortran de SILEX pour le ttradre 4 nuds 131
K e = vB eT CB e
La sortie de la routine est la matrice de rigidit globale sous forme sparse dans les 2 tableaux Ik
et Jk de pointeurs et le tableau Vk contenant les valeurs des matrices de rigidit lmentaires.
On calcule dans un premier temps la loi de comportement du matriau C en fonction de E et
. Dans un second temps, pour chaque lment e, on extrait les coordonnes des nuds puis on
calcule la matrice de rigidit lmentaire ke de taille 1212..
La routine StiffnessMatrix crite en Python est aussi donne dans la suite.
XIV.2 Cur crit en Fortran de SILEX pour le ttradre 4 nuds 133
double p r e c i s i o n a ( 3 , 4 )
end
C
double p r e c i s i o n f u n c t i o n d e t 3 3 _ l i g n e _ d e _ u n ( a )
i m p l i c i t none
double p r e c i s i o n a ( 2 , 3 )
d e t 3 3 _ l i g n e _ d e _ u n = a ( 1 , 2 ) a (2 ,3) a ( 1 , 3 ) a ( 2 , 2 )
& a ( 1 , 1 ) a ( 2 , 3 ) + a ( 1 , 1 ) a ( 2 , 2 )
& +a ( 2 , 1 ) a (1 ,3) a ( 2 , 1 ) a ( 1 , 2 )
end
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
s u b r o u t i n e S t i f f n e s s M a t r i x ( nbnodes , nodes , nbelem , e l e m e n t s ,
& m a t e r i a l , Ik , Jk , Vk )
i m p l i c i t none
i n t e g e r nbnodes , nbelem
d o u b l e p r e c i s i o n n o d e s ( nbnodes , 3 )
i n t e g e r e l e m e n t s ( nbelem , 4 )
d o u b l e p r e c i s i o n CC ( 6 , 6 ) , Vk( 1 2 1 2 nbelem )
i n t e g e r I k ( 1 2 1 2 nbelem ) , J k ( 1 2 1 2 nbelem )
d o u b l e p r e c i s i o n m a t e r i a l ( 2 ) , young , nu , lambda , mu
Cf2py i n t e n t ( in ) nbnodes
Cf2py i n t e n t ( in ) nodes
Cf2py i n t e n t ( i n ) nbelem
Cf2py intent ( in ) elements
Cf2py intent ( in ) m a t e r i a l
Cf2py i n t e n t ( out ) Ik
Cf2py i n t e n t ( out ) Jk
Cf2py i n t e n t ( o u t ) Vk
d o u b l e p r e c i s i o n ke ( 1 2 , 1 2 ) ,X ( 4 ) , Y ( 4 ) , Z ( 4 )
i n t e g e r idnodes ( 4 ) , dofx ( 4 ) , dofy ( 4 ) , dofz ( 4 ) , dofelem ( 1 2 ) , p , e , i , j
d o u b l e p r e c i s i o n d e t _ o f _ s y s , Vol , a34 ( 3 , 4 ) , a23 ( 2 , 3 )
134 Code SILEX
d o u b l e p r e c i s i o n b e t a ( 4 ) , gamm ( 4 ) , d e l t ( 4 ) , d e t 4 4 _ l i g n e _ d e _ u n
d o u b l e p r e c i s i o n d e t 3 3 _ l i g n e _ d e _ u n , BB ( 6 , 1 2 )
young = m a t e r i a l ( 1 )
nu = material (2)
do i =1 ,6
do j =1 ,6
CC( i , j ) = 0 . 0 d0
enddo
do j =1 ,12
BB( i , j ) = 0 . 0 d0
enddo
enddo
lambda = nu young / ( ( 1 + nu )(1 2 nu ) )
mu = young / ( 2 ( 1 + nu ) )
do i =1 ,3
CC( i , i ) = lambda +2mu
CC( i +3 , i +3)=mu
enddo
CC( 1 , 2 ) = lambda ; CC( 2 , 1 ) = lambda
CC( 1 , 3 ) = lambda ; CC( 3 , 1 ) = lambda
CC( 2 , 3 ) = lambda ; CC( 3 , 2 ) = lambda
p=1
do e =1 , nbelem
do i =1 ,4
idnodes ( i ) = elements ( e , i )
c python indexing
dofx ( i ) = ( i d n o d e s ( i ) 1)3
dofy ( i ) = ( i d n o d e s ( i ) 1)3+1
dofz ( i ) = ( i d n o d e s ( i ) 1)3+2
enddo
do i =1 ,4
d o f e l e m ( 1 + 3 ( i 1)) = d o f x ( i )
d o f e l e m ( 2 + 3 ( i 1)) = d o f y ( i )
d o f e l e m ( 3 + 3 ( i 1)) = d o f z ( i )
enddo
do i =1 ,4
X( i ) = n o d e s ( i d n o d e s ( i ) , 1 )
Y( i ) = n o d e s ( i d n o d e s ( i ) , 2 )
Z( i )= nodes ( i d n o d e s ( i ) , 3 )
enddo
gamm( 1 ) = + d e t 3 3 _ l i g n e _ d e _ u n ( a23 )
do j =1 ,4
BB( 1 , 1 + 3 ( j 1)) = beta ( j ) / ( 6 . 0 d0 Vol )
BB( 2 , 2 + 3 ( j 1)) = gamm ( j ) / ( 6 . 0 d0 Vol )
BB( 3 , 3 + 3 ( j 1)) = delt ( j ) / ( 6 . 0 d0 Vol )
BB( 4 , 2 + 3 ( j 1)) = delt ( j ) / ( 6 . 0 d0 Vol )
BB( 4 , 3 + 3 ( j 1)) = gamm ( j ) / ( 6 . 0 d0 Vol )
BB( 5 , 1 + 3 ( j 1)) = delt ( j ) / ( 6 . 0 d0 Vol )
BB( 5 , 3 + 3 ( j 1)) = beta ( j ) / ( 6 . 0 d0 Vol )
BB( 6 , 1 + 3 ( j 1)) = gamm ( j ) / ( 6 . 0 d0 Vol )
BB( 6 , 2 + 3 ( j 1)) = beta ( j ) / ( 6 . 0 d0 Vol )
enddo
do i =1 ,12
136 Code SILEX
do j =1 ,12
Ik ( p )= dofelem ( i )
Jk ( p )= dofelem ( j )
Vk ( p ) = ke ( i , j )
p=p+1
enddo
enddo
enddo
return
end
p=0
f o r e i n range ( nelem ) :
idnodes [ : ] = elements [ e ,:] 1
dofx [ : ] = ( idnodes )3
dofy [ : ] = ( i d n o d e s )3+1
dofz [ : ] = ( i d n o d e s )3+2
dofelem [ 0 ] = dofx [ 0 ] ; dofelem [ 1 ] = dofy [0]; dofelem [ 2 ] = dofz [0]
dofelem [ 3 ] = dofx [ 1 ] ; dofelem [ 4 ] = dofy [1]; dofelem [ 5 ] = dofz [1]
dofelem [ 6 ] = dofx [ 2 ] ; dofelem [ 7 ] = dofy [2]; dofelem [ 8 ] = dofz [2]
dofelem [ 9 ] = dofx [ 3 ] ; dofelem [10] = dofy [3]; dofelem [11] = dofz [3]
X= n o d e s [ i d n o d e s , 0 ] ; Y= n o d e s [ i d n o d e s , 1 ] ; Z= n o d e s [ i d n o d e s , 2 ]
A34 [ 0 , : ] = X ; A34 [ 1 , : ] = Y ; A34 [ 2 , : ] = Z
d e t _ o f _ s y s = d e t 4 4 _ l i g n e _ d e _ u n ( A34 )
Vol = abs ( d e t _ o f _ s y s / 6 )
XIV.2 Cur crit en Fortran de SILEX pour le ttradre 4 nuds 137
B[0 ,0] = beta [ 0 ] ; B[0 ,3] = beta [ 1 ] ; B[0 ,6] = beta [ 2 ] ; B[0 ,9] = beta [3]
B[1 ,1] = gamm [ 0 ] ; B[1 ,4] = gamm [ 1 ] ; B[1 ,7] = gamm [ 2 ] ; B[1 ,10] = gamm [ 3 ]
B[2 ,2] = delt [0]; B[2 ,5] = delt [1]; B[2 ,8] = delt [2]; B[2 ,11] = delt [3]
B[3 ,2] = gamm [ 0 ] ; B[3 ,5] = gamm [ 1 ] ; B[3 ,8] = gamm [ 2 ] ; B[3 ,11] = gamm [ 3 ]
B[3 ,1] = delt [0]; B[3 ,4] = delt [1]; B[3 ,7] = delt [2]; B[3 ,10] = delt [3]
B[4 ,0] = delt [0]; B[4 ,3] = delt [1]; B[4 ,6] = delt [2]; B[4 ,9] = delt [3]
B[4 ,2] = beta [ 0 ] ; B[4 ,5] = beta [ 1 ] ; B[4 ,8] = beta [ 2 ] ; B[4 ,11] = beta [3]
B[5 ,0] = gamm [ 0 ] ; B[5 ,3] = gamm [ 1 ] ; B[5 ,6] = gamm [ 2 ] ; B[5 ,9] = gamm [ 3 ]
B[5 ,1] = beta [ 0 ] ; B[5 ,4] = beta [ 1 ] ; B[5 ,7] = beta [ 2 ] ; B[5 ,10] = beta [3]
ke = s c i p y . d o t ( B . T , s c i p y . d o t ( C , B ) ) Vol / ( d e t _ o f _ s y s d e t _ o f _ s y s )
f o r i i n range ( 1 2 ) :
Ik [ p : ( p +12)]= dofelem [ i ]
Jk [ p : ( p +12)]= dofelem [ : ]
Vk [ p : ( p + 1 2 ) ] = ke [ i , : ]
p=p +12
r e t u r n Ik , Jk , Vk
138 Code SILEX
Afin de vrifier si les maillages sont bien imports, on peut les crire dans un fichier au
format gmsh laide de la routine WriteResults de la librairie silex_lib_gmsh.
Utilisation :
silex_lib_gmsh.WriteResults
(maillage_lu.msh,nodes,elements,element_type)
La variable Young indique le module dYoung.
La variable nu indique le coefficient de Poisson.
Les nuds bloqus dans la direction x sont indiqus dans le tableau IdNodesFixed_x
, ceux bloqus dans la direction y dans le tableau IdNodesFixed_y, enfin ceux blo-
qus dans la direction
z dans le tableau IdNodesFixed_z.
La routine forceonsurface de la librairie silex_lib_tet4 (renomme en
silex_lib_elt) permet de calculer les forces aux nuds dues une force surfacique
de norme press dans la direction direction :
Utilisation :
F = silex_lib_elt.forceonsurface(nodes,
surfacic_elements_where_the_load_is_applied,press,direction)
Si la direction vaut [0.0,0.0,0.0], alors cest la normale locale la surface qui est
utilise, cest le cas pour une force surfacique due une pression. Dans ce cas la direc-
tion de la normale tant calcule partir de la numrotation locale des nuds, elle peut
tre en sens oppos, il suffit de changer le signe de press pour obtenir une force dans
la bonne direction.
Partie EXPERT : partie inchange lors dun nouveau calcul
La variable nnodes indique le nombre de nuds.
La variable ndof indique nombre de degrs de libert.
La variable nelem indique nombre dlments.
La variable Fixed_Dofs contient les ddl bloqus.
Le tableau SolvedDofs indique les ddl libres calculer.
Le tableau Q contient les dplacements des nuds.
Calcul de la matrice de rigidit et assemblage au format sparse :
Ik,Jk,Vk=silex_lib_elt.stiffnessmatrix(nodes,elements,[Young,nu])
K=scipy.sparse.csc_matrix( (Vk,(Ik,Jk)), shape=(ndof,ndof) ,dtype=float)
Rsolution du systme en dplacement (on suppose que les dplacements imposs sont
nuls, modifier dans le cas contraire) :
Q[SolvedDofs] = scipy.sparse.linalg.spsolve
(K[SolvedDofs,:][:,SolvedDofs],F[SolvedDofs])
Calcul des contraintes (dans les lments et lisses aux nuds), des dformations (dans
les lments et lisses aux nuds), des contributions des lments lerreur, et enfin
de lerreur en nergie ZZ1 :
140 Code SILEX
# P y t h o n Main program
# ############################################################################
# Import l i b r a r i e s
# ############################################################################
import s t r i n g ; import t i m e ; import s c i p y ;
import s c i p y . s p a r s e ; import s c i p y . s p a r s e . l i n a l g
import s y s
sys . p a t h . append ( . . / . . / l i b r a i r i e s )
## Choose b e t w e e n t h e F o r t r a n o r t h e P y t h o n l i b r a i r i e :
# import s i l e x _ l i b _ t e t 4 _ f o r t r a n as s i l e x _ l i b _ e l t
import s i l e x _ l i b _ t e t 4 _ p y t h o n a s s i l e x _ l i b _ e l t
import s i l e x _ l i b _ g m s h
# ############################################################################
p r i n t ( " SILEX CODE c a l c u l a v e c d e s t e t 4 " )
# ############################################################################
# ############################################################################
# USER PART : I m p o r t mesh , b o u n d a r y c o n d i t i o n s and m a t e r i a l
# ############################################################################
# I n p u t mesh : d e f i n e t h e name o f t h e mesh f i l e ( . msh )
MeshFileName = MyMesh
# r e a d t h e mesh f r o m gmsh
n o d e s = s i l e x _ l i b _ g m s h . ReadGmshNodes ( MeshFileName + . msh , ndim )
e l e m e n t s , I d n o d e s = s i l e x _ l i b _ g m s h . ReadGmshElements ( MeshFileName + . msh , e l t y p e , 5 )
# r e a d s u r f a c e s where t o i m p o s e b o u n d a r y c o n d i t i o n s
e l e m e n t s S 1 , I d n o d e S 1 = s i l e x _ l i b _ g m s h . ReadGmshElements ( MeshFileName + . msh , 2 , 1 )
e l e m e n t s S 2 , I d n o d e S 2 = s i l e x _ l i b _ g m s h . ReadGmshElements ( MeshFileName + . msh , 2 , 2 )
#...
# w r i t e t h e s u r f a c e mesh i n a gmshf o r m a t f i l e t o v e r i f y i f i t s c o r r e c t
s i l e x _ l i b _ g m s h . W r i t e R e s u l t s ( R e s u l t s F i l e N a m e + Volum , nodes , e l e m e n t s , 4 )
s i l e x _ l i b _ g m s h . W r i t e R e s u l t s ( R e s u l t s F i l e N a m e + s u r f 1 , nodes , e l e m e n t s S 1 , 2 )
#...
# Define material
Young = 2 0 0 0 0 0 . 0
142 Code SILEX
nu = 0.3
# Boundary c o n d i t i o n s , f o r i n s t a n c e :
IdNodesFixed_x=IdnodeS3
IdNodesFixed_y=IdnodeS1
IdNodesFixed_z=IdnodeS2
# compute e x t e r n a l f o r c e s from p r e s s u r e
p r e s s = 10 #MPa
# give the d i r e c t i o n of the s u r f a c i c load :
# i f [ 0 . 0 , 0 . 0 , 0 . 0 ] t h e n t h e l o c a l normal t o t h e s u r f a c e i s used
# otherwise , the d i r e c t i o n i s normalized to 1
direction = [0.0 ,0.0 ,0.0]
F = s i l e x _ l i b _ e l t . f o r c e o n s u r f a c e ( nodes , e l e m e n t s S 3 , p r e s s , d i r e c t i o n )
# ############################################################################
# EXPERT PART
# ############################################################################
# initialisations
# ############################################################################
# g e t number o f nodes , d o f and e l e m e n t s f r o m t h e mesh
nnodes = nodes . shape [ 0 ]
ndof = n n o d e s ndim
nelem = e l e m e n t s . s h a p e [ 0 ]
# define f i x e d dof
F i x e d _ D o f s = s c i p y . h s t a c k ( [ ( I d N o d e s F i x e d _ x 1)3 ,
( I d N o d e s F i x e d _ y 1)3+1 ,
( IdNodesFixed_z 1)3+2])
# i n i t i a l i z e displacement vector
Q= s c i p y . z e r o s ( n d o f )
# ############################################################################
# compute s t i f f n e s s m a t r i x
# ############################################################################
Ik , Jk , Vk= s i l e x _ l i b _ e l t . s t i f f n e s s m a t r i x ( nodes , e l e m e n t s , [ Young , nu ] )
K= s c i p y . s p a r s e . c s c _ m a t r i x ( ( Vk , ( Ik , J k ) ) , s h a p e = ( ndof , n d o f ) , d t y p e = f l o a t )
# ############################################################################
# Solve t h e problem
# ############################################################################
Q[ S o l v e d D o f s ] = s c i p y . s p a r s e . l i n a l g . s p s o l v e (
K[ S o l v e d D o f s , : ] [ : , S o l v e d D o f s ] , F [ S o l v e d D o f s ] )
# ############################################################################
# c o m p u t e s m o o t h s t r e s s and e r r o r i n e l e m e n t s
# ############################################################################
SigmaElem , SigmaNodes , E p s i l o n E l e m , E p s i l o n N o d e s , E r r o r E l e m , E r r o r G l o b a l =
s i l e x _ l i b _ e l t . c o m p u t e _ s t r e s s _ s t r a i n _ e r r o r ( nodes , e l e m e n t s , [ Young , nu ] ,Q)
# ############################################################################
XIV.3 Programme principal en Python 143
# W r i t e r e s u l t s t o gmsh f o r m a t
# ############################################################################
# d i s p l a c e m e n t w r i t t e n on 3 c o l u m n s :
d i s p = s c i p y . z e r o s ( ( nnodes , ndim ) )
d i s p [ range ( n n o d e s ) , 0 ] =Q[ l i s t ( range ( 0 , ndof , 3 ) ) ]
d i s p [ range ( n n o d e s ) , 1 ] =Q[ l i s t ( range ( 1 , ndof , 3 ) ) ]
d i s p [ range ( n n o d e s ) , 2 ] =Q[ l i s t ( range ( 2 , ndof , 3 ) ) ]
# e x t e r n a l l o a d w r i t t e n on 3 c o l u m n s :
l o a d = s c i p y . z e r o s ( ( nnodes , ndim ) )
l o a d [ range ( n n o d e s ) , 0 ] = F [ l i s t ( range ( 0 , ndof , 3 ) ) ]
l o a d [ range ( n n o d e s ) , 1 ] = F [ l i s t ( range ( 1 , ndof , 3 ) ) ]
l o a d [ range ( n n o d e s ) , 2 ] = F [ l i s t ( range ( 2 , ndof , 3 ) ) ]
i f f l a g _ w r i t e _ f i e l d s ==0:
f i e l d s _ t o _ w r i t e = [ [ d i s p , n o d a l , ndim , d i s p l a c e m e n t ] ,
[ SigmaElem [ range ( nelem ) , [ 6 ] ] , e l e m e n t a l , 1 , Sigma V .M. ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 6 ] ] , n o d a l , 1 , Smooth Sigma V .M. ] ,
[ ErrorElem , e l e m e n t a l ,1 , e r r o r ] ,
]
i f f l a g _ w r i t e _ f i e l d s ==1:
f i e l d s _ t o _ w r i t e = [ [ d i s p , n o d a l , ndim , d i s p l a c e m e n t ] ,
[ l o a d , n o d a l , ndim , F o r c e ] ,
[ SigmaElem [ range ( nelem ) , [ 0 ] ] , e l e m e n t a l , 1 , Sigma 11 ] ,
[ SigmaElem [ range ( nelem ) , [ 1 ] ] , e l e m e n t a l , 1 , Sigma 22 ] ,
[ SigmaElem [ range ( nelem ) , [ 2 ] ] , e l e m e n t a l , 1 , Sigma 33 ] ,
[ SigmaElem [ range ( nelem ) , [ 3 ] ] , e l e m e n t a l , 1 , Sigma 23 ] ,
[ SigmaElem [ range ( nelem ) , [ 4 ] ] , e l e m e n t a l , 1 , Sigma 13 ] ,
[ SigmaElem [ range ( nelem ) , [ 5 ] ] , e l e m e n t a l , 1 , Sigma 12 ] ,
[ SigmaElem [ range ( nelem ) , [ 6 ] ] , e l e m e n t a l , 1 , Sigma V .M. ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 0 ] ] , n o d a l , 1 , Smooth Sigma 11 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 1 ] ] , n o d a l , 1 , Smooth Sigma 22 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 2 ] ] , n o d a l , 1 , Smooth Sigma 33 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 3 ] ] , n o d a l , 1 , Smooth Sigma 23 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 4 ] ] , n o d a l , 1 , Smooth Sigma 13 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 5 ] ] , n o d a l , 1 , Smooth Sigma 12 ] ,
[ SigmaNodes [ range ( n n o d e s ) , [ 6 ] ] , n o d a l , 1 , Smooth Sigma V .M. ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 0 ] ] , e l e m e n t a l , 1 , E p s i l o n 11 ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 1 ] ] , e l e m e n t a l , 1 , E p s i l o n 22 ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 2 ] ] , e l e m e n t a l , 1 , E p s i l o n 33 ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 3 ] ] / 2 . 0 , e l e m e n t a l , 1 , E p s i l o n 23 ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 4 ] ] / 2 . 0 , e l e m e n t a l , 1 , E p s i l o n 13 ] ,
[ E p s i l o n E l e m [ range ( nelem ) , [ 5 ] ] / 2 . 0 , e l e m e n t a l , 1 , E p s i l o n 12 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 0 ] ] , n o d a l , 1 , Smooth E p s i l o n 11 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 1 ] ] , n o d a l , 1 , Smooth E p s i l o n 22 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 2 ] ] , n o d a l , 1 , Smooth E p s i l o n 33 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 3 ] ] / 2 . 0 , n o d a l , 1 , Smooth E p s i l o n 23 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 4 ] ] / 2 . 0 , n o d a l , 1 , Smooth E p s i l o n 13 ] ,
[ E p s i l o n N o d e s [ range ( n n o d e s ) , [ 5 ] ] / 2 . 0 , n o d a l , 1 , Smooth E p s i l o n 12 ] ,
[ ErrorElem , e l e m e n t a l ,1 , e r r o r ] ,
]
Exercice XIV.1 Crer le fichier texte plaque-trouee.geo suivant, puis effectuer un maillage de triangles 3
nuds (h est la taille des lments).
h = 10;
Point(1) = {0, 50, 0, h};
Point(2) = {0, 200, 0, h};
Point(3) = {50, 0, 0, h};
Point(4) = {100, 0, 0, h};
Point(5) = {100, 200, 0, h};
Point(6) = {0, 0, 0};
Line(1) = {1, 2};
Line(2) = {3, 4};
Line(3) = {4, 5};
Line(4) = {5, 2};
Circle(5) = {3, 6, 1};
Line Loop(6) = {3, 4, -1, -5, 2};
pression applique
et lisses aux nuds du maillage pour les ttradres 4 nuds. Les contributions des lments
lerreur globale sont montres sur la figure XIV.7 pour les ttradres 4 nuds.
Le dplacement convergence vers une valeur maximale de 0,0245 mm (figure XIV.8(a)). Des
oscillations sont observes dans ltude de convergence de la contrainte maximale de Von Mises
dans les lments (figure XIV.8(b)) : les contraintes tant constantes dans les lments ttradres
4 nuds, elles sont sensibles la qualit locale du maillage. La contrainte maximale de Von Mises
lisse converge vers une valeur comprise entre 80 MPa et 85 MPa (figure XIV.8(b)). Lvolution
de lerreur globale est prsente sur la figure XIV.9(a) :
pour les ttradres 4 nuds, la pente est de 0,56 alors que la pente thorique optimale est
de 1 ;
pour les ttradres 10 nuds, la pente est de 1,2 alors que la pente thorique optimale est
de 2 ;
La figure XIV.9(b) montre lvolution du temps de calcul en fonction du nombre de nuds du
maillage pour les deux types dlments. Ce temps est limit ici au temps de rsolution du systme
pour trouver la solution en dplacement : le temps rel est plus grand en prenant en compte la
construction du maillage, les tapes de lecture et dcriture ainsi que le calcul des contraintes et
de lerreur. nombre de nuds gal, le temps de calcul est sensiblement le mme pour les deux
types dlments. Lvolution de ce temps est une droite en fonction du nombre de nuds dans un
diagramme log-log, il volue donc selon une loi puissance avec le nombre dinconnues rsoudre.
(a) 1011 nuds, 3622 lments (b) 3065 nuds, 11891 l- (c) 35021 nuds, 154526 l- (d) 161639 nuds, 865338 l-
ments ments ments
(a) Maillage a, Dplacement (b) Maillage b, Dplacement (c) Maillage c, Dplacement (d) Maillage d, Dplacement
maximal de 0,0207 mm maximal de 0,0224 mm maximal de 0,0241 mm maximal de 0,0244 mm
(a) Maillage a, Contrainte (b) Maillage b, Contrainte (c) Maillage c, Contrainte (d) Maillage d, Contrainte
maximale de 86,8 MPa maximale de 81,5 MPa maximale de 107 MPa maximale de 126 MPa
Figure XIV.5 volution de la contrainte de Von Mises dans les lments (ttradres 4 nuds)
(a) Maillage a, Contrainte lis- (b) Maillage b, Contrainte lis- (c) Maillage c, Contrainte lis- (d) Maillage d, Contrainte lis-
se maximale de 53,9 MPa se maximale de 56,9 MPa se maximale de 76,7 MPa se maximale de 83,3 MPa
(a) Maillage a, erreur globale (b) Maillage b, erreur globale (c) Maillage c, erreur globale (d) Maillage d, erreur globale
de 30,4% de 23,4% de 12,4% de 8,5%
Figure XIV.7 volution de la contribution des lments lerreur globale (ttradres 4 nuds)
(a) volution du dplacement maximal (b) volution de la contrainte maximale de Von Mises