Equation de Chaleur 2D Mrhili Mzioued
Equation de Chaleur 2D Mrhili Mzioued
Réalisé par :
MRHILI Nisrine
MZIOUED DOUNIA
Sous la direction de :
Pr. ALLALI KARAM
Année universitaire :
2020 /2021
Introduction :
Le maillage est la première étape de la méthode des éléments finis. C'est une
étape fondamentale qui conditionne tout le reste du calcul : le temps de calcul
et les ressources nécessaires (mémoire vive, mémoire virtuelle, temps
processeur), la précision des résultats, la stabilité du modèle (possibilité de
divergence dans le cas de calculs non-linéaires).
Mais à quoi sert le maillage ?
Problèmes réels
Résultat
u(0,y)= 𝑢𝑏 , u(0,1)= 𝑢ℎ
𝑡𝑛 =𝑛∆𝑡
La solution exacte :
2𝑡
u(x,t)=sin(𝜋x)𝑒 −𝜋
on pose :
𝑛
𝑢𝑖,𝑗 = 𝑢(𝑥𝑖 , 𝑦𝑗 , 𝑡𝑛 )
La discrétisation :
𝑛+1 𝑛
∂u 𝑢𝑖,𝑗 −𝑢𝑖,𝑗
(𝑥 , 𝑦 , 𝑡 ) =
∂t 𝑖 𝑗 𝑛 Δt
𝑛 𝑛 𝑛
∂u 𝑢𝑖+1,𝑗 −2𝑢𝑖,𝑗 + 𝑢𝑖−1,𝑗
(𝑥 , 𝑦 , 𝑡 ) =
∂𝑥 2 𝑖 𝑗 𝑛 Δ𝑥 2
Il devient
𝑛+1 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛 𝑛
𝑢𝑖,𝑗 −𝑢𝑖,𝑗 𝑢𝑖+1,𝑗 −2𝑢𝑖,𝑗 +𝑢𝑖−1,𝑗 𝑢𝑖,𝑗+1 −2𝑢𝑖,𝑗 +𝑢𝑖,𝑗−1
= +
Δt Δ𝑥 2 Δ𝑦 2
𝑛+1
Ce schéma permet de calculer explicitement 𝑢𝑖,𝑗 en fonction des valeurs à
l'instant n au point considéré et sur les 4 voisins. Il est intéressant de
retrouver cette équation par la méthode des volumes finis, qui consiste à
discrétiser les intégrales de l'équation exprimée sur le contour (a,b,c,d) qui
entoure le point A
En reportant ces différents termes dans la forme intégrale, on retrouve bien
l'équation. La méthode des volumes finis est très utile pour la discrétisation
des conditions limites de Neumann. Elle permet aussi de discrétiser l'équation
en coordonnées non cartésiennes.
𝑛 𝑛 𝑛 𝑛 𝑛
Δ𝑦 2(𝑢𝑖+1,𝑗 + 𝑢𝑖−1,𝑗 ) + Δ𝑥 2(𝑢𝑖,𝑗+1 + 𝑢𝑖,𝑗−1 ) − 2(Δ𝑥 2 + Δ𝑦 2)𝑢𝑖,𝑗 =0
On pose l’équation sous cette forme pour la résoudre :
𝑛+1 𝑛 𝑛 𝑛 𝑛 𝑛
𝑢𝑖,𝑗 = 𝐴𝑢𝑖,𝑗 + 𝐵𝑢𝑖+1,𝑗 + 𝐶𝑢𝑖−1,𝑗 + 𝐷𝑢𝑖,𝑗+1 + 𝐸𝑢𝑖,𝑗−1
Avec
Δt Δt
A= 1 − 2 −2
Δ𝑥 2 Δ𝑦 2
Δt
B=
Δ𝑥 2
Δt
C=
Δ𝑥 2
Δt
D=
Δ𝑦 2
Δt
E=
Δ𝑦 2
i=1,.,I
j=1,…,J
𝑢1,1
𝑢1,2
.
.
.
𝑢1,𝐽
𝑢2,1
.
.
.
𝑢2,𝐽
𝑈𝑛 = .
..
𝑢𝐼−1,𝐽
𝑢𝐼,1
.
.
.
𝑢𝐼,𝐽
( )
La forme matricielle de l’équation de chaleur est :
𝑈 𝑛+1 = 𝑀𝑈 𝑛 + 𝑉
𝑀𝑐 𝑀𝑑
𝑀𝑔 𝑀𝑐 𝑀𝑑
𝑀𝑑
M=( …… 𝑀𝑑 )
……. 𝑀𝑔 𝑀𝑐
𝐶 ⋯ 0 𝐵 ⋯ 0
Mg=( ⋮ ⋱ ⋮) Md=( ⋮ ⋱ ⋮)
0 ⋯ 𝐶 0 ⋯ 𝐵
𝐴 𝐷 ⋯ 0
Mc=( 𝐸 ⋮ ⋱ ⋮ )
0 ⋯ 𝐸𝐴
𝐶𝑢0,1 +𝐸𝑢1,0
𝐶𝑢0,1
𝐷𝑢1,𝐽+1
𝐶𝑢0,𝐽 +
𝐸𝑢2,0
0.
..
0
𝐷𝑢2,𝐽+1
𝐸𝑢3,0
0.
..
0
V= 𝐷𝑢𝐼−1,𝐽+1
𝐵𝑢𝐼+1,1 +𝐸𝑢𝐼,0
𝐵𝑢𝐼+1,2
..
.
𝐵𝑢𝐼+1,𝐽 +𝐷𝑢𝐼,𝐽+1
( )
Programme Matlab:
close all; clear all;
Ly =0.2;
m = 10;
dy = Ly/m;
Lx=1;
n = 10;
dx =Lx /n;
alpha = (dx*dx)+(dy*dy);
for i = 1:n+1
x(i) =(i-1)*dx;
U(i,0) =Ub;
U(n+1,0) =Ul;
end
for j=1:m+1
u(0,j) =Ug ;
u(0,m+1) = Uh;
y(j) = (j-1)*dy;
end
A(1:n-2)=dy*dy;
B(1:n-1)=-2*alpha;
c(1:n-2)=dy*dy;
D=diag(B,0)+diag(A,-1)+diag(C,1);
V(1:n-1)=dx*dx;
W(1:n-1)=dx*dx;
A_inv=inv(diag(D,0)+diag(V,-1)+diag(W,1));
for j=2:m
b=u(2:n,j-1);
u(2:n,j)=(A_inv)*b;
end
CONCLUSION :
Le calcul scientifique est une discipline aux contours pas toujours
franchement définis, mais qui regroupe un ensemble de champs
mathématiques et informatiques permettant la simulation numérique des
phénomènes de la physique, chimie, biologie, et sciences appliquées en
général.
Dans ce cadre je vous remercie énormément monsieur le professeur ALLALI
pour votre effort ainsi que votre passion et afin de nous aider à connaitre des
notions importantes de calcul scientifique et spécialement Matlab qui vont
nous aider dans notre carrière d’études.