Séance n 5 TP : Résolution de l`équation de la chaleur par éléments
Transcription
Séance n 5 TP : Résolution de l`équation de la chaleur par éléments
TP MA201 Cours Eléments Finis Séance no5 TP : Résolution de l’équation de la chaleur par éléments finis 15 Novembre 2006 Télécharger ma201-tp.gz à l’adresse : http://www-rocq.inria.fr/~haddar/ma201/ Partie 1. Eléments finis P 1 et résolution d’un problème modèle simplifié Rappels sur le problème de Neumann : Soit Ω un domaine borné de R2 , α un réel strictement positif et f ∈ L2 (Ω). On s’intéresse dans cette partie au calcul de la solution variationelle du problème −∆u + αu = f dans Ω (1) ∂u =0 sur ∂Ω ∂n 1.1 - Ecrire la formulation variationnelle de ce problème. 1.2 - Soit Th une triangulation du domaine Ω et Vh l’approximation de H 1 (Ω) par des éléments finis P 1 associées à la triangulation Th . On note MI , I = 1, · · · , N les sommets des triangles et {WI , I = 1, · · · , N } la base canonique de Vh . Nous rappelons que la solution approchée s’écrit sous la forme uh (x) = N X uh (MI ) WI (x) I=1 et que le vecteur Uh ∈ RN dont la I ème composante vaut uh (MI ) est solution d’un système linéaire de forme αMh Uh + Kh Uh = Fh . 1 TP MA201 Cours Eléments Finis 1.2 -(a) Rappeler les expressions de Mh , Kh et Fh . 1.2 -(b) En approchant f par son interpolé P 1 , c.à.d. f (x) ' que Fh = Mh F̃h PN I=1 f (MI ) WI (x), montrer où F̃h est le vecteur de RN dont la I ème composante vaut f (MI ). Création de maillage : Les maillages seront créés en utilisant le logiciel emc2 1.3 - Réaliser le maillage du domaine décrit dans la figure 1 avec un pas de maillage h ' 0.2 et en donnant la référence 1 aux noeuds des bords inférieur et supérieur (utiliser le format de sauvegarde .amdba). Visualiser le maillage sous matlab en utilisant la routine affichemaillage.m (0, 2) (2, 2) (2,−1) (−2,−1) Fig. 1 – Exemple de géométrie Assemblage de la matrice : La routine principal_neumann.m est destinée à être le programme principal pour la résolution du problème (1). 1.4 - Analyser la structure du programme et complèter la partie assemblage et la partie second membre de ce programme. 1.5 - Calculer la solution associée au maillage de la question 1.3 : on prendra α = 2 et f (x, y) = sin(2(x−2)) sin(2(y+1)). Visualiser la solution en utilisant la routine affiche.m. Comment peut-on savoir si cette solution est la bonne ? Prise en compte des conditions de Dirichlet : On suppose que la condition de Neumann homogène sur le bord du domaine Ω et remplacée par une condition mixte de type u=0 sur Γ1 ∂u =0 sur Γ2 ∂n où Γ1 et Γ2 forment un découpage en deux parties disjointes de ∂Ω. 2 TP MA201 Cours Eléments Finis 1.6 - Ecrire la formulation variationnelle du nouveau problème. 1.7 - Copier principal_neumann.m dans principal_mixte.m et modifier ce dernier pour la prise en compte des nouvelles conditions aux limites comme suit : – écrire une routine matlab elimine.m dont la syntaxe est elimine(AA, FF, Refneu) qui effectue la “pseudo élimination” des noeuds i correspondant à Refneu(i)=1 ; – insérer un appel à cette routine à un endroit approprié dans principal_mixte.m 1.8 - Résoudre le problème de la question 1.5 en remplaçant la condition de Neumann par une condition de Dirichlet sur le bord supérieur et le bord inférieur du domaine. Analyse de la convergence : On se propose d’analyser numériquement la précision des éléments finis P 1 dans le cas des deux géométries suivantes : 1 1 2 Fig. 2 – Domaine 1 2 Fig. 3 – Domaine 2 1.9 - Proposer pour chaque domaine une fonction u qui vérifie une condition de Neumann homogène sur le bord extérieur et une condition de Dirichlet homogène sur le bord intérieur (on pourra chercher u polynômiale en r pour le premier domaine, et u polynômiale en sin πx et sin πy pour le second). 1.10 - Calculer pour chaque fonction u le second membre f correspondant pour qu’elle soit solution du problème (on prend α = 2). 1.11 - On note πh u l’interpolé P 1 de u et on note Eh le vecteur de RN dont la I ème composante vaut u(MI ) − uh (MI ). Montrer que kπh u − uh k2L2 (Ω) = Mh Eh · Eh et k∇πh u − ∇uh k2L2 (Ω) = Kh Eh · Eh 1.12 - Tracer les courbes (en utilisant la commande loglog) qui représentent kπh u − uh kL2 (Ω) et kπh u−uh kH 1 (Ω) en fonction de h pour chaque domaine (on utilisera les maillages fournies). Commenter les résultats (on pourra utiliser la commande polyfit pour calculer les pentes des courbes). 3 TP MA201 Cours Eléments Finis Partie 2. Application : équilibre thermique dans un conduit On s’intéresse à la détermination de l’état d’équilibre thermique à l’intérieur d’un conduit contenant une source de chaleur stationnaire. Nous rappelons que si θ(x, y) désigne la température au point (x, y), alors l’état d’équilibre est décrit par l’équation −div k∇θ + u · ∇θ + b θ = f dans Ω (2) où k(x, y) désigne la conductivité thermique, u(x, y) la vitesse de convection du fuide et b(x, y) est un coefficient d’absorption. Le domaine Ω est décrit dans la figure qui suit Γ+ y u x Σ− Ω Σ+ Γ− On impose une condition de Neumann homogène sur les bords latéraux, traduisant une température constante au delà de ces frontières et une condition de Dirichlet homogène sur Γ+ et Γ− . 2.1 - Donner des conditions suffisantes sur k, b et u pour que le problème soit bien posé. 2.2 - Ecrire un programme matlab qui permette de résoudre ce problème lorsque les coefficients k, u et b sont constants par morceaux. Vous aurez notamment besoin de : – modifier la routine mat_elem pour calculer en plus les matrices élémentaires relatives au terme de convection ; – prendre en compte des coefficients qui varient suivant la référence du triangle récupérée dans Reftri (cette référence est indiquée lors de la création du maillage). 2.3 - Choisir une forme de Γ+ et calculer la solution correspondante avec ou sans terme de convection : on choisira un jeu de données qui respecte le découpage indiqué sur la figure. Analyser les résultats obtenus. 4