Maillage
SAE - TP 4
2006
L’objet de ce TP est de réaliser avec Matlab un code réalisant des maillages bidimensionnels de domaines
simples qui seront utilisés dans le contexte de la méthode des éléments …nis.
1 Maillage
Soit un domaine borné,fermé et non vide de R2.On appelle maillage toute collection de fermés
bornés non vides (K`)`=1;L qui véri…e les propriétés suivantes :
[
`=1;L
K`= 
K`\
K`0=;si `6=`0(
K`désignant l’intérieur de K`)
Dans le contexte de la méthode des éléments …nis, on impose également que :
toute arête d’un élément K`est soit une arête du bord de soit une arête d’un autre élément K`0
Cette hypothèse interdit la situation suivante :
K1
K2
K3
A
où l’arête A, arête de l’élément K2n’est pas une arête d’un autre élément !
Un maillage peut-être constitué de di¤érents types d’élément géométrique. En 2D, on rencontre principale-
ment des triangles et des quadrangles. Lorsque le maillage est constitué exclusivement de triangle on parle
de triangulation du domaine et lorsqu’il est constitué exclusivement de quadrangle, on parle de quadran-
gulation. De façon générale, un triangle (resp. un quadrangle) est un domaine géométrique constitué de 3
(resp. 4) côtés éventuellement courbes. Dans la suite, on se restreindra à des domaines géométriques ayant
des côtés droits. Notons, qu’avec des éléments ayant des bords droits on ne peut mailler au sens de la dé…ni-
tion précédente que des domaines eux mêmes constitués de bords droits. Dans le cas où le domaine à mailler
présente des bords courbes on ne peut que réaliser avec des éléments à bord droit qu’une approximation du
domaine :
1
Un maillage étant destiné à servir de "grille généralisée" de calcul, on caractèrise la …nesse du maillage par
un paramètre h:
h= sup
`=1;L
diam(K`)
où diam(K`)est le diamètre du plus petit cercle qui circonscrit K`:
Un triangle K`(resp. un quadangle) à bords droits est entierement déterminé par ses psommets, p= 3
(resp. p= 4) : Si
`i=1;p On dé…nit l’ensemble des sommets du maillage par :
S=[
`=1;L [
i=1;p
Si
`
l’union étant ensembliste, c’est_à-dire que chaque sommet n’est compté qu’une seule fois. On notera Nle
cardinal de S(nombre de sommets).
Créer un maillage consiste à générer l’ensemble des sommets (liste) et une structure permettant de retrouver
quels sont les sommets des éléments. D’un point de vue concret, il s’agit donc de générer
un tableau S(matrice de dimension Nx2) fournissant les coordonnées de tous les sommets :
S(I; :) : coordonnées (xI; yI)du sommet SI
un tableau T(matrice de dimension Lxp) fournissant les numéros des sommets de l’élément `:
T(`; :) : ndes sommets (I1; I2; :::; Ip)de l’élément `
Exemple : maillage d’un carré de côté 2en 8 triangles
K1
K2K3
K4
K6
K
8
K5
K7
S9
S1S2S3
S4S5S6
S7S8
y
x
En choisissant de numéroter les sommets d’un triangle en commençant par le sommet situé sur l’angle droit,
on a :
2
S=
2
6
6
6
6
6
6
6
6
6
6
6
6
4
0 0
1 0
2 0
0 1
1 1
2 1
0 2
1 2
2 2
3
7
7
7
7
7
7
7
7
7
7
7
7
5
T=
2
6
6
6
6
6
6
6
6
6
6
4
2 5 1
4 1 5
5 2 6
3 6 2
5 8 4
6 9 5
7 4 8
8 5 9
3
7
7
7
7
7
7
7
7
7
7
5
Dans le contexte des éléments …nis, il est souhaitable de disposer d’informations supplémentaires :
un numéro dit de référence associé à chaque triangle (permet de distinguer des matériaux di¤érents) :
vecteur RT :RT (`)référence de l’élément K`
un numéro de référence associé à chaque sommet (permet de retrouver des bords, des interfaces) :
vecteur RS :RS(I)référence du sommet SI
2 Triangulation de domaines simples
On se propose de réaliser quelques triangulation de domaines simples : carré et rectangle.
2.1 Triangulation d’un carré
On cherche à fabriquer une triangulation du carré unité  = [0;1] [0;1] basée sur un découpage du carré
en mnrectangles, mnombre de rectangles suivant xet nnombre de rectangles suivant y:
1 2
m
1
2
n
Chaque petit rectangle est découpé suivant une de ses diagonales. A…n d’eviter d’introduire trop de disymétrie,
il est plus judicieux d’alterner le sens de découpage comme le montre la …gure précédente. On suggère de
numéroter, bien que ce ne soit pas optimal, les sommets de gauche à droite et de bas en haut :
3
1
2mm1+
m+22m2+
( +)( +)m1n1
nm11( + )+
1
2
Les triangles sont numérotés suivant le même ordre. Notons qu’il y a (m+ 1)(n+ 1) sommets et 2mn
triangles.
On adopte la convention suivante : les numéros des sommets d’un triangle sont rangés dans l’ordre trigonométrique
en commençant toujours par l’angle droit.
On écrira une fonction qui maille un carré unité à partir des paramètres met n, un vecteur de taille
4 contenant les références des bords, une valeur de référence qui caractérise le matériau. cette fonction
retourne les matrices Set Tainsi que les vecteurs RS et RT:
function [S,T,RS,RT] triangule_carre(m,n,ref_bord,ref_mat)
On pourra procéder en plusieurs temps :
générer la matrice des coordonnées S
générer la matrice de numérotation des triangles T
générer les vecteurs de références RS et RT
2.2 Triangulation d’un rectangle
Un rectangle [a; b][c; d]est l’image du carré unité par la transformation a¢ ne :
X
Y=ba0
0cdx
y+a
c
Pour obtenir la triangulation d’un rectangle en 2mntriangles réguliers, il su¢ t de trianguler le carré unité
puis d’appliquer la transformation a¢ ne précédente aux sommets.
En utilisant d’autres transformations géométriques, on peut générer des maillages d’autres domaines géométriques.
2.3 Triangulation d’un domaine rectangulaire possédant plusieurs types de matériau
Le vecteur RT permet de dé…nir pour chaque triangle une référence. Cette référence permet de di¤érencier
des zones du maillage où sont dé…nis des matériaux di¤érents. Une méthode simple pour prendre en compte
ces di¤érentes zones consiste à utiliser une caractérisation géométrique de ces zones du type f(x; y)0:Puis,
en parcoutrant la liste des triangles à décider si le triangle est dans la zone. En première approximation, on
peut décider qu’un triangle appartient à cette zone si ces 3 sommets véri…ent le critère dé…nissant la zone.
On peut de la même façon trianguler un domaine rectangulaire présentant des trous, pour peu que ces
derniers possèdent uen caractérisation géométrique du type f(x; y)0:Si un triangle est dans un trou au
sens du critère précédent, on le supprime de la liste des éléments.
2.4 Dessin dun maillage sous Matlab
Il su¢ t d’utiliser la fonction Matlab triplot :
triplot(T,S(:,1),S(:,2),’k’)
4
3 Application au calcul d’une intégrale surfacique
La technique générale pour calculer une approximation d’une intégrale surfacique repose sur des formules
de quadrature sur le triangle de référence ou le carré unité. Ainsi si on note ^
Tle triangle de référence unité
de sommets (0;0);(1;0) et (0;1) on utilise des formules du type :
Z^
T
f(^x; ^y)d^xd^y'X
j=1;q
!jf(^xj;^yj)
qest le nombre de points de quadrature, (^xj;^yj)les points de quadrature et !jles poids de quadrature.
Les poids et les points de quadrature sont choisis de telle sorte que la formule de quadrature soit exacte
pour des polynômes d’un degré donné. Par exemple, la formule de quadrature la plu simple sur un triangle
est celle des points milieux qui est d’ordre 2 :
point poids
(0:5;0:5) 1
6
(0;0:5) 1
6
(0:5;0) 1
6
Pour calculer une intégrale surfacique d’une fonction donnée sur un maillage, on utilise la formule suivante :
Rf(x; y)dxdy =X
`=1;L RKlf(x; y)dxdy
=X
`=1;L
2aire(K`)R^
T^
f`(^x; ^y)d^xd^y
'X
`=1;L
2aire(K`)Pj=1;q !j^
f`(^xj;^yj)
où on a posé ^
f`(^x; ^y) = fF`(^x; ^y)avec F`l’application a¢ ne transformant le triangle de référence ^
Ten le
triangle Klde sommets (S1
`; S2
`; S3
`):
F`(^x; ^y) = (1 ^x^y)S1
`+ ^xS2
`+ ^yS3
`
l’aire de Klest donnée par 1
2
!
S1
`S2
`!
S1
`S3
`(produit vectoriel).
On pourra écrire :
une fonction qui pour un triangle donné calcule l’intégrale sur un triangle
function I=int_triangle(S,F)
avec Sles sommets du triangle et Fles valeurs aux milieux des arêtes du triangle.
une fonction qui somme toutes les contributions pour produire l’intégrale complète :
function I=int_domaine(S,T,f)
avec S,T les matrices dé…nissant le maillage et fune fonction.
En choisissant comme fonction f(x; y) = 1 on doit retrouver la surface du domaine !
5
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !