Vous êtes sur la page 1sur 9
Université Hassan II - Casablanca école Nationale Supérieure d’Arts et Métiers, ENSAM-Casablanca MEC4122 TP N

Université Hassan II - Casablanca école Nationale Supérieure d’Arts et Métiers, ENSAM-Casablanca

MEC4122

TP N 3 : Element Finis P1 conforme en 2D

25 Decembre, 2014

Tamim Amine et Moussadek El Mehdi

Table des matières

1 Géneration du maillage

2

2 L’assemblage

3

3 Profil de la matrice de rigidité

4

4 Calcul de Uh

5

5 Raffinage du maillage

5

6 Presentation graphique de la solution

6

7 Traçage de Uh en fonction de h et de h 2

6

1

1

Géneration du maillage

Contrairement au TPs précedents ou la création du maillage ce fesait par une fonction ecrite manuellement, nous allons durant ce TP exploiter une des Toolbox de MATLAB, plus précisement la " Partial Differential Equation Toolbox". Cet outil nous permet de selectioner la forme, la dimension et la qualité du maillage et de génerer a la fin les matrices de coordonées et de connectivités dont nous aurons besoin. Le maillage qui sera utilisé pour ce TP sera un maillage triangulaire dans un domaine cir- culaire de rayon 1. En selectionnant " Export mesh", nous obtenons les matrices coordonées, connectivitées et bords "p" "e" et "t".

mesh", nous obtenons les matrices coordonées, connectivitées et bords "p" "e" et "t". 2

2

2 L’assemblage

La fonction assemble fournit dans le TP et une fonction qui crée les matrices élementaires de K et de F et les assembles sans pour autant appliquer la condition de dirichlet. En ce qui concerne la matrice de rigidité K, étant donnée qu’elle contient les integrales des φ (x,y) qui sont des vecteurs de constantes, le calcul de l’integral est en fait un produit matriciel entre des constantes. On retrouve le résultat a travers les lignes de codes clés suivantes :

Pe=[ones(3,1),P(nodes, :)] ; Area=abs(det(Pe))/2 ; C=inv(Pe) ; grad=C(2 :3, :) ; Ke=Area*grad’*grad ; K(nodes,nodes)=K(nodes,nodes)+Ke ;

Concernant la matrice élementaire F, on utilisera la méthode de gauss pour calculer ces composantes. Ceci nous force alors a passer par un changement de variable étant donnée que nous avons des formules prédifini pour calculer les intregrales dans le domaine de réference. Le changement de variable touchera aussi les φ(x,y). On retrouve le résultat a travers les lignes de codes clés suiavantes :

g=@(s,t) f(x1+(x2-x1)*s+(x3-x1)*t , y1+(y2-y1)*s+(y3-y1)*t) ; phi1=@(s,t) g(s,t).*(1-s-t) ; phi2=@(s,t) g(s,t).*s ; phi3=@(s,t) g(s,t).*t ; for l=1 :3 Fe(l)=1/6*(phil(0,0.5)+phil(0.5,0)+phil(0.5,0.5)) ; end Fe=det(Pe)*Fe ; F(nodes)=F(nodes)+Fe ;

Cepandant, les matrices crées ne peuvent pas être utilisées pour faire la résolution. En effet, nous n’avons toujours pas précisé que les valeurs des fonctions de formes et F sont nulles aux bords, c’est pourquoi nous ajoutons une autre fonction " dirichlet", qui cherchera d’abord les noeuds au bord, et annulera ensuite la valeur qui leur correspondent dans les deux matrices. Voici le code qui réalise cette opération :

function [Kb, F b] = dirichlet(K, F, e) E=e’ ; b=unique(E( :,1)) ; K(b, :)=0 ; K( :,b)=0 ; F(b)=0 ; K(b,b)=speye(length(b),length(b)) ; Kb=K ; Fb=F ; end Nous obtenons finalement les Kb et Fb que nous pouvons utiliser pour résoudre le système linéaire.

3

3

Profil de la matrice de rigidité

A l’aide de la fonction MATLAB spy, nous pouvons afficher le profil de la matrice de rigidité K. Nous obtenons un graphique qui schématise la matrice et qui délimite par des points bleu les composantes non nuls. Concernant notre matrice Kb, son profil et le suivant :

et qui délimite par des points bleu les composantes non nuls. Concernant notre matrice Kb, son

4

4

Calcul de Uh

Il s’agira uniquement ici de résoudre le systeme linéaire AU = B. Nous avons réalisé une fonction qui rassemble l’assemblage ainsi que l’application de la condition de dirichlet :

function [U] = resol(p,t,f,e) [K, F ] = assemble(p, t, f ); [Kb, F b] = dirichlet(K, F, e); U=kb/ b ; end

5 Raffinage du maillage

Raffiner le maillage revient a augmenter le nombre d’élément. Pour cela, il nous suffit de revenir vers la toolbox et d’appuyer sur " refine mesh" et d’éxtraire de nouveau les nouvelles matrices de coordonées et de conectivitées.

sur " refine mesh" et d’éxtraire de nouveau les nouvelles matrices de coordonées et de conectivitées.

5

6

Presentation graphique de la solution

Ayant résolu le problème linéaire pour deux maillages différents, on représente graphi- quement ces solutions Uh en utilisant la fonction trisurf. le code étant le suivant :

trisurf(t,p( :,1),p( :,2),0*p( :,1),U,’edgecolor’,’k’,’facecolor’,’interp’) ; view(2),axis([-1 1 -1 1]),axis equal,colorbar les représentation furent les suivantes :

equal,colorbar les représentation furent les suivantes : Le raffinage du maillage n’as pas eu un impact
equal,colorbar les représentation furent les suivantes : Le raffinage du maillage n’as pas eu un impact

Le raffinage du maillage n’as pas eu un impact visible sur la solution Uh, même si nous savons qu’il éxiste une différence théoriquement.

7 Traçage de Uh en fonction de h et de h 2

Afin de montrer l’impact du raffinage du maillage (ou le fait de diminuer la quantité h) sur la solution Uh, nous avons representé graphiquement l’evolution de l’erreur, modélisée par la norme ||uUh|| en fonction de h puis de h 2 que nous considérons comme étant le plus long coté des triangles du maillage. Nous avons fait le test sur un cas particulier dont nous connaissons la solution. Pour f(x,y)=4 , nous savons que le vecteur U peut être reproduit grace a la fonction u = 1 x 2 y 2 . Concernant le programme, nous avons calculé la solution aprochée Uhi et la solution exacte Ui pour 5 differents maillages, soit 5 points h différents. Voici les deux figures, la premiere étant en fonction de h et la deuxième en fonction de h 2

6

On constate que Uh converge rapidement dans la première figure quand le h est supérieure
On constate que Uh converge rapidement dans la première figure quand le h est supérieure

On constate que Uh converge rapidement dans la première figure quand le h est supérieure a 1. Dès que le h est inferieure a 1, Uh converge rapidement vers 0 pour la deuxième figure. Mais on en conclut qu’en géneral on se rapproche de la solution exacte plus on raffine le maillage.

7

Références

[1] http ://www.particleincell.com/blog/2012/matlab-fem/ [2] Document TP N 3

8