Professional Documents
Culture Documents
lments finis
Antoine Legay
Cnam-Paris
2015-2016
I Introduction
15
II Problme de rfrence
ii
21
29
39
47
Introduction 29
Fonction une variable 29
Fonction deux variables 32
Fonction vectorielle deux variables 35
Fonction trois variables 35
Fonction vectorielle trois variables 37
Introduction 39
Fonctions de forme dans un lment unidimensionnel 39
Fonctions de forme dans un lment du plan 41
Fonctions de forme dans un lment tridimensionnel 44
VI Problme discrtis
iii
57
65
77
85
iv
Espace discrtis 89
Oprateur gradient discrtis 89
Matrice de rigidit 89
Calcul de treillis de barres 90
95
105
113
Principe 105
Stratgie de rsolution globale 108
Gnralisation plusieurs sous-structures
Calcul du complment de Schur 109
108
129
I Introduction
Introduction
1 variable
a) poutre
1111
0000
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
0000
1111
2 variables
b) coque
111
000
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
3 variables
c) tridimensionnel
Introduction
le champ de dplacement
u est dfini comme :
u rgulier : R3 R3
M 7
v (M )
On pose lensemble V des champs de dplacement suffisament rguliers dfinis de vers
R :
3
V=
v rgulier : R3
R3
7
v (M )
La notion de fonction suffisament rgulire nest pas dtaille ici, cela fait appel des proprits mathmatiques des fonctions qui permettent de les driver, de les intgrer, et plus particulirement 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 suffisament
rgulire 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 .
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 +at
v
(a + b) u = a u +b u
(ab)
u = a (b
u)
1 u = u
F =(
u 1,
u 2 , ...,
un)
Tous vecteur
v V scrivant sous la forme
a1
u 1 +a2
u 2 +...+an
un
o a1 , a2 , ..., an R est dit combinaison linaire de la famille F .
Famille libre et famille lie dun espace vectoriel
Une famille est dite libre si chaque vecteur de la famille ne peut pas scrire comme une combinaison linaire des autres vecteurs de la famille. Si une famille nest pas libre, elle est lie, cest
dire que au moins un vecteur de la famille peut scrire comme une combinaison linaire des
autres vecteurs de la famille.
Base et dimension dun espace vectoriel
Une base est une famille libre qui permet dcrire nimporte quel vecteur de lespace vectoriel
comme une combinaison linaire des vecteurs de la base. Il existe une infinit de bases pour un
espace vectoriel, mais elles ont toutes le mme nombre de vecteurs.
La dimension dun espace vectoriel est le nombre de vecteurs dune base de cet espace vectoriel.
Si les bases nont pas un nombre fini de vecteurs, lespace vectoriel est de dimension infinie.
Exercice I.1 Soit lensemble M2,2 (R) des matrices coefficients dans R 2 lignes et 2 colonnes, muni de
laddition + des matrices et de la multiplication par un scalaire de R des matrices.
1. Justifier que cet espace est un espace vectoriel.
2. Donner une famille libre, puis une famille lie.
3. Donner la base canonique, en dduire la dimension de cet espace vectoriel.
On donne la famille b suivante :
b=
1
0
0
1
0
1
1
0
0
0
2
4
1
3
1
1
1
0
1
0
Introduction
0
0
0
0
a (A+B) = a A+a B
(a + b) A = a A+b A
(ab) A = a (b A)
1A=A
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1 1
1 0
;
0 1
1 1
car la troisime matrice est la somme des deux premires.
La base canonique est
e=
1
1
0
0
2
1
1
0
b=
0 ;
0 (e)
0
;
1
1 (e)
1
0
0
0
+4
0
0
0
1
1
;
1
0 (e)
+2
1
2
0
0
1
0
0
1
0
0
1
0 (e)
+3
0
1
0
0
1
4
A=
2
3 (e)
Pour crire A dans la base b, on cherche crire A comme une combinaison linaire des matrices (ou vecteurs)
de la base b :
4
= 1
2
3 (e)
La solution est :
1
1
0
0
0
0
1
1
0
1
1
0
1
+2
0
0 (e)
0
+3
1
1 (e)
1
1
1
2 4
0
=
1 3 2
3
4
0
1 = 3 ; 2 = 3 ; 3 = 1 ; = 4 = 2
Donc A dans la base b scrit
3
3
A=
1
2 (b)
1
+4
1
0 (e)
1
0
1
0 (e)
Le champ de dplacement
u solution de ce problme mathmatique appartient un espace vectoriel not V de dimension infinie. Cet espace est trop grand pour y trouver la solution exacte
du modle mathmatique, sauf dans quelques cas particuliers.
Dans un deuxime temps, lide de la mthode des lments finis est de chercher une solution
approche du modle mathmatique dans un sous-espace vectoriel, not V h , de V et de dimension
finie dont on se donne une base :
(
1,
2 , ...,
n )
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
Introduction
Pb.
rel
Modle
mcanique
mathmatique
Modle
lments
finis
Solution
relle
Solution
de
rfrence
Solution
E.F.
Erreur
de
modle
Erreur
de mesure
Mesures
Erreur
de
discrtisation
Erreur
observe
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).
Avant dformation :
1
u1
x
u2
Aprs dformation :
x
F2
x
F1
Figure I.5 lment barre 2 noeuds.
Le mme lment de barre est trait de faon plus cohrente avec le cours dans le chapitre X.
KO = ext. 2 N = F2
ou bien
KO = ext. 1 N = F1
ES
ES
l N =
(u2 u1 )
l
l
ES
(u1 u2 )
l
10
Introduction
ES
(u1 + u2 )
l
Ces deux dernires relations scrivent sous la forme matricielle suivante :
F2 =
"
F1
F2
"
ES
=
l
La matrice
"
ES
k=
l
1 1
1
1 1
#"
u1
u2
1
1
1
1
u1
u2
F1
F2
ES
l
1
1
1
1
0
u2
F1
F
o les inconnues sont le dplacement de lextrmit droite u2 et la force de raction de lextrmit gauche F1 . Ce
systme de 2 quations 2 inconnues donne la solution
u2 =
Fl
ES
et
F1 = F
Leffort normal est dtermin par
N=
ES
ES F l
(u2 u1 ) =
(
0) = F
l
l ES
respectivement de u
x,u
x et u
x (u < u < u si les deux barres sont en traction).
1
11
E1 , S1
E2 , S2
u1
x
u2
x
u3
x
tat dform
N1
x
II
F1
x 1 N1
x
N1
x
x
N1
x 2 N2
x
F2
N2 x
II
N2
x
N2
x 3 F3
x
Figure I.6 Deux barres en traction.
quilibre du nud 3
F3 N 2 = 0 N 2 = F3
Pour chaque lment, on peut relier leffort normal lallongment de la barre :
lment I :
N1 =
E1 S1
(u2 u1 )
L1
lment II :
E2 S2
(u3 u2 )
L2
En remplaant dans les expressions des quilibres des nuds, on a les trois quations suiN2 =
vantes :
E1 S1
(u2 u1 ) = F1
L1
E1 S1
E2 S2
(u2 u1 )
(u3 u2 ) = F2
L1
L2
E2 S2
(u3 u2 ) = F3
L2
En notant k1 = E1 S1 /L1 et k2 = E2 S2 /L2 , on a alors le systme matriciel suivant :
k1
k
1
k1
u1
F1
k2 + k1 k2
u2 = F2
0
k2
k2
F3
u3
{z
K
} | {z }
Q
| {z }
F
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
Mise en uvre pratique
La premire tape consiste crire les deux matrices de rigidit des deux lments en reprant les
lignes et les colonnes de chaque matrice par les inconnues de dplacements associes :
k1 =
"
u1
u2
k1
k1
k1
k1
u1
u2
u3
k2
k2
k2
k2
"
et k2 =
u2
u2 .
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
K =
k1
0
u1
k2 u2 .
k1 + k2
k2
k2
u3
u1
= 0, connu
inconnu
Q=
u
2
u3
F1
= 0, connu
F =
F
2
inconnu
F3
= F, connu
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
k1
F1
k2 + k1 k2
u2 = 0
F
u3
0
k2
k2
Une fois toutes les inconnus trouves, on peut calculer les efforts normaux dans chaque barre :
N1 =
E1 S1
(u2 u1 )
|{z}
l1
=0
et
N2 =
E2 S2
(u3 u2 ).
l2
13
u2Y
u2X
u1Y
1
u1X
u = u
x.
Il scrit dans le repre global
u = uX X + uY Y .
Y
En notant uX
1 et u1 les dplacements suivant X et Y du nud 1 de la barre dans le repre global,
et en appliquant la formule prcdente au nud 1, on a
Y
u1 = uX
1 cos + u1 sin .
u1
u2
"
|
cos sin
0
cos
{z
=T
soit
uX
1
#
uY
1
X
sin
u2
}
Y
u2
| {z }
=Q
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.
14
Introduction
Il est possible dcrire les mmes relations pour les forces extrieures agissant aux nuds de
llment :
F 1 = F1
x = F1X X + F1Y Y et F 2 = F2
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
sin
=
0
FY
1
X
F
2
F2Y
"
#
F
1
cos
F2
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
F2
ES
=
l
"
1 1
1
#"
u1
u2
F1X
FY
1
X
F
2
F2Y
cos
sin
=
0
"
ES
1
l
cos
1
1
1
#"
cos sin
0
uY2
sin
ES
l
|
cos2
cos sin
cos2
cos sin
cos sin
sin2
cos sin
sin2
cos2
cos sin
cos2
cos sin
cos sin
sin2
cos sin
sin
{z
=kg
uX
1
uY
1
X
u
2
uY2
F1X
FY
1
= X
F
2
uX
1
#
uY
1
X
sin
u2
cos
ES
ES X
Y
Y
(u2 u1 ) =
(u2 uX
)
cos
+
(u
u
)
sin
1
2
1
l
l
F2Y
II Problme de rfrence
une force volumique f dans et une force surfacique donne F d sur la surface F .
Le dplacement
u d est impos sur la surface , complmentaire . Les deux surfaces
u
u et F vrifient :
= u F et u F = .
T
d
de contraintes symtrique ( = ) sous leffet des forces appliques F et f qui vrifient :
1. Les conditions cinmatiques :
u =
u d , M u
2. Les quations dquilibre :
div + f = 0 , M
ud
d
F
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)
o C est loprateur dlasticit et est loprateur linaire des dformations du champ de
dplacement
u dfini par
(
u) =
1
Grad(
u ) + GradT (
u) .
2
Pour un matriau isotrope, les coefficients dlasticit se rduisent deux constantes indpendantes (, ) 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 + )
T r() 1 .
E
E
=
Preuve quations dquilibre
Un volume quelconque inclu dans subit :
n dS +
f d = 0
f d = 0
div d +
ou encore
div + f d = 0
M , div + f = 0
Lquilibre en moment de permet de montrer que loprateur des contraintes est symtrique.
17
v rgulier :
R3
7
v (M )
Par soucis de simplicit, la loi interne est note + dans la suite, la loi externe est note sans
un lment
v de V :
v (M ) = v1 (M )
e 1 + v2 (M )
e 2 + v3 (M )
e3
v1 (M )
v(M ) =
v2 (M )
v3 (M )
(
e 1 ,
e 2 ,
e 3)
o la base est prcise en indice. On utilise la notation indicielle vi pour manipuler les composantes de v. Avec les conventions classiques de notations indicielles, on peut crire
3
v (M ) =
vi (M )
ei
i=1
ou encore
v (M ) = vi (M )
ei
avec la convention de sommation implicite.
u V /
u (M ) =
u d M u
U=
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.
7 (M )
18
Problme de rfrence
Par soucis de simplicit, la loi interne est note + dans la suite, la loi externe est note sans
symbole.
sym.
(R), par exemple la base canonique eij , pour reprsenter
On peut utiliser une base de M3,3
11 12 13
=
21 22 23
31 32 33 (
1,
e 2 ,
e 3)
sym.
(R) :
qui scrit dans la base canonique de M3,3
1 0 0
0 0 0
0 0 0
0 0 0
0 0 0
= 11
0 0 0 +22 0 1 0 +33 0 0 0 +23 0 0 1 +32 0 0 0
0 0 0
0 0 0
0 0 1
0 0 0
0 1 0
|
{z
=e11
0 0 1
{z
=e22
0 0 0
{z
=e33
{z
=e23
0 1 0
0 0 0
{z
=e32
+13
0 0 0 +31 0 0 0 +12 0 0 0 +21 1 0 0
1 0 0
0 0 0
0 0 0
0 0 0
|
{z
=e13
{z
=e31
{z
=e12
{z
=e21
= ij eij
Loprateur des contraintes tant symtrique, on peut crire partir de seulement 6 composantes :
1 6 5
=
6 2 4
5 4 3 (
1,
e 2 ,
e 3)
1 0 0
0 0 0
0 0 0
= 1
0 0 0 +2 0 1 0 +3 0 0 0
0 0 0
0 0 0
0 0 1
{z
=e1
0 0 0
{z
=e2
0 0 1
{z
=e3
0 1 0
+4
0 0 1 +5 0 0 0 +6 1 0 0
0 1 0
1 0 0
0 0 0
|
{z
=e4
{z
=e5
{z
=e6
19
(ei )
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
22
33
23
13
12
Exercice II.2 Ecrire loprateur des contraintes en notations de Voigt dans le cas des contraintes planes.
Solution :
soit aussi
1
= 11 0
0
11
= 12
0
0
0
0
12
22
0
0
0
0 + 22 0
0
0
0
0
0 (
0
0
0 + 12 1
0
0
0
1
0
1, e 2, e 3)
1
0
0
0
0
0
11
= 22
12
Exercice II.3 Ecrire loprateur des contraintes en notations de Voigt dans le cas dun problme axisymtrique.
S = C / div + f = 0, M et
n = F d , M F
S = C / ij,j + fi = 0, M et ij nj = Fid , M F
20
Problme de rfrence
Le couple (
u , ) solution du problme est tel que
u est cinmatiquement admissible :
u U
est statiquement admissible : S
u et vrifient la relation de comportement
= C(
u)
avec
(
u)=
1
Grad(
u ) + GradT (
u)
2
Le champ de dplacement
u)S
u U est solution du problme si et seulement si C(
Exercice II.4 Etablir 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
u (x) =
o E est le module dYoung et S est laire de la section.
En dduire lcriture de la solution du problme.
N (x)
ES
S = C / ij,j + fi = 0 M et ij nj = Fid M F
u V/
u (M ) = 0 M u
U0 =
n
ij,j ui d +
(ij ui ),j d
fi ui d = 0 et
ij ui,j d +
ij nj = Fid M F
ij nj = Fid M F
fi ui d = 0 et
ij nj = Fid M F
ij nj ui dS
ij ui,j d +
fi ui d = 0 et
ij nj = Fid M F
22
criture variationnelle
Ud
x = L Problme
x=0
Ud
x = L Solution
x=0
F
Exemples de champs V
Exemples de champs U
Exemples de champs U0
ij ui,j d +
Fid ui dS +
fi ui d = 0 .
ij ui,j = ij ij (u).
Preuve
ij ui,j
1
ij ui,j + ij ui,j
2
1
ij ui,j + ij uj,i
2
1
ij ui,j + ji ui,j
2
1
ui,j + uj,i
2
= ij ij (u)
u U0 ,
ij ij (u) d
Fid ui dS
fi ui d = 0
S = C | u U0 ,
ij ij (u) d
Fid ui dS
fi ui d = 0
23
On peut utiliser les notations de Voigt pour crire plus simplement la formulation variationnelle
propose. La notation de Voigt de est donne par
11
22
33
23
13
12
3
4
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
ij ij = [ 11 22 33 23 13 12
1 0 0 0 0 0
11
0 1 0 0 0 0
22
0 0 1 0 0 0
33
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 dformations en notations de Voigt sous la forme :
11
22
33
223
213
212
On remarque que cette notation est quivalente changer la base de reprsentation pour les
dformations :
0 0
= 11
0 0 0 + 22 0 1 0 + 33 0 0 0 + 223 0 0
1
2
1 0 0
0 0 0
On a alors :
0 0 0
0 0 0
0 0
1
2
+213
0 0 0 + 212
1
2
0 0
0 0 0
0 0 1
1
2
1
2
0 0
ij ij = T = T
0 0
1
2
24
criture variationnelle
S = C / u U0 ,
(u)T d
uT F d dS
uT f d = 0
11
23
13
12
+ 2
0 0
+ 2
0 0
0
22
0
33
22
33
11
+ 2 0 0
0 223
0 0
213
0 0
{z
212
=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
E
= 22 =
2
1
12
0
1
0
0
0
1
2
11
22 = C
212
(
u)=
1
Grad(
u ) + GradT (
u) .
2
( u ) =
11
223
213
212
0
=
0
z
22
33
{z
=D
ux
uy = Du .
uz
25
Exercice III.2 Montrer que loprateur diffrentiel D reliant les dformations au dplacement dans le cas dun
problme plan vaut :
0
11
x
ux
= 22 = 0
= Du
y
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.
On rappelle que le gradient du dplacement vaut
1
r
u
r
Grad( u ) =
1
r
v
r
1
r
w
r
rr
zz
2rz
2z
2r
+u
u
z
v
z
w
z
1
r
1
r
1
r
1
r
1r +
,e
(e
r , k )
v = Du
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
0
r
1
rr
r
=
=
zz
0
2rz
0
u
w
= Du .
Le champ de dplacement
u U solution du problme vrifie :
u U0
Z
Z
Z
T (u)C (u) d
ou bien
(Du)T C Du d
uT F d dS
uT f d = 0
uT F d dS
uT f d = 0
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
u (x) =
N (x)
ES
W(
v)=
vi fi d +
vi Fid
dS +
vi Ri dS
o Ri sont les ractions des liaisons sur le bord u . Pour un champ de dplacement cin
matiquement admissible
u U on a :
W(
u)=
ui fi d +
ui Fid dS +
udi Ri dS
W(u) =
ui fi d +
ui Fid dS
ED (
u)=
2
Cijkl kl (
u ) ij (
u ) d =
2
u ) d
u )C(
T (
Ep (
u ) = ED (
u ) W(
u)
Thorme III.1
u U0
Z
T (u)C (u) d
uT F d dS
uT f d = 0
27
E D (
u + u)
1
2
1
2
Cijkl ij (
u + u) kl (
u + u) d
Cijkl
1
+
2
ij (
u ) kl (
u ) d +
2
Cijkl
Cijkl ij (u) kl (
u ) d
ij (
u ) kl (
u ) d +
2
Cijkl ij (u) kl (
u ) d
{z
ngligeable
Le dernier terme est ngligeable devant les trois autres termes. tant donne la symtrie de la loi de comportement
E D (
u + u) =
2
Cijkl
ij (
u ) kl (
u ) d +
{z
=ED (
u)
Cijkl ij (
u ) kl (u) d
{z
=ED
E D (
u + u) = ED (
u ) + ED
do par identification on a
ED =
Cijkl ij (
u ) kl (u) d
Lorsque
u U varie de u avec u U0 , le travail des forces extrieures varie de W :
W(
u + u) =
ui fi d +
ui Fid dS +
F
udi Ri dS +
=W(
u)
W(
u + u) = W(
u ) + W
avec
W =
ui Fid
dS +
Cijkl ij (
u ) kl (u) d
cest dire
ui Fid dS
{z
=W
ui fi d
ui Fid dS
u U0 ,
ui fi d +
{z
ui fi d = 0
u U0 , ED W = 0
soit aussi
u U0 , Ep = 0
V R
Z
Z
v f d +
v 7 L(
v)=
v F d dS +
v R dS
W(
v ) = L(
v).
28
criture variationnelle
u )C(
v ) d
u , v 7 a( u , v ) =
T (
ED (
u ) = a(
u ,
u)
2
a(
u ,
v ) = a(
v ,
u ) car C est symtrique
u ) = (
u)
a(
u ,
v ) = a(
u ,
v ) car (
u +
w ) = (
u ) + (
w)
a(
u +
w,
v ) = a(
u ,
v ) + a(
w,
v ) car (
a(
u ,
u ) 0 car lnergie de dformation dun champ de dplacement nest jamais nga
a(
u ,
u ) = 0 entraine que
u est un dplacement de solide rigide (car lnergie de dfor
mation dun solide rigide est nulle) ou bien entraine que
u est le champ de dplacement
a(
u ,
v ) est une forme dfinie positive, cest donc un produit scalaire.
Trouver
u U tel que :
u U0
Z
Z
Z
T
u F dS u f d = 0
(u)C ( u ) d
F
Cela peut scrire laide des formes bilinaire et linaire introduites comme :
Thorme III.2
u U et v U0 , a(
u ,
v ) = L(
v)
k
u kE = a(
u ,
u)
On remarque que
1
ED (
u) =
2
21
1
1 2
u )C(
u ) d = a(
T (
u ,
u)= k
u kE
2
2
IV.1 Introduction
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.
v rgulier : [A, B] R
x 7 v(x)
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 indpendantes, 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 lintervalle [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
B
Figure IV.1 Fonctions de V une variable dfinie sur [A, B].
1
1
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
2
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
3
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
4
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
5
bc
x1 = A
bc
x2
bc
x3
bc
x4
bc
x5 = B
31
1
5
bc
bc
x1 = A
bc
x2
bc
x3
bc
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
En crivant la valeur de uh au nud i, on a (sans sommation implicite)
uh (xi ) = 1 1 (xi ) +2 2 (xi ) +... + i i (xi ) +...n n (xi ) = i
| {z }
=0
| {z }
=0
| {z }
=1
| {z }
=0
32
u =
u1
u2
..
.
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 :
U =
u1
u2
..
.
un
bc
bc
bc
bc
bc
x1 = A
bc
x6 = B
v rgulier : R
(x, y) 7 v(x, y)
33
u(x, y)
(x, y)
x
Figure IV.4 Une fonction deux variables dfinie sur un domaine du plan.
domaine
lments 3 nuds
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 construction 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
2
y
6
1
{z
=0
{z
=0
{z
=1
{z
=0
u =
u1
u2
..
.
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 :
U =
u1
u2
..
.
un
1
x
35
v rgulier :
R2
(x, y) 7
v (x, y)
On construit dans un premier temps les fonctions i (x, y) de la mme faon que ce qui est
fait pour le cas dune fonction deux variables. On construit ensuite lensemble V h partir des
V h = vect {1 (x, y)
e 1 , 1 (x, y)
e 2 , . . . n (x, y)
e 1 , n (x, y)
e 2}
La dimension de V h est 2n.
Tout champ de dplacement de V h scrit sous la forme :
u h (x, y) = u1 1 (x, y)
e 1 + v1 1 (x, y)
e 2 + . . . + un n (x, y)
e 1 + vn n (x, y)
e2
ou encore
uh = U
avec
=
"
. . . n
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 :
U =
u1
v1
..
.
un
vn
v rgulier : R
(x, y, z) 7 v(x, y, z)
36
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 dfinie comme lespace engendr par les fonctions i (x, y, z) :
V h = vect {1 (x, y, z), 2 (x, y, z), ...n(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) :
uh (x, y, z) = u1 1 (x, y, z) + u2 2 (x, y, z) + ...un n (x, y, z)
o uh (xi , yi , zi ) = ui
On peut crire plus simplement uh dans la base des i comme :
uh =
u1
u2
..
.
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 :
U =
u1
u2
..
.
un
37
v rgulier :
R3
(x, y, z) 7
v (x, y, z)
On construit dans un premier temps les fonctions i (x, y, z) de la mme faon que ce qui est
fait pour le cas dune fonction trois variables. On construit ensuite lensemble V h partir des
V h = vect {1 (x, y, z)
e 1 , 1 (x, y, z)
e 2 , 1 (x, y, z)
e 3, . . . ,
u h (x, y, z) = u1 1 (x, y, z)
e 1 + v1 1 (x, y, z)
e 2 + w1 1 (x, y, z)
e 3 + ...
+u (x, y, z)
e + v (x, y, z)
e + w (x, y, z)
e
1
n n
n n
n n
ou encore
uh = U
avec
. . . n
=
0
...
1 . . .
o est appele la matrice des fonctions de forme et U est la reprsentation de uh dans la base
des fonctions de forme :
U =
u1
v1
w1
..
.
un
vn
wn
v rgulier : e R
M
7 v(M )
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 .
40
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
2
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
3
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
4
bc
bc
x1 = A
bc
x2
bc
x3
bc
x4
x5 = B
1
5
bc
x1 = A
bc
x2
bc
x3
bc
x4
bc
x5 = B
41
bc
x1 = A
bc
x2
bc
bc
x2
x3
bc
bc
x3
bc
x4
x4
bc
x5 = B
bc
bc
la base [ 1 x ] :
Veh = vect {1, x}
Finalement, le passage de la base canonique polynmiale [ 1 x ] la base des fonctions de forme
[ a (x) b (x) ] est un changement de base. Il suffit dcrire la base canonique dans la base des
fonctions de forme pour trouver les expressions de a et b :
x [a, b], 1 = 1a (x) + 1b (x)
x [a, b], x = aa (x) + bb (x)
soit le systme linaire deux inconnues suivant rsoudre :
"
1 1
a b
#"
a (x)
b (x)
"
1
x
xb
bx
xa
xa
=
et b (x) =
=
ab
l
ba
l
x
x
et b (x ) =
l
l
42
x
l
x
l
b (x ) =
bc
bc
Aa =
c
yb
M
e2
Ab =
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 :
x, y e , uhe (x, y) = ua a (x, y) + ub b (x, y) + uc c (x, y)
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
o (xa , ya ), (xb , yb ) et (xc , yc ) sont les coordonnes des 3 nuds a, b et c du triangle.
43
c
1
0 c
0
a
x
a
ya
a (x, y)
xb xc
b (x, y) = x
y
c (x, y)
yb yc
On peut rsoudre ce systme par la mthode de Cramer, il faut alors calculer les quantits suivantes :
2Aa = det
x xb xc
y yb yc
2A = det
xa xb xc
ya yb yc
2Ac = det
xa xb x
ya yb y
2Ab = det
xa x xc
ya y yc
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 :
a (x, y) =
Aa (x, y)
A
b (x, y) =
Ab (x, y)
A
c (x, y) =
Ac (x, y)
A
y
c
h
x
a
b
h
44
e3
c
za
a
e2
ya
b
xa
e1
x
a
ya
za
a (x, y, z)
xb xc xd
b (x, y, z)
yb yc yd
c (x, y, z)
zb
zc
d (x, y, z)
zd
i (x, y, z) =
=
y
1
(i + i x + i y + i z)
6v
p+1
yj
yk
yl
zj
zk
zl
1
i = (1)
yj yk yl
zj
zk zl
45
j
b
k
c
l
d
p
1
j
a
i
b
k
c
l
d
p
0
j
a
i
c
k
b
l
d
p
1
i
d
j
a
k
b
l
c
p
0
Tableau V.1 Permutations pour les fonctions de forme de llment ttradre 4 nuds
.
1
1
4
2
7
6
y
5
1
i = (1)
p+1
1
i = (1)
xj xk xl
zj
zk
zl
xj
xk xl
yj
yk
yl
1 xa xb xc xd
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.
A laide dune chelle de couleur, dessiner les 4 fonctions de forme.
e3
c
h
e2
d
h
h
e1
46
Nud
Nud
Nud
dlment
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) :
Numro
Coord.
Coord.
du Nud
x1
y1
x2
y2
x3
y3
x4
y4
x5
y5
x6
y6
x7
y7
Les algorithmes de construction dun maillage partir dune dfinition gomtrique numrique
de la pice (CAO) ne sont pas dcrit dans ce cours.
Exercice V.3 Tracer le maillage constitu de triangles associ ces coordonnes et cette connectivit :
Numro
dlment
1
2
3
Nud
a
1
1
2
Nud
b
4
2
5
Nud
c
3
4
4
Numro
du Nud
1
2
3
4
5
Coord.
x
0.0
1.0
0.0
1.0
2.0
Coord.
y
0.0
0.0
1.0
1.0
1.0
VI Problme discrtis
rfrence
u ex V et la solution lments finis
u h Vh :
e =
u ex
uh
On remarque que
e V.
e =k
e kE
Cas o
u d 6= 0 alors U U0 =
Cas o
u d = 0 , alors U = U0
48
Problme discrtis
Cas o
u d 6= 0
Cas o
ud = 0
U0
U0 = U
0
U
Vh
U0h
Vh
Uh
U0h = U h
v h V h , a(
v h,
e)=0
Comme U0h V h , a fortiori, on a :
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 )
Or, la solution exacte vrifie :
v U0 , a(
v ,
u ex ) = L(
v)
Comme U0h U0 , on aussi
ex
u ) = L(v h )
v h U0h , a(v h ,
Finalement, en remplaant dans lquation prcdente, on a :
v h,
u h ) = L(v h )
v h U0h , a(
v h U0h , a(
v h,
u h ) = L(v h )
Ce qui scrit aussi :
v h U0h ,
v h )C (
u h ) d =
T (
v h F d dS +
v h f d = 0
49
Vh
u ex
uh
On sait que
u h (ou uh dans une base donne) scrit partir des fonctions de base comme :
uh = U
Le calcul de (uh ) donne :
(uh ) = DU = BU
o B est appel loprateur gradient (symtris) discrtis et vaut B = D. De mme, on a pour
avec
uh (M )
uh (M ) =
v (M )
. . . i
=
...
...
w (M )
= U
(
e 1 ,
e 2 ,
e 3)
..
.
ui
...
...
et U = vi
i . . .
w
i
.
..
0
D=
50
Problme discrtis
B = D =
...
i
x
...
...
i
y
...
...
i
z
...
i
z
i
y
i
z
i
y
i
x
...
i
x
...
...
...
...
...
V T B T CBU d =
V T T F d dS +
V T T f d = 0
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
K=
B T CB d
et
F =
T F d dS +
T f d
La matrice K est appele la matrice de rigidit de la structure. Cette matrice reprsente lapplication 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
On a finalement le problme discrtis suivant :
Trouver U U h (cinmatiquement admissible) tel que V U0h , on ait
V T KU = V T F
alors
U=
"
U [l]
U d[p]
51
Avec ces notations, [l] dsigne lensemble des degrs de liberts libres, [p] dsigne lensemble des
degrs de liberts prescrits.
V =
V [l]
0[p]
"
F d[l]
F [p]
o F d[l] correspond aux forces appliques sur la structure (connues) et F [p] correspond aux ractions dappuis (inconnues).
On dcompose la matrice de rigidit de la mme faon :
K=
K[ll]
K[lp]
T
K[pp]
K[lp]
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.
0T[p] ]
K[ll]
K[lp]
T
K[pp]
K[lp]
"
U [l]
U d[p]
[V T[l]
0T[p] ]
"
F d[l]
F [p]
"
0[l]
V [p]
52
Problme discrtis
2 translations
et 1 rotation
possibles
1 translation
et 1 rotation
possibles
1 rotation
possible
aucun
mouvement
possible
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
[0T[l]
On a alors lgalit :
T
[p] ]
K[ll]
K[lp]
T
K[pp]
K[lp]
"
U [l]
U d[p]
[0T[l]
T
[p] ]
"
F d[l]
F [p]
T
U [l] + K[pp] U d[p]
F [p] = K[lp]
K[ll]
K[lp]
T
K[pp]
K[lp]
"
U [l]
U d[p]
"
F d[l]
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] .
53
6
IV
III
II
1
I
II
III
IV
U II
4
1
5
2
6
4
2
5
3
lment II :
2
4
3
5
U =
u
5
= u2
u4
0 0 0 0 1 0
II = 0 1 0 0 0 0
0 0 0 1 0 0
u1
u2
u3
U II = II U
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
E D (
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.
B T CB d
Dans la pratique, cette matrice est calcule comme la somme des contributions de chaque lment :
K=
nb.
lts Z
X
e=1
B T CB de
u h V h dun point situ lintrieur dun lment e ne fait intervenir que les fonctions de
forme de cet lment, on peut calculer pour chaque lment sa contribution K indpendamment
des autres lments.
On introduit pour chaque lment une matrice de localisation e , cre partir de la table de
connectivit, qui permet dextraire les dplacements U e des nuds connects llment e des
dplacements U des nuds de la structure :
U e = e U .
La figure VI.4 montre lexemple de matrices de localisation pour un maillage de triangles 3
nuds.
54
Problme discrtis
nb.
lts
X
eT
e=1
B eT CB e de e
on a
K=
B eT CB e de
nb.
lts
X
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 :
a (x, y, z) =
1
(a + a x + a y + a z)
6v
1
(b + b x + b y + b z)
6v
1
(c + c x + c y + c z)
c (x, y, 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.
b (x, y, z) =
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 )
e
b
+uc c (M )
e 1 + vc c (M )
e 2 + wc c (M )
e3
+u (M ) e + v (M ) e + w (M ) e
d
En crivant
u he dans la base (
e 1,
e 2,
e 3 ) de R3 , on a :
uhe (M ) = e U e
o e est la matrice des fonctions de forme de llment donne par
0
a
0
a
e = 0
0
0
0
a
0
b
0
b
0
0
0
0
b
0
c
0
c
0
0
0
0
c
d
0
0
0
d
0
0
0
d
a
x
0
a
y
0
0
0
B e = De =
0
0
a
z
a
y
a
x
0
a
z
a
z
a
y
0
a
x
d
x
...
...
...
...
...
...
0
d
y
0
0
0
0
d
z
d
z
d
y
0
d
x
0
0
d
z
d
y
d
x
Be =
6v
a
0
0
0
a
a
0
a
0
a
0
a
0
0
a
a
a
0
b
0
0
0
b
b
0
b
0
b
0
b
0
0
b
b
b
0
0
c
0
c
0
c
c
0
0
0
c
c
0
0
c
c
c
0
d
0
0
0
d
d
0
d
0
d
0
d
0
0
d
d
d
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 .
f d +
{z
terme A
T F d dS
{z
terme B
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 :
F =
nA
X
e=1
eT
eT f de +
nB
X
e=1
eT
F e
eT F d dS
56
Problme discrtis
F
Fd
f
e
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.
1 1
a (x, y)
0
b (x, y)
0 1+ 1
c (x, y)
0 0 1+ 0
La solution est
d (x, y)
=
y
xy
y
) ;
1+
xy
; d (x, y) = y(1 x) ;
1+
Les fonctions de forme sont traces sur la figure VII.1. La fonction a devrait sannuler sur
c (x, y) =
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
1+
1
c
a
d
1
a
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.
59
Elment physique
Elment de rfrence
1
barre - poutre
s
1
quadrangle
1
1
x
t
+1
hexadre
r
+1 s
+1
1
y
s
triangle
x
1
t
1
ttradre
r
Figure VII.2 Quelques lments physiques et lments de rfrences associs.
s=1
(xd , yd )
(xc , yc )
r=1
(1, 1)
(1, 1)
r = 1
r
r
y
(xa , ya )
x
s = 1
Elment physique
(1, 1)
(1, 1)
(xb , yb )
Elment de rfrence
60
1
0
1
r
r
rs
2
2
r2
r3
s
rs
s2
r2 s rs2
s3
r 2 s2
T3
s
r s rs
r 2 s2
r
s
T6
1
r
r2
s
rs
s2
Q4
1
s
rs
61
r
a
sa
rb
rc
sb
sc
ra sa rb sb rc sc
1 1 1 1 r
rd
b r
sd c s
1 1 1 1 c s
rs
1 1 1 1
d
rs
rd sd
d
s
c
c (0, 1)
f
e
e( 12 , 21 )
f
a
a
lment physique
(1, 0)r
(0, 0)
lment de rfrence
62
y
en 3 dimensions : F =
x
s
x
t
y
; en 2 dimensions : F =
t
y
y
s
z
r
z
s
x
s
z
t
x =
"
a (r, s)
b (r, s)
c (r, s)
a (r, s)
b (r, s)
ou encore
x=
d
X
i (r, s)xi , y =
i=a
Le calcul de
d
X
x
r
et de
x
s
yb
xc
yc
i x
x h
b
= a,r b,r c,r d,r
,
xc
r
xd
y
r
et de
y
s
sobtient par :
ya
i y
y h
b
= a,r b,r c,r d,r
,
yc
r
yd
xa
ya
yd
i x
x h
b
= a,s b,s c,s d,s
.
xc
s
xd
xd
sobtient par :
xb
i (r, s)yi .
xa
ya
i=a
Le calcul de
0
d (r, s)
0
c (r, s)
0
d (r, s)
xa
i y
y h
b
= a,s b,s c,s d,s
.
yc
s
yd
63
B e (M ) C e B e (M ) d
o e est llment physique. Cette intgrale scrit dans llment de rfrence en faisant intervenir le dterminant du gradient F de la transformation permettant de passer de llment de
rfrence llment physique :
Ke =
ref
uhe
"
a (r, s)
b (r, s)
c (r, s)
a (r, s)
b (r, s)
c (r, s)
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 :
e (uhe ) = De (r, s) U e = B e (r, s) U e
avec
x
0
D=
d (r, s)
0
0
d (r, s)
ua
va
ub
vb
uc
vc
ud
vd
64
B e (r, s) =
a,x
b,x
c,x
d,x
a,y
b,y
c,y
d,y
.
Or i (r, s) est une fonction de r et s, dont les drives par rapport x et y valent
i r i s
i
i r i s
i
=
+
et
=
+
x
r x
s x
y
r y
s y
ce qui scrit sous forme matricielle,
i
x
r
x
i r
s i
x
r
s
i
{z
o F est le gradient de la transformation passant dun point (r, s) de llement 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
Ke =
B e (M ) C e B e (M ) d =
8
5
8
+1
6
6
+1
z
1
+1
w3
2
x
3
y
u3
v3
1
r
B e C e B e det F d
ref.
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
Ke =
G
X
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 rfrence au point dintgration g
66
Intgration numrique
bc
bc
1 (x)
bc
x1
2 (x)
bc
x2
bc
x3
bc
bc
x4
bc
x5
x1
bc
x1
x2
bc
x3
1
3 (x)
bc
bc
x2
bc
x3
x5
bc
4 (x)
bc
x4
bc
x4
bc
x5
bc
x1
bc
x2
x3
x4
bc
x5
bc
5 (x)
bc
x1
bc
x2
bc
x3
bc
x4
x5
v rgulier : [A, B] R
x 7 v(x)
67
nj=1,j6=i (x xj )
.
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) :
...
x1
x2
...
x21
..
.
x22
..
.
...
..
.
1 (x)
xn
2 (x) x
x2n
3 (x) = x
..
..
...
.
.
n (x)
xn1
=A
La solution de ce systme donne videmment les mme polynmes de Lagrange i , mais la rsolution est moins aise.
Exercice VIII.1 Trouver les polynmes de Lagrange associs aux 2 points 0 et l.
Solution :
i (x) =
n
j=1,j6=i (x xj )
n
j=1,j6=i (xi xj )
x x2
xl
x
=
= 1
x1 x2
0l
l
2 (x) =
x0
x
x x1
=
=
x2 x1
l0
l
Exercice VIII.2 Trouver les polynmes de Lagrange associs aux 3 points 1, 0 et 1. Ces polynmes sont dessins sur la figure VIII.2.
68
Intgration numrique
1
bc
3
bc
1.0
bc
2
0.5
bc
bc
1.0
bc
0.5
0.5
1.0
f (1)
f (r)
bc
f (ri )
bc
bc
bc
bc
I=
f (1)
bc
f (r) dr
1 = r1
r2
ri
+1 = rn
f (r) dr .
n
X
i=1
Pin1 (r)
Pin1 (r) =
Donc lapproximation I de I vaut
I =
f(r) dr =
n
X
i=1
ou encore
n
X
I =
f (ri )
f (ri )wi
i=1
avec
wi =
Pin1 (r) dr
Pin1 (r) dr
69
f (1)
bc
f
1
Figure VIII.4 Mthode de Newton avec 2 points dintgration - Formule des trapzes
f (1)
bc
f (1)
bc
f (0)
bc
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 lintervalle intrgr, soit 2 ici. En effet, si f (r) = 1, alors
I = I =
1 dr = 2 =
n
X
wi
i=1
Exercice VIII.3 Trouver les poids associs 3 points dintgration placs en 1, 0 et 1 (fig. VIII.5).
2
f (r) dr = 2a0 + a2 .
3
70
Intgration numrique
nb. points
2
degr dintgration
3
ri
0,5773502692
wi
1,0000000000
0,7745966692
0,0000000000
0,5555555556
0,8888888889
0,8611363116
0,3399810436
0,3478548451
0,6521451549
0,9061798459
0,5384693101
0,0000000000
0,2369268850
0,4786286705
0,5688888889
11
0,9324695142
0,6612093865
0,2386191861
0,1713244924
0,3607615730
0,4679139346
13
0,9491079123
0,7415311856
0,4058451514
0,0000000000
0,1294849662
0,2797053915
0,3818300505
0,4179591837
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 entraine 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.
71
s
1
ly
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 examinant 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
x=
lx
ly
r; y= s
2
2
F =
lx
2
x
s
=
y
Le dterminant vaut
x
r
ly
2
lx ly
4
Avec cette hypothse, F est constant et B e ne fait intervenir que les drives de la base cadet F =
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 polynmiale 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 r 2 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
e
K =
2
2
X
X
i=1 j=1
soit aussi
Ke =
4
X
g=1
72
Intgration numrique
s
1
e
r
0,5773502692
0,5773502692
-0,5773502692
-0,5773502692
poids
1
1
1
1
s
0,5773502692
-0,5773502692
0,5773502692
-0,5773502692
1
3
r
13
1
1 1
3
1
3
1
Exercice VIII.6 Trouver les positions et les poids des points de Gauss pour llment suivant dont la base canonique dapproximation est [ 1 r r 2 ] [ 1 s ]
lment physique
lment de rfrence
s
c
1
1
y
e
b
a
K =
ref
o ref est le domaine triangulaire de rfrence (Fig. VIII.7) ; les variables r et s sont couples. 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
73
poids
1
3
1
3
1
2
1
2
1
2
1
2
1
2
1
6
1
6
1
6
1
3
1
3
27
96
0, 6
0, 2
0, 2
0, 2
0, 6
0, 2
25
96
25
96
25
96
ly
z
+1
lz
+1
+1
lx
r
Figure VIII.8 lment hxadre physique de forme paralllpipde rectangle et lment de rfrence
hxadre.
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 paralllpipde 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 canonique polynomiale du dplacement. En effet la transformation pour passer de llment de
74
Intgration numrique
1
r
F =
Le dterminant vaut
lx
2
0
0
0
ly
2
0
lz
2
lx ly lz
8
En prenant de plus un matriau homogne dans llment, C est aussi constant. Finalement,
det F =
les termes de B e (r, s, t) C e B e (r, s, t) det F intgrer ne font intervenir que les termes prsents
T
dans B e (r, s, t) multiplis un un. Les plus haut degrs en r, s et t donnent le nombre de points
de Gauss prendre dans chaque direction.
K =
ref
o ref est le domaine ttradrique de rfrence (Fig. VIII.9) ; les variables r, s et t sont couples. 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 61 .
75
poids
1
4
1
4
1
4
1
6
0,58541020
0,138119660
0,138119660
0,138119660
0,138119660
0,58541020
0,138119660
0,138119660
0,138119660
0,138119660
0,58541020
0,138119660
1
24
1
24
1
24
1
24
h
h
>1
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 maitrise 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 quadrangle, 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.
, nest pas statiquement admissible, mais appartient lensemble C des champs de contraintes
dfinis prcdemment (Fig. IX.1).
h = C(
u h ) = CBU
o C est la matrice de comportement et B est loprateur gradient discrtis.
On cherche une approximation des contraintes
base sur les fonctions de forme de V h . On
note
une des composante de
et h une des composantes de h . Autrement dit, on cherche
dans un espace C h dfini par
C h = V ect{1 , 2 , , n }
o n est le nombre de nuds du maillage.
78
x
Contrainte lments finis h
Contrainte lisse
Figure IX.1 Contrainte obtenue par lments finis et contrainte lisse pour les triangles 3 nuds.
La contrainte lisse
scrit alors sous la forme :
2 ... n ]
= [ 1
1
2
..
.
n
= = T T
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 :
1
J(
) =
2
soit aussi
1
2
J(
) =
ou encore
1
J() =
2
1
J() = T
2
(
h )2 d
(
h )(
h ) d
(T T h )( h ) d
T d T
{z
A
T h d +
{z
b
1
J() = T A T b + c
2
En utilisant la notation indicielle on a
J() =
1
2
n X
n
n
X
1X
i Aij j
i bi + c
2 i=1 j=1
i=1
J()
=0
n
n
J()
1X
1X
Aj j +
i Ai b = 0
=
2 j=1
2 i=1
h d
{z
c
79
i=1
Ae =
.
.
e
.
Z
ne
b ne
de
2a
a b
Ae =
..
e
.
a b
a ne
2b
b ne
..
.
2ne
ne a ne b
a (a + b + + ne )
Ae =
de
b (a + b + + ne )
0
..
.
0
..
.
ne (a + b + + ne )
Or la somme des fonctions de base fait toujours 1, la matrice lmentaire Ae devient alors
Ae =
0
..
.
0
..
.
ne
de
Aprs assemblage, on obtient la matrice A "diagonalise" par sommation des colonnes sur la
diagonale suivante :
Z
0
A=
.
.
0
..
.
de
80
be =
.
.
e
.
Z
ne
h
de
et doit tre calcul pour chaque composante de loprateur des contraintes. Aprs assemblage, le
second membre devient
Z
2
b=
.
.
h
d
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 =
i h d
.
i d
par des triangles 3 nuds. Les contraintes obtenues partir du champ de dplacement
uh
solution du problme lments finis scrivent :
xx
h =
yy = C( u ) = CBU
xy
Ae =
1 0 0
ae
0
de = 3 0 1 0
0 0 1
c
bxx
e =
ae
h
b h
(e)xx de = (e)xx 3 1
81
h
est la valeur de la contrainte calcule partir de la solution en dplacements
u h dans
o (e)xx
llment e. De mme, on a pour les contraintes yy et xy :
h
byy
e = (e)yy
ae
1
3
1
h
bxy
e = (e)xy
et
ae
1
3
1
En notant Ei lensemble des lments connects au nud i, on obtient que les contraintes lisses
au nud i du maillage valent :
(i)xx =
(i)yy =
(i)xy =
P
P
P
eEi
eEi
eEi
h
ae (e)xx
h
ae (e)yy
eEi
eEi
ae
ae
h
ae (e)xy
eEi
ae
Lerreur en dplacement
e est dfinie comme la diffrence entre la solution de rfrence
u ex V
e =
u ex
uh
e =k
e kE
On dfinit lerreur relative globale comme
=
donc
2 =
k
e kE
k u ex kE
k
e k2E
k
u ex
u h k2E
=
.
k
u ex k2E
k
u ex k2E
82
p=1
p=2
p=0
p=3
x
x2
3
y2
xy
2
p=1
xy
xy
p=2
y
p=3
x2 y 2
Figure IX.2 Compltude de la base dapproximation pour les polynmes 2 variables.
log()
1
Erreur
plus
faible
log(h)
Plus dlments
Figure IX.3 Diagramme log log de lerreur relative en fonction de h.
83
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
2 =
a(uex uh , uex uh )
k uex uh k2
=
k uex k2
a(uex , uex )
Le dnominateur vaut
a(uex , uex ) =
T (uex )C(uex ) d
a(uex , uex ) =
exT C 1 ex d
Le numrateur vaut
a(uex uh , uex uh ) =
T (uex uh )C(uex uh ) d
soit aussi
a(uex uh , uex uh ) =
Z
Z
exT h
Z
exT h
C 1 ex h
C 1 ex h
exT C 1 ex d
La contrainte exacte ex nest pas connue, mais lide est de la remplaer par la contrainte
lisse
. La contrainte lisse est en effet plus rgulire que la contrainte (uh ), elle approche
mieux la ralit que (uh ).
on obtient une estimation de lerreur relative , on note cette estimaEn remplaant ex par
tion :
2 =
Z
T h
C 1
h
T C 1
T h
Z
C 1
h
T C 1
84
maillage initial
rsolution de KU = F
calcul de la contrainte lisse
non
oui
maillage optimis :
- chaque lment contribue de la mme faon lerreur
- lerreur globale est infrieure lobjectif
nb.
elts
X
e2
e=1
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. X.2). Un repre local
( x ,
y ,
z ) est attach llment, laxe
x coincide avec la ligne moyenne de la poutre. Ll
86
M
m
b
L
Figure X.2 lment de poutre
translation suivant
x (note u(x)) et translation suivant
y (note v(x)),
rotation autour de
z dun angle = qui ne dpend que de x.
On note
u (m) = u(x)
x + v(x)
y le dplacement de m. En supposant que les dplacements
0
u (M ) =
u 0 (m) + M m = u(x)
x + v(x)
y (y
y + z
z ) ((x)
z)
donc
u (M ) = u(x)
x + v(x)
y + y(x)
x
soit
u (M ) =
"
u(x) + y(x)
v(x)
(
x ,
y)
On pose alors lensemble V des champs de fonctions suffisament rgulires dfinis de [0, L]
vers R :
V=
f rguliers : [0, L] R
x 7 f (x)
(
u) =
soient :
xx =
1
Grad(
u ) + GradT (
u)
2
(u + y) = u,x + y,x
x
87
(u + y) +
v = + v,x
y
x
2xy =
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
=
donne alors :
xx =
xx
xy
1+
T r() 1
E
E
1
1+
1+
xx xx = xx et xy =
xy
E
E
E
E
soit
C=
E
2(1+)
"
1
d =
2
LZ
[ (e + y) ]C
1 L
1
(e + y)E(e + y) dS dx +
2 0 S
2
soit aussi en dveloppant les expressions
ED =
ED =
1
2
LZ
Ee2 dS dx+
1
2
L
0
y 2 E2 dS dx+
1
2
LZ
"
Z
e + y
dS dx
dS dx
2yEe dS dx+
1
2
LZ
2 dS dx
88
v(x)
x
1
1 L 2
Ee
dS dx+
2 0
2
S
On remarque que :
ED =
ZS
ZS
E2
y 2 dS dx+
1
2
Ee
2y dS dx+
S
1
2
dS dx
S
dS = S, aire de la section ;
y dS = 0, par dfinition du centre de section ;
avec
1 L
1 L
1 L
f
ct
=
ES e2 dx ; ED
=
EI 2 dx ; ED
S 2 dx
2 0
2 0
2 0
Lnergie de dformation peut scrire sous forme de trois contributions :
m
=
ED
m
: nergie de dformation de traction-compression (membrane),
ED
f
ED
: nergie de dformation de flexion,
ct
: nergie de dformation de cisaillement transverse.
ED
1 L
ES u2,x dx
2 0
Z
Z
Z
1 L
1 L
1 L
f
2
2
EI 2 dx =
EI ,x
dx =
EI v,xx
dx
ED
=
2 0
2 0
2 0
ct
ED
=0
m
ED
=
89
Hypothse de Timoshenko
Lhypothse de Timoshenko prend en compte la dformation transverse xy . Ce modle est valable
pour les poutres dites "paisses".
1
=
2
ES e2 dx.
x
x
et b =
L
L
u (x) = [ a b ]
"
ua
ub
= e U e
"
ua
ub
1 1
L L
on a
e = Bm U e
Soit aussi
1
2
ES e2 dx =
1
m
= U Te
ED
2
1
2
T
Bm U e dx.
ES U Te Bm
T
Bm dxU e .
ES Bm
90
a
e = 0
e : barre e
b
e2
e = le
e1
Figure X.4 Structure de type treillis de barres
T
ES Bm
Bm dx
on a
1
m
e
ED
= U Te Km
U e.
2
En remplaant Bm par son expression, on a :
T
Bm
Bm
1
= 2
L
"
ES
=
L
"
ab
fait avec
e 1 . On attache llment un repre local e =
.
k ab k
91
e2
le
e = le
e
a
e = 0
e1
Lnergie de dformation dune barre ne dpend que des composantes axiales des dplacements des nuds :
1
m
e
ED
= U Te Km
U e.
2
avec
e
Km
et
Ue =
ES
=
le
"
"
u (nud a) e
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 a) e
u (nud b) e
"
cos e sin e
0
Ua
#
V
a
sin e
Ub
cos e
Vb
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 :
Te =
"
cos e sin e
0
cos e sin e
u (nud a) e
u (nud b) e
= Te U e
92
e
est la matrice de rigidit de la partie axiale de la poutre dveloppe prcdemment :
o Km
e
Km
ES
=
le
"
e
Te donne la matrice de rigidit de llment barre dans le plan (x, y) :
Le calcul de TeT Km
e
Kbarre
ES
=
le
cos2 e
cos e sin e
cos2 e
cos e sin e
cos e sin e
sin2 e
cos e sin e
sin2 e
cos2 e
cos e sin e
cos2 e
cos e sin e
cos e sin e
sin2 e
cos e sin e
sin e
1
e
m
U e.
ED
= U Te Kbarre
2
1
2
EI 2 dx =
1
2
2
dx.
EI v,xx
93
1.0
1.0
0.5
0.5
2
bc
bc
0.5
bc
bc
1.0
1.0
0.5
1.0
0.5
0.5
1.0
1.0
0.5
3
bc
bc
0.5
bc
4
bc
1.0
1 0
1
L
0 L2
0 0 L3
1 (x) = 1
3 (x) =
1 (x)
1
2 (x) x
= 2
2L
3 (x) x
x3
4 (x)
3L2
3 2
1
2
2
x + 3 x3 ; 2 (x) = x x2 + 2 x3
2
L
L
L
L
3 2
1
2
1
x 3 x3 ; 4 (x) = x2 + 2 x3
2
L
L
L
L
Les fonctions i sont des polynmes de degrs 3, ce sont des polynmes de type Hermite (Fig.
X.5).
94
2v
,
x2
2
e V e .
x2
Bf =
on a
= Bf V e .
Les drives secondes des fonctions de forme valent :
1 (x) =
6
2
2 3
3
+ 2 x ; 2 (x) =
2+ x
L
L L
L
L
23
6
2
3
2 x ; 4 (x) =
1+ x .
L L L
L
L
3 (x) =
Kfe
= EI
1
= V Te EI
2
|
BfT Bf dx V e .
{z
=Kfe
Kfe
2EI
= 3
L
3L
3L
3L
2L2
3L
3L
L2
3L
3L
dx
3 (x)4 (x)
L2
3L
2L2
2 (x)4 (x)
direction
z est celle de lpaisseur. Le domaine de la plaque peut tre dfini comme :
h h
=S ,
2 2
h
y
M (x, y, z)
m(x, y)
S : plan moyen
Figure XI.1 Structure de type plaque.
96
z
M
dplacement suivant
x et
y (effet membrane),
u (m) = u(x, y)
x + v(x, y)
y + w(x, y)
z.
rotation = x + y .
y
En supposant que les dplacements et les rotations sont petits, le dplacement de M scrit
u (M ) =
u (m)+M m = u(x, y)
x +v(x, y)
y +w(x, y)
z z
z y (x, y)
x +x (x, y)
y
h h
(x, y) S ; z ,
,
2 2
ou encore
u(x, y) + zx (x, y)
u (M ) =
v(x,
y)
+
z
(x,
y)
y
w(x, y)
(
x ,
y ,
z)
avec u, v, w, x , y V. Ce dernier ensemble V est lensemble des champs de fonctions suffisament rgulires dfinis de S vers R :
V=
f rguliers : S R
x, y 7 f (x, y)
97
xx
yy
= 2xy
2
xz
2yz
xx
yy =
2xy
u,x
v,y
u,y + v,x
{z
=e
+z
x,x
y,y
x,y + y,x
{z
2xz
2yz
"
y + w,y
{z
x + w,x
1+
T r() 1,
E
E
les dformations scrivent en fonction des contraintes comme :
1+
xx =
xx (xx + yy )
E
E
1+
yy =
yy (xx + yy )
E
E
1+
1+
1+
zz = (xx + yy ) ; xy =
xy ; xz =
xz ; yz =
yz .
E
E
E
E
En inversant ces relations, on a
=
xx
yy
= xy
xz
yz
xx
1
2
1
2
0 0
0
yy
0 2xy
0
2xz
1
2yz
2
= C .
98
xx
yy
xy
xz
yz
Avec ces notations, les relations entre les contraintes et les dformations scrivent :
xx
= E
yy
2
1
et
"
xz
yz
{z
E
2(1+)
E
2(1+)
0
yy
1
2xy
2
C1
xx
0 0
xy
"
{z
2xz
2yz
C2
1
d =
2
[ (e + z)
"
C1
C2
#"
e + z
Lintgrale dans est dcompose en une intgrale sur la surface moyenne S et une intgrale
dans lpaisseur suivant z :
1
ED =
2
Z Z
S
h
2
h2
eT C1 e + z 2 T C1 + zT C1 e + zeT C1 + T C2 dz dS
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
2
h2
dz = h ;
h
2
h2
z dz = 0 ;
h
2
h2
z 2 dz =
h3
.
12
o
h3
1 n T
he Ce + T C1 + h T C2 dS
ED =
2 S
12
On remarque que les termes de couplage entre et e disparaissent dans le cas dun matriau
Cm = hC1 =
Eh
1
1 2
0 0
0
,
1
2
99
Kirchoff
Mindlin
Cf =
h3
Eh3
1
C1 =
2
12
12(1 )
0 0
Eh
Cc = hC2 =
2(1 + )
"
1 0
0 1
0
,
1
2
1
1
1
eT Cm e dS +
T Cf dS +
T Cc dS.
ED =
2 S
2 S
2 S
Lnergie de dformation peut tre spare en 3 contributions :
Z
1
eT Cm e dS , nergie de dformation de membrane,
2 S
Z
1
f
T Cf dS , nergie de dformation de flexion,
ED =
2 S
Z
1
ct
T Cc dS , nergie de dformation de cisaillement transverse.
ED =
2 S
On a alors :
m
ED
=
f
m
ct
ED = ED
+ ED
+ ED
.
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 gnralement 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.
100
h h
(x, y) S ; z ,
,
2 2
n
X
n
X
i (x, y)vi = V
n
X
i (x, y)ix = x
wh (x, y) =
n
X
yh (x, y) =
n
X
i (x, y)iy = y
v h de V h :
La partie plane e des dformations vaut pour un champ de dplacement
Soit
e(
v h) =
uh,x
h
v,y
h
uh,y + v,x
= 0
v h) =
e(
"
uh
vh
=
0
"
U
V
"
#"
U
V
101
Bm =
on a
"
v h ) = Bm
e(
U
V
v h de V h :
La partie courbure des dformations vaut pour un champ de dplacement
Soit
(
v h) =
h
y,y
h
x,y
h
x,x
h
y,x
= 0
"
xh
yh
=
0
"
x
y
"
#"
x
y
Bf =
on a
(
v h ) = Bf
"
x
y
h
v de V h :
(
v h) =
"
h
xh + w,x
h
yh + w,y
1 0
0 1
Soit
wh
h =
x
yh
1 0
0 1
0
x .
y
0
x .
En posant Bct loprateur gradient discrtis pour la partie dformations transverses tel que
on a
Bct =
v h ) = Bct
(
x .
y
102
z
S
y
Fz
fz
L
fy
fx
Z n
[U
T
Cm Bm
]Bm
"
+[ W
U
V
T
+ [ x
]BfT Cf Bf
T
]Bct
Cct Bct
"
x
y
x dS
ED =
1 T
Q
2
T
Bm
Cm Bm
T
Bct
Cct Bct
...
dS Q
.
i
h
..
+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
K =
S
e
T
Bm
Cm Bm
T
Cct Bct
...
Bct
dS.
.
i
h
T
..
+Bf Cf Bf
force surfacique applique sur la surface moyenne nest porte que par
z et vaut F . On note
z
s labscisse curviligne sur la ligne moyenne L du contour de la plaque. Le travail des efforts
103
x
2
y
X
v)=
W(
contour, surface
contour, ligne=L
nZ
|
h
2
h2
[ fx fy
fz ]
v(x, y) + zy (x, y) +
w(x, y)
fx dz u(x, y) +
{z
=tx (s)
u(x, y) + zx (x, y)
h
2
h2
h
2
h2
fy dz v(x, y) +
{z
=ty (s)
zfx dz x +
{z
=mx (s)
Z
|
h
2
h2
h
2
h2
{z
{z
=tz (s)
Fz w(x, y)
fz dz w(x, y)
zfy dz y ds +
=my (s)
Fz w(x, y)
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 m (s) et m (s) sont les moments liniques sur le contour suivant
y et
x . Le
x
W(
v h) = U T
+x
tx (s)T ds + V T
T
mx (s) ds + y
ZL
ty (s)T ds + W T
T
my (s) ds + W
tz (s)T ds
Fz T dS
on a
F =
tx (s)T ds
RL
T
L ty (s) ds
R
R
T
T
L tz (s) ds + S Fz dS
R
mx (s)T ds
RL
T
L my (s) ds
W(
v h ) = QT F .
lespace associ au repre global ( X , Y , Z ). Pour chaque lment on dfinit un repre local plan
(
x ,
y ,
z):
104
laxe
x est port par le vecteur 12 reliant le nud 1 au nud 2 :
x =
12
,
k 12 k
le vecteur
z est construit de faon tre perpendiculaire au triangle :
z =
x 13
k
x 13 k
on en dduit laxe
y =
z
x.
u = UX X + UY Y + UZ Z et = X X + Y Y + Z Z
u = u
x + v
y + w
z et = y
x + x
y
Avec ces notations, on obtient les relations suivantes :
u=
x UX X + UY Y + UZ Z ; v =
y UX X + UY Y + UZ Z
w=
z UX X + UY Y + UZ Z ; x =
y X X + Y Y + Z Z
y =
x X X + Y Y + Z Z
u
x X
x Y
v
X
y Y
y
w =
z X
z Y
0
0
x
| {z }
U 2d
x Z
y Z
z Z
0
0
y Z
0
0
y X
y Y
x X
x Y x Z
{z
UX
UY
UZ
Z
{z
U 3d
1
1
e
e
U 2d = U T3d T T K2d
TU
ED = U T2d K2d
| {z } 3d
2
2
e
=K3d
e
est la matrice de rigidit de llment de plaque dans son plan vue dans la section prco K2d
dente.
La matrice de rigidit de llment plaque dans lespace vaut donc
e
e
K3d
= T T K2d
T.
XII.1 Objectifs
Les objectifs de la dcomposition de domaine sont multiples :
utiliser un ordinateur architecture parallle, ou plusieurs ordinateurs connects en rseau
(cluster),
coupler des structures constituant une systme mcanique,
coupler des formulations diffrentes (ex : couplage fluide-structure)
Lide est de sparer le "gros" problme initial en plusieurs "petits" problmes rsoudre sparment.
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.
106
Dcomposition de domaine
interface
Ensemble des d.d.l. de U
U3
sous-structure 1
sous-structure 2
U2
U1
111111111111
000000000000
000000000000
111111111111
000000000000
111111111111
000000000000
111111111111
00000000
11111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
0000000
1111111
U
U
00000000
11111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000
11111111
0000000
1111111
00000000 1111111
11111111
0000000
00000000 1111111
11111111
0000000
00000000
11111111
0000000
1111111
00000000 1111111
11111111
0000000
1sl
2sl
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 simplifer 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 (numrotes 1 et 2). Elles ne sont pas connectes entre elles mais elles sont en contact avec linterface (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
K2
T
T
K23
K13
K13
U1
F1
K23
U2 = F 2
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-
107
K1
K2
T
T
K13
K23
K13
U 1sl + U 1al
F1
K23
U 2sl + U 2al = F 2 .
K3
U3
F3
soit
T
T
T
T
U 2al + K3 U 3 = F 3 K13
U 1sl K23
U 2sl
K13
U 1al + K23
En notant
T
T
B = F 3 K13
U 1sl K23
U 2sl
on a alors
T
T
U 2al + K3 U 3 = B
K13
U 1al + K23
K1
K2
T
T
K13
K23
K13
U 1al
K23
U 2al = 0 .
K3
U3
B
En notant
T
T
K21 K23
S = K3 K13
K11 K13 K23
108
Dcomposition de domaine
U2
interface U 4
U1
U3
11111111111111111
00000000000000000
3. Rsolution de linterface :
T
T
SU 3 = F 3 K13
U 1sl K23
U 2sl
109
n1
X
T
Ki1 Kin
Kin
i=1
3. Rsolution de linterface :
SU n = F n
n1
X
T
Kin
U isl
i=1
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 multiT
ce qui donne finalement une matrice dont la taille est
plie droite par K13 et gauche par K13
"
K1
K13
T
K13
K3
#"
Xi
Ii
"
0
Yi
110
Dcomposition de domaine
I1 =
1
0
0
0
0
0
1111111
0000000
0
0000000
1111111
0000000 0
1111111
0000000
1111111
0
0000000
1111111
0000000
1111111
I2 =
0
1
0
0
0
0110 0
1
0
0000000
1111111
0
0000000
1111111
0000000 0
1111111
0000000
1111111
0000000
1111111
0000000
1111111
Figure XII.3 Dplacement unitaire impos linterface pour la calcul du complment de Schur.
interface
U1
U2
111111111111
000000000000
00000000
11111111
000
111
000000
111111
00000000000011111111
111111111111
00000000111
000111111
000000
sous-structure 1,
domaine 1
problme complet
sous-structure 2,
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
ce qui donne la solution
X i = K11 K13 I i
soit la ime colonne de K11 K13 .
En notant m le nombre de degr de libert de linterface, il suffit de rsoudre successivement
le problme avec
I1 =
1
0
..
.
0
I2 =
0
1
..
.
0
...
Im
0
0
..
.
1
111
u1 =
u 2 sur
ainsi que la continuit du vecteur contrainte linterface
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
T1 C1 1 d
F 1
uT1 F d1 dS
uT1 dS = 0
Trouver
u 2 cinmatiquement admissible, tel que u2 avec u2 = 0 sur u 2 on ait
Z
T
2 C2 2 d
F 2
uT2 F d2 dS +
uT2 dS = 0
Z
Z
u dS T
T
u dS = 0
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
o 1 et 2 sont les matrices des fonctions de forme des sous-structures 1 et 2 et U 1 et U 2 sont
les dplacements nodaux associs. Le long de linterface le vecteur contrainte est discrtis par
112
Dcomposition de domaine
2
1
1 . . . m
=
y = 0
0
z
...
...
...
0
=
...
1 . . . m
...
1 . . . m
...
uT1 dS = U T1
uT2 dS = U T2
T1 dS = U T1 C1
T2 dS = U T2 C2
K1
K2
CT1 CT2
C1
U1
F1
C2
U2 = F2
0
0
Ce systme peut tre rsolu en suivant la dmarche de la mthode de Schur primale (avec K3 =
0).
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
impo rt s c i p y
p r i n t ( " P r e m i e r programme en P y t h o n " )
a =3.14
b =2.78
i =3
w= 1 + 1 . 0 j
print ( "a
print ( "b
print ( " i
p r i n t ( "w
est
est
est
est
un
un
un
un
reel : "
reel : "
entier :
co m p lex e
,a)
,b)
",i)
: " ,w)
c=a b
p r i n t ( " ab = : " , 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 )
Figure XIII.1 Premier programme en Python
115
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 :
Sous Ubuntu : via synaptic, installer : python3.4, idle-python3.4, python-scipy, python-numpy
et peut-tre dautres paquets si besoin...
Sous Windows et Mac OS : installer la suite Anaconda qui contient Python, les librairies
de calcul scientifique et un diteur de texte intgr.
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 xcuter 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 .
F
E, I
L
F L3
3EI
116
Initiation la programmation
# Chiffre a deviner
# 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 ( " Br av o " )
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 )
impo rt 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 ra ng e ( 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 ) )
pr int ( 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 " )
p r i n t ( " No te s u r 2 0 : " , k )
Figure XIII.4 Rvision de la table de multiplication en Python
117
f (c)
bc
f (x) = 0
bc
c=
a+b
2
b
bc
f (b) < 0
Figure XIII.5 Recherche du zro dune fonction par dichotomie
a+b
2
118
Initiation la programmation
def mafonction ( x ) :
impo rt 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
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 )
Figure XIII.6 Calcul du zro par dichotomie en Python
4.6 6.9
1.5
3.8 9.2 0
3.0 2
0 0
9
5.5 7
7 8
119
impo rt 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
Figure XIII.7 Dclaration de matrices et calculs matriciels en Python
impo rt s c i p y
impo rt 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 . a r r a y ( [ 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 ) )
p r i n t A. t o d e n se ( )
Figure XIII.8 Dclaration de matrices au format creux
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 :
V = [ 4.6 1 2 5.5 8 6.9 1.5 3.8 3.0 9.2 9 7 7 ]
I=[
1 2
3 3 4]
J =[
1 2
1 4 3]
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 automatiquement. Par exemple, on veut assembler les deux matrices suivantes 22 dans une matrice 33 :
"
10
10
10
10
120
Initiation la programmation
impo rt s c i p y
impo rt 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 . a r r a y ( [ 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 ) )
p r i n t A. t o d e n se ( )
Figure XIII.9 Assemblage de matrices au format creux
"
20
20
20
20
10
10
10
10
10 10 + 20 20 = 10
20
20
30
20
20
20
V = [ 10 10 10 10 20 20 20 20 ]
I=[
J =[
10
10
10
10
dans une matrice 55 en assemblant sur les lignes et colonnes [0,1],[1,2],[2,3],[0,3],[3,4]. On pourra avantageusement utiliser un tableau de connectivit element tel que
elements=scipy.array([[0,1],[1,2],[2,3],[0,3],[3,4]]).
121
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
Co 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 )
print ,
print ,
print ,
print ,
a
b
i
w
est
est
est
est
un
un
un
un
reel :
reel :
entier :
co m p lex e
,a
,b
,i
: ,w
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
Figure XIII.10 Premier programme en Fortran
122
Initiation la programmation
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 .
F
E, I
F L3
3EI
123
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 =4 ! 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 :
rea d , k
i f ( k . eq . i ) t hen
p r i n t , Br av o
r e t u r n ! T e r m i n e l e programme
endif
i f ( k . l t . i ) t hen
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 ) t hen
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
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
END
Figure XIII.11 Jeu de devinette en Fortran
etait , i
124
Initiation la programmation
PROGRAM J e u
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 ,2 0
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 , = ?
rea d , c
i f ( c . eq . ( a b ) ) t hen
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 , No te s u r 2 0 : , k
END
Figure XIII.12 Rvision de la table de multiplication en Fortran
PROGRAM D i c h o t o m i e
integer i , j , k
do uble 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 hen
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
do uble p r e c i s i o n f u n c t i o n m a f o n c t i o n ( x )
do uble p r e c i s i o n x
mafonction = cos ( x )
RETURN
END
Figure XIII.13 Calcul du zro par dichotomie en Fortran
125
126
Initiation la programmation
PROGRAM P r o d u i t de m a t r i c e s
do uble 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
B( 1 , 1 ) = 6 . 1 ; B( 1 , 2 ) = 4 . 5 ; B( 1 , 3 ) = 0 . 0 ; B( 1 , 4 ) = 0 . 0
B( 2 , 1 ) = 0 . 0 ; B( 2 , 2 ) = 5 . 5 ; B( 2 , 3 ) = 3 . 7 ; B( 2 , 4 ) = 1 . 9
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
Figure XIII.14 Dclaration de matrices et calculs matriciels en Fortran
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.
127
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
Figure XIII.15 Routine Fortran de calcul de produit de deux matrices
128
Initiation la programmation
impo rt s c i p y
impo rt 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 . _ _ d o c_ _ )
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 . _ _ d o c_ _ )
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
This module lib_multiplication is auto-generated with f2py (version:2).
Functions:
c = prodmat(a,b,l=shape(a,0),m=shape(a,1),n=shape(b,1))
c = prodmat(a,b,[l,m,n])
Wrapper for prodmat.
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
[ 53.07
[ 0.
4.95
39.15
14.3
0.
0.
9.62
0. ]
0. ]
4.94]]
Figure XIII.17 Rsultat de laffichage de lutilisation dune libraire crite en Fortran dans un programme
en Python
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 :
Programme principal
Maillage
Cur
Gmsh
Fortran
Python
Rsultats
130
Code SILEX
x
a
ya
a (x, y, z)
xb xc xd
b (x, y, z)
yb yc yd
c (x, y, z)
za
zb
zc
d (x, y, z)
zd
=
y
1
(i + i x + i y + i z)
6v
avec
xj xk xl
i = (1)
i = (1)
p+1
p+1
yj
yk
yl
zj
zk
zl
1
i = (1)
i = (1)
xj xk xl
zj
zk
zl
yj yk yl
zj
zk zl
xj
xk xl
yj
yk
1
yl
131
x1 x2 x3 x4
v=
y1
y2
y3
y4
z1
z2
z3
z4
Be =
6v
a a
b b
c c
d d
K =
B eT CB e de
+ 2
0 0
+ 2
0 0
C=
+ 2 0 0
0
0 0
0 0
Le calcul de v fait intervenir le dterminant dune matrice 4 4 avec des 1 sur la premire ligne, on calcule de faon analytique ce dterminant puis on en cre une fonction Fortran
det44_ligne_de_un.
Les calculs des coefficients i , i et i font intervenir le dterminant dune matrice 3 3 avec
des 1 sur la premire ligne, on calcule de faon analytique ce dterminant puis on en cre une
fonction Fortran det33_ligne_de_un.
132
Code SILEX
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.
&
&
&
&
&
&
&
&
&
&
&
d e t 4 4 _ l i g n e _ d e _ u n= a ( 1 , 2 ) a ( 2 , 3 ) a ( 3 , 4) + a ( 3 , 1 ) a ( 1 , 3 ) a ( 2 , 2 )
a ( 1 , 2 ) a ( 2 , 4 ) a (3 ,3) a ( 2 , 2 ) a ( 1 , 3 ) a ( 3 , 4 )
+a ( 2 , 2 ) a ( 1 , 4 ) a ( 3 , 3 ) + a ( 3 , 2 ) a ( 1 , 3 ) a ( 2 , 4 )
a ( 3 , 2 ) a ( 1 , 4 ) a (2 ,3) a ( 1 , 1 ) a ( 2 , 3 ) a ( 3 , 4 )
+a ( 1 , 1 ) a ( 2 , 4 ) a ( 3 , 3 ) + a ( 1 , 1 ) a ( 2 , 2 ) a ( 3 , 4 )
a ( 1 , 1 ) a ( 2 , 2 ) a (3 ,3) a ( 1 , 1 ) a ( 3 , 2 ) a ( 2 , 4 )
+a ( 1 , 1 ) a ( 3 , 2 ) a ( 2 , 3 ) + a ( 2 , 1 ) a ( 1 , 3 ) a ( 3 , 4 )
a ( 2 , 1 ) a ( 1 , 4 ) a (3 ,3) a ( 2 , 1 ) a ( 1 , 2 ) a ( 3 , 4 )
+a ( 2 , 1 ) a ( 1 , 2 ) a ( 3 , 3 ) + a ( 2 , 1 ) a ( 3 , 2 ) a ( 1 , 4 )
a ( 2 , 1 ) a ( 3 , 2 ) a (1 ,3) a ( 3 , 1 ) a ( 1 , 3 ) a ( 2 , 4 )
+a ( 3 , 1 ) a ( 1 , 4 ) a ( 2 , 3 ) + a ( 3 , 1 ) a ( 1 , 2 ) a ( 2 , 4 )
a ( 3 , 1 ) a ( 1 , 2 ) a (2 ,3) a ( 3 , 1 ) a ( 2 , 2 ) a ( 1 , 4 )
end
C
double p r e c i s i o n f u n ct i on 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
integer
double
integer
double
integer
double
Cf2py
Cf2py
Cf2py
Cf2py
Cf2py
Cf2py
Cf2py
Cf2py
nbnodes , nbelem
p r e c i s i o n n o d e s ( nbnodes , 3 )
e l e m e n t s ( nbelem , 4 )
p r e c i s i o n CC ( 6 , 6 ) , Vk ( 1 2 1 2 nbelem )
I k ( 1 2 1 2 nbelem ) , J k ( 1 2 1 2 nbelem )
p r e c i s i o n m a t e r i a l ( 2 ) , young , nu , lambda , mu
i n t e n t ( in ) nbnodes
i n t e n t ( in ) nodes
i n t e n t ( i n ) nbelem
i n t en t ( in ) elements
i n t en t ( in ) m a t e r i a l
i n t e n t ( out ) Ik
i n t e n t ( out ) Jk
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 i dnodes ( 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 )
133
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 )
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 dnodes ( i ) , 3 )
enddo
a34 ( 1 , 1 ) =X ( 1 ) ; a34 ( 1 , 2 ) =X ( 2 ) ; a34 ( 1 , 3 ) = X ( 3 ) ; a34 ( 1 , 4 ) =X( 4 )
a34 ( 2 , 1 ) =Y ( 1 ) ; a34 ( 2 , 2 ) =Y ( 2 ) ; a34 ( 2 , 3 ) = Y ( 3 ) ; a34 ( 2 , 4 ) =Y( 4 )
a34 ( 3 , 1 ) = Z ( 1 ) ; a34 ( 3 , 2 ) = Z ( 2 ) ; a34 ( 3 , 3 ) = Z ( 3 ) ; a34 ( 3 , 4 ) = Z ( 4 )
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 ( det_of_sys / 6 )
a23 ( 1 , 1 ) = Y ( 2 ) ; a23 ( 1 , 2 ) = Y ( 3 ) ; a23 ( 1 , 3 ) = Y( 4 )
a23 ( 2 , 1 ) = Z ( 2 ) ; a23 ( 2 , 2 ) = Z ( 3 ) ; a23 ( 2 , 3 ) = Z ( 4 )
b e t a (1)= d e t 3 3 _ l i g n e _ d e _ u n ( a23 )
a23 ( 1 , 1 ) = X ( 2 ) ; a23 ( 1 , 2 ) = X ( 3 ) ; a23 ( 1 , 3 ) = X( 4 )
a23 ( 2 , 1 ) = Z ( 2 ) ; a23 ( 2 , 2 ) = Z ( 3 ) ; a23 ( 2 , 3 ) = Z ( 4 )
1))
1))
1))
1))
1))
1))
1))
1))
1))
=
=
=
=
=
=
=
=
=
beta ( j
gamm ( j
delt ( j
delt ( j
gamm ( j
delt ( j
beta ( j
gamm ( j
beta ( j
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
) / ( 6 . 0 d0 Vol )
135
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
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
elements . shape [ 0 ]
s c i p y . z e r o s ( 1 2 1 2 nelem , d t y p e = i n t )
s c i p y . z e r o s ( 1 2 1 2 nelem , d t y p e = i n t )
s c i p y . z e r o s ( 1 2 1 2 nelem , d t y p e = f l o a t )
scipy . zeros ( ( 4 ) , dtype= f l o a t )
scipy . zeros ( ( 4 ) , dtype= f l o a t )
scipy . zeros ( ( 4 ) , dtype= f l o a t )
scipy . zeros ( (3 , 4 ) , dtype= f l o a t )
scipy . zeros ( (3 , 4 ) , dtype= f l o a t )
scipy . zeros ((6 ,12) , dtype= f l o a t )
scipy . zeros (12 , dtype= int )
scipy . zeros (4 , dtype= int )
scipy . zeros (4 , dtype= int )
scipy . zeros (4 , dtype= int )
scipy . zeros (4 , dtype= int )
material [0]
material [1]
nu young / ( ( 1 + nu )(1 2 nu ) )
young / ( 2 ( 1 + nu ) )
s c i p y . a r r a y ( [ [ lamb +2mu , lamb , lamb , 0 . 0 , 0 . 0 , 0 . 0 ] ,
[ lamb , lamb +2mu , lamb , 0 . 0 , 0 . 0 , 0 . 0 ] ,
[ lamb , lamb , lamb +2mu , 0 . 0 , 0 . 0 , 0 . 0 ] ,
[ 0 . 0 , 0 . 0 , 0 . 0 , mu , 0 . 0 , 0 . 0 ] ,
[ 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , mu , 0 . 0 ] ,
[ 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , mu ] ] )
p=0
f o r e i n range ( nelem ) :
idnodes [ : ] = elements [ e ,:] 1
dofx [ : ]
= ( i dnodes )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 ]
dofelem [ 3 ] = dofx [ 1 ] ; dofelem [ 4 ]
dofelem [ 6 ] = dofx [ 2 ] ; dofelem [ 7 ]
dofelem [ 9 ] = dofx [ 3 ] ; dofelem [ 1 0 ]
=
=
=
=
dofy
dofy
dofy
dofy
[0];
[1];
[2];
[3];
dofelem [ 2 ]
dofelem [ 5 ]
dofelem [ 8 ]
dofelem [11]
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 )
=
=
=
=
dofz [ 0 ]
dofz [ 1 ]
dofz [ 2 ]
dofz [ 3 ]
137
A23 [ 0 , 0 ] = Y [ 1 ] ; A23 [ 0 , 1 ] = Y [ 2 ] ;
A23 [ 1 , 0 ] = Z [ 1 ] ; A23 [ 1 , 1 ] = Z [ 2 ] ;
b e t a [0]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 0 ] = X [ 1 ] ; A23 [ 0 , 1 ] = X [ 2 ] ;
gamm [ 0 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 1 , 0 ] = Y [ 1 ] ; A23 [ 1 , 1 ] = Y [ 2 ] ;
d e l t [0]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 2 ] = Y[ 3 ]
A23 [ 1 , 2 ] = Z [ 3 ]
A23 [ 0 , 0 ] = Y [ 0 ] ; A23 [ 0 , 1 ] = Y [ 2 ] ;
A23 [ 1 , 0 ] = Z [ 0 ] ; A23 [ 1 , 1 ] = Z [ 2 ] ;
b e t a [ 1 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 0 ] = X [ 0 ] ; A23 [ 0 , 1 ] = X [ 2 ] ;
gamm[1]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 1 , 0 ] = Y [ 0 ] ; A23 [ 1 , 1 ] = Y [ 2 ] ;
d e l t [ 1 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 2 ] = Y[ 3 ]
A23 [ 1 , 2 ] = Z [ 3 ]
A23 [ 0 , 2 ] = X[ 3 ]
A23 [ 1 , 2 ] = Y[ 3 ]
A23 [ 0 , 2 ] = X[ 3 ]
A23 [ 1 , 2 ] = Y[ 3 ]
A23 [ 0 , 0 ] = Y [ 0 ] ; A23 [ 0 , 1 ] = Y [ 1 ] ;
A23 [ 1 , 0 ] = Z [ 0 ] ; A23 [ 1 , 1 ] = Z [ 1 ] ;
b e t a [2]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 0 ] = X [ 0 ] ; A23 [ 0 , 1 ] = X [ 1 ] ;
gamm [ 2 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 1 , 0 ] = Y [ 0 ] ; A23 [ 1 , 1 ] = Y [ 1 ] ;
d e l t [2]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 2 ] = Y[ 3 ]
A23 [ 1 , 2 ] = Z [ 3 ]
A23 [ 0 , 0 ] = Y [ 0 ] ; A23 [ 0 , 1 ] = Y [ 1 ] ;
A23 [ 1 , 0 ] = Z [ 0 ] ; A23 [ 1 , 1 ] = Z [ 1 ] ;
b e t a [ 3 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 0 ] = X [ 0 ] ; A23 [ 0 , 1 ] = X [ 1 ] ;
gamm[3]= d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 1 , 0 ] = Y [ 0 ] ; A23 [ 1 , 1 ] = Y [ 1 ] ;
d e l t [ 3 ] = d e t 3 3 _ l i g n e _ d e _ u n ( A23 )
A23 [ 0 , 2 ] = Y[ 2 ]
A23 [ 1 , 2 ] = Z [ 2 ]
B[ 0
B[ 1
B[ 2
B[ 3
B[ 3
B[ 4
B[ 4
B[ 5
B[ 5
,0]
,1]
,2]
,2]
,1]
,0]
,2]
,0]
,1]
=
=
=
=
=
=
=
=
=
beta [ 0 ] ;
gamm [ 0 ] ;
delt [0];
gamm [ 0 ] ;
delt [0];
delt [0];
beta [ 0 ] ;
gamm [ 0 ] ;
beta [ 0 ] ;
B[ 0 , 3]
B[ 1 , 4]
B[ 2 , 5]
B[ 3 , 5]
B[ 3 , 4]
B[ 4 , 3]
B[ 4 , 5]
B[ 5 , 3]
B[ 5 , 4]
=
=
=
=
=
=
=
=
=
A23 [ 0 , 2 ] = X[ 3 ]
A23 [ 1 , 2 ] = Y[ 3 ]
A23 [ 0 , 2 ] = X[ 2 ]
A23 [ 1 , 2 ] = Y[ 2 ]
beta [ 1 ] ;
gamm [ 1 ] ;
delt [1];
gamm [ 1 ] ;
delt [1];
delt [1];
beta [ 1 ] ;
gamm [ 1 ] ;
beta [ 1 ] ;
B[ 0
B[ 1
B[ 2
B[ 3
B[ 3
B[ 4
B[ 4
B[ 5
B[ 5
,6]
,7]
,8]
,8]
,7]
,6]
,8]
,6]
,7]
=
=
=
=
=
=
=
=
=
beta [ 2 ] ;
gamm [ 2 ] ;
delt [2];
gamm [ 2 ] ;
delt [2];
delt [2];
beta [ 2 ] ;
gamm [ 2 ] ;
beta [ 2 ] ;
B[ 0 , 9]
B[1 ,10]
B[2 ,11]
B[3 ,11]
B[3 ,10]
B[ 4 , 9]
B[4 ,11]
B[ 5 , 9]
B[5 ,10]
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
=
=
=
=
=
=
=
=
=
beta [3]
gamm [ 3 ]
delt [3]
gamm [ 3 ]
delt [3]
delt [3]
beta [3]
gamm [ 3 ]
beta [3]
138
Code SILEX
139
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.
140
Code SILEX
141
# 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
s ys . pat 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 :
# i m por t 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
# O u t p u t r e s u l t f i l e : d e f i n e t h e name o f t h e r e s u l t
R es ul t s F i l eN am e= MyResults
file
( . msh )
file :
# 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
nu
Code SILEX
= 0.3
# Boundary c o n d i t i o n s , f o r i n s t a n c e :
I d N o d e s F i x e d _ x= I d n o d e S 3
I d N o d e s F i x e d _ y= I d n o d e S 1
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 hen 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])
# define fr e e dof
S o l v e d D o f s = s c i p y . s e t d i f f 1 d ( range ( n d o f ) , F i x e d _ D o f s )
# 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 )
# ########## # # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## #
#
Sol ve 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)
p r i n t ( " The g l o b a l e r r o r i s : " , E r r o r G l o b a l )
# ########## # # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## # # ## # ## # # ## # # ## # # ## #
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 ] ,
]
# w r i t e t h e mesh and t h e r e s u l t s i n a gmshf o r m a t f i l e
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 , nodes , e l e m e n t s , e l t y p e , f i e l d s _ t o _ w r i t e )
p r i n t ( " END " )
144
Code SILEX
145
pression applique
115 mm
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.
146
Code SILEX
(a) 1011 nuds, 3622 lments (b) 3065 nuds, 11891 l- (c) 35021 nuds, 154526 l- (d) 161639 nuds, 865338 lments
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
147
(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 lisse maximale de 53,9 MPa
se maximale de 56,9 MPa
se maximale de 76,7 MPa
se maximale de 83,3 MPa
148
Code SILEX
(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)