Vous êtes sur la page 1sur 4

A1-1 TP4 maillage partitionn e et conditions essentielles

Nicolas Kielbasiewicz 3 octobre 2011

Modalit es de contr ole des connaissances


Ce TP sera ` a rendre avant le lundi 10 octobre 12h dernier d elai, par mail, sous la forme dun rapport pdf r epondant ` a lensemble des questions du sujet (y compris l etablissement des relations donn ees), ainsi que le listing de votre code en annexe. La notation tiendra compte du soin apport e` a la r edaction, ` a la clart e de la pr esentation des r esultats, et ` a la pertinence de vos simulations.

Lecture dun maillage partitionn e g en er e par gmsh


On consid` ere le domaine suivant : (0,2)

(0,0)

(6,0)

Figure 1 Domaine de calcul On souhaite partitionner ce maillage en deux. 2 solutions possibles : 1. D enir une fronti` ere suppl ementaire et donc 2 sous-domaines, sur le m eme principe que le TP3.

nicolas.kielbasiewicz@ensta-paristech.fr http://www.ensta-paristech.fr/ kielbasi

2. Utiliser un algorithme de partitionnement (Chaco, . . . ) Question 1.1. D enir avec Gmsh un maillage correspondant ` a chacun des 2 cas de gure. On d enira un maillage triangulaire r egulier en utilisant les commandes Transfinite Line et Transfinite Surface. Question 1.2. Pour chacun des 2 cas de gures, dispose t-on dans le chier de maillage de la liste des el ements de linterface ? Si oui, peut-on choisir pour r ef erence -1 comme dans le TP3 ? ` laide de la fonction matlab lecmail fournie sur le site Question 1.3. A web, lire les chiers de maillages g en er es et les acher ` a laide de la fonction trimesh. On devra au pr ealable r ecup erer la liste des triangle dans un tableau Numtri ` a laide de la fonction find. ` quoi sert la fonction matlab interfaces fournie sur le Question 1.4. A site web ? Question 1.5. Assembler la matrice divKgrad en utilisant les matrices el ementaires et lacher sous forme de spy. On pourra utiliser lextrait de code pr esent e en annexe.

Mise en uvre de la technique de pseudo elimination


On cherche ` a r esoudre l equation de la chaleur par el ements nis : (k u) = f u=g dans sur

qui sous forme discr etis ee fait appara tre la matrice de rigidit e assembl ee dans la question pr ec edente. La technique de pseudo- elimination consiste ` a prendre en compte la condition de Dirichlet dans un syst` eme lin eaire sans modier la taille du syst` eme. Prenons par exemple le cas de la matrice du laplacien 1D en di erences nies : f1 2 1 0 0 u1 . . . . . 1 . . . . . . . . . . . . . 1 . . . . . . . . . . 0 . = . . . . 0 2 h . . . .. .. .. . . . . . . . 1 . . fN uN 0 0 1 2 avec u1 = 1 et uN = N . On substitue donc les premi` ere et derni` ere ligne de la matrice pour ecrire ces 2 relations : 2

1 h2

2 1 0 . . . 0

0 .. . .. . .. .

. 1 . . .. .. . . .. . 1 0 0 0

0 21 u1 0 . . . 0 . . . f2 1 . . . . . . = + 0 . . h2 . . 0 1 . . fN1 2N 2 uN 0

Question 2.1. Ecrire une fonction matlab pseudoelim qui met en uvre la technique de pseudo- elimination pour un syst` eme donn e, qui prend en entr ee : le tableau Refneu la matrice K du syst` eme ` a r esoudre. le vecteur f second membre. le vecteur g d enissant la condition essentielle. la r ef erence id de la fronti` ere sur laquelle appliquer la condition essentielle. et donne en sortie : la matrice Kelim le vecteur f elim Question 2.2. Observer et commenter la mise en uvre de la technique de pseudo- elimination sur la matrice assembl ee dans la question 1.5. On la validera sur la r esolution dun probl` eme avec solution exacte.

A
if

Spy de couleur en matlab

function c o l o r s p y ( mat , tab , p r e s e t , f i l e n a m e ) ( e x i s t ( p r e s e t ) ==0) p r e s e t ( 1 ) =1; p r e s e t ( 2 ) =0; end [ p t r , ind , v a l ]= f i n d ( mat ) ; nnz= s i z e ( p t r , 1 ) ; n= s i z e ( mat , 1 ) ; figure ; f o r l =1: nnz i=p t r ( l ) ; j=i n d ( l ) ; sw i t c h tab ( i ) case preset (1) sw i t c h tab ( j ) case preset (1) p l o t ( j , ni , k . ) ; hold on case preset (2) p l o t ( j , ni , g . ) ; hold on otherwise p l o t ( j , ni , m. ) ; hold on end case preset (2) sw i t c h tab ( j ) case preset (1) p l o t ( j , ni , g . ) ; hold on case preset (2) p l o t ( j , ni , r . ) ; hold on otherwise p l o t ( j , ni , c . ) ; hold on end otherwise sw i t c h tab ( j ) case preset (1) p l o t ( j , ni , m. ) ; hold on case preset (2) p l o t ( j , ni , c . ) ; hold on otherwise p l o t ( j , ni , b . ) ; hold on end end end i f ( exist ( filename ) ) eval ( [ p r i n t d j p e g r 2 0 0 end end

, filename , . jpg ] ) ;

Vous aimerez peut-être aussi