Vous êtes sur la page 1sur 98

La méthode des différences

finies

Bruno Blais

Professeur Adjoint
Département de Génie Chimique
École Polytechnique

10 mars 2019
Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 2 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 3 / 98


EDPs en ingénierie

Les équations aux dérivées partielles sont des équations différentielles où les
solutions sont des fonctions inconnues qui dépendent de plusieurs variables
Exemples
• Le profil de température d’un objet qu’on expose à l’air froid dépend
de l’espace (la position dans l’objet x = [x, y, z]T ) et du temps (t)
• La vitesse d’un fluide dépend de sa position dans l’espace

Généralement les EDP font intervenir des coordonnées spatiales et/ou


temporelles.

Bruno Blais FDM 4 / 98


Exemples d’EDPs

Équation de la chaleur (Équation de diffusion)


Décris la température (T(x, t)) d’un corps rigide en prenant en compte la
conduction thermique

Équation d’advection-diffusion transitoire


Décris une quantité (température, concentration) dans l’espace et le temps
en prenant en compte le transport d’énergie par advection (transport) et
par diffusion (ex. : conduction)

Équation de Navier-Stokes
Décris le mouvement de fluides (air, liquide). Deux formes :
• Navier-Stokes Incompressible
• Navier-Stokes Compressible

Bruno Blais FDM 5 / 98


Chaleur (diffusion) stationnaire

L’équation de la chaleur en 3D et en régime stationnaire s’écrit :

∂2T ∂2T ∂2T


+ 2 + 2 =S (1)
∂x2 ∂y ∂z

Questions
• Quelle est la différence entre ∂∂xT2 et ddxT2 ?
2 2

• Quelle serait cette équation en 2D ? En 1D ?


• Quel type d’opérateur vectoriel avons-nous ici ?
• Quelles sont les unités de S ?
• Quelle est la signification physique de S ?

Bruno Blais FDM 6 / 98


Chaleur (diffusion) stationnaire

L’équation de la chaleur peut s’écrire de plusieurs manières

∂2T ∂2T ∂2T


+ 2 + 2 =S (2)
∂x2 ∂y ∂z
Vous avez vu en calcul II que cet opérateur mathématique était le
laplacien. On pourrait donc écrire à nouveau cette équation sous la forme :

△T = S (3)

En Amérique du Nord, on note plutôt le laplacien :

∇2 T = S (4)

Bruno Blais FDM 7 / 98


L’opérateur ∇
Le symbole ∇ est souvent utilisé pour exprimer le gradient d’une fonction
[ ]
∂f
∇f(x, y) = ∂x
∂f (5)
∂y

∇ est un opérateur différentiel vectoriel :


[ ]

∇= ∂x
∂ (6)
∂y

De cet opérateur on déduit les opérations vectorielles classiques :

divu = ∇ · u (7)
△c = (∇ · ∇)c = ∇ c 2
(8)
gradf = ∇f (9)

Bruno Blais FDM 8 / 98


D’où vient l’équation de la chaleur ?

Bilan de chaleur sur un élément en 2D


Bilan de flux de chaleur :

∆y (qx |x − qx |x+∆x ) + ∆x (qy |y − qy |y+∆y ) = 0

Après réarrangement et passage à la limite


on obtient :
∂qx ∂qy
+ =0 (10)
∂x ∂y

Mais comment exprimer le flux de chaleur à


partir de la température ?

Bruno Blais FDM 9 / 98


Expression du flux de chaleur
∂qx ∂qy
+ =0 (11)
∂x ∂y

La loi de Fourier pour la diffusion thermique


indique que le flux de chaleur des parties
chaudes aux parties froides est proportionnel
au gradient de la température et à la conduc-
tivité thermique
[ ] [ ]
∂T
qx
q= = −k∇T = −k ∂T ∂x (12)
qy ∂y

On obtient donc en 2D :
∂2T ∂2T
+ 2 =0 (13)
∂x2 ∂y

Bruno Blais FDM 10 / 98


Extension en 3D
La même procédure (le bilan) permet d’établir l’équation de la chaleur en
3D
∂qx ∂qy ∂qz
+ + =0 (14)
∂x ∂y ∂z
La loi de Fourier :
   ∂T 
qx ∂x
q = qy  = −k∇T = −k  ∂T
∂y
 (15)
qz ∂T
∂z

Et l’équation de la chaleur en 3D :

∂2T ∂2T ∂2T


+ 2 + 2 =0 (16)
∂x2 ∂y ∂z

Cette équation est-elle parabolique, hyperbolique ou elliptique ?


Bruno Blais FDM 11 / 98
Quel est l’élément manquant ?

∂2T ∂2T
+ 2 =0 (17)
∂x2 ∂y

Cette équation est valable à l’intérieur du do-


maine Ω seulement. Pour la résoudre il vous
faut des conditions limites sur le contour Γ !
Exemples de conditions limites
• Dirichlet - Température imposée
• Neumann - Flux imposé
• Robin - Flux dépendant de la
température

Bruno Blais FDM 12 / 98


Condition limite de Dirichlet

Dans une condition limite de Dirichlet, la va-


leur de la température est connue

T(x, y, t) = f(x, y, t)

Où f(x, y, t) est une fonction connue.


Souvent les conditions limites ne seront pas
dépendante du temps et f(x, y, t) = f(x, y).
Ex : T(x = 0, y) = 25 °C

Bruno Blais FDM 13 / 98


Condition limite de Neumann
Dans une condition limite de Neumann, la va-
leur du flux de chaleur est connue :

−k∇T(x, y, t) · n = q(x, y, t)

Où q(x, y, t) est une fonction connue et n est


le vecteur normal de la paroi. Pour une paroi
de normale ex , nous obtiendrions :
∂T(x, y, t)
−k = q(x, y, t)
∂x
Une condition limite qu’on voit souvent est la
condition de paroi isolée :
∂T(x = 0, y)
−k =0
∂x

Bruno Blais FDM 14 / 98


Condition limite de Robin

Dans une condition limite de Robin, la valeur du flux de chaleur dépend de


la température. Un exemple commun est la loi de refroidissement de
Newton :

−k∇T(x, y, t) · n = h(T(x, y, t) − T∞ )

Où T∞ est la température extérieure et h le coefficient de convection. Ces


deux coefficients sont connus, mais pourraient être des fonctions de
l’espace et du temps. Pour une paroi de normale ex , nous obtiendrions :

∂T(x, y, t)
−k = h(T − T∞ )
∂x

Bruno Blais FDM 15 / 98


Chaleur (diffusion) transitoire
Un bilan similaire à ce que nous avons vu précédemment permet d’établir
l’équation de la chaleur transitoire.
( )
( ∂T ) ∂T
∂ρCp T ∂ k ∂x ∂ k ∂y
= + (18)
∂t ∂x ∂y
∂ρCp T
= ∇ · (k∇T) (19)
∂t
Si les propriétés physique du matériau sont constantes, l’équation de la
chaleur devient :
( 2 )
∂T ∂ T ∂2T
=α + (20)
∂t ∂x2 ∂y2

Où α = ρCk p .
Quelles sont les unités de α ? Cette équation est-elle parabolique,
hyperbolique ou elliptique ?
Bruno Blais FDM 16 / 98
Advection-diffusion de la chaleur

Cette équation permet de calculer le profil de température permanent


dans un liquide en mouvement avec une vitesse u. Par un bilan on peut
établir l’équation d’advection-diffusion. Le bilan comprend une composante
de diffusion et une composante de transport.
En 2D elle prend la forme :
( ) ( 2 )
∂T ∂T ∂ T ∂2T
ρCp ux + uy =k + 2 (21)
∂x ∂y ∂x2 ∂y
| {z } | {z }
Advection Diffusion

Cette équation est-elle parabolique, hyperbolique ou elliptique ?

Bruno Blais FDM 17 / 98


Advection-diffusion transitoire
Cette équation permet de calculer le profil de température transitoire
dans un liquide en mouvement avec une vitess u.
En 2D elle prend la forme :
( ) ( 2 )
∂T ∂T ∂T ∂ T ∂2T
ρCp + ρCp ux + uy =k + 2 (22)
| {z∂t} | ∂x ∂y ∂x2 ∂y
{z } | {z }
Inertie Advection Diffusion

La même application peut s’appliquer à n’importe quel scalaire passif


(concentration d’une espèce, etc.). Par exemple pour la concentration :
( 2 )
∂C ∂C ∂C ∂ C ∂2C
+ ux + uy =D + 2 (23)
∂t
|{z} ∂x ∂y ∂x2 ∂y
| {z } | {z }
Inertie Advection Diffusion

Bruno Blais FDM 18 / 98


Navier-Stokes Incompressibles

Les équations de Navier-Stokes décrivent le mouvement de fluides (gaz,


liquides) lorsque les effets de compressibilité ne sont pas important. Elles
permettent autant de prédire la traînée sur une voiture, le vol d’un oiseau,
l’eau suivant un bateau, le mouvement dans un mélangeur, la fumée
sortant d’une cheminée...
∂ux ∂uy
+ =0 (24)
∂x ∂y
( 2 )
∂ux ∂ux ∂ux ∂p ∂ ux ∂ 2 ux
ρ + ρux + ρuy =− +µ + + ρgx (25)
∂t ∂x ∂y ∂x ∂x2 ∂y2
( 2 )
∂uy ∂uy ∂uy ∂p ∂ uy ∂ 2 uy
ρ + ρux + ρuy =− +µ + + ρgy (26)
∂t ∂x ∂y ∂y ∂x2 ∂y2

Bruno Blais FDM 19 / 98


Navier-Stokes Incompressibles

Ces équations sont non-linéaires. Il n’est pas prouvé qu’elles admettent une
seule solution continue en temps et en espace étant donné un jeu de
condition initiale et frontières donné.

∇·u (27)
∂u
ρ + ρ (u · ∇) u = −∇p + µ∇2 u + ρg (28)
∂t
Un prix de 1M$ sera décerné à la personne qui réussira à démontrer que
cela est vrai (ou faux) par le Clay Mathematics institute

Bruno Blais FDM 20 / 98


Navier-Stokes Incompressibles

Elles décrivent le comportement de


tout écoulement incompressible qu’il
soit laminaire ou turbulent.
Dans un écoulement laminaire les
couches de fluides s’écoulent parallè-
lement et ne se mélangent pas.
Dans un écoulement turbulent il y a
présence de tourbillon ou de structure
instables qui mélange le momentum.

Bruno Blais FDM 21 / 98


Régime laminaire et turbulent

Bruno Blais FDM 22 / 98


Régime laminaire et turbulent

Un écoulement peut passer de


laminaire à turbulent. Ce phé-
nomène est nommé la transi-
tion vers la turbulence.
Ce passage peut être causé
une perturbation dans l’écou-
lement (vibration, etc.) ou ap-
paraître naturellement

Bruno Blais FDM 23 / 98


Équations d’Euler
Mouvement d’un fluide parfait (sans viscosité)

∂ρ ∂ρux ∂ρuy
+ + =0
∂t ∂x ∂y
∂ρux ∂ρux ux ∂ρuy ux ∂p
+ + + =0
∂t ∂x ∂y ∂x
∂ρuy ∂ρux uy ∂ρuy uy ∂p
+ + + =0
∂t ∂x ∂y ∂y
( )
2
∂ρe ∂ ρe + 2 ρ |u| + p ux
1
+
∂t ( ∂x )
∂ ρe + 12 ρ |u|2 + p uy
=0
∂y
Permet d’expliquer des phénomènes comme les
ondes de choc
Bruno Blais FDM 24 / 98
Saint-Venant
∂η ∂ηux ∂ηuy
+ + =0
∂t ∂x ∂y
( )
∂ ηu2 + gη 2
∂ηux x 2 ∂ηux uy
+ + =0
∂t ∂x ∂y
( )
2 gη 2
∂ηuy ∂ηux uy ∂ ηuy + 2
+ + =0
∂t ∂x ∂y

Bruno Blais FDM 25 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 26 / 98


Prémisse

Dans ce qui suit, nous considérerons l’équation de la chaleur transitoire.


Cependant, la procédure que nous développons est générale et nous
l’appliquerons plus tard à d’autres équations.
( 2 )
∂T ∂ T ∂2T
=α + 2 (29)
∂t ∂x2 ∂y

La difficulté vient des dérivées dans l’espace et dans le temps. L’idée de


base dans la méthode des différences finies est d’approximer les dérivées à
partir d’une expression faisant intervenir la valeur des variables.

Donc, nous remplacerons les dérivées partielles par leur approximation en


différences finies.

Bruno Blais FDM 27 / 98


Fondement
Comment exprimer une dérivée à partir de la valeur des variables ?
Rappel : Développement en série de Taylor (Calcul 1)
La série de Taylor d’une fonction réelle f(x) autour d’un point a où la
fonction est différentiable est :
(x − a) df (x − a)2 d2 f (x − a)3 d3 f
f(x) = f(a) + (a) + (a) + (a) + ...
1! dx 2! dx2 3! dx3
(30)

Ou en notation de sommation (plus compacte) :



∑ (x − a)n dn f
f(x) = (a) (31)
n! dxn
n=0

Bruno Blais FDM 28 / 98


Utilisation du développement de Taylor

La série de Taylor nous a permis d’exprimer une fonction f en un point x


près d’un point a à partir de la fonction évaluée à ce point (f(a)) et de ses
df
dérivées évalues à ce point ( dx (a)).

La méthode des différences finies se sert de la série de Taylor pour


accomplir l’inverse. Remplacer les dérivées évaluées à ce point par les
valeurs de la fonction autour de ce point.
Le principe fondamental est le même que pour les EDOs !

Bruno Blais FDM 29 / 98


Application à la dérivée du premier ordre
À une position x on peut écrire la série de Taylor de la température
T(x + ∆x, y, t) comme :

((x + ∆x) − x) ∂T
T(x + ∆x) = T(x, y, t) + (x, y, t)
1! ∂x
((x + ∆x) − x)2 ∂ 2 T
+ (x, y, t)
2! ∂x2
((x + ∆x) − x)3 ∂ 3 T
+ (x, y, t) + ...
3! ∂x3
Une fois simplifié on obtient :

∂T ∆x2 ∂ 2 T
T(x + ∆x, y, t) = T(x, y, t) + ∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T
+ (x, y, t) + ...
6 ∂x3

Bruno Blais FDM 30 / 98


Dérivée avant

∂T ∆x2 ∂ 2 T
T(x + ∆x, y, t) = T(x, y, t) + ∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T
+ (x, y, t) + ... (32)
6 ∂x3
En prenant (32) - T(x, y, t) et en réarrangeant obtient :

T(x + ∆x, y, t) − T(x, y, t) ∂T


= (x, y, t) + O(∆x) (33)
∆x ∂x
Nous avons construit l’approximation avant de la dérivée première en
espace. Cette approximation est d’ordre 1, car l’erreur est O(∆x).

Bruno Blais FDM 31 / 98


Dérivée arrière

∂T ∆x2 ∂ 2 T
T(x − ∆x, y, t) = T(x, y, t)−∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T
− (x, y, t) + ... (34)
6 ∂x3
En prenant T(x, y, t) - (34) et en réarrangeant obtient :

T(x, y, t) − T(x − ∆x, y, t) ∂T


= (x, y, t) + O(∆x) (35)
∆x ∂x
Nous avons construit l’approximation arrière de la dérivée première en
espace. Cette approximation est d’ordre 1, car l’erreur est O(∆x).

Bruno Blais FDM 32 / 98


Dérivée centrée

∂T ∆x2 ∂ 2 T
T(x + ∆x, y, t) = T(x, y, t) + ∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T
+ (x, y, t) + ... (36)
6 ∂x3

∂T ∆x2 ∂ 2 T
T(x − ∆x, y, t) = T(x, y, t)−∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T
− (x, y, t) + ... (37)
6 ∂x3
En prenant (36) - (37) et en réarrangeant obtient :
T(x + ∆x, y, t) − T(x − ∆x, y, t) ∂T
= (x, y, t) + O(∆x2 ) (38)
2∆x ∂x
Nous avons construit l’approximation centrée de la dérivée première en
espace. Cette approximation est d’ordre 2, car l’erreur est O(∆x2 ).
Bruno Blais FDM 33 / 98
Dérivée d’ordre deux
∂T ∆x2 ∂ 2 T
T(x + ∆x, y, t) = T(x, y, t) + ∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T ∆x4 ∂ 4 T
+ (x, y, t) + (x, y, t) + ...
6 ∂x3 24 ∂x4
(39)

∂T ∆x2 ∂ 2 T
T(x − ∆x, y, t) = T(x, y, t)−∆x (x, y, t) + (x, y, t)
∂x 2 ∂x2
∆x3 ∂ 3 T ∆x4 ∂ 4 T
− (x, y, t) + (x, y, t) + ...
6 ∂x3 24 ∂x4
(40)
En prenant (39) -2T(x, y, t) +(40) et en réarrangeant obtient :
T(x + ∆x, y, t) − 2T(x, y, t) + T(x − ∆x, y, t) ∂2T
= (x, y, t) + O(∆x2 )
∆x2 ∂x2
Bruno Blais FDM 34 / 98
Application à d’autres coordonnées

À partir de ce type de formule, n’importe quelle dérivée peut être


remplacée par son approximation en différences finies.

T(x + ∆x, y, t) − 2T(x, y, t) + T(x − ∆x, y, t) ∂2T


= (x, y, t) + O(∆x2 )
∆x2 ∂x2

T(x, y + ∆y, t) − 2T(x, y, t) + T(x, y − ∆y, t) ∂2T


= (x, y, t) + O(∆y2 )
∆y2 ∂y2

T(x, y, t + ∆t) − T(x, y, t) ∂T


= (x, y, t) + O(∆t)
∆t ∂t

Bruno Blais FDM 35 / 98


Résumé : Dérivée première

∂f
Nom Approximation de ∂x Notation indices Ordre

f(x)−f(x−∆x) fi −fi−1
Arrière ∆x ∆x O(∆x)
f(x+∆x)−f(x) fi+1 −fi
Avant ∆x ∆x O(∆x)
f(x+∆x)−f(x−∆x) fi+1 −fi−1
Centrée 2∆x 2∆x O(∆x2 )
3f(x)−4f(x−∆x)+f(x−2∆x) 3fi −4fi−1 +fi−2
Arrière Gear 2∆x 2∆x O(∆x2 )
−f(x+2∆x)+4f(x+∆x)−3f(x) −fi+2 +4fi+1 −3fi
Avant Gear 2∆x 2∆x O(∆x2 )

Table – Approximations de la dérivée première

Bruno Blais FDM 36 / 98


Résumé : Dérivée seconde

∂2f
Nom Approximation de ∂x2
Notation indices Ordre

f(x+∆x)−2f(x)+f(x−∆x) fi+1 −2fi +fi−1


Centrée ∆x2 ∆x2
O(∆x2 )

Table – Approximations de la dérivée seconde

Bruno Blais FDM 37 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 38 / 98


Résolution du problème

On repart de l’équation de la chaleur


( 2 )
∂T ∂ T ∂2T
=α + 2 (41)
∂t ∂x2 ∂y

En remplaçant les dérivées partielles par leur approximation en différences


finies on obtient :
( )
T(x, y, t + ∆t) − T(x, y, t) T(x + ∆x, y, ?) − 2T(x, y, ?) + T(x − ∆x, y, ?)

∆t ∆x2
( )
T(x, y + ∆y, ?) − 2T(x, y, ?) + T(x, y − ∆y, ?)

∆y2

Bruno Blais FDM 39 / 98


Explicite ou implicite
Euler explicite : Les dérivées spatiales sont prises au temps t
T(x, y, t + ∆t) T(x, y, t)
=
∆t (∆t )
T(x + ∆x, y, t) − 2T(x, y, t) + T(x − ∆x, y, t)

∆x2
( )
T(x, y + ∆y, t) − 2T(x, y, t) + T(x, y − ∆y, t)

∆y2

Euler implicite : Les dérivées spatiales sont prises au temps t + ∆t


T(x, y, t) T(x, y, t + ∆t)
− =−
∆t ( ∆t )
T(x + ∆x, y, t + ∆t) − 2T(x, y, t + ∆t) + T(x − ∆x, y, t + ∆t)

∆x2
( )
T(x, y + ∆y, t + ∆t) − 2T(x, y, t + ∆t) + T(x, y − ∆y, t + ∆t)

∆y2

Bruno Blais FDM 40 / 98


Discrétisation

La complexité additionnelle ici est que nous venons d’ajouter de nouvelles


discrétisation.
Discrétisations possibles
• Temps
• Espace - ex
• Espace - ey
• Espace - ez

Bruno Blais FDM 41 / 98


Comment discrétisons nous le temps

Le temps est une ligne, il progresse dans une direction !

Nous avançons à coup de pas de temps ∆t jusqu’au temps final qui nous
intéresse.
Le point de départ est donné par les conditions initiales.

Bruno Blais FDM 42 / 98


Espace 1D

L’espace est lui aussi discrétisé comme l’était le temps. Cependant, il est
borné par la taille de la géométrie. Par exemple une tige de longueur L :

Que se passera-t’il aux extrémitées de la tige ?

Bruno Blais FDM 43 / 98


1D Numerotation Matlab

D’un point de vue informatique, la température (ou autre variable) que


nous résolvons prendra la forme d’un vecteur solution. Donc il vous faudra
numéroter les noeuds du domaine sur lesquels vous résolvez la
température. En Matlab la numérotation des vecteurs (tableaux)
commence à 1.

Bruno Blais FDM 44 / 98


1D Numerotation Python

D’un point de vue informatique, la température (ou autre variable) que


nous résolvons prendra la forme d’un vecteur solution. Donc il vous faudra
numéroter les noeuds du domaine sur lesquels vous résolvez la
température. En Python la numérotation des vecteurs (tableaux)
commence à 0.

Bruno Blais FDM 45 / 98


Espace 1D + Temps
On discrétise toujours l’espace en n point. À travers le temps, le profil de
température dans notre tige va évoluer. Il y a donc un axe temporel et un
axe spatial

Bruno Blais FDM 46 / 98


Exemple 2D

Bruno Blais FDM 47 / 98


2D Numérotation Matlab

Bruno Blais FDM 48 / 98


2D Numérotation Python/C++

Bruno Blais FDM 49 / 98


Attention !
La représentation nous amènerait à vouloir noter la variable Ti,j , donc avec
deux indices. Ceci est pratique pour comprendre, mais vous rattrapera
éventuellement. Quand nous voudrons faire des méthodes implicites nous
aurons besoin d’avoir un système matriciel Ax = b, donc votre vecteur de
température inconnu devra avoir un seul indice Tk . Si votre numérotation
commence à 1, une astuce est de renuméroter (i, j) = (j − 1) · nx + i et
vous obtiendrez alors un seul indice.

Bruno Blais FDM 50 / 98


Numérotation vectorielle Matlab

Bruno Blais FDM 51 / 98


Numérotation vectorielle Python/C++

Bruno Blais FDM 52 / 98


Notation
T(x, y, t + ∆t) T(x, y, t)
=
∆t (∆t )
T(x + ∆x, y, t) − 2T(x, y, t) + T(x − ∆x, y, t)

∆x2
( )
T(x, y + ∆y, t) − 2T(x, y, t) + T(x, y − ∆y, t)

∆y2

Notation plus près de l’informatique : T(x, y, t) = Tti,j . Mène à :


( )
Tt+∆t
i,j − Tti,j Tti+1,j − 2Tti,j + Tti−1,j Tti,j+1 − 2Tti,j + Tti,j−1
=α +
∆t ∆x2 ∆y2

Ou, ce qui est vraiment préférable :


( t )
t+∆t t Ti+1 − 2Tti + Tti−1 Tti+nx − 2Tti + Tti−nx
Ti = Ti + ∆tα +
∆x2 ∆y2

Bruno Blais FDM 53 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 54 / 98


Exemple 1D : La tige

Une tige est maintenue à une température de 50 °C à gauche et est isolée


à droite et sur tout son contour. Calculez l’évolution temporelle de la
température au sein de la tige. On s’intéresse particulièrement à connaître
la température au temps t = 0.1 s, si la tige fait L = 1 m et si la diffusivité
thermique dans la tige est α = 1 m2 /s.

Bruno Blais FDM 55 / 98


Posons le problème

À l’intérieur de la tige l’équation de la chaleur 1D transitoire s’applique :

∂T k ∂2T
= (42)
∂t ρCp ∂x2

Quelle sont les hypothèses sous-jacente ?


Les conditions limites sont :

T(x = 0) = 50 °C (43)
∂T
(x = L) = 0 (44)
∂x
De quels type sont ces conditions limites ?
Bruno Blais FDM 56 / 98
Discrétisation du problème
On discrétise la tige en n points numérotés de 1 à n. Ici nous prenons
n = 5, mais faites attention à toujours programmer votre logiciel de
manière générique. Le paramètre n devrait être un paramètre utilisateur.

Au lieu d’avoir un profil de température qui est continu, nous obtiendrons


un profil de température discret avec n valeurs de la température.
Quelle sera la valeur de ∆x pour n = 5, n = 7, ou n quelconque ?

Bruno Blais FDM 57 / 98


Résolution à l’intérieur
L’équation à l’intérieur du domaine est :

∂T k ∂2T
= (45)
∂t ρCp ∂x2

L’approximation en différence finies de cette équation est :


( t )
t+∆t t Ti+1 − 2Tti + Tti−1
Ti = Ti + ∆tα
∆x2

• Équation de récurrence
• Critère de stabilité pour le pas de temps
• Validate à l’intérieur du domaine. Que faire pour inclure les conditions
limites ?

Bruno Blais FDM 58 / 98


Choix du pas de temps

( )
Tti+1 − 2Tti + Tti−1
Tt+∆t
i = Tti + ∆tα
∆x2

La méthode d’Euler explicite implique, comme pour les équations


différentielles ordinaire, un critère de stabilité.
( ) ( t )
2∆tα Ti+1 + Tti−1
Tt+∆t
i = 1 − Tt
i + ∆tα
∆x2 ∆x2

Le choix du pas de temps est à nouveau dicté par le facteur


d’amplification :
2∆tα
<1 (46)
∆x2

Bruno Blais FDM 59 / 98


Conditions limites
Les conditions limites sont :

T(x = 0) = 50 °C (47)
∂T
(x = L) = 0 (48)
∂x
La discrétisation de cette condition limite est directe :

Ti=1 = 50 °C (49)

La condition limite de flux nulle implique la dérivée de la température. On


utilise l’approximation arrière de la dérivée :
t+∆t
Ti=n − Tt+∆t
i=n−1
=0 (50)
∆x
Quel est l’ordre de cette approximation ?

Bruno Blais FDM 60 / 98


Algorithme

Données : Conditions limites et conditions initiales


Résultat : Profil de température au temps désiré
tant que t < tfinal faire
pour i ∈ [2, n − 1] faire( )
Tti+1 −2Tti +Tti−1
Tt+∆t
i = Tti + ∆tα ∆x2
fin
Tt+∆t
1 = 50 °C
Tt+∆t
n = Tt+∆t
n−1
t = t + ∆t
fin
Algorithme 1 : Euler explicite 1D pour la tige

Bruno Blais FDM 61 / 98


Exemple Matlab

%Données du maillage
n=5; L=1; dx=L/(n-1); x=linspace(0,L,n);
%Données de température
Tleft=50; T=zeros(n,1); T(1)=Tleft; T_pdt=T
%Propriété physique et pas de temps
alpha=1.; tFinal=0.1; t=0; dt=0.1 *dx^2/alpha;
%Algorithme
while (t<tFinal)
T_pdt(2:n-1) = T(2:n-1) + dt * alpha * (T(1:n-2)
-2*T(2:n-1)+T(3:n))/(dx*dx);
T_pdt(n)=T_pdt(n-1);
T=T_pdt;
t+=dt;
end
plot(x,T);

Bruno Blais FDM 62 / 98


Exemple Python
n=5;
L=1;
dx=L/(n-1);
x=np.linspace(0,L,n);
Tleft=50;
T=np.zeros(n);
T[0]=Tleft;
T_pdt=T
alpha=1.
tFinal=0.1
t=0
dt=0.1 *dx*dx/alpha
while (t<tFinal):
T_pdt[1:n-1] = T[1:n-1] + dt * alpha * (T[0:n-2]
-2*T[1:n-1]+T[2:n] )/(dx*dx);
T_pdt[-1]=T_pdt[-2];
T=T_pdt;
t +=dt;
Bruno Blais FDM 63 / 98
Résultat numérique
On voit l’influence de la condition de Dirichlet à gauche et de la condition
de Neumann à droite. En raffinant la solution devient rapidement
indépendante du nombre de points.

50 n=5
n = 10
40 n = 20
n = 50
Température [ C]

30

20

10

0.0 0.2 0.4 0.6 0.8 1.0


Position x [m]
Bruno Blais FDM 64 / 98
Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 65 / 98


Exemple 1D : La tige

Une tige est maintenue à une température de 50 °C à gauche et est isolée


à droite et sur tout son contour. Calculez l’évolution temporelle de la
température au sein de la tige.

Bruno Blais FDM 66 / 98


Posons le problème

À l’intérieur de la tige l’équation de la chaleur 1D transitoire s’applique :

∂T k ∂2T
= (51)
∂t ρCp ∂x2

Les conditions limites sont :

T(x = 0) = 50 °C (52)
∂T
(x = L) = 0 (53)
∂x

Bruno Blais FDM 67 / 98


Discrétisation du problème

On discrétise la tige en n points numérotés de 1 à n. Ici nous prenons


n = 5, mais faites attention à toujours programmer votre logiciel de
manière générique. Le paramètre n devrait être un paramètre utilisateur.

Bruno Blais FDM 68 / 98


Résolution à l’intérieur
L’équation à l’intérieur du domaine est :

∂T k ∂2T
= (54)
∂t ρCp ∂x2

L’approximation en différence finies de cette équation est :


( )
t+∆t t Tt+∆t
i+1 − 2Ti
t+∆t
+ Tt+∆t
i−1
Ti,j = Ti,j + ∆tα
∆x2

Qui une fois réarrangée devient :


( )
∆tα ( t+∆t ) 2∆tα t+∆t ∆tα ( t+∆t )
− 2 Ti−1 + 1+ T i − Ti+1 = Tti
∆x ∆x2 ∆x2

Cette équation mènera à la résolution d’un système matriciel.

Bruno Blais FDM 69 / 98


Conditions limites
Les conditions limites sont :

T(x = 0) = 50 °C (55)
∂T
(x = L) = 0 (56)
∂x
La discrétisation de cette condition limite est directe :

Ti=1 = 50 °C (57)

La condition limite de flux nulle implique la dérivée de la température. On


utilise l’approximation arrière de la dérivée :
t+∆t
Ti=n − Tt+∆t
i=n−1
=0 (58)
∆x

Bruno Blais FDM 70 / 98


Équations obtenues

Pour le domain avec 5 points nous pouvons écrire directement les


équations pour exprimer la température à chaque point.

T1 = 50 °C
( )
∆tα (t+∆t
) 2∆tα ∆tα ( )
− 2 T1 + 1+ Tt+∆t
2 − Tt+∆t
3 = Tt2
∆x ∆x2 ∆x2
∆tα ( ) ( 2∆tα
)
∆tα ( t+∆t )
− 2 Tt+∆t
2 + 1+ Tt+∆t
3 − T4 = Tt3
∆x ∆x2 ∆x2
( )
∆tα ( t+∆t ) 2∆tα ∆tα ( t+∆t )
− 2 T3 + 1+ Tt+∆t
4 − T5 = Tt4
∆x ∆x2 ∆x2
−Tt+∆t
4 + Tt+∆t
5 =0

Bruno Blais FDM 71 / 98


Sous forme matricielle

Les équations que nous avons écrites précédemment forment un système


matriciel :

AT = b (59)

avec A ∈ IR5×5 et T, b ∈ IR5 .


On obtient :
    
1 0 0 0 0 T1 50
− ∆tα2 (1 + 2 ∆tα2 ) − ∆x2
∆tα     t
 ∆x ∆x
0  T2  T2t 
 0 − ∆x2
∆tα ∆tα
− ∆x2
∆tα
0     
 (1 + 2 ∆x2 )  T3  = T3 
 0 0 − ∆x2
∆tα ∆tα  T 
(1 + 2 ∆x2 ) − ∆x2
∆tα
4
Tt 
4
0 0 0 −1 1 T5 0

Bruno Blais FDM 72 / 98


Algorithme

Données : Conditions limites et conditions initiales


Résultat : Profil de température au temps désiré
Construire A
tant que t < tfinal faire
pour i ∈ [2, n − 1] faire
bi = Tti
fin
b1 = 50 °C
bn = 0
Tt+∆t = A−1 b
t = t + ∆t
fin
Algorithme 2 : Euler explicite 1D pour la tige

Bruno Blais FDM 73 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 74 / 98


Exemple 2D : La plaque
Le contour d’une plaque est maintenue à 0 °C avec de la glace. La plaque
est chauffée par un jet d’air qui amène une source de chaleur constante sur
la plaque de 10 Wm−2 . Calculez l’évolution temporelle de la température
au sein de la plaque.

Bruno Blais FDM 75 / 98


Posons le problème

À l’intérieur de la plaque l’équation de la chaleur 2D transitoire s’applique :


( 2 )
∂T ∂ T ∂2T
ρCp =k + 2 +S (60)
∂t ∂x2 ∂y
Les conditions limites sont :
T(x = 0) = 0 °C
T(x = L) = 0 °C
T(y = 0) = 0 °C
T(y = H) = 0 °C
Bruno Blais FDM 76 / 98
Discrétisons le problème
On discrétise la plaque avec nx × ny points. Ici on choisi nx = ny = 5, mais
un logiciel devrait être général est permettre d’avoir autant de points
qu’on souhaite !

Combien de valeurs discrètes de la température aurons-nous ?


Bruno Blais FDM 77 / 98
Résolution à l’intérieur du domaine

L’équation à l’intérieur du domaine est :


( 2 )
∂T ∂ T ∂2T
ρCp =k + 2 +S (61)
∂t ∂x2 ∂y

En remplaçant les dérivées par leurs approximations en différences finies :


( )
Tt+∆t
i,j − Tti,j Tti+1,j − 2Tti,j + Tti−1,j Tti,j+1 − 2Tti,j + Tti,j−1 S
=α + +
∆t ∆x2 ∆y2 ρCp

Ou, ce qui est vraiment préférable :


( t )
Ti+1 − 2Tti + Tti−1 Tti+nx − 2Tti + Tti−nx S
Tt+∆t
i = T t
i + ∆tα + + ∆t
∆x2 ∆y2 ρCp

Bruno Blais FDM 78 / 98


Résolution des conditions limites

Sur la contour du domaine Γ, la condition limite s’applique T = 0


Donc, si x = 0 ou x = L ou y = 0 ou y = H, alors Ti = 0

Comment mettre cela sous forme algorihtmique ?

Bruno Blais FDM 79 / 98


Sous forme indicielle
Bas (y = 0) :

Ti = 0 si i ≤ nx (62)

Haut (y = H) :

Ti = 0 si i > (nx ny ) − nx (63)

Gauche (x = 0) :

Ti = 0 si i%nx = 1 (64)

Droite (x = L) :

Ti = 0 si i%ny = 0 (65)

Où % est le modulo. C’est-à-dire le reste de la division entière. ex :


7%3 = 1, 8%3 = 2 et 9%3 = 0.
Bruno Blais FDM 80 / 98
Algorithme
Données : Conditions limites et conditions initiales
Résultat : Profil de température au temps désiré
tant que t < tfinal faire
pour i ∈ [1, nx ny ] faire
si (i ≤ nx || i > ((nx ny ) − nx ) || i%nx == 0 || i%nx == 1) alors
Tt+∆t
i = 0.
fin
sinon
Tt+∆t
i = ( )
Tt −2Tt +Tt Tt −2Tt +Tt
Ti + ∆tα i+1 ∆x2i i−1 + i+nx ∆y2i i−nx + ∆t ρCS p
t

fin
fin
t = t + ∆t
fin
Algorithme 3 : Euler explicite 2D pour la plaque

Bruno Blais FDM 81 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 82 / 98


Exemple de la plaque implicite
Le contour d’une plaque est maintenue à 0 °C avec de la glace. La plaque
est chauffée par un jet d’air qui amène une source de chaleur constante sur
la plaque de 10 Wm−2 . Calculez l’évolution temporelle de la température
au sein de la plaque par la méthode d’Euler implicite.

Bruno Blais FDM 83 / 98


Posons le problème

À l’intérieur de la plaque l’équation de la chaleur 2D transitoire s’applique :


( 2 )
∂T ∂ T ∂2T
ρCp =k + 2 +S (66)
∂t ∂x2 ∂y
Les conditions limites sont :
T(x = 0) = 0 °C
T(x = L) = 0 °C
T(y = 0) = 0 °C
T(y = H) = 0 °C
Bruno Blais FDM 84 / 98
Discrétisons le problème
On discrétise la plaque avec nx × ny points. Ici on choisi nx = ny = 5, mais
un logiciel devrait être général est permettre d’avoir autant de points
qu’on souhaite !

Bruno Blais FDM 85 / 98


Résolution à l’intérieur du domaine
L’équation à l’intérieur du domaine est :
( 2 )
∂T ∂ T ∂2T
ρCp =k + 2 +S (67)
∂t ∂x2 ∂y

En remplaçant les dérivées par leurs approximations en différences finies :


( )
Tt+∆t
i − Tti Tt+∆t t+∆t
i+1 − 2Ti + Tt+∆t
i−1 Tt+∆t t+∆t
i+nx − 2Ti + Tt+∆t
i−nx S
=α + +
∆t ∆x2 ∆y2 ρCp

En réarrangeant :
( ) ( ) ( )
∆tα ∆tα 2∆tα 2∆tα
− Tt+∆t
i−nx − t+∆t
Ti−1 + 1 + + Tt+∆t
i
∆y2 ∆x2 ∆x2 ∆y2
( ) ( )
∆tα ∆tα S
− 2
Tt+∆t
i+1 − 2
Tt+∆t t
i+nx = Ti + ∆t
∆x ∆y ρCp

Bruno Blais FDM 86 / 98


Condition limite
Bas (y = 0) :

Ti = 0 si i ≤ nx (68)

Haut (y = H) :

Ti = 0 si i > (nx ny ) − nx (69)

Gauche (x = 0) :

Ti = 0 si i%nx = 1 (70)

Droite (x = L) :

Ti = 0 si i%ny = 0 (71)

Bruno Blais FDM 87 / 98


Importance de la numérotation indicielle

L’équation :
( ) ( ) ( )
∆tα ∆tα 2∆tα 2∆tα
− Tt+∆t
i−nx − t+∆t
Ti−1 + 1 + + Tt+∆t
i
∆y2 ∆x2 ∆x2 ∆y2
( ) ( )
∆tα ∆tα S
− Tt+∆t
i+1 − Tt+∆t t
i+nx = Ti + ∆t
∆x2 ∆y2 ρCp

Mène à construction d’un système matriciel d’équation. Si nous ne


stockons pas la température sous la forme d’un seul vecteur, alors nous ne
pouvons pas construire un système matriciel de la forme AT = b.

Bruno Blais FDM 88 / 98


Algorithme

Données : Conditions limites et conditions initiales


Résultat : Profil de température au temps désiré
Construire A
tant que t < tfinal faire
pour i ∈ [1, nx ny ] faire
Remplir bi
fin
Tt+∆t = A−1 b
t = t + ∆t
fin
Algorithme 4 : Euler explicite 2D pour la plaque

Bruno Blais FDM 89 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 90 / 98


Exemple de la plaque stationnaire
Le contour d’une plaque est maintenue à 0 °C avec de la glace. La plaque
est chauffée par un jet d’air qui amène une source de chaleur constante sur
la plaque de 10 Wm−2 . Calculez la température en régime permanent au
sein de la plaque.

Bruno Blais FDM 91 / 98


Posons le problème

À l’intérieur de la plaque l’équation de la chaleur 2D s’applique :


( 2 )
∂ T ∂2T S
+ 2 =− (72)
∂x2 ∂y k
Les conditions limites sont :
T(x = 0) = 0 °C
T(x = L) = 0 °C
T(y = 0) = 0 °C
T(y = H) = 0 °C
Bruno Blais FDM 92 / 98
Discrétisons le problème
On discrétise la plaque avec nx × ny points. Ici on choisi nx = ny = 5, mais
un logiciel devrait être général est permettre d’avoir autant de points
qu’on souhaite !

Bruno Blais FDM 93 / 98


Résolution à l’intérieur du domaine
L’équation à l’intérieur du domaine est :
( 2 )
∂ T ∂2T S
+ 2 =− (73)
∂x 2 ∂y k

En remplaçant les dérivées par leurs approximations en différences finies :


( )
Ti+1 − 2Ti + Ti−1 Ti+nx − 2Ti + Ti−nx S
+ =−
∆x2 ∆y2 k

En réarrangeant :
( ) ( ) ( )
1 1 2 2
− Ti−nx − Ti−1 + + Ti
∆y2 ∆x2 ∆x2 ∆y2
( ) ( )
1 1 S
− Ti+1 − Ti+nx = −
∆x 2 ∆y 2 k

Bruno Blais FDM 94 / 98


Constat
Lorsque vous avez un problème stationnaire, il est nécessaire de résoudre
un système matriciel pour obtenir le profil de température final. En fait, les
méthodes implicite et les problèmes stationnaires se ressemblent.
L’équation pour la résolution transitoire par la méthode d’Euler implicite
était :
( ) ( α ) ( )
α 1 2α 2α
− Tt+∆t
i−nx − Tt+∆t
i−1 + + + Tt+∆t
i
∆y2 ∆x2 ∆t ∆x2 ∆y2
( α ) ( )
α Tti S
− 2
Tt+∆t
i+1 − 2
Tt+∆t
i+nx = +
∆x ∆y ∆t ρCp

Dans un régime stationnaire elle est :


( ) ( ) ( )
1 1 2 2
− Ti−nx − Ti−1 + + Ti
∆y2 ∆x2 ∆x2 ∆y2
( ) ( )
1 1 S
− T i+1 − Ti+nx = −
∆x2 ∆y2 k

Bruno Blais FDM 95 / 98


Aperçu
Les équations aux dérivées partielles en ingénierie

Différences finies pour les EDPs

Résolution du problème de transfert de chaleur transitoire

Résolution par la méthode d’Euler Explicite - 1D

Résolution par la méthode d’Euler Implicite - 1D

Résolution par la méthode d’Euler Explicite - 2D

Résolution par la méthode d’Euler Implicite - 2D

Problèmes stationnaires

Conclusion et limitations

Bruno Blais FDM 96 / 98


Conclusions
On utilise le développement en série de Taylor pour construire des
approximations en différences finies des dérivées partielles en temps et en
espace. À nouveau il y a deux familles d’approche :
Euler explicite
• Équation de récurrence facile à calculer
• Critère de stabilité qui contrôle le pas de temps ∆t < C ∆x
2
α . Ce
critère est fonction de ∆x2 pour le laplacien !

Euler implicite
• Pas de critère de stabilité (∆t est libre)
• Système matriciel pour chaque pas de temps

Les problèmes stationnaires impliquent eux aussi la solution d’un système


matriciel !

Bruno Blais FDM 97 / 98


Limitations
La méthode des différences finies sert principalement à étudier des
géométries simples, car la géométrie doit être discrétisée sous forme de
grille. Ainsi, elle est généralement pas approprié pour résoudre les
problèmes que nous avons vu dans des géométries complexes. Donc, elle
est simple à résoudre et à comprendre, mais malheureusement limité dans
ce qu’elle peut accomplir.

Bruno Blais FDM 98 / 98