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