Chap 4
Chap 4
Chap 4
28 fvrier 2008
3
7.2. QUATION DE POISSON
z
T x T
ux
Chapitre 7
f
7.1 Introduction
Dans ce chapitre, nous tendrons la dmarche danalyse, dcrite au chapitre prcdent, la rsolution de problmes bidimensionnels en espace. Nous tudierons les problmes classiques de type :
en notant x langle de la surface u(x, y) avec lhorizontal. De mme pour le cot dabscisse y, la force de tension scrit : 0 T dx cos y sin y f (x, y)dxdy
T dy(cos x+dx cos x ) = 0 T dx(cos y+dy cos y ) = 0 T dy(sin x sin x+dx ) + T dx(sin y sin y+dy ) = f (x, y)dxdy avec tan x =
u x
et tan y =
u y .
u u , cos y 1, sin y x y
On effectue des dveloppements limits lordre 1 dans les quations prcdentes, qui conduisent lquation dquilibre de la membrane :
On considre une membrane carre de cot a qui se dforme sous leffet dune charge surfacique f (x, y). La membrane est sous tension et xe sur les bords. On suppose quen chacun des points la tension T est constante et tangente la membrane (on nglige les forces lastiques dues la dformation de la membrane). On note u(x, y) la dforme. Les forces exerces sur un lment de membrane dxdy sont :
u u T T x x y y
auquel on ajoute les conditions aux limites :
= f (x, y)
(7.1)
u(0, y) = u(a, y) = u(x, 0) = u(x, a) = 0 En effectuant un changement de variables, on obtiens le problme modle suivant, qui est une quation de Poisson :
Marc BUFFAT, UFR Mcanique, UCBLyon
1. des forces de tension exerces sur les cots de llment. Pour le cot de longueur dy et dabcisse x, cette force est perpendiculaire au cot dy et tangente la surface u(x, y). Elle est situe dans le plan (x, z) et a pour composantes : cos x 0 T dy sin x
5
7.2. QUATION DE POISSON
(7.2)
0 0.01 0.02 0.03 U 0.04 0.05 0.06 0.07 0 0 0.2 0.4 x 0.6 0.8 1 1 0.8 0.2 0.4 y 0.6
Pour dterminer la solution gnrale de lquation de Poisson (7.2), on dcompose U (x, y) en srie de Fourier vriant les conditions aux limites : (7.3)
U (x, y) =
k=1 p=1
k=1 p=1
F IG . 7.2 solution exacte de (7.2) pour F = 1 La valeur maximale Umax de la dformation se trouve au centre et a pour expression : Umax =
do les valeurs de Ukp , en multipliant cette relation par sin (k x) sin ( p x). En intgrant sur le domaine et en utilisant lorthogonalit des fonctions sin(k x), il vient : (7.4)
4 Ukp = 2 ( k + p2 ) 2
16(1)l +1(1)m+1
On peut calculer une valeur approche trs prcise de cette srie avec Maple, et on trouve (pour m = l = 200) : Umax = 0.07367135123 (7.5)
Dans le cas dun chargement constant F = 1, la valeur du coefcient de Fourier Ukp se calcule simplement avec Maple et on trouve :
Ukp =
Ce coefcient est non nul si et seulement si k et p sont tous les deux impaires. La solution exacte scrit donc :
U (x, y) =
l =1 m=1
avec Ulm =
1 Nx 1
et
7
7.2. QUATION DE POISSON
0 0
ui, j+1
5 5
y j+1
10 10
ui1, j
15 15
ui, j
ui+1, j
yj
20 20
ui, j1
25 25 30 30
y j1
35 35 40 40
xi1
45
xi
xi+1
45
50
10
15
20
25 nz = 134
30
35
40
45
50
Ce schma conduit un systme matriciel de N = Nx Ny inconnues Ui, j . Pour crire ce systme sous la forme matricielle A X = B , on doit transformer la matrice des inconnues Ui, j en un vecteur inconnu Xk . Pour cela on numrote les inconnues par lignes, i.e. on effectue la transformation dindice (i, j) vers le monoindice k = i + ( j 1)Nx. Avec ce changement dindice, lquation aux diffrences (7.6) scrit :
Prcision et erreur de troncature On utilise une discrtisation centre et dordre 2 de la drive seconde en x et en y, donc lerreur de troncature du schma est dordre O(dx2 , dy2 ). Elle scrit : ErrT = 1 4U 2 1 4U 2 dx + dy + O(dx4 , dy4 ) 12 x4 12 y4 La prcision du schma (7.6) est donc dordre 2 en espace, i.e. en O(dx2 , dy2 ).
pour tous les noeuds internes k = i + ( j 1)Nx avec 1 < i < Nx et 1 < j < Ny en 2 2 1 1 notant a = dx 2 + dy2 , b = dx2 et c = dy2 . Les conditions aux limites scrivent Uk = 0 pour les noeuds frontires k = 1 + ( j 1)Nx , k = Nx + ( j 1)Nx avec 1 < j < Ny et k = i , k = i + (Ny 1)Nx avec 1 < i < Nx . La matrice A est une matrice penta-diagonale dont la forme est donne sur la gure (7.4a). On vrie que la matrice possde bien au maximum 5 coefcients non nuls rpartis sur la diagonale de coefcients a, les 2 co-diagonales adjacentes de coefcients b et les 2 co-diagonales distantes de Nx 1 de la diagonale de coefcients c. On constate aussi que la matrice A est non symtrique, cause de la faon dappliquer les conditions aux limites. En effet pour un noeud k sur la frontire, on applique la condition aux limites Xk = 0 dans la ligne k de la matrice en annulant la ligne et en mettant 1 sur la diagonale. On ne tiens pas compte de cette condition aux limites dans les quations o intervient la valeur de Xk , i.e. dans les lignes de A ayant un coefcient non nul dans la colonne k. Pour conserver la symtrie de la matrice, qui traduit la symtrie du problme physique, il faut aussi annuler les coefcients de la colonne k (gure 7.4b). Dans le cas Xk = X0 , il faut en outre retrancher la colonne X0 Ak, j du second membre B . On note aussi que le nombre de coefcients non nuls de la matrice A est de lordre de 5Nx Ny 5N 2 , ce qui est beaucoup plus petit que le nombre de coef-
9
7.2. QUATION DE POISSON
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
A =
4 1 0 0 1 1 4 0 0 0 0 0 4 1 0 0 0 1 4 0 1 0 0 0 4
Ac = I = J =
4 1 1 1 4 4 1 1 4 1 4 1 1 1 2 2 3 3 4 4 5 5 1 2 5 1 2 3 4 3 4 1 5
Pour utiliser cette structure de donnes avec Matlab, on initialise A avec la fonction Matlab spalloc (ligne 18), qui permet de crer une matrice creuse de 5N lments, au lieu dutiliser la fonction zeros(N,N) qui cre une matrice carre de N 2 lments. Pour Nx = Ny = 100, on a N = 104 et le stockage de A sous forme de matrice creuse ncessite alors 640 kilo-octets de mmoire au lieu des 100 mgaoctets ncessaire au stockage de tous les coefcients de A , ce qui rend la rsolution du problme possible sur un ordinateur de bureau. On remarque aussi que la taille ncessaire au stockage de A est suprieur 5N rels (soit 400 kilo-octets) puisque pour chaque valeur non nulle A pq on stocke aussi les indices p et q correspondants. Pour le second membre B on transforme la matrice F des valeurs aux noeuds du maillage en un vecteur de colonne de dimension N avec la fonction Matlab reshape. La boucle dassemblage de A correspond aux lignes 20 25, et se fait ligne par ligne en utilisant la structure matricielle de Matlab (ligne 23). Les conditions aux limites sont imposes sur les cots x = 0 et x = 1 (lignes 29 32) et y = 0 et y = 1 (lignes 34 37), en annulant la ligne et la colonne k de A ainsi que le second membre Bk puis en imposant Ak,k = 1. Le script Matlab (7.2) rsout numriquement le problme (7.2) dans le cas dune fonction F = 1 (ligne 8). On utilise la fonction Laplace2d prcdente pour calculer la matrice A et le second membre B du problme. On rsout le systme (ligne 11) avec loprateur standard \ de Matlab, qui pour des matrices creuses utilisent un algorithme de Gauss par bande. Cest la mthode la plus efcace sous Matlab, mme si elle ncessite un stockage temporaire important, de 2 N puisque la largeur de bande vaut N . En utilisant la structure lordre de 2Nx y x particulire de la matrice A (tri-diagonale par blocs), on pourrait utiliser un algorithme trs efcace, qui est lextension de lalgorithme de Thomas. Son principe est dcrit dans lannexe ?? page ??, mais il nest pas implment sous Matlab. La n du script permet la visualisation en 3D de la solution calcule.
f u n c t i o n [A , B]= l a p l a c e 2 d ( F , nx , ny ) % entree : % m a t r i c e F du s e c o n d membre F i j v a l e u r de F au noeud ( i , j ) % nx , ny nombre de p o i n t s en x e t en y % sortie : % m a t r i c e A e t s e c o n d membre B % en u t i l i s a n t un s t o c a g e c r e u x % p b l e l a p (U)= f a v e c d e s C . L . homogene dx = 1 / ( nx 1); dy = 1 / ( ny 1); % c o e f f i c i a n t du shema pour l e s nds % ( i , j 1) ( i 1 , j ) ( i , j ) ( i +1 , j ) ( i , j +1) c o e f f =[ 1/ dy ^2 , 1/ dx ^ 2 , 2 / dx ^ 2 + 2 / dy ^2 , 1/ dx ^2 , 1/ dy ^ 2 ] ; % d e c a l a g e / au neud ( i , j ) dans l a n u m r o t a t i o n num = [ nx , 1, 0 , 1 , nx ] ; % a s s e m b l a g e de l a m a t r i c e pour un s t o c a g e par l i g n e % i . e l e noeud ( i , j ) a pour a d r e s s e k =( j 1) nx+ i N=nx ny ; % d i m e n s i o n A= s p a l l o c (N , N, 5 N ) ; % m a t r i c e c r e u s e de 5 e l t s maxi / l i g n e B= r e s h a p e ( F , N , 1 ) ; f o r i = 2 : nx 1 f o r j = 2 : ny 1 k =( j 1) nx+ i ; A( k , k+num )= c o e f f ; end end % c o n d i t i o n s aux l i m i t e s % ====================== % C . L . s u r l e s f r o n t i e r e s i =1 , i =nx ( D i r i c h l e t ) f o r j = 1 : ny k =( j 1) nx + 1 ; A( k , : ) = 0 ; A ( : , k ) ; A( k , k ) = 1 . 0 ; B ( k ) = 0 ; k =( j 1) nx+nx ; A( k , : ) = 0 ; A ( : , k ) = 0 ; A( k , k ) = 1 . 0 ; B( k ) = 0 ; end ; % C . L . s u r l e s f r o n t i e r e s j =1 , j =ny ( D i r i c h l e t ) f o r i = 1 : nx k= i ; A( k , : ) = 0 ; A ( : , k ) = 0 ; A( k , k ) = 1 . 0 ; B ( k ) = 0 ; k =( ny 1) nx+ i ; A( k , : ) = 0 ; A ( : , k ) = 0 ; A( k , k ) = 1 . 0 ; B( k ) = 0 ; end ; % fin
11
7.3. QUATION DES ONDES
10
2
12
1
Err 10
4
6
10 10
3 5
7
10 h
2
10
10
11
12
13
14
z= h(x,y) 111111111 000000000 000000000 111111111 000000000 111111111 000000000 111111111 000000000 111111111 000000000 111111111 U=(u,v) z y z=0 dy x dx
15
% r e s o l u t i o n du l a p l a c i e n clear % dimension nx = 2 1 ; ny = 2 1 ; dx = 1 / ( nx 1); dy = 1 / ( ny 1); X= [ 0 : dx : 1 ] ; Y= [ 0 : dy : 1 ] ; % a s s e m b l a g e m a t r i c e e t 2 nd membre F= o n e s ( nx , ny ) ; [A, B]= l a p l a c e 2 d ( F , nx , ny ) ; % resolution U=A\ B ; % t r a n s f o r m a t i o n de U en m a t r i c e pour v i s u a l i s a t i o n U1= r e s h a p e (U, nx , ny ) ; % visualisation s u r f c (X, Y, U1 ) ; t i t l e ( d e f o r m e e ) ; s h a d i n g i n t e r p ;
0.01
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08 1
0.8
0.6
0.8
0.4
0.6
0.4
pente 2. Cela montre que lerreur relative est en O(h2 ), ce qui conrme le calcul de lerreur de troncature en O(dx2 , dy2 ).
0.2
0.2
On a trac le rsultat obtenu pour Nx = Ny = 21 sur la gure (7.5). En comparant avec la solution exacte (gure 7.2), on constate une bonne concordance. Lerreur relative sur la valeur maximale de la dforme est infrieure 3% :
Err =
On sintresse aux oscillations de la surface dun liquide contenu dans un rservoir. Au repos le rservoir contient un liquide sur une hauteur h0 . La surface du liquide est plane, horizontale et note . La rpartition de pression dans le liquide est hydrostatique : ps = p0 + 0 g ( h0 z ) On perturbe la surface h(x, y, t ) linstant initiale. Celle ci se met alors osciller de part et dautre de sa position initiale h0 . On nglige les effets de viscosit, et on applique les quations de conservation de la masse et de la quantit de mouvement un cylindre lmentaire de base dxdy et de hauteur h(x, y, t ) (gure 7.7).
Marc BUFFAT, UFR Mcanique, UCBLyon
h est la valeur approche. o on a not Umax la valeur exacte (7.5) et Umax Pour terminer cette tude, nous avons effectu une tude de prcision en calculant cette erreur relative pour diffrents maillages (avec un nombre de points identique suivant x et y). Chaque maillage est caractrise par un pas de discrtisation h = dx = dy. Sur la gure (7.6), on a trac lvolution de lerreur relative Err en fonction de h, et on trouve sur une chelle logarithmique une droite de
13
7.3. QUATION DES ONDES
n U . +g =0 t n do lon dduit la condition aux limites sur :
14
En notant U = [u(x, y, t ), v(x, y, t )] la vitesse moyenne (suivant z) et la densit, le bilan de masse pour le cylindre de volume hdxdy scrit :
(7.9)
Les conditions initiales sont donnes par la dformation initiale w(x, y) et la vitesse de cette dformation. En supposant la vitesse de dformation initiale nulle, on a donc :
On considre que le uide est un liquide incompressible ( = cste), et que la perturbation de la surface libre = h h0 est faible. On peut alors considrer que la rpartition de pression reste hydrostatique :
(x, y, 0) = 0 t
(7.10)
p(x, y, z, t ) = p0 + g (h z)
(7.11)
u v + h0 + h0 = 0 t x y u +g = 0 t x v +g = 0 t y
Dans le cas dun domaine circulaire de rayon r = 1, on peut avantageusement passer en coordonnes polaires (r, ). Le problme modle scrit : Trouver u(r, , t ) tel que :
En drivant la premire quation par rapport t , la seconde par rapport x et la troisime par rapport y, on obtiens lquation de propagation de la perturbation de la surface libre en liminant u et v : (7.8)
(7.12)
2 2 2 gh0 + 2 t x2 y2
=0
Cest une quation des ondes qui traduit la propagation dondes de surface avec une clrit c0 = gh0 . A cette quation, il faut ajouter une condition aux limites sur la frontire du rservoir. La condition physique est la condition de vitesse normale nulle U . n = 0 sur . Pour obtenir une condition sur , on utilise la combinaison suivant n des 2 dernires quations (7.7) :
15
7.3. QUATION DES ONDES
u(r, , t ) = A(r) eIk eI c0t k Z
16
dA d2A +r + (r 2 2 k 2 )A = 0 dr2 dr dont Maple nous fournit la solution gnrale avec la fonction dsolve (ligne 11). Cette solution gnrale est une combinaison linaire de fonctions de Bessel de premire et deuxime espce : BesselJ et BesselY . De ces deux familles de fonctions de Bessel, on ne retient que la famille BesselJ , qui est la seule a avoir une valeur nie (gale 1) en r = 0. La solution lmentaire scrit (ligne 13) Ue = BesselJ (k, r)eIk eI c0t
10
11
12
13
e Cette solution lmentaire doit vrier la condition la limite U r = 0 en r = 1 (ligne 14), ce qui impose pour chaque valeur de k des valeurs de particulires. Les valeurs possibles de sont les racines de la fonction Fk (ligne 16) :
14
15
16
Fk ( ) = BesselJ (k + 1, ) +
17
18
k BesselJ (k + 1, ) On a trac cette fonction pour diffrentes valeur de k sur la gure (7.8). Pour une valeur de k x, on a une innit de racines k, p (cest lquivalent des racines k 2 des fonctions cos x en coordonnes cartsiennes). La solution lmentaire dpend donc de deux paramtres entiers k et p : Ue(k, p) = BesselJ (k, k, p)eIk eI k, p c0t La solution gnrale de lquation des ondes (7.12) est donc une combinaison linaire de ces solutions lmentaires :
19
20
21
22
23
24
25
Uex (r, , t ) =
26
k=0 p=1
(7.13)
27
28
29
o k, p est la pime racine de Fk ( ) = 0. Les coefcients Ck, p permettent Uex de vrier les conditions initiales. A titre dexemple, on a dtermin et trac la solution modale : BesselJ (k, k, p) cos(k ) cos(k, pc0t ) pour les deux cas particuliers :
Marc BUFFAT, UFR Mcanique, UCBLyon
30
> r e s t a r t ; with ( p l o t s ) : # E q u a t i o n d e s o n d e s en p o l a i r e > d i f f ( u ( r , t h e t a , t ) , t $ 2 ) =c0 ^ 2 / r d i f f ( r d i f f ( u ( r , t h e t a , t ) , r ) ,r) + c0 ^ 2 / r ^2 d i f f ( u ( r , t h e t a , t ) , t h e t a $ 2 ) ; > eq :=%: # S o l u t i o n s en v a r i a b l e s s p a r e s de t y p e onde p e r i o d i q u e en t h e t a > u ( r , t h e t a , t ) =A( r ) exp ( I k t h e t a ) exp ( I lam bda c0 t ) ; > s u b s (% , eq ) : s i m p l i f y (%/ exp ( I k t h e t a ) / exp ( I lam bda c0 t ) / c0 ^ 2 ) ; eq1 :=%: > r h s ( eq1 ) l h s ( eq1 ) ; eq2 :=%: > d s o l v e ( eq2 , A( r ) ) ; # Modes p r o p r e s > Ue : = ( r , t h e t a , t ) > B e s s e l J ( k , lam bda r ) exp ( I k t h e t a ) exp ( I lam bda c0 t ) ; > s u b s ( r =1 , d i f f ( Ue ( r , t h e t a , t ) , r ) ) ; # Pour chaque v a l e u r de k , on c a l c u l e l e s r a c i n e s lambda > B e s s e l J ( k +1 , lam bda ) +k B e s s e l J ( k , lam bda ) / lam bda = 0 ; eq3 : = l h s (%) : > p l o t ( { s u b s ( k =0 , eq3 ) , s u b s ( k =1 , eq3 ) , s u b s ( k =2 , eq3 ) } , lam bda =0..20) ; > Um: = ( k , p ) > B e s s e l J ( k , lam bda [ k , p ] r ) exp ( I k t h e t a ) exp ( I lam bda [ k , p ] c0 t ) ; > Uex=sum ( sum ( C[ k , p ] Um( k , p ) , p = 0 . .M) , k = 0 . . N) ; # C o n d i t i o n s i n i t i a l e s p a r t i c u l i e r e s ( a v e c c0 =1) # 1 / mode r a d i a l > lam bda1 : = f s o l v e ( s u b s ( k =0 , eq3 ) , lambda , 1 0 . . 1 2 ) ; > Uex1 : = B e s s e l J ( 0 , lam bda1 r ) c o s ( lam bda1 t ) ; > a n i m a t e 3 d ( [ r c o s ( t h e t a ) , r s i n ( t h e t a ) , Uex1 ] , r = 0 . . 1 , t h e t a = 0 . . 2 Pi , t = 0 . . 2 ( 2 P i / lam bda1 ) , f r a m e s =50) ; # 2 / mode a n g u l a i r e > lam bda2 : = f s o l v e ( s u b s ( k =1 , eq3 ) , lambda , 6 . . 1 0 ) ; > Uex2 : = B e s s e l J ( 1 , lam bda2 r ) c o s ( lam bda2 t ) c o s ( t h e t a ) ; ; > a n i m a t e 3 d ( [ r c o s ( t h e t a ) , r s i n ( t h e t a ) , Uex2 ] , r = 0 . . 1 , t h e t a = 0 . . 2 Pi , t = 0 . . 2 ( 2 P i / lam bda2 ) , f r a m e s =50) ;
(7.14)
17
7.3. QUATION DES ONDES
18
0.4
Fk 0.2
Lambda 10 12
14
16
18
20
0.2
0.4
0.6
Legend
1. 3ime mode radiale (k = 0, p = 3 et 0,3 10, 173468), qui ne dpend donc pas de (lignes 22 24)
On a trac ces deux modes propres sur la gure (7.9), et dans le programme Maple on a lanimation de ces modes avec la commande animate3d .
j+1
ui, j+1 ui+1, j+1
La discrtisation de lquation des ondes (7.11) avec un schma explicite scrit en coordonnes cartsiennes sur un maillage rgulier de pas dx et dy :
y
d
j
ui+1, j+1
dr
ui, j ui+1, j ui, j+1 ui+1, j
+2 n1 n un i, j 2ui, j + ui, j
dt 2
= c2 0 dy2
dr
ri ri+1
rd
ui, j
dx2
(7.15) Cest lextension naturelle du schma explicite 1D ( ?? page ??) du chapitre prcdent. Pour discrtiser lquation en coordonnes polaires (7.15), on discrtise le domaine polaire = [0, 1] [0, 2 ] en (r, ) avec un pas dr et d , ce qui correspond des points sur des rayons et des cercles dans le domaine physique (x, y) (gure 7.10). On note Nr et N le nombre de noeuds suivant r et En notant un i, j = u(idr, jd , ndt ) les valeurs aux noeuds, la discrtisation par diffrences nies explicites de lquation (7.12) scrit :
19
7.3. QUATION DES ONDES
y y u1,3 u1,3 u1,2 u0 u1,1 dr x u1,5 u1,4 u1,4 u1,5
20
dt 2
c2 0
conditions aux limites : A cette quation, on ajoute la condition aux limites du u problme (7.12) en r = 1 : r = 0. Pour imposer cette condition, on utilise une condition miroir qui permet de calculer la valeur inconnue uNr +1, j dans lquation discrte sur uNr , j : u1,6 u1,7 u1,8 (7.17)
u1,6 u1,7
u1,8
A cette condition physique, il faut ajouter des conditions numriques lies la transformation en coordonnes polaires :
1. conditions de priodicit en
En effectuant une rotation des axes (x, y) de 45 degrs, on obtiens une autre quation quivalente :
n n n n +2 n1 un un un 2un 1,2 2u0 + u1,6 1,4 2u0 + u1,8 0 + u0 0 = c2 + 0 2 2 2 dt dr dr
r 0
lim u(r, ) = u0
La premire condition traduit une priodicit en de priode 2 . Elle se traduit au niveau discret par le fait que les quations pour la ligne = 0 correspondent aux inconnues ui,1 et font intervenir des valeurs en = d qui ne sont pas dnies, i.e. un i,0 = u(idr, d ). De mme les quations pour la dernire ligne = 2 d correspondent aux inconnues ui,N et font intervenir des valeurs en = 2 qui ne sont pas dnies, i.e. un i,N +1 = u(idr, 2 ). Les conditions de priodicit permettent dimposer : (7.18)
La valeur de u0 tant unique, on choisit la moyenne de ces quations : 1 8 +2 n + un1 un j=1 un 1 , j 0 un 2 u 8 0 0 0 = 4c2 0 dt 2 dr2
dans les quations pour j = 1 et j = N . La seconde condition est ncessaire, car lquation discrtise (7.16) dgnre en r = 0, de mme que lquation exacte (7.12) cause des termes en 1/r. Pour lever cette dgnrescence en r = 0, on utilise lquation discrtise en coordonnes cartsiennes (7.15). Avec les notations de la gure (7.11) et suivant les axes (x, y), cette quation scrit en r = 0 :
Cette dernire quation peut sinterprter comme un bilan de ux sur un disque de rayon dr/2. En intgrant lquation (7.12) sur ce disque, il vient, aprs utilisation du thorme de Green :
Marc BUFFAT, UFR Mcanique, UCBLyon
soit, de faon gnrale si on a N noeuds dans la direction : N 1 n n +2 n1 j= un 2un 1 u1, j u0 0 + u0 2 N 0 = 4c0 dt 2 dr2
(7.19)
21
7.3. QUATION DES ONDES
dr d 2 u1 i, j = wi, j +
22
dr 2
2u 2 sds = c2 0 t2
u r
On obtiens ainsi la valeur de u1 avec une prcision O(dt 2, dx2 ), identique celle du schma :
dr/2
On approxime chacun de ses termes par diffrences nies. Pour le premier terme, on utilise lapproximation de la drive seconde en temps en r = 0 :
dr 2
2 w c2 1 wi+1, j wi1, j i+1, j 2wi, j + wi1, j 0 dt + (7.21) 2 dr2 ri 2dr 1 wi, j+1 2wi, j + wi, j1 + 2 d 2 ri
+2 n1 un 2un 2u dr2 0 + u0 0 2 rdr t2 dt 2 4 0 et pour le second lapproximation de la drive premire en dr/2 sur chaque rayon dangle j
u r
dr/2
u1, j u0 dr
Ltude de la stabilit et de la consistance est effectue tout dabord sur lquation discrtise en coordonnes cartsiennes (7.15), et nous en dduirons ensuite les proprits pour lquation discrtise en coordonnes polaires (7.16).
u r
dr/2
rd
u1, j u0 dr 2 dr 2 N j=1
En combinant ces deux approximations, on retrouve lquation (7.19), qui permet de calculer lvolution temporelle de la valeur u0 .
tude de la stabilit : Ltude de la stabilit utilise le programme Maple 7.4. On remplace (ligne 12) dans lquation discrtise dnie la ligne 7, la solution approche un i, j par une perturbation, que lon a dcompos en mode de Fourier suivant x et y (ligne 11) :
n I 1 idx I 2 jdy e U pn i, j = e
Aprs simplication, on obtiens une quation du second degr pour le facteur n+1 damplication G = n (ligne 19) : G2 + 2bG + 1 = 0 (7.22) Le coefcient b est simpli (lignes 21 et 22), et sexprime en fonction de 0 dt 0 dt 2 nombres de Courant CFL1 = cdx et CFL2 = cdy et de y1 = sin 1 dx 2 et y2 = sin 2 dy 2 :
2 2 y2 y2 + 2CFL b = 1 + 2CFL 2 2 1 1
condition initiale La rsolution numrique du schma explicite (7.16) ncessite linitialisation de la solution u0 t = 0 et u1 t = dt . On applique la mme dmarche que pour lquation des ondes en 1D (paragraphe ?? page ??). Disposant des deux conditions initiales du problme (7.12), la valeur u0 est donne par la premire condition : (7.20)
u0 i, j = w(idr, jd )
et la valeur de u1 est obtenue partir dun dveloppement limit en temps lordre 2 autour de u0 :
0 u1 i, j = ui, j +
u t
dt +
t =0
2u t2
dt 2 t =0 2
La valeur de
u t
Le produit des racines de lquation (7.22) tant gale 1, la condition de stabilit |G| 1 impose donc que ces racines soient complexes conjugues, i.e. que le discriminant soit ngatif : = b2 1 0 y1 , y2 [1, 1] ce qui conduit la condition (ligne 25 et 26) :
u en fonction du laplacien de w, que lon dislquation exacte pour calculer t2 crtise ensuite par diffrences nies centres :
2u t2
t =0
c2 0 w
23
7.3. QUATION DES ONDES
24
2 2 CFL + CFL 1 1 2
CFL =
c0 dt 1 h
bas sur une longueur caractristique h de la maille diffrence nie dnie par : (7.24)
12 13 14 15 16 17 11
1 1 1 = + h dx dy
h=
dxdy
dx2 + dy2
18
dx . La condition de Si les pas de discrtisation sont gaux (dx = dy), on a h = 2 stabilit est donc plus svre en 2D quen 1D. Par analogie, la condition de stabilit du schma explicite (7.16) en coordonne polaire est aussi la condition de Courant (7.23). Il faut cependant dnir la longueur caractristique h de la maille en coordonne polaire. Cette longueur ne doit pas tre base sur les dimensions dr et d de la maille dans lespace transform, mais sur les dimensions de la maille dr et rd dans lespace physique :
19 20 21 22
h=
23
rdrd
dr2 + (rd )2
La maille dans lespace physique ntant pas constante (elle dpend de r), on doit prendre la plus petite valeur de h dans le maillage, qui est obtenue pour r = dr
24 25 26 27 28 29 30 31
hmin =
dr2 d
dr2 + (drd )2
drd
32 33
c0 dt CFL = 1 drd
34
35 36 37 38
On constate que cette condition en coordonne polaire est beaucoup plus contraignante que la condition (7.23) en coordonnes cartsiennes. Pour un maillage de N points dans chaque direction, il faut choisir un pas en temps dt tel que dt c0 2/N en cartsien et dt c0 /N 2 en polaire.
40
41
42
> r e s t a r t ; with ( p l o t s ) : # E q u a t i o n d e s o n d e s en c a r t e s i e n > d i f f (U( x , y , t ) , t $ 2 ) = c0 ^ 2 ( d i f f (U( x , y , t ) , x$2 ) + d i f f (U( x , y , t ) , y$2 ) ) ; > eq :=%: # Equation D. F . > (U[ i , j , n +1] 2 U[ i , j , n ]+U[ i , j , n 1]) / d t ^2= c0 ^ 2 ( (U[ i +1 , j , n ] 2 U[ i , j , n ]+U[ i 1 , j , n ] ) / dx ^ 2 + (U[ i , j +1 , n] 2 U[ i , j , n ]+U[ i , j 1 , n ] ) / dy ^ 2 ) ; eqh :=%: # E t u d e de s t a b i l i t e > Up : = ( i , j , n ) > P s i [ n ] exp ( I omega [ 1 ] i dx ) exp ( I omega [ 2 ] j dy ) ; > s u b s (U[ i , j , n +1]=Up ( i , j , n +1) ,U[ i , j , n 1]=Up ( i , j , n 1) , U[ i , j , n ]=Up ( i , j , n ) ,U[ i 1 , j , n ]= Up ( i 1 , j , n ) , U[ i +1 , j , n ]=Up ( i +1 , j , n ) ,U[ i , j 1 , n ]= Up ( i , j 1 , n ) , U[ i , j +1 , n ]=Up ( i , j +1 , n ) , eqh ) ; # > r e l 1 : = s i m p l i f y (% exp ( I omega [ 1 ] i dx ) exp ( I omega [ 2 ] j dy ) ) : > s i m p l i f y ( s u b s ( P s i [ n +1]=G P s i [ n ] , P s i [ n 1]= P s i [ n ] / G, r e l 1 G / Psi [n ]) ) ; > c o l l e c t ( d t ^ 2 ( l h s (%) r h s (%) ) ,G) = 0 ; eq3 : = l h s (%) : # c a l c u l du c o e f f i c i e n t de G > c o e f f ( eq3 , G) : expand (%) ; > s u b s ( c o s ( omega [ 1 ] dx ) =1 2 y [ 1 ] ^ 2 , c o s ( omega [ 2 ] dy ) =1 2 y [2]^2 , dx= d t c0 / CFL [ 1 ] , dy= d t c0 / CFL [ 2 ] , % ) : s i m p l i f y (%) ; b :=%/2; # R a c i n e s G c o m p l e x e s c o n j u g u e e s s i D e l t a <0 > D e l t a : = b ^2 1; f a c t o r (%) ; > CFL [ 1 ] ^ 2 y [ 1 ] ^ 2 + CFL [ 2 ] ^ 2 y [ 2 ] ^ 2 < 1 ; # C o n d i t i o n de s t a b i l i t e > CFL [ 1 ] ^ 2 + CFL [ 2 ] ^ 2 < 1 ; c d t s :=%: > s u b s ( CFL [ 1 ] = c0 d t / dx , CFL [ 2 ] = c0 d t / dy , c d t s ) ; > d t c0 s q r t ( 1 / dx ^ 2 + 1 / dy ^ 2 ) <1; # E r r e u r de t r o n c a t u r e > Uex : = ( p , q , r ) >U( x +( p i ) dx , y +( q j ) dy , t +( r n ) d t ) ; > s u b s (U[ i , j , n ]= Uex ( i , j , n ) ,U[ i , j , n 1]=Uex ( i , j , n 1) ,U[ i , j , n +1]= Uex ( i , j , n +1) ,U[ i +1 , j , n ]= Uex ( i +1 , j , n ) ,U[ i 1 , j , n ]= Uex ( i 1 , j ,n) , U[ i , j +1 , n ]= Uex ( i , j +1 , n ) ,U[ i , j 1 , n ]= Uex ( i , j 1 , n ) , l h s ( eqh ) r h s ( eqh ) ) ; r e l 3 :=%: # > U( x , y , t + d t ) = c o n v e r t ( m t a y l o r (U( x , y , t + d t ) , [ d t ] , 8 ) , d i f f ) ; S1 :=%: Marc BUFFAT, UFR Mcanique, UCBLyon > U( x , y , t d t ) = c o n v e r t ( m t a y l o r (U( x , y , t d t ) , [ d t ] , 8 ) , d i f f ) : S2 :=%: > U( x+dx , y , t ) = c o n v e r t ( m t a y l o r (U( x+dx , y , t ) , [ dx ] , 8 ) , d i f f ) : S3 :=%: > U( xdx , y , t ) = c o n v e r t ( m t a y l o r (U( xdx , y , t ) , [ dx ] , 8 ) , d i f f ) : S4 :=%: > U( x , y+dy , t ) = c o n v e r t ( m t a y l o r (U( x , y+dy , t ) , [ dy ] , 8 ) , d i f f ) : S5
25
7.3. QUATION DES ONDES
Programme 7.5 Rsolution numrique de lquation des ondes (7.11)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
26
Erreur de troncature : Le calcul Maple (lignes 32 44 du programme 7.4) fournit lerreur de troncature pour le schma (7.15) en cartsien :
Le schma explicite (7.15) est donc dordre 2 en temps et en espace (i.e. a une prcision en O(dt 2, dx2 , dy2 )). Par analogie, on en dduit que le schma explicite (7.16) est aussi dordre 2 en temps et en espace (i.e. a une prcision en O(dt 2, dr2 , d 2 )). Enn on note que ces schmas explicites (7.15) et (7.16) sont des schmas dispersifs, mais non dissipatifs comme en 1D (puisque le facteur damplication G un module gal 1).
Le programme Matlab (7.5) implmente le schma explicite en cordonnes polaires (7.16). Les paramtres du calcul sont dnies sur les lignes 3 13, avec un CFL dnit par la relation (7.25). Pour tenir compte simplement des conditions de priodicit, la solution approche un i, j est dnie comme un tableau de dimension Nr (N + 1), i.e. avec r variant de 0 (i = 1) 1 (i = Nr ) et de 0 ( j = 1) 2 + d ( j = N + 1). La solution initiale w est dnie sur les lignes 14 21 comme combinaison linaire des 2 modes propres (7.15). Cette solution initiale permet linitialisation des champs U n0 (lignes 24 26). La seconde condition initiale (7.21) est applique lors de la premire itration en temps en notant que cette condition est dans notre cas quivalente lquation aux diffrences (7.16) 1 1 pour n = 1 avec u i, j = ui, j , i.e. lquivalent dune condition miroir linstant initiale. Cette condition peut alors tre implmente en initialisant u0 et u1 avec w, et en calculant u1 la premire itration avec la formule gnrale (7.16), et un coefcient c2 0 divis par deux (ligne 37). Dans les itrations en temps (lignes 34 57), on utilise lquation aux diffrences (7.16) pour les noeuds internes 1 < i < N , 1 < j < N en utilisant la programmation matricielle Matlab (ligne 40) . La condition aux limites en r = 1 fournit la valeur aux noeuds frontires i = N (ligne 45). Les conditions de priodicit fournissent les valeurs aux noeuds frontires j = 1 et j = N + 1 (lignes 49 50). Enn lquation pour les noeuds en r = 0 est crite aux lignes 52 54. Sur la gure (7.12), on a trac la solution calcule au bout dune priode, avec CFL = 0.9, Nr = 80 et N = 50, pour les deux conditions initiales tudies analytiquement au paragraphe 7.3.2 page 14. Elles se comparent parfaitement aux solutions analytiques de la gure (7.9).
% e q u a t i o n d e s o n d e s en p o l a i r e % schema e x p l i c i t e clear ; R1 = 1 ; N t h e t a = 5 0 ; Nr = 8 0 ; d t h e t a =2 p i / ( N t h e t a 1); d r =R1 / ( Nr 1); R = [ 0 : d r : R1 ] ; Theta =[0: d t h e t a :2 pi ] ; % p t s du m a i l l a g e X=R c o s ( T h e t a ) ; Y=R s i n ( T h e t a ) ; % parametre c0 = 1 ; CFL = 0 . 9 ; d t =CFL d r d t h e t a / c0 % cdts i n i t i a l k1 = 0 ; a1 = 1 . 0 ; lam bda1 = f z e r o ( i n l i n e ( 0 b e s s e l j ( 0 , r ) r b e s s e l j ( 1 , r ) ) , 1 0 ) BJ1= i n l i n e ( b e s s e l j ( 0 , r ) , r ) ; k2 = 1 ; a2 = 0 . 5 ; lam bda2 = f z e r o ( i n l i n e ( 1 b e s s e l j ( 1 , r ) r b e s s e l j ( 2 , r ) ) , 1 0 ) BJ2= i n l i n e ( b e s s e l j ( 1 , r ) , r ) ; W=( a1 BJ1 ( lam bda1 R) c o s ( k1 T h e t a ) + . . . a2 BJ2 ( lam bda2 R) c o s ( k2 T h e t a ) ) ; % initialisation Un0= z e r o s ( Nr , N t h e t a + 1 ) ; Un0 ( : , 1 : N t h e t a )=W; Un0 ( : , N t h e t a +1)= Un0 ( : , 2 ) ; Un=Un0 ; Un1=Un ; % noeuds i n t e r n e s I = [ 2 : Nr 1]; J = [ 2 : N t h e t a ] ; RI=R ( I ) o n e s ( 1 , N t h e t a 1); % schema D . F . Tf =2 (2 p i / c0 / lam bda1 ) ; n i t = round ( Tf / d t ) % iteration for i t =1: n i t c o e f = c0 ^2 d t ^ 2 ; i f ( i t ==1) c o e f = c o e f / 2 ; end ; % noeuds i n t e r n e s Un1 ( I , J )=2 Un ( I , J ) Un0 ( I , J ) + . . . ( c o e f / d t h e t a ^ 2 ) ( Un ( I , J +1) 2 Un ( I , J )+Un ( I , J 1 ) ) . / ( RI . ^ 2 ) + . . . ( c o e f / ( 2 d r ) ) ( Un ( I +1 , J ) Un ( I 1 , J ) ) . / RI + . . . ( c o e f / d r ^ 2 ) ( Un ( I +1 , J ) 2 Un ( I , J )+Un ( I 1 , J ) ) ; % C . L . en r =1 Un1 ( Nr , J )=2 Un ( Nr , J ) Un0 ( Nr , J ) + . . . ( c o e f / d t h e t a ^ 2 ) ( Un ( Nr , J +1) 2 Un ( Nr , J )+Un ( Nr , J 1 ) ) / ( R ( Nr ) ) + . . . ( c o e f / d r ^ 2 ) ( Un ( Nr 1 , J ) 2 Un ( Nr , J )+Un ( Nr 1 , J ) ) ; % periodicite Un1 ( 1 : NrUFR ,1)= Un1 ( 1 : Nr , Ntheta ) ; Marc BUFFAT, Mcanique, UCBLyon Un1 ( 1 : Nr , N t h e t a +1)= Un1 ( 1 : Nr , 2 ) ; % C . L . en r =0 Um=sum ( Un ( 2 , 2 : N t h e t a ) ) / ( N t h e t a 1); Um1=2 Un(1 , 1) Un0 ( 1 , 1 ) + ( 4 c o e f / d r ^ 2 ) (Um Un ( 1 , 1 ) ) ; Un1 ( 1 , 1 : N t h e t a +1)=Um1 ; % iteration suivante Un0=Un ; Un=Un1 ;
27
7.3. QUATION DES ONDES
28
0.5
0.8
0.6
0.4
0.2
0.5
Nr=40 Ntheta=25 0.1
0.01
0.2
0.4
0.6
Nr=80 Ntheta=50
1 1
0.009
1 0 0 0.5 0.5 1 1 0.5
0.8
0.5
0.008
1 1
0.5
0.5
0.5
0.5
0.007
0.006
|UUex| 0.05
|U ex|
(a) k=0
(b) k=1
0.005
0.004
0.003
0.002
0.001
0.2
0.4
0.6 t
0.8
1.2
1.4
Pour tester la stabilit du schma, nous avons fait varier le pas en temps pour deux maillages donns : (Nr = 40, N = 25) et (Nr = 80, N = 50) avec la condition initiale suivante :
(a) Nr = 40, N = 25
(b) Nr = 80, N = 50
1 BesselJ (0, 0,3) cos(0,3 c0t ) + BesselJ (1, 1,3) cos( ) cos(1,3 c0t ) 2
10
CFL=0.9 (Ntheta=20)
10
h3
10
2
Err
10
10
10
10
10
10 h
10
Nous avons ensuite calcul lerreur en r = 0 en comparant la solution approche sur laxe u1,1 et la solution exacte uex = cos(c0 0,3t ) sur un temps de lordre de deux priodes 1.4. On a trac ces volutions sur la gure (7.13). On constate bien que la solution diverge ds que le nombre de Courant (7.25) est suprieur ou gale 1. On peut aussi noter que si lon choisit une condition initiale ne dpendant pas de , la solution reste stable pour des CFL beaucoup plus grands (i.e. CFL N ), ce qui montre que linstabilit la plus svre proviens de la discrtisation du terme en . Thoriquement au bout dun nombre trs grand ditrations, les erreurs darrondis devraient pouvoir dstabiliser la solution, mais ici la symtrie des calculs fait que ces erreurs sont indpendantes de et la solution non perturbe reste stable. Pour tudier la prcision du calcul, nous avons calculer lerreur au centre pour diffrents maillages avec un CFL = 0.9 avec la mme condition initiale. La solution au centre tant indpendante de , nous avons uniquement fait varier la discrtisation suivant r en choisissant des valeurs de Nr de 10 640. La taille 1 , et nous avons trac lerreur sur laxe en caractristique du maillage est h N r fonction de h sur la gure (7.14). On constate sur cette gure que lerreur se comporte la limite en O(h2 ), ce qui tait prvue par la thorie. Cela montre que notre condition en r = 0 prserve la prcision dordre 2 du schma.
29
7.4. QUATION DE CONVECTION-DIFFUSION
30
C C C + V1 + V2 t x y
=0
2C 2C + x2 y2
0000000000 1111111111 1111111111 0000000000 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111 0000000000 1111111111
A cette quation il faut ajouter la condition initiale C(x, y, t = 0) = w(x, y) et des conditions aux limites sur les frontires du domaine . On suppose que le polluant se trouve initialement lintrieur du domaine et a pour dimension caractristique (gure 7.15). On distingue les frontires entrantes 0 , i.e. telle que V . n < 0 et les frontires sortantes 1 , i.e. telle que V . n > 0. Si la convection est prpondrante sur la diffusion, le ux entrant sur les frontires 0 est un ux de convection qui apporte du uide non pollu dans le domaine . La condition sur 0 est une condition de Dirichlet C0 = 0. Sur les frontires 1 , le uide transporte le polluant vers lextrieur : on impose alors une condition aux limites de C Neumann n 1 = 0, qui autorise la sortie du polluant du domaine . Pour un domaine carr de dimension H , et une vitesse V avec des composantes positives V1 > 0 et V2 > 0 , la frontire 0 correspond aux deux cots x = 0 et y = 0 et la frontire 1 aux deux autres cots opposs x = H et y = H . En notant = , le problme modle scrit pour un domaine carr de dimension caractristique H : Trouver u(x, y, t ) tel que :
u u u + V1 + V2 t x y
2u 2u + x2 y2
u0 = 0 sur 0 (x = 0, y = 0) , et (
(7.26)
On considre le problme de la dispersion dun polluant la surface dun liquide en mouvement (gure 7.15). Le polluant est miscible dans le liquide, mais plus lger. On suppose que la vitesse du uide est horizontale. On peut alors considrer que le polluant diffuse essentiellement la surface, et ngliger les variations suivant la vertical z. En notant C la fraction massique de polluant et la densit du uide, lquation dquilibre pour C traduit que la variation temporelle de la quantit de polluant Cdxdydz dans un volume lmentaire dxdydz est gale un bilan de ux de C sur les facettes du volume. A travers une facette de surface dS et de normale sortante n , il existe un ux de diffusion .ndS ( est le coefcient de diffusion ) et un ux de convection C V .n dS ( V est la vitesse du uide). Lquation dquilibre scrit :
+ div( V ) = 0 t
C + V . C = div( C) t Compte tenu de lhypothse dindpendance des quantits par rapport z, et en supposant en outre que la densit et le coefcient de diffusion sont constants, il vient :
C C + 2 2
=0
31
7.4. QUATION DE CONVECTION-DIFFUSION
Diffusion convection dune gaussienne Considrons la condition initiale suivante : w(x, y) = e e
xx0 0 yy0 0 2 2
32
On retrouve le temps caractristique de diffusion (relation ?? page ??) calcul pour lquation de la chaleur. Le temps caractristique d vrie une relation du type ( rapprocher de la condition de stabilit ?? page ?? pour une quation de diffusion) : (7.27) u(x, y, t ) = A(t )e
xx0 (t ) 2 yy0 (r )
(7.31)
qui dcrit une tache gaussienne damplitude 1 centre en (x0 , y0 ), de rayon 0 . Sil ny a pas de convection, cette tache diffuse de faon auto-similaire , i.e. son amplitude diminue et son rayon augmente en conservant une forme gaussienne :
d 1 2
Cest le temps caractristique de dcroissance exponentielle des phnomnes de diffusion. Si on considre uniquement la convection, le temps caractristique vaut :
En utilisant la conservation globale de u dans tout le domaine : u(x, y, t ) dxdy = w(x, y) dxdy = cste t
2 A(t ) 2(t ) = 0 4 4
2
Ce temps correspond au temps de transport de la tache par le champ de vitesse sur une distance gale la dimension de la tache. Ce temps caractristique c vrie donc une relation du type ( rapprocher de la condition de stabilit de Courant ?? page ??) : (7.28)
(lintgrale dune gaussienne vaut : e(x/ ) dx = 2 ). On cherche donc une solution de diffusion de lquation (7.26) (avec V = 0) sous la forme :
2
V c 1
u(x, y, t ) =
0 (t )
xx0 (t )
yy0 2 (r )
Pour notre problme, on peut dnir un autre temps caractristique de convection : le temps de sortie s du polluant hors du domaine . Il est bas sur la dimension caractristique L du domaine et vrie : (7.29)
V s 1 L
d (t ) = 2 dt (t )
dont la solution vriant (0) = 0 est :
Enn le rapport entre les temps caractristiques de diffusion d et de convection c est le nombre de Pclet : (7.30) u(x, y, t ) =
(t ) =
2 4 t + 0
d V = = Pe c
qui caractrise limportance relative du terme de convection par rapport au terme de diffusion.
0
2 4 t + 0
xx0
2 4 t +0
yy0
2 4 t +0
(7.33)
33
7.4. QUATION DE CONVECTION-DIFFUSION
sigma0=0.1 kappa=0.01
34
0.8
0.8
0.6
0.6 u
H longueur H = 1, une position initiale x0 = H 4 et y0 = 4 , le temps caractristique de diffusion vaut d 1., celui de convection c 0.1, et le nombre de Pclet Pe 10. Le problme est donc convection dominante. Au bout dun temps T f = 0.5 (T f < s = 1.0), la tache est la frontire du domaine avec une amplitude qui a diminue dun tiers : A(T f ) 0.33333.
0.4
0.4
0.2
0.2
0 0
0.2
0.2 t Legend sigma(t) A(t) 0.4 0.6 0.8 1
0.4
x 0.6
0.8
1 0
0.2
0.4 y
0.6
0.8
Pour rechercher des solutions vriant les conditions aux limites, on dtermine tout dabord les modes propres de diffusion en utilisant la mthode de sparation de variable dcrite au paragraphe ?? page ??. Le calcul est identique, et on montre facilement que les modes propres sont les fonctions suivantes :
(2 p+1) 2L 2
( 2 p + 1) x ( 2q + 1) y sin e 2 L 2 L
(2q+1) 2L
(7.36)
qui vrient les conditions aux limites : u p,q (0, y, t ) = u p,q (x, 0, t ) = 0 (0 ) ,
A(t ) =
(7.34)
2 4 t + 0
La solution gnrale de diffusion est alors une combinaison linaire de ses modes :
u(x, y, t ) =
En prenant en compte la convection par un champ de vitesse sans cisaillement, cette tache gaussienne est transporte sans dformation et diffuse le long des trajectoires du champ de vitesse comme prcdemment. Pour un champ de vitesse constant, les trajectoires sont des droites :
p=0 q=0
p,qu p,q(x, y, t )
u(x, y, t ) =
(7.35)
2 4 t + 0
xx0 V1 t 2
4 t +0
On a trac sur la gure (7.17) le mode p = 1 et q = 1, ainsi que lvolution temporelle de son amplitude pour les mmes paramtres que prcdemment ( = 0.01, L = 1). Sur un temps T f = 0.5, lamplitude de ce mode dcrot de 0, 8. Si on prend en compte la convection dans le cas dun champ de vitesse sans cisaillement, la solution initiale est convecte sans dformation et diffuse le long des trajectoires. Par contre, il nexiste pas de solutions analytiques simples qui vrient les conditions aux limites de (7.26). En considrant une taille de structure = 32 L, le temps caractristique de diffusion vaut d 4.5, le temps caractristique de convection c 0, 2, et le nombre de Pclet Pe 21.
Cette solution est une solution en milieu inni et ne tiens pas compte des conditions aux limites du problme (7.26). Elle constitue cependant une bonne approximation de la solution, si la dimension de la tache 0 est petite devant la dimension L du domaine . On a trac lvolution de cette solution (7.35) sur la gure (7.16) pour = 0.01, 0 = 0.1 et V = [1. , 1.]. Pour ces valeurs des paramtres, un domaine de
35
7.4. QUATION DE CONVECTION-DIFFUSION
36
On va donc tudier dans le paragraphe suivant une mthode alternative : la mthode des directions alternes implicites.
0.95
0.9
0.5
0.85
u0
A(t)
0.8
0.5
Le principe des mthodes des directions alternes implicites, notes ADI (ADI=Alternated Directions Implicited est le sigle classique des directions alternes en anglais), est de dcomposer les oprateurs spatiaux suivant les directions despace x et y. On crit lquation (7.26) sous la forme symbolique suivante : (7.38)
1 0
0.75
0.2
0.4
0.8
0.7
0.6
0.4
0.65
0.8
0.2
(a) t=0
L1 = V1
1 1 n+ 2
2 2 2 , L2 = V2 2 x x y y
(7.39)
(7.26), il scrit pour un maillage cartsien de Nx points suivant x et Ny points suivant y , et de pas dx et dy :
En notant un , un+1 , un+ 2 les solutions au temps t n = ndt , t n+1 = (n + 1)dt et 1 n+ 2 = (n + 1 peuvent scrire de faon t 2 )dt , les dveloppements limites de u symbolique :
1 dt t dt
+1 n un i, j ui, j
dt
V1 = 2 (7.37)
2dx
n un i+1, j ui1, j
un+ 2 = un+ 2 =
1
e2
un = e 2 (L1 +L2) un e 2
dt t
2dx
un+1 = e 2 (L1 +L2 ) un+1 On a utilis dans ces relations le fait que un et un+1 sont solutions de lquation u exacte (7.26) pour remplacer t en fonction de L1 (u) et L2 (u). En combinant ces deux quations, il vient : e 2 (L1 +L2 ) un+1 = e 2 (L1 +L2 ) un En utilisant un dveloppement au premier ordre des exponentielles, 1 dt dt (L1 + L2 ) un+1 = 1 + (L1 + L2 ) un 2 2 on obtiens le schma suivant, dans lequel il suft dinclure lapproximation spatiale des oprateurs L1 et L2 : un+1 un L1 (un+1 ) + L1 (un ) L2 (un+1 ) + L2 (un ) = + dt 2 2 Cest le scham classique de Cranck Nicholson (7.37).
Marc BUFFAT, UFR Mcanique, UCBLyon
dt dt
dt
dx2
V2 2
2dy
n un i, j+1 ui, j1
2dy
dx2
(7.40)
Cest un schma inconditionnellement stable dordre 2 en temps et en espace, i.e. en O(dt 2, dx2 , dy2 ). A chaque itration en temps, on a rsoudre un systme dquations linaire +1 A x = B , de N = Nx Ny inconnues {un i, j }. La matrice A est une matrice pentadiagonale, qui a la mme structure que la matrice du laplacien au paragraphe 7.2.3 page 6. Pour des trs gros maillages, le cot de rsolution de ce systme linaire en utilisant les mthodes de rsolution du paragraphe 7.2.3 page 6 peut devenir rapidement prohibitif.
(7.41)
37
7.4. QUATION DE CONVECTION-DIFFUSION
y
yi+1 un i, j +1 yi+1
38
Pour les schmas ADI, on effectue tout dabord une factorisation formelle dans (7.40) : y
u i, j u i+1, j yi un i, j un i, j 1 yi1 yi u i1, j
e 2 L1 e 2 L2 un+1 = e 2 L1 e 2 L2 un
dt
dt
dt
dt
y
u i1, j
+1 un i, j
u i+1, j u i, j
+1 un i, j 1
1 x x
xi xi+1 xi1
dt L1 2 (7.42) tape 1
dt dt L2 un+1 = 1 + L1 2 2
1+
dt L2 un 2
x
xi1 xi xi+1
x tape 2
Formellement, on a un schma de type Cranck Nicholson dordre 2 mais avec une erreur de troncature diffrente. Pour rsoudre, on introduit la solution intermdiaire u telle que : (7.43)
+1 un i, j ui, j
dt 1 L1 u = 2 dt 1 L2 un+1 = 2 dt /2
dt 1 + L2 un 2 dt 1 + L1 u 2
= V1 V2
u i+1, j ui1, j
+ +
(7.45)
Ces deux quations sont quivalentes lquation (7.42). Pour sen convaincre, dt il suft de multiplier la premire par 1 + dt 2 L1 et la seconde par 1 2 L1 et de les combiner. Lintrt de cette procdure par rapport Cranck Nicholson classique est que dans la premire quation (7.43), on est implicite suivant L1 (i.e. suivant x) et explicite suivant L2 (i.e. suivant y), et vice-versa dans la seconde. La rsolution de ces deux quations sera donc plus facile que la rsolution du schma de Cranck Nicholson (7.41), dans lequel on est implicite suivant les 2 directions L1 et L2 . On discrtise ensuite les oprateurs L1 et L2 avec des diffrences nies centres sur un maillage cartsien de Nx points suivant x et Ny points suivant y , et de pas dx et dy :
Ces quations ADI correspondent deux discrtisations de lquation (7.26) 1 n t n+ 2 avec un pas en temps dt 2 . La premire correspond une discrtisation entre t 1 n + et t 2 avec une implicitation dans la direction x et la seconde une discrtisation 1 entre t n+ 2 et t n avec une implicitation dans la direction y (gure 7.18). La variable
n+ 1
ui+1, j 2ui, j + ui1, j ui+1, j ui1, j + 2dx dx2 ui, j+1 ui, j1 ui, j+1 2ui, j + ui, j1 L2 (ui, j ) = V2 + 2dy dy2
L1 (ui, j ) = V1
2 intermdiaire u i, j corresponds donc une approximation de ui, j . La premire quation (7.44) couple les valeurs inconnues ui, j par ligne (gure 7.18), i.e. les valeurs inconnues sur la ligne j {u i, j }i=1,Nx sont indpendantes des valeurs sur les autres lignes. Elles sont solutions du systme linaire tri-diagonal A 1 x = B 1 de dimension Nx suivant :
..
..
. . . . . .
n u i, j ui, j
dt /2 dy2
= V1
u i+1, j ui1, j
V2
2dy
(7.46)
39
7.4. QUATION DE CONVECTION-DIFFUSION
dy2
V2 1 +2 dy , c2 =
40
avec a1 1 =
a1 2 =
2 dt
2 dt
2 1 dy 2 , c3 =
2 1 + dx 2 , a3 =
dx2
V1 1 +2 dx , et c1 =
A chaque itration en temps, on rsoud Ny systmes tri-diagonaux de rang Nx et Nx systmes tri-diagonaux de rang Ny , ce qui est beaucoup plus efcace que la rsolution dun seul systme linaire de rang Nx Ny . Pour les conditions aux limites, il faut modier la premire et la dernire ligne de ces systmes linaires. Pour les conditions de Dirichlet sur 0 , on modie la premire ligne de A 1 et A 2 :
1 1 2 2 2 A11 , j=1 = 0 , A1,1 = 1 , B1 = 0 et A1, j=1 = 0 , A1,1 = 1 , B1 = 0
Le second membre B 1 peut scrire sous la forme dun produit matrice vecteur 1 B 1 = C 1 {un i, j } avec une matrice C tridiagonale : .. .. . . . 0 0 . . ... ... ... ... . un . . i, j1 un B 1 = 0 c1 c1 c1 0 i, j 1 2 3 . . un .. .. .. . . . i, j+1 . . . . . . .. .. . . . 0 0
(7.48)
Cette condition xe la valeur de la premire ligne de u : {u i,1 }i=1,Nx = 0 et la n+1 n + 1 premire colonne de u : {u1, j } j=1,Ny = 0. Pour les conditions de Neumann sur 1 , on utilise une condition miroir, qui modie la dernire ligne de A 1 et A 2 :
1 1 = a1 AN 1 + a3 x ,Nx1
et
2 2 = a2 AN 1 + a3 y ,Ny1
(7.49)
Pour dterminer les valeurs inconnues u i, j , il faut donc rsoudre Ny systmes linaires tri-diagonaux de dimension Nx . +1 De mme la seconde quation (7.45) couple les valeurs inconnues un i, j par n+1 colonne (gure 7.18), i.e. les valeurs inconnues sur la colonne i {ui, j } j=1,Ny sont indpendantes des valeurs sur les autres colonnes. Elles sont solutions du systme linaire tri-diagonal A 2 x = B 2 de dimension Ny suivant :
..
..
(7.50)
. . . . . .
(7.51) Stabilit et prcision du schma ADI tude de la stabilit : Ltude de la stabilit utilise le programme Maple 7.6. On dnit les deux tapes (7.44 et 7.45) du schma ADI (lignes 6 13), puis on introduit une perturbation U p dcompose en mode de Fourier (ligne 15), que lon introduit dans les deux quations (lignes 16 et 22). On calcul lamplication du mode pour chacune de ces quations : i.e. n pour la premire (ligne 20) et
n+1
avec a2 1 =
dx2
. . 0 0 . n + 1 ... ... ... ... . . ui, j . 1 n+1 2 2 2 0 a1 a2 a3 0 ui, j . . . .. ... ... ... un+1 . i, j+1 . .. .. . . . . 0 0 (7.47) V1 1 +2 dx , c2 =
a2 2 =
2 dt
2 dt
2 2 + dy 2 , a3 =
dy2
V2 1 +2 dy , et c1 =
pour la seconde (ligne 22). Do lon dduit le facteur damplication global du schma G =
n+1 n
2 1 dx 2 , c3 = Le second membre B 2 peut encore scrire sous la forme dun produit matrice vecteur B 2 = C 2 {u i, j } : .. .. . . . 0 0 . . ... ... ... ... . . ui1, j . 2 2 2 2 B = 0 c1 c2 c3 0 ui, j . . u 1, j . . .. ... ... ... i+ . . .. .. . . . 0 0
+1 Pour dterminer valeurs inconnues un i, j , il faut donc rsoudre Nx systmes linaires tri-diagonaux de dimension Ny .
1 dt 2 dt = Vdx , b2 = Vdx .
41
7.4. QUATION DE CONVECTION-DIFFUSION
42
Il est plus petit que 1 puisque a1 et a2 sont positifs. Le schma ADI (7.44 et 7.45) est donc inconditionnellement stable.
10
11
tude de la consistance : Pour tudier la consistance, on utilise le programme Maple 7.7, qui est la suite du programme prcdent 7.7. Pour cela on fait la demi somme des deux quations (7.44 et 7.45) pour obtenir une quation discrte quivalente lquation exacte (7.26) (ligne 3) :
12
13
14
15
+1 n un i, j ui, j
dt V2 2 + +
= V1
u i+1, j ui1, j
2dx
(7.52)
n un i, j+1 ui, j1
16
17
18
2dy
2dy
19
20
21
22
23
+ dy2
24
dy2
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
En comparant cette quation (7.52) au schma de Cranck Nicholson (7.37), on peut retrouver ce dernier en remplaant simplement dans (7.52) les valeurs de n+1 1 n u i, j par la moyenne 2 (ui,, j + ui, j ). Ce schma ADI est donc bien quivalent au schma de Cranck Nicolson. Les valeurs intermdiaires u i, j sont des approxima) dt . tions de la solution t = (n + 1 2 Dans lquation quivalente (7.52), on substitue la solution approche par la solution exacte (lignes 6 15), et on effectue des dveloppements limits autour de 1 u i, j = u(idx, jdy, (n + 2 ))(lignes 18 45). Aprs soustraction de lquation exacte, on obtient lerreur de troncature Et , qui est en O(dt 2, dx2 , dy2 ). Le schma ADI (7.44 et 7.45) est donc consistant avec lquation exacte (7.26), et est dordre 2 en temps et en espace, i.e. en O(dt 2, dx2 , dy2 ).
40
41
42
43
44
45
restart : E q u a t i o n de c o n v e c t i o n d i f f u s i o n d i f f (U( x , y , t ) , t )+ V1 d i f f (U( x , y , t ) , x )+ V2 d i f f (U( x , y , t ) , y )= kappa ( d i f f (U( x , y , t ) , x$2 )+ d i f f (U( x , y , t ) , y$2 ) ) ; eq :=%: Schema ADI (U[ ns , i , j ] U[ n , i , j ] ) / ( d t / 2 ) + V1 (U[ ns , i +1 , j ] U[ ns , i 1 , j ] ) / ( 2 dx )+ V2 (U[ n , i , j +1] U[ n , i , j 1 ] ) / ( 2 dy )= kappa ( ( U[ ns , i +1 , j ] 2U[ ns , i , j ]+U[ ns , i 1 , j ] ) / dx ^ 2 + (U[ n , i , j +1] 2 U[ n , i , j ]+ U[ n , i , j 1 ] ) / dy ^ 2 ) ; eqh1 :=%: > (U[ n +1 , i , j ] U[ ns , i , j ] ) / ( d t / 2 ) + V1 (U[ ns , i +1 , j ] U[ ns , i 1 , j ] ) / ( 2 dx )+ V2 (U[ n +1 , i , j +1] U[ n +1 , i , j 1 ] ) / ( 2 dy )= kappa ( ( U[ ns , i +1 , j ] 2U[ ns , i , j ]+U[ ns , i 1 , j ] ) / dx ^ 2 + (U[ n +1 , i , j +1] 2 U[ n +1 , i , j ]+ U[ n +1 , i , j 1 ] ) / dy ^ 2 ) ; eqh2 :=%: # E t u d e de l a S t a b i l i t e > Up : = ( n , i , j ) > P s i [ n ] exp ( I omega [ 1 ] i dx ) exp ( I omega [ 2 ] j dy ) ; > s u b s (U[ ns , i , j ]= Up ( ns , i , j ) ,U[ n , i , j ]= Up ( n , i , j ) , U[ ns , i +1 , j ]=Up ( ns , i +1 , j ) ,U[ ns , i 1 , j ]=Up ( ns , i 1 , j ) , U[ n , i , j +1]=Up ( n , i , j + 1 ) ,U[ n , i , j 1]=Up ( n , i , j 1) , eqh1 ) : > r e l 1 : = s i m p l i f y (% exp ( I omega [ 1 ] i dx ) exp ( I omega [ 2 ] j dy ) ) : > P s i [ ns ] / P s i [ n ]= s o l v e ( s u b s ( P s i [ ns ]=G P s i [ n ] , r e l 1 ) ,G ) ; r e l 1 1 :=%: # > s u b s (U[ ns , i , j ]= Up ( ns , i , j ) ,U[ n +1 , i , j ]= Up ( n +1 , i , j ) , U[ ns , i +1 , j ]=Up ( ns , i +1 , j ) ,U[ ns , i 1 , j ]= Up ( ns , i 1 , j ) , U[ n +1 , i , j +1]=Up ( n +1 , i , j + 1 ) ,U[ n +1 , i , j 1]=Up ( n +1 , i , j 1) , eqh2 ) : > r e l 2 : = s i m p l i f y (% exp ( I omega [ 1 ] i dx ) exp ( I omega [ 2 ] j dy ) ) : > P s i [ n + 1 ] / P s i [ ns ]= s o l v e ( s u b s ( P s i [ n +1]=G P s i [ ns ] , r e l 2 ) , G ) ; r e l 2 2 :=%: # Facteur d a m p l i f i c a t i o n > G: = r h s ( r e l 1 1 ) r h s ( r e l 2 2 ) ; # E t u d e de chaque t e r m e > A1= r 1 (1 c o s ( omega [ 1 ] dx ) ) ; A2= r 2 (1 c o s ( omega [ 2 ] dy ) ) ; > r e l 1 :={% ,%%}: r e l 1 1 : = { r 1 = kappa d t / dx ^ 2 , r 2 = kappa d t / dy ^ 2 } : > B1=CFL1 s i n ( omega [ 1 ] dx ) / 2 ; B2=CFL2 s i n ( omega [ 2 ] dy ) / 2 ; > r e l 2 :={% ,%%}: r e l 2 2 : = { CFL1=V1 d t / dx , CFL2=V2 d t / dy } : > G = ( ( A1 1)+ I B1 ) / ( ( A1+1)+ I B1 ) ( ( A2 1)+ I B2 ) / ( ( A2+1)+ I B2 ) ; GG: = r h s ( % ) : # Verification > G= s u b s ( r e l 1 , r e l 2 , r e l 1 1 , r e l 2 2 , GG ) : s i m p l i f y ( % ) : r h s (%) l h s ( % ) ; # C a l c u l du c a r r e du m odule de G > GG; > G1 : = ( ( A1 1)+ I B1 ) / ( ( A1+1)+ I B1 ) ; G1M= ( ( A1 1)^2+B1 ^ 2 ) / ( ( A1+1)^ 2+B1 ^ 2 ) ; > G2 : = ( ( A2 1)+ I B2 ) / ( ( A2+1)+ I B2 ) ; G2M= ( ( A2 1)^2+B2 ^ 2 ) / ( ( A2+1)^ 2+B2 ^ 2 ) ; # G1M e t G2M s o n t donc <1 ==> donc s t a b i l i t e
43
7.4. QUATION DE CONVECTION-DIFFUSION
Programme 7.8 Rsolution numrique de lquation (7.27)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
E r r e u r de t r o n c a t u r e d v t de t a y l o r a u t o u r de t =n +1/2 Equation e q u i v a l e n t e 1 / 2 eqh1 + 1 / 2 eqh2 : eqh12 : = l h s (%) r h s ( % ) : s u b s i t u t i o n de l a s o l u t i o n e x a c t e dans c e t t e e q u a t i o n Uex : = ( r , p , q) >U( x +( p i ) dx , y +( q j ) dy , t +( r n 1/2) d t ) ; s u b s (U[ n , i , j ]= Uex ( n , i , j ) , U[ n , i +1 , j ]= Uex ( n , i +1 , j ) ,U[ n , i 1 , j ]= Uex ( n , i 1 , j ) , U[ n , i , j +1]= Uex ( n , i , j + 1 ) ,U[ n , i , j 1]=Uex ( n , i , j 1) , U[ n +1 , i , j ]= Uex ( n +1 , i , j ) , U[ n +1 , i +1 , j ]= Uex ( n +1 , i +1 , j ) ,U[ n +1 , i 1 , j ]= Uex ( n +1 , i 1 , j ) , U[ n +1 , i , j +1]= Uex ( n +1 , i , j + 1 ) ,U[ n +1 , i , j 1]=Uex ( n +1 , i , j 1) , U[ ns , i , j ]= Uex ( n + 1 / 2 , i , j ) , U[ ns , i +1 , j ]= Uex ( n + 1 / 2 , i +1 , j ) ,U[ ns , i 1 , j ]= Uex ( n + 1 / 2 , i 1 , j ) , U[ ns , i , j +1]= Uex ( n + 1 / 2 , i , j + 1 ) ,U[ ns , i , j 1]=Uex ( n + 1 / 2 , i , j 1) , eqh12 ) ; eqh3 :=%: # D e v e l o p p e m e n t de T a y l o r a u t o u r de t =n +1/2 > k :=6: > U( x , y , t d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , y , t d t / 2 ) , [ d t ] , k ) , d i f f ) : S1 :=%: > U( x , y+dy , t d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , y+dy , t d t / 2 ) , [ dy , d t ] , k ) , d i f f ) : S2 :=%: > U( x , ydy , t d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , ydy , t d t / 2 ) , [ dy , d t ] , k ) , d i f f ) : S3 :=%: > U( x+dx , y , t d t / 2 ) = c o n v e r t ( m t a y l o r (U( x+dx , y , t d t / 2 ) , [ dx , d t ] , k ) , d i f f ) : S4 :=%: > U( xdx , y , t d t / 2 ) = c o n v e r t ( m t a y l o r (U( xdx , y , t d t / 2 ) , [ dx , d t ] , k ) , d i f f ) : S5 :=%: > U( x , y+dy , t )= c o n v e r t ( m t a y l o r (U( x , y+dy , t ) , [ dy ] , k ) , d i f f ) : S6 :=%: > U( x , ydy , t )= c o n v e r t ( m t a y l o r (U( x , ydy , t ) , [ dy ] , k ) , d i f f ) : S7 :=%: > U( x+dx , y , t )= c o n v e r t ( m t a y l o r (U( x+dx , y , t ) , [ dx ] , k ) , d i f f ) : S8 :=%: > U( xdx , y , t )= c o n v e r t ( m t a y l o r (U( xdx , y , t ) , [ dx ] , k ) , d i f f ) : S9 :=%: > U( x , y , t + d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , y , t + d t / 2 ) , [ d t ] , k ) , d i f f ) : S10 :=%: > U( x , y+dy , t + d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , y+dy , t + d t / 2 ) , [ dy , d t ] , k ) , d i f f ) : S11 :=%: > U( x , ydy , t + d t / 2 ) = c o n v e r t ( m t a y l o r (U( x , ydy , t + d t / 2 ) , [ dy , d t ] , k ) , d i f f ) : S12 :=%: > U( x+dx , y , t + d t / 2 ) = c o n v e r t ( m t a y l o r (U( x+dx , y , t + d t / 2 ) , [ dx , d t ] , k ) , d i f f ) : S13 :=%: > U( xdx , y , t + d t / 2 ) = c o n v e r t ( m t a y l o r (U( xdx , y , t + d t / 2 ) , [ dx , d t ] , k ) , d i f f ) : S14 :=%: # s u b s t i t u t i o n dans l q u a t i o n d i s c r e t e e q u a t i o n e x a c t e > s u BUFFAT, b s ( S1 , S2 , S3 , S4 , S5 , S6 , S7 , S8 , S9 , S10 , S11 , S12 , S13 , S14 , eqh3 ) Marc UFR Mcanique, UCBLyon ( l h s ( eq ) r h s ( eq ) ) : > s i m p l i f y ( % ) : c o l l e c t (% ,{ d t , dx , dy } ) ; # Schema d o r d r e 2 en d t , dx e t dy
% r e s o l u t i o n ADI clear % maillage L = 1 ; H= 1 ; Nx = 5 1 ; dx=L / ( Nx 1); X= [ 0 : dx : L ] ; Ny = 5 1 ; dy=H / ( Ny 1); Y= [ 0 : dy :H ] ; % champ v i t e s s e v1 = 1 ; v2 = 1 ; % parametres kappa = 0 . 0 1 ; d t = 0 . 0 0 1 ; Tf = 0 . 5 ; n i t = round ( Tf / d t ) % champ i n i t i a l d e l t a = ( 0 . 1 ) ^ 2 ; x0=L / 4 ; y0=H / 4 ; Ui= exp ( (Xx0 ) . ^ 2 / d e l t a ) exp ( (Yy0 ) . ^ 2 / d e l t a ) ; Un=Ui ; Us=Ui ; Un1=Ui ; % m a t r i c e s 3D I 1 = o n e s ( 1 , Nx ) ; I 2 = o n e s ( 1 , Ny ) ; A1 =[ kappa / dx^2 v1 / ( 2 dx ) ; 2 / d t +2 kappa / dx ^ 2 ; . . . kappa / dx ^2+ v1 / ( 2 dx ) ] I 1 ; C1 =[ kappa / dy ^2+ v2 / ( 2 dy ) ; 2 / d t 2 kappa / dy ^ 2 ; . . . kappa / dy^2 v2 / ( 2 dy ) ] I 1 ; A2 =[ kappa / dy^2 v2 / ( 2 dy ) ; 2 / d t +2 kappa / dy ^ 2 ; . . . kappa / dy ^2+ v2 / ( 2 dy ) ] I 2 ; C2 =[ kappa / dx ^2+ v1 / ( 2 dx ) ; 2 / d t 2 kappa / dx ^ 2 ; . . . kappa / dx^2 v1 / ( 2 dx ) ] I 2 ; % C . L de D i r i c h l e t en i =1 j =1 A1 ( : , 1 ) = 0 ; A1 ( 2 , 1 ) = 1 ; C1 ( : , 1 ) = 0 ; A2 ( : , 1 ) = 0 ; A2 ( 2 , 1 ) = 1 ; C2 ( : , 1 ) = 0 ; % C . L de Neumann s u r l e s f r o n t i e r e s i =Nx j =Ny A1 ( 1 , Nx)=A1 ( 1 , Nx)+A1 ( 3 , Nx ) ; A1 ( 3 , Nx ) = 0 ; A2 ( 1 , Ny)=A2 ( 1 , Ny)+A2 ( 3 , Ny ) ; A2 ( 3 , Ny ) = 0 ; % i t e r a t i o n s en t e m p s for i t =1: n i t % 1 e r e e t a p e ADI Us ( 1 : Nx , 1 ) = 0 ; f o r j = 2 : Ny1 B1=C1 ( 1 , 1 : Nx ) . Un ( 1 : Nx , j 1)+C1 ( 2 , 1 : Nx ) . Un ( 1 : Nx , j ) + . . . C1 ( 3 , 1 : Nx ) . Un ( 1 : Nx , j + 1 ) ; Us ( 1 : Nx , j )= t r i d i a g ( A1 , B1 ) ; end ; B1=C1 ( 2 , 1 : Nx ) . Un ( 1 : Nx , Ny ) + ( C1 ( 1 , 1 : Nx ) + . . . C1 ( 3 , 1 : Nx ) ) . Un ( 1 : Nx , Ny 1); Us ( 1 : Nx , Ny)= t r i d i a g ( A1 , B1 ) ; % 2 nd e t a p e ADI Un1 ( 1 , 1 : Ny ) = 0 ; f o r i = 2 : Nx1 B2=C2 ( 1 , 1 : Ny ) . Us ( i 1 , 1:Ny ) + C2 ( 2 , 1 : Ny ) . Us ( i , 1 : Ny ) + . . . C2 (3 ,1 : Ny ) . Us ( i + 1 , 1 : Ny ) ; Marc BUFFAT, UFR Mcanique, UCBLyon Un1 ( i , 1 : Ny)= t r i d i a g ( A2 , B2 ) ; end ; B2=C2 ( 2 , 1 : Ny ) . Us ( Nx , 1 : Ny ) + . . . ( C2 ( 1 , 1 : Ny)+ C2 ( 3 , 1 : Ny ) ) . Us ( Nx 1 , 1:Ny ) ; Un1 ( Nx , 1 : Ny)= t r i d i a g ( A2 , B2 ) ; % iteration suivante Un=Un1 ;
45
7.4. QUATION DE CONVECTION-DIFFUSION
10
ADI exacte
10
2
2
46
0.98
0.96
0.94
10
3
0.5
3
0.92
Err 10
0.88
10
4
0.5
Err
0.9
0.86
h2
1 0
0.84
0.2
0.4
0.8
0.82
4
5
0.6
0.6
0.8
0.4
0.2
10 10 dt
3
10
10
10
10
10
10 h
0.8
0.8
0.8
0.7
0.7
0.7
0.6
0.6
0.6
0.5
0.5
0.5
0.4
0.4
0.4
0.3
0.3
0.3
0.2
0.2
0.2
0.1
0.1
0.1
Les paramtres du calcul sont dnis aux lignes 4 10. Les matrices tridiagonales sont construites sur les lignes 17 24, puis on applique les conditions aux limites (lignes 26 30). La boucle en temps (lignes 32 55) inclus les deux tapes ADI et utilise la fonction tridiag ( ?? page ??) pour la rsolution des systmes linaires tridiagonaux.
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
(a) t = 0
(b) t = 0.25
(c) t = 0.5
F IG . 7.21 Iso-valeurs de la solution (cas de convection-diffusion) vitesse de convection non nulle (V1 = V2 = 1). Ce cas correspond un nombre de Pclet Pe = 200. Les iso-valeurs de la solution sont traces sur la gure (7.21). On note la convection sans dformation de la solution initiale, ce qui conrme que la condition aux limites sur 1 autorise la sortie des structures hors du domaine. On a aussi compar lvolution temporelle du maximum de la solution exacte de diffusion et du maximum de la solution calcule, que lon a trac sur la gure (7.22a). On vrie ainsi que la dcroissance de la solution est une dcroissance visqueuse. Nous avons ensuite tudi linuence du pas dintgration en temps dt , en traant sur la gure (7.22b) lcart en fonction de dt entre le maximum de la solution exacte de diffusion et le maximum de la solution calcule. On constate que cet cart crot rapidement en dessus dune valeur dt = 0.1. Cette valeur est justement de lordre de grandeur du temps caractristique de convection c 0.2. En conclusion sur cette simulation, on note que le choix des paramtres numriques a t x par la physique du problme, et non par des conditions numriques de stabilit : 1. la maillage Nx = Ny = 51 permet de dcrire nement la condition initiale
Marc BUFFAT, UFR Mcanique, UCBLyon
Mode propre de diffusion : Pour valider ce programme, nous avons tout dabord simuler la diffusion du mode propre (7.36) p = 1 et q = 1 avec un maillage de Nx = Ny = 51 points dans chaque direction et un paramtre = 0.01. La solution calcule au bout dun temps T f = 0.5 avec dt = 0.01 est trace sur la gure (7.19). Lallure de la solution (gure 7.19a) concide bien avec la solution exacte (gure 7.17a) , ce que conrme le trac de lvolution temporelle de la solution au point x = 1, y = 1 compare la solution exacte (gure 7.19b). Pour tester la prcision dintgration en temps du schma, nous avons calculer lerreur au point (x = 1, y = 1) au bout du temps T f = 4 (de lordre du temps caractristique de diffusion), en fonction du pas dintgration en temps dt . Le rsultat de la gure (7.20a) montre que pour les pas en temps choisis lerreur est quasiment indpendante du pas en temps dt , et est donc essentiellement une erreur de discrtisation spatiale. On note que les pas en temps choisis sont tels que le pas en temps est beaucoup plus faible que le temps caractristique de diffusion : dt d 4.5 Nous lavons vri en faisant varier le nombre de points du maillage de Nx = Ny = 11 Nx = Ny = 101 avec un pas en temps dt = 0.1 x. Lvolution de lerreur en fonction du pas de discrtisation spatiale h = dx = dy est trace sur la gure (7.20b), et on constate que lerreur dcrot en O(h2 ). Pour cette condition initiale, nous avons aussi fait une simulation avec une
47
7.4. QUATION DE CONVECTION-DIFFUSION
1
0.05 Peh=2 Peh=20
48
ADI exacte
0.9 0.9
0.98
0.96
0.435
0.8
0.8
0.94
0.43
0.7
0.7
0.92
U 0.05
0.405 0.425
0.6
0
0.6
0.5
0.5
0.9
0.42 Err
0.4
0.4
0.88
0.3
0.415
0.3
0.86
0.2
0.41
0.2
0.84
0.1 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0
0.82
0.1
0.2
0.3
0.4
0.5 x
0.6
0.7
0.8
0.9
0.8
0.4 3 10
2
0
10 dt 10
1
0.1
0.2
0.3
0.4
0.5
h = 20 (a) isovaleurs Pe
0.9
h Pe =
0.8
0.8
0.7
0.6
0.6
0.4
0.5
0.2
0 0
0.4
0.2
0.4
0.3
0.6
0.8
0.8
0.6
0.4
0.2
(b) Amplitude
Vh h = 20 au lieu de Ph = 2 avec la valeur de prcdente. Sur le trac des vaut Pe e iso-valeurs (7.24a), on constate lapparition de lgres oscillations, caractrises h=2 par la prsence de nombreuses lignes iso-valeurs u = 0, qui nexistent pas Pe (gure 7.24b). Le trac dun prol x = 0.75 (gure 7.24c) montre bien lapparition dune oscillation numrique au pied de la tache gaussienne. Ces oscillations numriques sont de mme nature que celles tudies au paragraphe ?? page ?? du h devient plus chapitre prcdent. Elles apparaissent ds que le Pclet de maille Pe grand que 2 et indiquent que le maillage nest plus sufsamment n pour capter la solution de convection avec ce schma centr.
Convection dune gaussienne : Le second cas de calcul correspond la condition initiale gaussienne (7.31), avec les mmes paramtres quau paragraphe 7.4.2 page 33. Pour un maillage Nx = Ny = 51 et un pas en temps dt = 0.01, on a trac sur la gure (7.23a) la solution t = 0 et t = 0.5. Cette solution se compare trs bien avec la solution exacte trace sur la gure (7.16). On a aussi compar lvolution temporelle de lamplitude de la tache gaussienne calcule avec le schma ADI avec lexpression analytique (7.34). Ces deux courbes concident, ainsi que le montre la gure (7.23b). Nous avons effectu une seconde simulation avec un coefcient de diffusion plus petit = 0.001. Dans ce cas, la solution numrique prsente des oscillations (gure 7.24). Pour cette valeur de , le nombre de Pclet de maille :
Marc BUFFAT, UFR Mcanique, UCBLyon