1. problèmes stationnaires 2d 2. problèmes instationnaires 2d
TRANSCRIPT
![Page 1: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/1.jpg)
Chapitre 4 : Méthode des différences finies (2D)
1. Problèmes stationnaires 2D
2. Problèmes instationnaires 2D
![Page 2: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/2.jpg)
1.1 Poisson 2D + CL Dirichlet
PAS 1 : Définition du problème continu
CL:
?
Vision code couleur
?
Vision surface
1 Problèmes stationnaires
![Page 3: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/3.jpg)
En 2 dimensions, il faut tout de suite gérer un grand nombre de variables.
maillage de points
N valeurs nodales de f, recherchées
...
,, , , ,
,,,
, , , ,
N valeurs nodales de g, connues
PAS 2 : Introduction d’un maillage & valeurs nodales des champs
DIFFICULTE=
![Page 4: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/4.jpg)
Eqs pour les points de bords
N
SEO
eqs
Eqs pour les points intérieurs
eqs
PAS 3 : Ecrire le problème discrétisé
![Page 5: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/5.jpg)
Eqs pour les points de bords
N
SEO
eqs
Eqs pour les points intérieurs (maillage uniforme)
eqs
PAS 3 : Ecrire le problème discrétisé
![Page 6: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/6.jpg)
toutes ? Ceci nécessite une nouvelle numérotation
des points
=
xx
grand système linéaire !
Cette matrice contiendra les coefficients des équations algébriques, sur les points de
bord et les points intérieurs
Ce vecteur colonne contiendra toutes les valeurs nodales
Ce vecteur colonne contiendra les valeurs aux bords et sources
N = (M + 1) x (M + 1) = le nombre de valeurs nodales, on vise à obtenir x yAvec l’écriture suivante
matrice vecteurvecteurtaille N x N N x 1 N x 1
PAS 4 : Ecriture matricielle = DIFFICULTE
![Page 7: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/7.jpg)
savoir où se trouve l’élément (i,j) dans le vecteur sera crucial pour programmer
(i,j)
(0,0)
(0,1)
(0,2)
(0,M )y
(1,0)
(1,1)
(1,2)
(1,M )y
(2,0)
(2,1)
(2,2)
(2,M )y (M ,M )yx
(M ,0)
(M ,1)
(M ,2)x
x
x
Les valeurs nodales sont numérotées par deux indices
x
vecteur colonne
mais se trouveront donc toutes dans un grand vecteur colonne
N x 1
...
...
...
ce qui mène àOn choisit la convention suivante pour la nouvelle numérotation
1
2
3
M +1y 2(M +1)y
M +2y
M +3y
M +4y
i(M +1) + j + 1
y
![Page 8: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/8.jpg)
=
matrice taille N x N vecteur
On obtient alors
vecteur
...
...
...
xx
N = (M + 1) x (M + 1)x y
...
1
1
1
1...
ouestouest
ouestsudintérieur
intérieurnord
est
...
sudintérieur
intérieurnordest
est...
...
...
...0
0
a
a
...
0
0
a
a
...
1b c b
1b c b
... ...... ...
... ... ... ...
1
1
1
1...
...
0
0
a
a
...
1b c b
1b c b
... ......
0
0
a
a
... ...
eq pt 1eq pt 2
eq pt M +1eq pt M +2
eq pt 2(M +1)
eq pt N
...
...
...
yy
y
![Page 9: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/9.jpg)
PAS 5 : Programmation
Il suffit de définir la matrice A et le vecteur g, afin de pouvoir calculer la solution f à l’aide de l’ordinateur. On utilisera f =A\g en Matlab et des bibliothèques d’algorithmes ailleurs.
= pareil qu’en 1D
Difficulté est ici de savoir comment programmer ces matrices et ce vecteur de manière correcte. Ceci demande de l’organisation et il faut réfléchir en avance comment le faire.
Le mieux est de parcourir tout les points de maillage, par une double boucle et de remplir la matrice au fur et à mesure. On programmera deux fois la même chose
Méthode 1: Matrices pleines
On représente des matrices, comme des matrices.
Tous les éléments, même les zéros.
+ Facile à coder mais nombre de points limité
Méthode 2: Matrices creusessparse
On représente des matrices, pas comme des matrices.
Seulement les éléments non-nuls et leurs indices de lignes et colonnes
- Facile à coder mais grand nombre de points possible
![Page 10: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/10.jpg)
=
...
...
...
xx
...
1
1
1
1...
0
0
a
a
...
0
0
a
a
...
1b c b
1b c b
... ...... ...
... ... ... ...
1
1
1
1...
...
0
0
a
a
...
1b c b
1b c b
... ......
0
0
a
a
... ...
VALIDATION ?
![Page 11: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/11.jpg)
code poisson2D_full.m+ validation
Méthode 1: Matrices pleines
code poisson2D_sparse.m+ validation
Méthode 2: Matrices creuses
![Page 12: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/12.jpg)
2 Diffusion-advection 2D : le problème de mélange
PAS 1 : Définition du problème continu
terme d’advection terme de diffusion
Le champ de vitesse est supposé stationnaire et incompressible
t.q.
Comme en TP, on choisit de définir la vitesse à l’aide d’une fonction de courant
On reconnait le coefficient de diffusion
avec et
On considère f(x,y,t) par exemple la concentration d’un polluant. Si on met ce polluant dans un milieu fluide en mouvement, ce champ f évoluera en satisfaisant un problème de diffusion-advection
![Page 13: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/13.jpg)
Ceci donne
qui définit un écoulement incompressible, qui tient dans la boite (vitesse normale nulle aux bords) et dont la vitesse maximale est égale à .
Quelques exemples
p = q = 1 p = 2 , q = 1 p = 2 , q = 2
Les paramètres p et q dénombrent la quantité de cellules dans chaque direction
![Page 14: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/14.jpg)
Sur les bords on suppose que la fonction f y est zéro, afin de garder la situation la plus simple que possible. On aura donc
On utilisera une condition initiale particulière, qui fait référence à une tâche de polluant centré dans le domaine et de forme rectangulaire.
Le problème continue est entièrement défini et dépend des paramètres
![Page 15: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/15.jpg)
PAS 2 : Introduction d’un maillage, de temps discrets & valeurs nodales des champs
maillage uniforme en 2D
temps discrets
valeurs nodales de f, recherchées à tout temps
notation similaire pour les dérivées partielles
![Page 16: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/16.jpg)
PAS 3 : une équation par point de maillage et par temps
INITIALISATION : fixer l’état à n=0
AVANCEMENT TEMPOREL :
sur les bords on écrit directement
partout ailleurs on cherche une formule récursive qui permet de calculer l’état à temps n+1 à partir de celui au(x) temps précédents.
On peut choisir plein de schémas numériques différentes, ici on donne un exemple particulier, facile à mettre en oeuvre et assez stable.
![Page 17: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/17.jpg)
On cherche un schéma d’avancement temporel, fidèle à l’EDP
On choisit de discrétiser les dérivées spatiales à l’aide de formules centrées d’ordre 2. Pour la discrétisation temporelle, on choisit un traitement différent pour les termes d’advection et de diffusion.
avec
Pour le terme de diffusion, on utilise un schéma de Crank-Nicolson. Pour le terme d’advection on utilise un schéma de Euler explicite.
On utilisera
![Page 18: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/18.jpg)
PAS 4 : écriture matricielle = le plus dur
Pour écrire les matrices et on introduit des matrices de projectionune matrice de diffusion et une matrice d’advection.
Il est nécessaire d’adopter une nouvelle numérotation des points, comme dans le problème de Poisson 2D
(voir transparent 27)
On peut obtenir
= +
matrice gauche
valeurs nodales à temps
n+1
valeurs nodales à temps
n
matrice droite
vecteur forçage
= 0 ici
![Page 19: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/19.jpg)
= matrice de projection sur les points de bord
1
1
1
1...
ouestouest
ouestsudintérieur
intérieurnord
est
...
sudintérieur
intérieurnordest
est...
...
...
...
pt 1pt 2
pt M +1pt M +2
pt 2(M +1)
...
...
...
10
10
...
...
1
1
1
1...
y
yy
10
10
...
![Page 20: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/20.jpg)
= matrice de projection sur les points intérieurs
ouestouest
ouestsudintérieur
intérieurnord
est
...
sudintérieur
intérieurnordest
est...
...
...
...
pt 1pt 2
pt M +1pt M +2
pt 2(M +1)
...
...
... ...
0
0
0
0...
y
yy
0
10
...1
0
10
...1
0
0
0
0...
![Page 21: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/21.jpg)
0
0
a
a
...
0
0
a
a
...
0
0
a
a
...
0
0
a
a
...
b c b
b c b... ......
0
0
b c b
b c b... ......
0
0
0
0
...0
0
0
0
...0
0
... ... ...
ouestouest
ouestsudintérieur
intérieurnord
est
...
sudintérieur
intérieurnordest
est...
...
...
...
pt 1pt 2
pt M +1pt M +2
pt 2(M +1)
...
...
...y
yy
= matrice de diffusion (sur les points intérieurs)
![Page 22: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/22.jpg)
= matrice d’advection (sur les points intérieurs)
lié au terme
0
0
0
0
...0
0
ouestouest
ouestsudintérieur
intérieurnord
est
...
sudintérieur
intérieurnordest
est...
...
...
... ...
0
0
...
pt (0,0)pt (0,1)
pt (0,M )ypt (1,0)pt (1,1)
pt (1,M )y
00
0
... ...0
0
0
...0
0
... ... ...
... ... ...
![Page 23: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/23.jpg)
Sur les points de bords
(1)
Sur les points intérieurs
soit (2)
On prend la somme de (1) et (2)
Un grand système linéaire à résoudre à chaque pas de temps
![Page 24: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D](https://reader036.vdocuments.pub/reader036/viewer/2022062417/62adfcbe8c1b132a32798be1/html5/thumbnails/24.jpg)
PAS 5 : implémentation
visualisation
animf.m
fonction qui crée les matrices (pleines ou creuses)
MATcreate.mMATcreate_creux.m
cond_init.m
fonction qui crée le vecteur contenant la CI
fonction contenant solveur
diffadv2D.mmaillage : xlist, ylisttemps : tlistchamps : fmat