Schéma de Lax-Wendroff

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Ébauche

Comparaison de solutions numériques de l'équation d'advection linéaire en dimension 1 d'espace et temps obtenues par les schémas de Lax-Friedrichs, Lax-Wendroff, Leapfrog et Upwind. La courbe en noir représente la solution exacte.

Le schéma de Lax–Wendroff, d'après Peter Lax et Burton Wendroff, est défini en analyse numérique comme une technique de résolution numérique des équations aux dérivées partielles de type hyperbolique, basée sur la méthode des différences finies. Ce schéma est d'ordre 2 à la fois en espace et en temps.

Formulation

Considérons l'équation d'advection en dimension 1 d'espace et temps :

u(x,t)t+f(u(x,t))x=0

x et t sont des variables indépendantes, et u(x, 0) est l'état initial connu.

Dans le cas linéaire, on a par définition f(u) = Au , avec A une constante[1],

uin+1=uinλ2A[ui+1nui1n]+λ22A2[ui+1n2uin+ui1n].

Avec λ=ΔtΔx, le facteur de discrétisation.

Ce schéma linéaire peut être étendu au cas général, non linéaire de multiples façons. L'une d'entre elles consiste à ré-écrire A(u) sous la forme

A(u)=f(u)=fu

On obtient alors la formulation conservative du schéma de Lax-Wendroff dans le cas général non-linéaire :

uin+1=uinλ2[f(ui+1n)f(ui1n)]+λ22[Ai+1/2(f(ui+1n)f(uin))Ai1/2(f(uin)f(ui1n))].

Ai±1/2 désigne les matrices jacobiennes évaluées pour les états 12(Uin+Ui±1n).

Méthode de Richtmyer

Afin d'éviter le calcul de cette matrice jacobienne, on peut procéder en deux étapes. Dans ce qui suit, on présente la méthode dite de Richtmyer, constituée de deux étapes. Dans un premier temps, on calcule f(u(xt)) pour un demi pas de temps, tn + 1/2, et en prenant les points xi + 1/2 situés aux interfaces entre deux cellules du maillage. Dans un deuxième temps, les valeurs au temps tn + 1 sont calculées en utilisant celles aux temps tn et tn + 1/2.

Première étape (Lax) :

ui+1/2n+1/2=12(ui+1n+uin)λ2(f(ui+1n)f(uin)),
ui1/2n+1/2=12(uin+ui1n)λ2(f(uin)f(ui1n)).

Deuxième étape :

uin+1=uinλ[f(ui+1/2n+1/2)f(ui1/2n+1/2)].
Méthode de MacCormack

Une autre méthode voisine a été proposée par MacCormack, consistant à utiliser d'abord une différence finie décentrée amont, puis une autre décentrée aval :

  • Première étape :
ui*=uinλ(f(ui+1n)f(uin)).
  • Deuxième étape :
uin+1=12(uin+ui*)λ2[f(ui*)f(ui1*)].
Alternative
  • Première étape :
ui*=uinλ(f(uin)f(ui1n)).
  • Deuxième étape :
uin+1=12(uin+ui*)λ2[f(ui+1*)f(ui*)].

Références

Modèle:Références

Voir aussi

Modèle:Palette Modèle:Portail