Sunteți pe pagina 1din 21

Rezolvarea ecuatiilor cu derivate partiale de

ordinul I
Aplicatie
x  [ xa , xb ]
u u
c 0 t  [tinitial , t final ]
t x
Conditia initiala u ( x, 0)  f ( x)

Conditia pe frontiera u ( xa , t )  g (t ) pentru (c  0)

Punctele spatilale sunt distribuite unifom pe [xA,xB] pentru i=1..Nx (Nx=4)


Punctele temporare sunt distribuite unifom pe [tinitial,tfinal] pentru n=0..Nt (Nt=2)

Calculati soluția folosind schemele: Upwind, Lax-Wendroff si MacCormack

Atenție!
Pentru schemele Lax-Wendroff si MacCormack, ultimul punct din grilă se
calculează cu o schemă Upwind
Rezolvarea ecuatiilor cu derivate partiale de
ordinul I

Ecuatia de advectie
Domeniul de calcul
u u x  [ xa , xb ]
c 0
t x t  [tinitial , t final ]

Conditia initiala (spatiala t=tinitial)


u ( x, tinitial )  f ( x)

Conditia pe frontiera

c  0  u ( xa , t )  g (t ) sau c  0  u ( xb , t )  g (t )

Conditie frontiera din stanga Conditie frontiera din dreapta


Ecuatia de advectie

Solutia analitica in cazul in care c este o constanta

u s ( x, t )  f ( x  c  t )

notatie z  x  c t

u f z f u u
  ( c ) c 0
t z t z t x

u f z f
 
x z x z
f f
c c 0
z z
Ecuatia de advectie
Determinarea solutie numerice
I. Discretizarea domeniului
Domeniul spatial

xb  xa
x  xi  xa  x (i  1) i  1, N x
Nx 1

Domeniul temporar

t final  tinitial
t  t n  tinitial  t  n n  0, N t
Nt
Ecuatia de advectie
Determinarea solutie numerice

II. Aplicarea unei scheme numerice de discretizare


Schema numerica Upwind
u u
u u
n n 1
u u n
c 0
 i
 i i
t x
t xi , t n t t
c t n
u u
n
u u
n n
uin1  uin  (ui  uin1 )
 i
 i i 1
x
x xi , t n x x

Conditia de stabilitate c t
Notatie u  u ( xi , t )
n n CFL  1
i x
Courant Friedrichs Lewy
Ecuatia de advectie

Schema numerica Upwind (explicita) Schema este echivalenta cu


c t n ct n 1 n 1
uin1  uin  (ui  uin1 ) CFL  1 uin  uin 1  (ui  ui 1 )
x x
Schema centrata (explicita)
c t n
uin1  uin  (ui 1  uin1 ) instabila
2 x
Schema centrata (implicita)
ct n1 n1
uin1  uin  (ui 1  ui 1 ) neconditionat stabila
2 x
Schema Lax-Wendroff (explicita)
2
c t n 1  c t  n CFL  1
uin1  uin  (ui 1  uin1 )    (ui 1  2ui  ui 1 )
n n

2 x 2  x 
Ecuatia de advectie
Schema numerica Lax-Friedrichs
1 n 1 c t n
uin 1  (ui 1  uin1 )  (ui 1  uin1 ) CFL  1
2 2 x

Schema Richtmyer
1 n c t n
uin 1/ 2  (ui 1  uin1 )  (ui 1  uin1 )
2 4 x CFL  2
ct n 1/ 2
uin 1  uin  (ui 1  uin11/ 2 )
2 x
Schema MacCormack
c t n
ui*  uin  (ui 1  uin )
x
1 c t * * CFL  1
uin 1  (uin  ui* )  (ui  ui 1 )
2 2 x
Ecuatia de advectie
Schema centrata (implicita)
ct n1 n1
uin1  uin  (ui 1  ui 1 ) neconditionat stabila
2 x
uin 1  0.5  CFL  uin11  0.5  CFL  uin11  uin i  2, N  1

xN x 1
Schema nu poate fi aplicata in punctul i = Nx , nu exista punctul

u Nn x 1  0.5  CFL  u Nn x 11  0.5  CFL  u Nn x 11  u Nn x u Nn x 11  u ( xN x 1 , t n 1 )

Trebuie sa aplicam o alta schema numerica.


Se poate aplica schema upwind (implicita) pentru ultimul punct i=Nx.
ct n 1
u Nn x 1  uin  (u N x  u Nn x 11 )  (1  CFL)  u Nn x 1  CFL  u Nn x 11  u Nn x
x

1 2 3 i-1 i i+1 Nx
Ecuatia de advectie
Schema centrata (implicita)
uin 1  0.5  CFL  uin11  0.5  CFL  uin11  uin

Schema upwind (implicita) pentru ultimul punct i=Nx


n 1 n 1
(1  CFL )  u Nx  CFL  u Nx 1  u n
Nx

 1 0 0 ... 0  u1n 1   g (t n 1 ) 
 0.5CFL 1 0.5CFL ... 0   n 1   n 
   u 2   u2 
 0 0.5CFL 1 ... 0  u3n 1    u3n 
    
 ...      
 0 0 0 CFL 1  CFL  u Nx
n 1   un 
  Nx 
Ecuatia de advectie
Schema centrata combinata (implicit-explicita)
u u
c 0   [0,1]
t x
uin 1  uin (uin11  uin11 ) (uin1  uin1 )
c  (1   )c 0
t 2 x 2 x
ct n 1 n 1 c t n
uin 1  uin   (ui 1  ui 1 )  (1   ) (ui 1  uin1 )
2 x 2 x
CFL n 1 CFL n
uin 1  uin   (ui 1  uin11 )  (1   ) (ui 1  uin1 )
2 2
uin 1  0.5    CFL  (uin11  uin11 )  uin  0.5  (1   )  CFL  (uin1  uin1 ) i  2, N  1

Se poate aplica schema upwind combinata pentru ultimul punct i=Nx.


ct n 1 n 1 c t n
u Nn x 1  uin   (u N x  u N x 1 )  (1   ) (u N x  u Nn x 1 )
x x
 (1   CFL)  u Nn 1   CFL  u Nn 11  u Nn  (1   )CFL(u Nn  u Nn 1 )
x x x x x
Ecuatia de advectie
Schema centrata combinata
uin 1  0.5    CFL  (uin11  uin11 )  uin  0.5  (1   )  CFL  (uin1  uin1 )

Schema upwind combinata pentru ultimul punct i=Nx


(1   CFL)  u Nn x 1   CFL  u Nn x 11  u Nn x  (1   )CFL (u Nn x  u Nn x 1 )

 1 0 0 ... 0  u1n 1   g (t n 1 ) 
 0.5 CFL 1 0.5 CFL ... 0   n 1  u n  0.5  (1   )  CFL  (u n  u n ) 
  u2   2 3 1 

 0 0.5 CFL 1 ... 0  u3   u3  0.5  (1   )  CFL  (u4  u2n ) 


n 1 n n

    
 ...      
  CFL 1   CFL  u Nx
n 1   n 
  u Nx  (1   )CFL(u N x  u N x 1 ) 
n n
0 0 0
Algoritmul Thomas
Sistem tridiagonal

 d1 c1 0 0 0   x1   b1 
a d 2 c2 0 0   x2  b2 
 1
0 a2 d 3  0   x3   b3 
    
0 0   cn 1       
 0 0 0 an 1 d n   xn  b5 
Algoritmul Thomas

Eliminarea înainte
 ai 
di  di    ci 1
 di 1 
 ai 
bi  bi    bi 1 2in
 di 1 
Retrosubstituţia
bn
xn 
dn
1
xi   bi  ci xi 1  dacă i  n  1, n  2,...,1
di
Rezolvarea ecuatiilor cu derivate partiale de
ordinul I

Exemplu pentru ecuatia de advectie


u u Domeniul de calcul
c 0
t x x  [10,10]
c  0.1 x  0.1 t  [0,  ]

Conditia initiala
x2

u ( x,0)  e 2
Solutia analitica
( x ct ) 2
Conditia pe frontiera 
u ( x,0)  e 2

u ( 10, t )  0
Ecuatia de advectie

Schema numerica Upwind


Ecuatia de advectie

Schema numerica centrata


Formule de calcul
Ecuatia de advectie
u u
c 0
t x
xb  xa
xi  xa  x (i  1) i  1, N x x 
Nx 1

u ( x, 0)  f ( x) u ( xi , 0)  ui0  f ( xi )  fi  usa ( xi , t 0 ) (t 0  tinitial )

Pentru t0
x1  xa u10  f1  usa ( x1 , t 0 )
x2  xa  x u20  f 2  usa ( x2 , t 0 )
x3  xa  2x u30  f 3  usa ( x3 , t 0 )

x4  xa  3x u40  f 4  usa ( x4 , t 0 )


Ecuatia de advectie
Schema Upwind
n 1 c t n n 1 CFL 
ct
1
u i u 
n
i (ui  uin1 ) sau u i  u  CFL(u  u )
i
n n
i
n
i 1 x
x

Caz I: c  0 u ( xa , t )  g (t ) u ( x1 , t n )  u1n  g (t n )  g n  usa ( x1 , t n )


Caz II: c  0 u ( xb , t )  g (t ) u ( xN x , t n )  u Nn x  g (t n )  g n  usa ( xN x , t n )

Avem c>0 CazI t  0, N t t n  t 0  nt (t 0  tinitial )


Pentru t1
u11  g 1  g (t1 )
u12  u20  CFL(u20  u10 )
u31  ...
u14  ...
Pentru t2
u12  ...
...
Ecuatia de advectie
Schema Lax Wendroff
c t
uin 1  uin  0.5CFL(uin1  uin1 )  0.5CFL2 (uin1  2uin  uin1 ) CFL  1
x

c  0 u ( xa , t )  g (t ) u ( x1 , t n )  u1n  g (t n )  usa ( x1 , t n )

Pentru ultimul punct din grilă se calculează cu schema UPWIND

Pentru t1
u11  g 1  g (t1 )
u12  u20  0.5CFL (u30  u10 )  0.5CFL2 (u30  2u20  u10 )
u31  ...
u14  u40  CFL(u40  u30 ) (upwind)

Pentru t2
u12  ...
...
Ecuatia de advectie
Schema MacCormack
c t
ui*  uin  CFL(uin1  uin ) CFL  1
x
uin 1  0.5(uin  ui* )  0.5CFL(ui*  ui*1 )

c  0 u ( xa , t )  g (t ) u ( x1 , t n )  u1n  g (t n )  g n  usa ( x1 , t n )
*
Pentru ultimul punct din grilă ui se calculează cu schema Upwind

Pentru t1
u1*  g 1  g (t1 )
u2*  u20  CFL(u30  u20 )
u3*  ...
u4*  u40  CFL(u40  u30 ) (upwind)

u11  g 1  g (t1 )

u12  0.5(u20  u2* )  0.5CFL(u2*  u1* )


...

S-ar putea să vă placă și