Equation de la chaleur sous contrainte Proposé par Aline Lefebvre-Lepot aline.lefebvre@polytechnique.edu On cherche à résoudre l équation de la chaleur dans un domaine Ω en imposant une contrainte sur un sous domaine B de Ω : la température T est fixée à une valeur T B dans B. Ω B L équation vérifiée par T est alors : T T = 0 dans Ω\B, t T = T B dans B. L objectif de ce mini-projet est d étudier une méthode permettant d effectuer cette résolution en utilisant uniquement un maillage cartésien de Ω. Ce type de méthode est très utile dans le cas où le sous domaine B est mobile : cela permet d éviter d avoir à effectuer un remaillage à chaque pas de temps. 1 Etude numérique en dimension 1 On pose Ω =]0,1[ et B =]a,b[ avec 0 < a < b < 1. On cherche T V := H 1 (Ω) solution du problème stationnaire : T = f dans Ω\B, (P 1 ) T = T B dans B T = 0 en 0 et 1, où f L 2 (I). (1) 1
1.1 Montrer (P 1 ) a une unique solution et la calculer pour f = 1, T B = 0 et B =]1/4,3/4[. On cherche à approcher la solution T de (P 1 ) par la solution d une EDO sur Ω tout entier. Pour cela, on utilise ce que l on appelle une méthode de pénalisation : on n impose plus la contrainte sur T, on dit qu elle est relaxée. On considère T ε H 1 (Ω) solution de (Pε) 1 T ε + 1 ε (T ε T B )1 B = f dans Ω T ε = 0 en 0 et en 1, où 1 B est la fonction caractéristique de B (vaut 1 dans B et 0 ailleurs). Quand ε tend vers zéro, on espère que (T ε T B )1 B tende également vers zéro et donc, que la contrainte "T = T B sur B" soit vérifiée à la limite. 1.2 Ecrire un programme Scilab calculant une solution approchée de (P 1 ε ). Si x est le pas d espace et (x j) j=1..n l ensemble des N points d approximation et si on note T j l approximation de T(x j ), on discrétisera la dérivée d ordre deux par T (x j ) (T j+1 2T j +T j 1 )/( x) 2. On prendra garde à écrire le problème sous la forme d un système matriciel à résoudre et à n utiliser aucune boucle. On se mettra dans les conditions de la question 1.1, on prendra N = 200 et on tracera la solution exacte ainsi que les solutions obtenues pour ε = 10 2,10 3,10 4 sur un même graphique. 1.3 En utilisant les même paramètres que dans la question précédente, étudier numériquement la convergence de T ε vers T. On étudiera par exemple la norme L 2 (B) de T ε T B ainsi que la norme H 1 (Ω) det ε T, en mettant en évidence l ordre de convergence obtenu grâce à des tracés log/log. 1.4 Expliquer pourquoi l erreur ne semble plus diminuer en deçà d un certain seuil pour ε. 2 Cadre Théorique Soit V un espace de Hilbert, a une forme bilinéaire, symétrique, coercive sur V et ϕ V. On considère la fonctionnelle J : v V J(v) = 1 a(v,v) < ϕ,v >. 2 2
On s intéresse au problème de minimisation sous contrainte u K (P) J(u) = inf J(v) v K où l espace des contraintesk est donné park = v V/b(v u 0,v u 0 ) = 0} avec b bilinéaire, symétrique, continue et positive, et u 0 V. 2.1 Montrer que K est un sous espace affine fermé de V. 2.2 Montrer que (P) possède une unique solution u. On cherche à approcher cette solution en pénalisant la contrainte : on considère le problème sans contrainte uε V (P ε ) J ε (u) = inf J ε(v) v V où J ε (v) = J(v)+ 1 2ε b(v u 0,v u 0 ). 2.3 Montrer que (P ε ) possède une unique solution u ε. 2.4 On veut montrer la convergence faible de u ε vers u quand ε tend vers 0. a) Montrer que u ε est bornée. b) Montrer qu il existe une sous-suite de (u ε ) ε qui converge faiblement vers un z dans V. On rappelle que si c est une forme bilinéaire, symétrique et positive sur X, l inégalité suivante (dite de Cauchy-Schwartz) est vraie pour tout v,w dans X : c(w,v) 2 c(w,w)c(v,v). c) Montrer que J(z) J(u). d) Montrer que b(z u 0,z u 0 ) = 0. e) Conclure. 2.5 Réécrire le problème de la section 1 dans ce cadre et en déduire la convergence faible de la solution de (P 1 ε ) vers celle de (P1 ) 3
3 Chauffage d une pièce, problème stationnaire On considère un appartement carré Ω = [0,1] [0,1] dans lequel se trouve une cheminée B = B(C,r). Un des mur est formé d une baie vitrée et sa température est donc fixée à la température extérieure T F. Les trois autres murs ont une température fixée à celle des appartement voisins T M. Quand le feu est allumé, la température dans B est fixée à T B. On fera les applications numériques pour C = (0.6,0.6), r = 0.25, T F = 5, T M = 16 et T B = 50. La température T dans l appartement suit l équation (1). Le problème stationnaire associé est donc : T stat = 0 dans Ω\B, T stat (2) = T B dans B. 3.1 Dans cette question, on suppose T F = T M = 0. Montrer que, pour V = H0(Ω), 1 a et b vérifient les hypothèses de la section 2, où a(u,v) = u : v Ω b(u,v) = uv. On choisit u 0 dans V avec u 0 = T B sur B. Montrer que le problème de minimisation correspondant est bien posé et faire le lien avec (2). On notera Tε stat la solution de ce problème. 3.2 Utiliser la méthode de pénalisation pour écrire un problème sans contrainte approchant (2). 3.3 Ecrire la formulation variationnelle associée au problème sans contrainte obtenu dans la question précédente. 3.4 Ecrire un programme FreeFem++ calculant la solution du problème pénalisé sur un maillage cartésien de Ω. (des indications sur l utilisation FreeFem++ sont données en fin d énoncé) 4 Chauffage d une pièce, problème transitoire On suppose maintenant que les occupants ont été absents pendant une longue période, et allument le feu pour réchauffer l appartement en rentrant. B 4
4.1 Ecrire un programme FreeFem++ calculant la répartition de température T init à l arrivée des occupants. (solution du problème stationnaire quand la cheminée est éteinte, c est à dire sans contrainte sur B) On cherche à simuler l évolution en temps de la température dans l appartement. Pour celà, si t est le pas de temps et sit n est l approximation de T au nième temps de calcul, on discrétise (1) en temps de la façon suivante : T n+1 T n T n+1 = 0 dans Ω\B, t (3) T n+1 = T B dans B. 4.2 Utiliser la méthode de pénalisation pour écrire un problème sans contrainte approchant (3). On notetε n+1 la solution correspondante. Ecrire la formulation variationnelle vérifiée par Tε n+1 4.3 Ecrire un programme FreeFem++ calculant l évolution de la solution en temps. A t = 0, on initialisera avec T init précédemment calculée. La température dans l appartement doit évoluer vers la température T stat calculé dans la section 3. On arrêtera la simulation quand la norme L 2 (Ω) de Tε n Tstat ε sera inférieure à 10 2 par exemple. A chaque pas de temps, on affichera la distribution de température obtenue et on donnera une estimation du temps au bout duquel la température s est stabilisée. 5 Refroidissement d une plaque On suppose qu on a une plaque de métal chauffée à T init = 20 et qu on souhaite la refroidir. Pour cela, on dispose d un cylindre de température constante T B = 0 (par exemple un cylindre empli de glace) que l on pose sur la plaque et que l on fait tourner. Pour les applications numériques, on prendra Ω = [ 1,1] [ 1,1] et à chaque instant B = B(t) sera le cercle de rayon r = 0.1 et de centre x c = 0.5cos(ωt), y c = 0.5sin(ωt). Le domaine dans lequel la température est constante est maintenant dépendant du temps et le problème discrétisé en temps s écrit donc : T n+1 T n t c T n+1 = 0 dans Ω\B n+1, T n+1 = T B dans B n+1 (4) 5
Ω ω B où B n+1 est connu et c est la conductivité de la plaque. Les conditions au bord sont supposées ètre des conditions de sortie libre (conditions de Neumann) : T n+1 n = 0 où n est la normale sortante à Ω. 5.1 Ecrire la formulation variationnelle pénalisée correspondante. 5.2 Ecrire un programme FreeFem++ traçant la répartition de la température à chaque instant de calcul et s arrêtant quand la température est inférieure à T max = 0.5 dans toute la plaque. Attention, il faut cette fois faire évoluer le domaine B à chaque instant. 5.3 Pour c = 10 et c = 20, étudier le temps de refroidissement en fonction de ω. On pourra faire varier ω entre 5 et 100. Attention à adapter le pas de temps à la vitesse de rotation. Commenter. Aide FreeFem++ Pour créer un maillage cartésien d un domaine rectangulaire mesh Th=square(n,m,[a+b*x,c+d*y]); où n est le nombre de points sur les bords horizontaux, m le nombre de points sur les bords verticaux. [a+b*x,c+d*y] est la paramétrisation des côtés du rectangle où x et y varient de 0 à 1. Chaque côté du rectangle est alors repéré par un label : les côtés sont numérotés dans le sens trigonométrique et commencent à 1 pour le bas du rectangle. Pour créer une fonction élément fini Chi valant 1 dans B(0,1) et 0 ailleurs 6
Xh Chi = (xˆ2+yˆ2<=1); où Xh est un espace élément fini précédemment déclaré. Pour tracer les valeurs d une fonction élément fini u plot(u,fill=1,value=1,wait=1,ps="solution.ps",viso=valeurslegende); L option fill met en couleur les intervalles entre les lignes de niveau de u. L option value affiche la légende des couleurs L option viso=valeurslegende avec par exemple real[int] ValeursLegende=[0,1,2,3,4,5,10,20,30,40,50]; permet de fixer les valeurs de l échelle utilisée pour la légende. L option wait permet de faire une pause après l affichage. Quand la fenêtre de tracé est active, taper sur "entrer" pour redémarer le calcul. L option ps="solution.ps" permet de sauvegarder le tracé dans le fichier Solution.ps Pour calculer le maximum d une fonction élément fini u on écrit : maxi=u[].max; 7