28.01.2014 Views

Méthodes numériques pour des systèmes hyperboliques avec terme ...

Méthodes numériques pour des systèmes hyperboliques avec terme ...

Méthodes numériques pour des systèmes hyperboliques avec terme ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.6. Schémas <strong>numériques</strong> existants<br />

tel-00814182, version 1 - 16 Apr 2013<br />

la valeur moyenne de la solution sur l’intervalle C j .<br />

En intégrant (2.68) sur la maille C j , cette moyenne vérifie l’équation différentielle du premier<br />

ordre suivante :<br />

∂ t ū j (.,t) = − a [ ]<br />

u(x<br />

∆x j+<br />

1,t)−u(x 2 j−<br />

1,t)<br />

. (2.70)<br />

2<br />

Pour connaître ∂ t ū j (.,t), il faut donc évaluer u sur les interfaces x j+<br />

1 et x<br />

2 j−<br />

1 .<br />

2<br />

Soit R j (x) une approximation polynomiale de degré r −1 de la solution u(x,t) sur la maille C j .<br />

Sur l’interfacex j+<br />

1 , on a alors deux approximations de la solution :R j (u,x<br />

2<br />

j+<br />

1) etR j+1 (u,x<br />

2 j+<br />

1).<br />

2<br />

On définit ensuite un flux lipschitzien monotone ˜h(.,.) croissant par rapport à sa première variable<br />

et décroissant par rapport à la deuxième. On peut considérer par exemple le flux d’Engquist-Osher.<br />

Ainsi, le flux au(x j+<br />

1,t) est approché par ˜h(R j (u,x<br />

2<br />

j+<br />

1),R j+1 (u,x<br />

2 j+<br />

1)). On peut donc approcher<br />

l’équation (2.70) par :<br />

2<br />

∂ t ū j (.,t) ≃ − a [˜h(Rj (ū,x<br />

∆x j+<br />

1),R j+1 (ū,x<br />

2 j+<br />

1))−˜h(R j (ū,x<br />

2 j−<br />

1<br />

2<br />

On considère ici le flux du schéma décentré amont :<br />

{<br />

b 1 si a > 0,<br />

˜h(b 1 ,b 2 ) =<br />

b 2 sinon.<br />

La fonction L j <strong>pour</strong> a > 0 est donc :<br />

L j (ū) = − a<br />

∆x<br />

[<br />

]<br />

R j (ū,x j+<br />

1)−R j−1 (ū,x<br />

2 j−<br />

1)<br />

.<br />

2<br />

]<br />

),R j−1 (ū,x j−<br />

1))<br />

= L j (ū).<br />

2<br />

(2.71)<br />

Une fois la fonction L j définie sur chaque cellule C j du maillage, une approximation d’ordre r<br />

(r +1 sur les nœuds du maillage) en espace est donnée par la solution de l’équation différentielle<br />

du premier ordre (2.71). Pour une approximation d’ordre élevé en temps, il faut alors choisir une<br />

méthode d’ordre r + 1, comme par exemple le schéma Runge-Kutta TVD développé par Shu et<br />

Osher dans [94]. Le schéma correspondant d’ordre 3 (r = 2) est donné par :<br />

ū (0)<br />

j<br />

= ū n j ,<br />

ū (1)<br />

j<br />

= ū (0)<br />

j<br />

+∆tL j (ū (0) ),<br />

ū (2)<br />

j<br />

= 3 4ū(0)<br />

j<br />

+ 1 4ū(1)<br />

j<br />

+ ∆t<br />

4 L j(ū (1) ),<br />

ū (n+1)<br />

j<br />

= 1 3ū(0)<br />

j<br />

+ 1 3ū(2)<br />

j<br />

+ ∆t<br />

3 L j(ū (2) ).<br />

Le schéma d’ordre 4 (r = 3) est présenté par Gottlieb et Shu dans [65] :<br />

ū (0)<br />

j<br />

= ū n j ,<br />

ū (1)<br />

j<br />

= ū (0)<br />

j<br />

+ 1 2 ∆tL j(ū (0) ),<br />

ū (2)<br />

j<br />

= 649<br />

1600ū(0)<br />

j<br />

− 10890423<br />

25193600 ∆tL j(ū (0) )+ 951<br />

1600ū(1)<br />

j<br />

+ 5000<br />

7873 ∆tL j(ū (1) ),<br />

ū (3)<br />

j<br />

= 2500000ū(0) 53989<br />

j<br />

− 102261<br />

5000000 ∆tL j(ū (0) )+ 20000000ū(1) 4806213<br />

j<br />

− 5121<br />

20000 ∆tL j(ū (1) )+ 23619<br />

32000ū(2)<br />

j<br />

+ 7873<br />

10000 ∆tL j(ū (2) ),<br />

ū (n+1)<br />

j<br />

= 1 5ū(0)<br />

j<br />

+ ∆t<br />

10 L j(ū (0) )+ 6127<br />

30000ū(1)<br />

j<br />

+ ∆t<br />

6 L j(ū (1) )+ 7873<br />

30000ū(2)<br />

j<br />

+ 1 3ū(3)<br />

j<br />

+ ∆t<br />

6 L j(ū (3) ).<br />

Il reste alors à définir une procédure de reconstruction du polynôme R afin qu’ils vérifient les<br />

propriétés suivantes :<br />

71

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!