24
Chapitre 4 : Méthode des différences finies (2D) 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D

1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. Problèmes stationnaires 2D 2. Problèmes instationnaires 2D

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

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

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

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

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

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

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

=

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

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

=

...

...

...

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

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

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

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

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

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

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

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

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

= 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

= 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

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

= 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

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

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