Vous êtes sur la page 1sur 17

École Doctorale Ingénierie pour le Vivant

TP Méthode des Éléments Finis


Programmation

I. Introduction
Pour les structures 2D ou 3D il est souvent impossible de trouver analytiquement la solution à un
problème mécanique. On doit alors utiliser des méthodes numériques pour approcher cette solution.
L’objectif de ce TP est de ce familiariser à l’une de ces méthodes qui est "la méthode aux éléments
finis" (notée MEF).
La MEF est utilisée pour la résolution numérique d’équations elliptiques ou paraboliques. Cette
méthode offre l’avantage, par rapport à la méthode des différences finies, de pouvoir traiter sans
trop de difficultés supplémentaires toute géométrie ainsi que d’augmenter la précision des résultats
aux prix d’efforts de programmation raisonnables. C’est la MEF qui est systématiquement utilisée
pour le calcul des structures et de très nombreux codes d’éléments finis ont été développés et
commercialisés. L’un de ces codes est ANSYS et sera utilisé dans une deuxième phase de TP liés à
cet enseignement.
Les développements théoriques et formulations mathématiques de la MEF ont déjà été vus en
cours. Dans ce travail nous allons programmer cette méthode numérique en l’appliquant à un
problème de mécanique en élasticité linéaire et en statique. Pour cela, nous utiliserons le langage
Java. Nous comparerons les résultats numériques obtenus à ceux analytiques donnés dans ce
document.

II. Énoncé du problème mécanique


On se propose de simuler, en élasticité linéaire et en statique, le comportement mécanique d’une
artère (ici coronaire) soumise à une pression luminale uniforme Pint et à une pression externe
uniforme Pext .
Le tissu pariétal est supposé isotrope compressible (de module d’Young E et de coefficient de
Poisson ) et a des propriétés actives contrôlées à la fois par une fonction d’activation
normalisée ( 0 1 ) et par une contrainte musculaire active (appelée aussi tonus
musculaire) T0 . Lorsque 0 , le milieu pariétal est passif et lorsque 1 , la paroi a sa
contraction maximale. Cette activation est anisotrope puisqu’elle est supposée se faire uniquement
suivant la direction circumférentielle de vecteur directeur unitaire e θ .
Le vaisseau sanguin au repos (passif sans chargement) a une géométrie cylindrique de rayon
interne Rint et externe Rext et est supposé de longueur infinie.
La figure 1 décrit le problème étudié.
Dans cette étude, nous négligeons : (i) toutes contraintes résiduelles au sein de la paroi vasculaire,
et (ii) les forces dues à la gravitation. Ainsi nous sommes dans le cadre de la théorie des petites
déformations et nous traitons le problème en déformations planes.
Après avoir résolu et programmé les "trois simulations de base", il nous faut répondre aux
questions données au paragraphe IV qui ont pour but de mieux appréhender l’étape de post−
traitement des résultats obtenus.

© E. Promayon, J. Ohayon 20 février 2001 1/17


Pext

Pint

int
R
ext
R
Pint Pext

Figure 1: problème mécanique étudié. Schématisation des conditions de charge (haut) et


schématisation de l’activation anisotrope circulaire (bas)

III.Solution analytique
Utilisant la théorie des petites déformations pour ce problème à déformations planes ( c’est−à−dire
xz yz zz
0 ), nous en déduisons en coordonnées cylindriques le vecteur déplacement
solution où R est le rayon du point observé :

uθ uz 0
K1 R K2 T0 (1)
R 1
uR R ln R
2 R 2 2 2
où les composantes de la déformation sont :
uR R K1 K2 T0 1
RR
R ln R
R 2 R² 2 2 2
uR R K1 K2 T0 (2)
1
θθ
R ln R
R 2 R² 2 2 2
autres ij
0

et où les composantes du tenseur des contraintes sont :

RR
2 RR θθ

θθ RR
2 θθ
T0
(3)
ZZ RR θθ

autres ij
0
Avec :

© E. Promayon, J. Ohayon 20 février 2001 2/17


1 2 2 2 2 2 2
2 2 P int R int P ext R ext 2 T0 R int ln R int R ext ln R ext T0 R int R ext
2
K1
R 2int R 2ext
2 2
3 2
(4)
1 R ext
2 P ext P int T 0 ln
2 R int
K2
2 R 2int R 2ext
Rappel :
E
E,
1 1 2
E
E,
2 1
Cette solution analytique, que l’on peut obtenir dans ce case en raison de la simplicité du problème
mécanique, servira de base de comparaison et de validation avec nos résultats numériques.

IV.Recherche de la solution numérique : programmation


Comme dit plus haut, nous nous proposons de résoudre le même problème en utilisant la Méthode
des Éléments Finis (MEF). L’ensemble des étapes suivantes sont schématisées dans l’annexe 1
(paragraphe V).
La programmation sera en langage JAVA, l’annexe 2 est une aide à la programmation des
différentes étapes (il est fortement conseillé de s’aider continuellement de l’annexe 2).

Hypothèse : tout d’abord pour une raison d’invariance suivant l’axe z (axe principal de l’artère)
nous modéliserons la structure étudiée par un modèle plan. De plus en raison de symétrie nous ne
réaliserons le maillage que d’un quart de tube.

Remarque : il ne faudra pas oublier d’ajouter des conditions limites pour que les noeuds se
trouvant sur les axes vérifient les propriétés de symétrie).

III.1.Étape 0 : le maillage
Nous allons utiliser des éléments triangulaires. Il s’agit ici de réfléchir sur la numérotation des
noeuds. Dans notre cas, on veut trouver une indexation des noeuds et des éléments de façon
générique. On cherche ainsi une numérotation qui permette de déterminer automatiquement pour
un élément triangulaire quelconque e le numéro de ses trois noeuds associés.

© E. Promayon, J. Ohayon 20 février 2001 3/17


Y n=4
8 2 R int Rext
9 R inter cos θ
R int R ext
5

1
10

Rinter
2 6

3
θ
7
X
O 4 11
Figure 2 : schématisation du quart de tube représentant l’artère.
2n 2n+1 2n+2 . . . . . . 3n−3 3n−2 3n−1
3n−2 3n−1 4n−5 4n−4
n+1 n+2 ...... 2n−2 2n−1
n 2n−1 n+1 2n 2n−3 2n−2 3n−3

1 2 n−2 n−1

1 2 3 ....... n−2 n−1 n

Figure 3: description du maillage choisi et numérotation des éléments.

Déterminer les coordonnées de chaque noeud en fonction d’un seul paramètre qui est le nombre
de noeuds sur la courbe interne de l’artère (n).
Trouver la relation entre la numérotation des noeuds et celle des éléments afin de définir
automatiquement les trois noeuds d’un élément quelconque.
Les étapes suivante (1 à 4) permettent de déterminer la matrice de rigidité d’un élément.

III.2.Étape 1 : le vecteur déplacement (expression de la matrice


d’interpolation N )
Nous cherchons à déterminer la matrice d’interpolation. Cette matrice permet d’exprimer le champ
de déplacement d’un point quelconque de l’élément en fonction des déplacements nodaux de
l’élément.

U x,y N x,y Ue (5)

(2*1) (2*6) (6*1)


où l’indice e est relatif à l’élément.
Soit un élément triangulaire où les noeuds 1, 2 et 3 ont respectivement les coordonnées cartésiennes
(x1, y1), (x2, y2) et (x3, y3), voir figure 4.

© E. Promayon, J. Ohayon 20 février 2001 4/17


v2
e (Fy1)
eθ u2
(x2, y2 ) (Fx1)
v1
(Fy1) e
u1
Y (Fx1) Ge v3
(x1, y1 ) (Fy1)
u3
(Fx1)
θe (x3, y3)

O X
Figure 4 : élément triangulaire à interpolation linéaire, O est ici l’origine de la lumière du vaisseau.
Le point Ge est le barycentre de l’élément e . Il permet de calculer la coordonnée angulaire
cylindrique θe, angle utilisé pour obtenir e θ , la direction d’activation de e .
e

Le déplacement d’un noeud est donné dans le plan X−Y par ces deux composantes :
ui
U ie
v i =1,2,3 (6)
i

Les déplacements nodaux d’un élément sont représentés par le vecteur colonne à 6 composantes :
U 1e
Ue U 2e
(7)
3
U e

Nous voulons trouver la matrice d’interpolation supposant une variation linéaire du déplacement à
l’intérieur et aux limites de l’élément triangulaire. Ce déplacement est noté :
U x,y u x,y
v x,y
Les 6 degrés de liberté d’un élément nous donne l’expression de la fonction d’interpolation :
u x,y 1 2
x 3y
(8)
v x,y 4 5
x 6y
Il est aisé de résoudre ce système d’équations en fonction des déplacements nodaux de l’élément.
Les six constantes se calculent aisément en résolvant deux systèmes de trois équations. On
obtient alors :

1
u x,y a 1 b1 x c 1 y u 1 a 2 b2 x c 2 y u 2 a 3 b3 x c 3 y u 3
2 (9)
1
v x,y a 1 b1 x c 1 y v 1 a 2 b2 x c 2 y v 2 a 3 b3 x c 3 y v 3
2
où :

© E. Promayon, J. Ohayon 20 février 2001 5/17


a1 x 2 y 3 x 3 y 2 a 2 x 3 y 1 x1 y 3 a 3 x 1 y 2 x 2 y 1
b1 y 2 y 3 b2 y 3 y 1 b3 y 1 y 2 (10)
c1 x 3 x 2 c 2 x1 x 3 c 3 x 2 x1
et est le "volume" de l’élément triangle. Cependant, comme on considère une profondeur de 1,
ici est aussi l’aire du triangle formé par les trois noeuds :

1 x1 y 1
1
det 1 x 2 y 2
2
1 x3 y3
On peut mettre la relation (9) sous la forme matricielle, nécessaire pour la suite :

U 1e
U x,y N 1 x,y Id N 2 x,y Id N 3 x,y Id Ue
2 N x,y Ue (11)
U 3e
(2*1) (2*6) (6*1) (2*6) (6*1)

1 0 a i bi x c i y
Avec Id et N i x,y i=1,2,3
0 1 2

III.3.Étape 2 : Champs des petites déformations


De part l’hypothèse retenue de déformations planes, nous avons :

zz xz
0 yz
(12)
De plus comme nous somme dans le cadre de l’élasticité linéaire en petite déformation, la
déformation en un point quelconque de l’élément considéré peut s’exprimer de la façon suivante :

u x,y
e
x,y x
xx
e v x,y e e
x,y e
x,y avec xy
x,y 2 xy
(13)
yy
e
y
xy
x,y u x,y v x,y
y x
Soit en introduisant un opérateur matriciel [L] :
e
x,y L U x,y
Où l’opérateur [L] est défini de la façon suivante :
x 0
L 0 y
y x
D’où en substituant l’équation (11) dans l’équation (13) on obtient la matrice [B(x, y)] qui relie les
déplacements nodaux au vecteur déformation,
e
x,y L N x,y U e B x,y U e (14)

© E. Promayon, J. Ohayon 20 février 2001 6/17


avec [B(x,y)] = [L] [N(x,y)]
La matrice [B(x,y)] peut aussi s’exprimer sous la forme suivante
[B(x,y)] = [ [B1 (x,y)] [B2 (x,y)] [B3 (x,y)] ] où
N i x,y
0
x
N i x,y
Bi x,y 0 avec i=1,2,3.
y
N i x,y N i x,y
y x
Remarquons que dans notre problème la matrice [B(x,y)] (matrice 3*6) est indépendante des
e
coordonnées (x,y) du point dans l’élément et par conséquent il en est de même pour x,y .
Les déformations sont ainsi constantes dans chaque élément.

III.4.Étape 3 : loi constitutive du matériau actif


La relation constitutive contrainte/déformation pour un matériau isotrope compressible en élasticité
linéaire et auquel on ajoute une fonction d’activation est donnée sous forme tensorielle par :
x,y Trace I
T 0 eθ eθ 2 (15)
e e
Pour un élément quelconque e , e θ e θ est obtenu à partir de l’angle θ e OX OGe (voir
e
figure 4), avec e θ sin θ e e 1 cos θ e e 2 . Soit :

sin 2 θ e sin θ e cos θ e 0


e e
eθ e θ sin θ e cos θ e cos 2 θ e 0
0 0 0
On obtient finalement dans un cadre général :

xx
2 xx yy
T 0 sin 2 θ

yy xx
2 yy
T 0 cos 2 θ

xy xy
T 0 sin θ cos θ
yz
0
yz
0
zz xx yy
( attention, non nul ! )
La loi de comportement associée à l’élément a donc pour expression :
e
xx
2 0
e
xx
sin 2 θ e
T0 cos 2 θ e
e 2 0 e
yy yy
e 0 0 2 e
sin θ e cos θ e
xy xy

(3*1) (3*3) (3*1) (3*1)

© E. Promayon, J. Ohayon 20 février 2001 7/17


Que nous exprimons :
e
x,y De e x,y T 0 Ae ou encore :
e
x,y De B x,y U e T 0 Ae (16)
La matrice [De] est la matrice de rhéologie, ou matrice de Hooke pour un élément.
Noter que les contraintes sont ainsi constantes dans chaque élément.
Exprimer [De] en fonction non plus des coefficients de Lamé , mais du module d’Young E et
du coefficient de Poisson ν.

III.5.Étape 4 : Matrice de rigidité d’un élément

a)Matrice de rigidité d’un élément e

A l’aide du principe variationnel (voir cours), nous obtenons la matrice de raideur de l’élément :
Ke vol
B x,y T D e B x,y dV
e

avec [Ke] donnée par ces éléments [Ke]ij tel que :


K e ij vol B x,y T De B x,y ij dV
e

Comme les divers termes intervenant dans l’intégrale sont constants, que le volume est égale à la
surface multipliée par une profondeur égale à 1, les termes de la matrice de raideur élémentaire
sont:
BT De B ij .
Ainsi :
T
K e ij B x,y D e B x,y ij

b)Forces générées par l’activation


De la même façon, nous obtenons le vecteur β[F*e], forces générées par l’activation :
F *e T0 vol e
B x,y T
A e dV
On peut faire la même remarque que ci−dessous afin d’exprimer les éléments du vecteur [F*e] :
F *e i
T 0 B x,y T
ij
Ae j

c)Forces générées par la conditions de charge de type pression


Le vecteur [Fe] représente les forces extérieures. Dans notre cas, il s’agit des forces de pressions
générées par Pint et Pext. Elles suivent la direction radiale de la structure et s’appliquent sur les
noeuds des éléments du bord intérieur (forces issues de Pint) et du bord extérieur (forces issues de
Pext). Elles sont de plus uniformément réparties.
Remarque : On doit utiliser ici la méthode pour répartir les forces nodales afin d’être équivalent
mécaniquement (voir cours).

© E. Promayon, J. Ohayon 20 février 2001 8/17


En faisant l’hypothèse que l’élément est à l’équilibre sous l’action des efforts de pression p
(efforts surfaciques, ici soit dus à Pint soit à Pext) et des forces de réaction nodales, on obtient :
T
Fe surf e
N p dS
(6*1) (6*2) (2*1)
Noter que la surface sur laquelle s’applique cette intégrale est en fait une ligne de profondeur 1.
On introduit l’angle θ *e (voir figure 5).

k
e
i
∆y

p
j

∆x
θ*e

horizontal

Figure 5 : schématisation des forces de pression appliquée sur un côté d’un élément
(ici par exemple la pression interne)
On obtient donc :

p y
et
x
P y , Fj P y , et F k 0
F ie e e ,
2 x 2 x 0
où i et j sont les noeuds subissant les pressions et k le noeud à l’intérieur de la structure. P est un
scalaire égale à la pression appliquée (soit intérieure, soit extérieure). Le signe de la pression est
choisi négatif pour la pression extérieure (force dirigée vers l’intérieur) et positif pour la pression
intérieure (force dirigée vers l’extérieure).

d) En résumé, pour un élément e

D’après le théorème des travaux virtuels (voir cours) :


*
K e Ue Fe Fe (17)
Où [Ke] est la matrice de rigidité de l’élément, [Ue] les déplacements des noeuds, [Fe] les forces
générées par les pressions (internes et externes), et β[F*e] les forces générées par l’activation.

© E. Promayon, J. Ohayon 20 février 2001 9/17


III.6.Étape finale : assemblages de la matrice de raideur globale [Kg] et
des vecteurs forces

a)Assemblages
Nous pouvons maintenant construire le système global à partir de l’équation (17). On obtient :
*
Kg Ug Fg Fg
Où [Kg] est la matrice de rigidité globale, [Ug] le vecteur contenant les déplacements de tous les
noeuds, [Fg] le vecteur contenant toutes les forces générées par les pressions (internes et externes)
sur les noeuds, et β[F*g] le vecteur contenant toutes les forces générées par l’activation.
Pour la résolution numérique il faut construire ce gros système, en trois étapes :


assemblage de la matrice de raideur globale,




assemblage du vecteur forces de pressions,




assemblage du vecteur forces d’activation.

Le même principe est utilisé pour ces trois assemblages. L’assemblage de la matrice de raideur
consiste en la construction de la matrice de raideur globale de la structure, en utilisant les matrices
de raideur élémentaires des différents éléments. En exprimant les conditions d’équilibre de tous les
noeuds, on montre que l’assemblage des matrices de raideur élémentaires consiste pour un noeud
donné à additionner les sous matrices de rigidité nodale des éléments ayant ce noeud en commun.

1 2

2
3
1
3 4 5

4 5

6 7 8

Figure 6 : exemple de maillage d’une structure contenant plusieurs éléments. Cette structure
comporte 5 éléments et est composée au total de 8 noeuds.

© E. Promayon, J. Ohayon 20 février 2001 10/17


*
K g Ug F g Fg
[K1] [K2] [K3] [K4] [K5]

[ + + + + ] [U ]
g

[Fe,1] [Fe,2] [Fe,3] [Fe,4] [Fe,5] [F*e,1][F*e,2][F*e,3][F*e,4][F*e,5]

= [ + + + + ] −β [ + + + + ]
[Kg] [Fg] [F*g]

⇔ [ ][U ] =[ ] − β [ ]
g

Figure 7 : mise en forme numérique du problème mécanique de la figure précédente. En noir le


partie où une sommation a été nécessaire. (on suppose ici, pour des raisons évidentes de clarté,
qu’il n’existe qu’un ddl par noeud)

La figure 7 montre comment le système global est assemblé (cas de la structure de la figure 6, où il
y a des fonctions d’activation sur tous les éléments) :


pour l’assemblage de la matrice de raideur globale [Kg], on considère les matrices de rigidité
associées à chaque élément [Ki] (i=1,..,5).


pour l’assemblage du vecteur force externe [Fg], on considère les vecteurs force externe de
chaque éléments [Fe,i] (i=1,..5)


pour l’assemblage du vecteur d’activation [F*g], on considère les vecteurs de force d’activation
de chaque éléments [F*e,i] (i=1..5)

b)Conditions aux limites

Elles sont du type cinématique lorsque les déplacements sont imposés ou du type statique lorsque
les efforts sont imposés.
Il est à souligner qu’il est impossible d’imposer au même noeud les déplacements et les efforts :
deux quantités parmi ces quatre variables nodales doivent être connues (même si elles ne sont pas
de même nature). De plus, les noeuds sur lesquelles aucun déplacements ou effort n’est imposé sont
des noeuds sur lesquelles on impose un effort nul.

© E. Promayon, J. Ohayon 20 février 2001 11/17


Écrire les conditions aux limites et proposer une façon (astucieuse) de les prendre en compte dans
notre système matriciel (voir cours chapitre 2 : MEF et treillis).

Remarque : Rappelez−vous que pour respecter la symétrie on va imposer certains des


déplacements à certaines noeuds et qu’à chaque déplacement imposé correspond une force
inconnue.

c)Résolution du système d’équations linéaires

Cette dernière étape consiste en la résolution du système linéaire final (ou des systèmes !).
Attention de bien construire des systèmes valides.

III.7.Tests et résultats
Voici des paramètres pouvant servir à modéliser une artère coronarienne :


Module d’Young E =100 kPa




Coefficient de Poisson ν = 0.3




Rayon interne Rint = 2 mm




Rayon externe Rext =2,5 mm




Pression extérieure Pext = 0 kPa


Tester le programme pour trois situations suivantes :
1. Matériau isotrope passif 0 soumis à des pressions interne Pint = 13,3 kPa
2. Matériau isotrope actif 1 et To=15 kPa
3. Matériau isotrope actif 1 et To=15 kPa soumis à des pressions Pint = 13,3 kPa

Rappel : 760 mmHg = 1 atm = 101.3 kPa = 1013 mbar (le kPa correspond au N/m²)

V.Post−traitement et comparaison des résultats obtenus


Une partie importante de la méthodologie consiste à effectuer les post−traitements et l’analyse des
résultats obtenus.


Visualiser sur l’écran de votre ordinateur la configuration initiale du quart de tube avec son
maillage. Visualiser la configuration déformée de votre structure. Faites varier les paramètres
pour vérifier la cohérence et la justesse de votre programmation.


Comparer les résultats numériques aux résultats analytiques. Faites jouer les paramètres du
maillage pour estimer l’erreur commise (erreur en fonction de n et des rayons).
Pour cela, il faudra effectuer le changement du repère cylindrique au repère cartésien, en tout
point P d’angle θ P (P appartenant à la structure et localisé dans l’élément e ). On a :
P
x,y
e PR e PR P
RR
P
x,y
e θP e θP P
θθ
avec e PR cos θ P e 1 sin θ P e 2 et e θP sin θ P e 1 cos θ P e 2
P
x,y
e PR e θP P

© E. Promayon, J. Ohayon 20 février 2001 12/17


P
Ce qui donne par exemple pour RR
:
e e
P XX XY cos θ P cos θ P
RR e e
XY YY sin θ P sin θ P
P
RR
e
XX
cos 2 θ P e
YY
sin 2 θ P 2 e
XY
sin θ P cos θ P


En plus de visualiser les déplacements, visualiser les déformations et les contraintes en tout
point de l’artère. Pour cela il faut utiliser respectivement les formules (14) et (16).

© E. Promayon, J. Ohayon 20 février 2001 13/17


VI.Annexe 1: schématisation de la méthode MEF
Mise en donnée
de la géométrie n ? rInt ? rExt ?
maillage ? numérotation ?

Maillage de la structure créationMaillage(int n, double rInt, double rExt)


−création des noeuds matriceB()
−création des mailles

Lecture des caractéristiques


mécaniques des matériaux et module d’Young ? coefficient de Poisson ?
du chargement pressions ? activation ?

Choix de l’hypothese de
calcul (défo. plane...)

Création de la matrice de matriceHooke(double young, double poisson)


hooke

Création de la matrice de matriceRigidité()


raideur d’un élément

Assemblage de la matrice
assemblageMatriceRigidité()
de raideur globale

Prise en compte des assemblageForceActivation(double T0)


conditions aux limites assemblageForceExtérieure(double pInt, double pExt)

(efforts et déplacements assemblageF(double beta)


conditionsLimites()
imposés)

Résolution du système résolutionSousProblème()

matriciel final arrangementUg()

[K] {u} = {F} arrangementF()

Sortie des résultats :


impression, visualisation...

A gauche, la méthode générale, à droite les étapes correspondantes dans le cadre de la


programmation.

© E. Promayon, J. Ohayon 20 février 2001 14/17


VII.Annexe 2 : aide à la programmation de la solution
Nous utiliserons le langage de Programmation Orienté Objet JAVA pour effectuer la
programmation de la résolution. La partie de résolution mathématique fera directement appel à la
bibliothèque JAMA (bibliothèque de calcul matriciel).

Classes principales
Nous utiliserons principalement les classes JAVA correspondant aux concepts manipulés :


la classe Artere contient toutes les propriétés nécessaires à la modélisation de l’artère et


notamment la liste des éléments listeE et la liste des noeuds listeN. C’est par
l’intermédiaire de cette classe que l’on va passer pour faire faire les calculs sur les éléments et
les noeuds.
Les actions possibles sur cette classe sont en fait toutes les étapes de l’algorithme vues à
l’annexe précédant (partie de droite).


la classe Element contient toutes les propriétés et les actions possibles sur un élément.


la classe Noeud contient les propriétés d’un noeud : un indice (global dans la structure,
commençant à 1, voir figure 2), une position pos de départ, le déplacement u calculé par la
MEF et la force appliquée F calculée par la MEF.

Les étapes de l’algorithme (annexe 1) vont être programmée dans la classe Element et dans la
classe Artere. La majeure partie du code s’écrira donc dans ces deux classes. Une version initiale
de ces classes fournissant un cadre est donnée. Il s’agira ici de la compléter.

Calculs, vecteurs et matrices




Les vecteurs (positions, forces, etc...) seront modélisés par des tableaux 1D de "réels" en double
précision, les matrices par des tableaux 2D de "réels" double précision.


La classe Math (prédéfinie dans java) contient les méthodes de calcul pour la trigonométrie.


La classe Calcul contient la méthode de résolution du système AX=B :


public static void résoudre(double[][] A, double[] X, double[] B)
où A est matrice représentée par un tableau 2D de double, X est un vecteur représenté par un
tableau 1D de double et B un vecteur représenté par un tableau 1D de double.
Celle classe Calcul fait appel à la bibliothèque Jama (inutile donc de rentrer dans ses détails).

Classes d’entrée/sortie
Deux classes d’entrée/sortie au clavier et dans des fichiers sont données :


La classe TextWindow permet de faire des entrées/sorties texte simple. Les entrées se font
dans la fenêtre d’invite de commande (le shell) en utilisant le clavier. Les sorties se font dans
cette même fenêtre d’invite de commande (voir documentation).


La classe FileOutput permet de créer des fichiers de sortie au format texte (très pratique
pour comparer vos résultats !) (voir documentation).

Affichage et applet (programme)


Afin de permettre une visualisation graduelle de la programmation, la classe ArtereApplet. La
méthode calculer() est à compléter afin d’effectuer les traitements nécessaires à la
programmation de la méthode MEF. Cette applet fait appel à la classe AfficheurMEF (lui même
utilisant un CanvasMEF). Vous pouvez aussi, si vous le désirez, utiliser la classe

© E. Promayon, J. Ohayon 20 février 2001 15/17


AfficheurMEF de manière à créer une application qui n’a pas besoin de navigateur html (stand−
alone).
Il est fortement conseillé d’utiliser l’applet tout au long du TP afin de vérifier votre programme
étape par étape. Le fichier permettant de lancer l’applet est TPMEFApplet.html.
Remarque : à chaque complétion dans la classe Artere, veillez à vérifier que la méthode
calculer() de la classe ArtereApplet fait bien correctement appel aux méthodes modifiées.

VI.1.Etape 0 : le maillage
Compléter la méthode créationMaillage(...) de la classe Artere. Cette méthode
instancie ensuite le nombre d’éléments et le nombre de noeuds nécessaires, calcule la position de
chacun des noeuds et définit les trois noeuds composant chaque éléments.

VI.2.Etape 1 : vecteur déplacement


Compléter la méthode surface() de la classe Element.

VI.3.Etape 2 : champs des petites déformations


Compléter la méthode matriceB() de Element et la méthode matriceB() de Artere
(cette dernière demande à chaque élément de calculer sa propre matrice B).

VI.4.Etape 3 : loi constitutive du matériau actif




Compléter les méthodes barycentre(), et vecteurActivation() de Element.




Compléter la méthode matriceHooke(...) de Artere (construction de la matrice [De] )

VI.5.Etape 4 : matrice de rigidité d’un élément

a) Matrice de rigidité d’un élément


Compléter les méthodes matriceRigidité(...) des classes Element et Artere.

b) Force générées par l’activation


Compléter la méthode forceActivation(...) de la classe Element.

c) Force générées par les conditions de charge de type pression


Compléter la méthode forceExtérieure(...) de la classe Element.
VI.6.Etape finale : assemblages et résolution
a) Assemblages

Compléter assemblageMatriceRigidité(), assemblageForceActivation(...),


assemblageForceExtérieure(...) et assemblageF(...) de la classe Artere.

b) Conditions limites

Compléter la méthode conditionsLimites() de la classe Artere. Cette méthode contient le


code préparant la résolution du sous problème. C’est là qu’une sous matrice Kconnu, un sous vecteur
Fconnu et un sous vecteur Uinconnu vont être construit à partir des étapes précédentes.

© E. Promayon, J. Ohayon 20 février 2001 16/17


c) Résolution du système d’équations linéaires

Compléter la méthode résolutionSousProblème() de la classe Artere (utiliser la classe Calcul !).


Afin d’obtenir l’ensemble des forces exercées et de calculer les forces résultantes des conditions
limites, compléter les méthodes assemblageUg() et assemblageF() de Artere.

VIII.Annexe 3 : aide à la programmation du post−traitement


Une fois notre système résolu on utilisera intensivement la matrice d’interpolation N e afin de
retrouver et de visualiser les déplacements, déformations, et contraintes en tout point de la
structure.
Il faudra pour cela :


Compléter la méthode matriceInterpolation() de la classe Element.




Compléter la classe Interpolation. Cette classe ne contient que des méthodes statiques et
est appelée par l’afficheur.

VII.1.Déplacements
On utilise la relation (11) pour afficher les déplacements en tout point U(x,y) à l’intérieur de
l’élément à partir de N(x,y) et du déplacement des noeuds Ue .
Compléter la méthode interpoleDéplacement(..) de la classe Interpolation. Cette
méthode renvoie un tableau de deux cases correspondant au déplacement du point de position pos
(tableau de 2 cases) de l’élément e .

VII.2.Déformations
e
On utilise la relation (14) pour afficher les déformations en tout point x,y à l’intérieur de
l’élément à partir de B(x,y) et du déplacement des noeuds Ue .
Compléter la méthode interpoleDéformation(...) de la classe Interpolation. Cette
méthode renvoie un tableau de 3 cases correspondant à la déformation subies au point de position
pos (tableau de deux cases) de l’élément e .

VII.3.Contraintes
On utilise la relation (16) pour afficher les contraintes en tout point e x,y à l’intérieur de
l’élément à partir de De, du déplacement des noeuds Ue et du vecteur d’activation Ae.
Compléter la méthode interpoleContrainte(...) de la classe Interpolation. Cette
méthode renvoie un tableau de 3 cases correspondant à la contrainte subies au point de position pos
(tableau de deux cases) de l’élément e .

© E. Promayon, J. Ohayon 20 février 2001 17/17