TD4 : résolution des équations de la chaleur mots clés : équations différentielles aux dérivées partielles fonctions python utilisées : matplotlib.pyplot.imshow permettant la représentation d un tableau ; amax permettant la recherche du maximum d un tableau. Objectifs : résoudre numériquement - une équation différentielle partielle en temps et en espace à 1 dimension - une équation différentielle partielle en espace à 2 dimensions 1. Equation de la chaleur Pour un corps homogène de conduction thermique λ, de capacité thermique massique c, de masse volumique μ, l équation de la chaleur s écrit : div(λ. grad (T)) = μ. c. T t Le matériau étant homogène, la conductivité thermique λ est constante. De plus div(grad ) = (Laplacien), d où l équation de la chaleur : T = μ. c λ. T t 2. Equation de la chaleur à une dimension 2.1. Modélisation Deux matériaux cylindriques isolés latéralement de même section S, de même axe (O, x), de même conductivité thermique λ, de même masse volumique μ, de même capacité thermique massique c, et de longueur L 1 et L 2 sont mis bout à bout, le contact s établissant en x = L 1. Les extrémités en x = 0 et x = L = L 1 + L 2 sont maintenus aux températures respectives T 1 et T 2 (régime forcé), températures initiales des deux barres. Parois isolées Dans ce problème, la température T ne dépend pas de y et z donc l équation de la chaleur devient : T ²T = α t x² Avec α = λ/( μ. c) diffusivité thermique. 1
2.2. Discrétisation du temps et de l espace La discrétisation consiste à approcher la fonction T vérifiant l équation de la chaleur. Pour l approximation numérique temporelle, k = dt est le pas de subdivision uniforme (t i ) i [0,Nt ] de l intervalle de temps [0, D] : t i = i. k et T i(x) est l approximation de T(t i, x) pour 0 i N t. Pour l approximation numérique spatiale, h = dx est le pas de subdivision uniforme (x n ) n [0,Nx ] de l intervalle [0, L] : x n = n. h et T n(t) est l approximation de T(t, x n ) pour 0 n N x. En conclusion, T ni correspond à l approximation numérique de la solution T(t = i. k, x = n. h) donnée sur un maillage spatial de pas h et une discrétisation temporelle de pas k. 2.3. Présentation du schéma explicite centré en espace Nous utiliserons le schéma numérique suivant : T ni+1 T ni k = α T n+1 i 2T ni i + T n 1 h² D où l écriture explicite suivante : T ni+1 = T ni + k.α i.( h² T n+1 2T ni i + T n 1 ) 2.4. Condition de stabilité Pour que la solution soit stable, on doit respecter la condition suivante : k.α 2.5. Conditions initiales et limites h² 1 2 On considère deux barres de cuivre de diffusivité thermique α 10 4 m 2. s 1. On considère les conditions initiales suivantes : T(0, x) = T 1 = 0 C pour 0 x < L 1 T(0, L 1 ) = T 2 = 5 C T(0, x) = T 3 = 10 C pour L 1 < x L 1 + L 2 On considère les conditions limites suivantes : T(t, 0) = T 1 = 0 C pour t 0 T(t, L 1 + L 2 ) = T 2 = 10 C pour t 0 On prendra L 1 = L 2 = 0.5 m 2.6. Données de départ Pour la programmation, nous prendrons les données suivantes, qui satisfont la condition de stabilité : Longueur=1 #longueur des 2 barres duree=1000 #durée de la simulation Nx=100 #nombre de pas en espace Nt=50000 #nombre de pas en temps h=longueur/nx k=duree/nt al=0.0001 #diffusivité thermique 2
2.7. Programmation Python Q1. Proposer un programme python permettant de résoudre ce problème de thermique. Le résultat sera placé dans un tableau T. Avant d écrire vos boucles, vous devrez imposer les conditions initiales et limites dans votre tableau T. Q2. Représenter le résultat sous forme d une figure 2D avec en abscisses l indice de l espace x, et en ordonnées l indice du temps (voir fonction plt.imshow(t) et plt.axis( tight )). Q3. Tracer l évolution de la température le long des deux cylindres pour t = 0s, t = 125s, t = 250s, t = 500s puis t = 1000s. (si duree=1000s). Q4. Refaire une simulation avec Nt=1000. Conclure. 2.8. Résultats Vous devez trouver les résultats suivants : 3. Equation de la chaleur stationnaire à 2 dimensions 3.1. Modélisation Le problème étudie la diffusion thermique au sein d une plaque métallique dont les bords sont maintenus à une température constante (régime forcé). La distribution de température de la pièce métallique va tendre vers un état stationnaire ne dépendant plus du temps, l équation de la chaleur devient alors T = 0. Dans un problème à 2 dimensions, cette équation s écrit alors : 3.2. Conditions limites et initiales ²T x² + ²T y² = 0 Le problème s intéresse à la répartition en température au sein d une plaque métallique en régime stationnaire pour les conditions aux limites suivantes. Il s agit d un régime forcé réalisé à chaque instant. 3
Initialement et en dehors des bords, la température de la plaque est prise égale à 50 C. Ce choix est arbitraire puisque l état stationnaire est indépendant de la situation initiale. Pour les coins, on choisit une température de 100 C. 3.3. Discrétisation de l espace En conservant un problème à 2 dimensions, il s agit de résoudre une équation aux dérivées partielles du second ordre en espace selon les variables x et y. Les méthodes de discrétisation sont analogues au cas précédent. Pour l approximation numérique spatiale selon x, h = dx est le pas de subdivision uniforme (x i ) i [0,Nx ] de l intervalle [0, L] : x i = i. h et T i(y) est l approximation de T(x i, y) pour 0 i N x. Pour l approximation numérique spatiale selon y, k = dy est le pas de subdivision uniforme (y j ) j [0,Ny ] de l intervalle [0, H] : y j = j. k et T j(y) est l approximation de T(x, y j ) pour 0 i N x. 3.4. Présentation du schéma numérique de résolution Nous utiliserons le schéma numérique suivant : T i,j = Ou encore T i,j = a(t i+1,j + T i 1,j ) + b(t i,j+1 + T i,j 1 ) k 2 2(h 2 + k 2 ) (T i+1,j + T i 1,j ) + 2(h 2 + k 2 ) (T i,j+1 + T i,j 1 ) T i,j est la moyenne pondérée des nombres T i+1,j + T i 1,j et T i,j+1 + T i,j 1 affectés des poids respectifs : a = En prenant h = k, les coefficients deviennent a = k2 k2 2(h 2 +k 2 ) 2(h 2 +k 2 ) = 1 4 4 h 2 et b = h2 2(h 2 +k 2 ) L équation devient : 4. T i,j = T i+1,j + T i 1,j + T i,j+1 + T i,j 1 (1) et b = h2 2(h 2 +k 2 ) = 1 4 3.5. Méthode itérative de résolution (Gauss Seidel) Pour résoudre le problème à l aide de l équation (1), il faut résoudre un système linéaire de N x. N y inconnues et autant d équations, cela est évidemment possible par une méthode de pivot de Gauss ou par une méthode itérative de Gauss-Seidel. L équation (1) montre que pour calculer T i,j, il est nécessaire de connaître les quatre températures voisines. Il s agit d un problème à 5 points dont le système s écrit de façon «symbolique» :
1 { 1 4 1 } T i,j = 0 1 La méthode de Gauss-Seidel s écrit pour un système A. x = b : 1 i 1, n, x i = i 1 n (b a i j=1 a ij x i j a ij x j j=i+1 ) T i+1,j +T i 1,j Dans le cas du système proposé, l équation (1) devient T i,j = + T i,j+1 4 +T i,j 1 En fait cela revient à décrire le système en terme de maillage sur une grille. Il s agit de parcourir la grille par ligne de gauche à droite et par colonne de haut en bas. Le balayage complet de la grille constitue une itération. Soit T i,j la valeur de T i,j calculée lors de la k ème itération. 4 Pour calculer cette valeur T i,j de la température, il est nécessaire d utiliser : - les valeurs de T i,j calculées lors de l itération précédente : il s agit des températures : T i,j+1 (située un pas à droite de T i,j et donc déjà calculée lors de l itération (k 1) et T i+1,j (située un pas à en bas de T i,j ) - et les valeurs de T i,j calculées lors de l itération en cours (la k ème ), mais déjà calculées car situées avant dans le maillage : il s agit des températures T i 1,j calculée) et T i,j 1 (située un pas à gauche de T i,j ). (située un pas en haut de T i,j et donc déjà T i 1,j T i,j 1 T i,j T i,j+1 T i+1,j La programmation de cette équation est beaucoup plus simple que l inversion d un système. Il suffit d utiliser une boucle avec compteur. L arrêt des calculs se fait grâce au critère de convergence suivant < ε où ε représente la précision souhaitée. (k+1) T i,j T i,j Pour cette étude, pour une matrice A de coefficient (a ij ), A (i,j) [0,Nx ] [0,N y ] = max ( a ij ). i,j 3.6. Valeurs On prendra N x = N y = N = 100 cases et une précision de ε = 0,01. 3.7. Programmation Python Q4. Proposer un programme Python permettant de résoudre ce problème de thermique. Avant d écrire vos différentes boucles, vous devrez imposer vos conditions limites et comme la méthode de résolution est itérative, vous devrez penser à votre critère d arrêt. Vous aurez besoin de 2 tableaux de température : un premier pour l itération k en cours et un second pour l itération k 1. Q5. Tracer la carte de température. 5
3.8. Résultats Vous devez trouver les résultats suivants : 6