Schéma de Godunov

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En analyse numérique, le schéma de Godunov est un schéma numérique conservatif, suggéré par Serguei Godunov (de) en 1959[1] pour la résolution numérique d'équations aux dérivées partielles. Ce schéma fonctionne comme une méthode des volumes finis pour la résolution de problèmes de Riemann (en) exacte ou approchée entre chaque cellule. Sa forme la plus simple est d'ordre 1 en espace et en temps mais peut être étendue à des méthodes d'ordres plus élevés.

Schéma de base[modifier | modifier le code]

En utilisant la méthode des volumes finis, on définit les inconnues comme :

 Q^{n}_i = \frac{1}{\Delta x} \int_{x_{i-1/2}} ^ { x_{i+1/2} } q(t^n, x)\, dx

où les  x_i = x_{\text{low}} + \left( i - 1/2 \right) \Delta x et  t^n = n \Delta t forment un ensemble discret de points pour le problème hyperbolique :

 \frac{\partial q}{\partial t} + \frac{\partial f(q)}{\partial x}= 0.

En intégrant le problème sur un volume  [x_{i-1/2}, x_{i+1/2}], nous obtenons une version de la méthode des lignes pour les moyennes spatiales par cellule :

 \frac{\partial}{\partial t} Q_i( t ) = -\frac{1}{\Delta x} \left( f( q( t, x_{i+1/2} ) ) - f( q( t, x_{i-1/2} ) ) \right),

ce qui correspond à un schéma semi-discret volumes finis décentré du premier ordre[2].

L'intégration en temps de la formule précédente entre  t = t^n et  t = t^{n+1} donne la formule (exacte) de mise à jour :

 Q^{n+1}_i = Q^n_i - \frac{1}{\Delta x } \int_{ t^n }^{t^{n+1} } \left( f( q( t, x_{i+1/2} ) ) - f( q( t, x_{i-1/2} ) ) \right)\, dt.

La méthode de Godunov consiste à remplacer l'intégrale en temps pour chaque terme

 \int_{t^n}^{t^{n+1} }  f( q( t, x_{i-1/2} ) )\, dt

par une méthode d'Euler explicite, donnant ainsi un schéma totalement discret pour tous les  Q^n_i . Les intégrales sont donc calculées par

 \int_{t^n}^{t^{n+1} }  f( q( t, x_{i-1/2} ) )\, dt \approx \Delta t f^\downarrow\left( Q^n_{i-1}, Q^n_i \right),

avec  f^\downarrow\left( q_l, q_r \right) une approximation de la solution exacte du problème de Riemann.

Pour la consistance, supposons que :

 f^\downarrow( q_l , q_r ) = f( q_l ) \quad \text{ si } \quad q_l = q_r,

et que  f^\downarrow est croissante pour la première inconnue, décroissante pour la seconde. Pour les problèmes scalaires tels que  f'( q ) > 0 , on peut utiliser le schéma décentré amont, qui pose  f^\downarrow( q_l, q_r ) = f( q_l ) .

Le schéma de Godunov complet nécessite la définition d'une approximation, ou une résolution exacte de Riemann, mais dans sa forme simple, est donné par :

 Q^{n+1}_i = Q^n_i - \lambda \left( \hat{f}^n_{i+1/2} - \hat{f}^n_{i-1/2}  \right), \quad \lambda = \frac{\Delta t}{\Delta x}, \quad \hat{f}^n_{i-1/2} = f^\downarrow\left( Q^n_{i-1}, Q^n_i \right)

Problème linéaire[modifier | modifier le code]

Dans le cas d'un problème linéaire, soit  f(q) = a q , sans perte de généralité, on peut supposer que  a > 0 , et alors le schéma de Godunov devient :

 Q^{n+1}_i = Q^n_i - \nu \left( Q^{n}_i - Q^n_{i-1} \right), \quad \nu = a \frac{\Delta t } {\Delta x },

qui donne le schéma volume finis classique décentré du premier ordre, stable sous la condition  \nu  = \left| a \frac{\Delta t}{\Delta x} \right| \leq 1 .

Algorithme en trois étapes[modifier | modifier le code]

Le schéma se résume à trois étapes de calcul pour obtenir la solution au temps  t = (n+1) \Delta t \, à partir de la solution à  {t = n \Delta t} \,, décrites comme suit[3] :

  1. Définir une approximation constante par morceaux de la solution à  {t = (n+1) \Delta t} \,. Dans le sens où chaque valeur sera la moyenne de la solution sur chaque cellule de taille  {\Delta x} \,, l'erreur spatiale sera de l'ordre de ce pas  {\Delta x} \, , impliquant que le schéma est du premier ordre en temps. Cette approximation est bien celle obtenue par une approximation par la méthode des volumes finis où les valeurs discrètes sont les moyennes des variables d'état sur chaque cellule. Les relations exactes se retrouvent par les lois de conservations intégrales.
  2. Obtenir la solution du problème de Riemann local aux interfaces des cellules. Il s'agit du seul calcul physique du problème. Les discontinuités aux interfaces sont résolues par superposition d'ondes satisfaisant localement les équations de conservation. Si le schéma original de Godunov est basée sur une résolution exacte des problèmes de Riemann, des solutions approchées peuvent être utilisées.
  3. Moyenner les variables d'état après un intervalle de temps  {\Delta t} \,. Les variables d'état obtenues par l'étape 2 sont moyennées sur chaque cellule, définissant ainsi une nouvelle approximation constante par morceaux résultant de la propagation de l'onde pendant  {\Delta t} \,. Pour être consistant, l'intervalle de temps  {\Delta t} \, doit être limité de façon à ce que les ondes émanant d'une interface n'interagissent pas avec les ondes des interfaces adjacentes, sinon ces problèmes de Riemann vont interagir et s'influencer les uns les autres. Il vient ainsi la condition CFL | a_\max | \Delta t <  \Delta x/2 \,  | a_\max | \, est la vitesse d'onde maximum obtenue par le calcul de la valeur propre maximale de la matrice jacobienne locale de la cellule.

Les étapes 1 et 3 sont purement numériques et peuvent être vues comme une étape de projection, indépendant de la deuxième, qui est l'étapes d'évolution. Ainsi, elles peuvent être modifiées sans conséquence sur l'étape physique. On peut ainsi utiliser à la place d'approximations constantes par morceaux, des approximations linéaires par morceaux, ce qui donne un schéma de second ordre en espace, comme le schéma MUSCL.

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Godunov's scheme » (voir la liste des auteurs)

  1. (en) S. K. Godunov, « A Difference Scheme for Numerical Solution of Discontinuous Solution of Hydrodynamic Equations », Math. Sbornik, vol. 47,‎ 1959, p. 271-306, translated US Joint Publ. Res. Service, JPRS 7226, 1969
  2. (en) Randy J. Leveque, Finite Volume Methods for Hyperbolic Problems, CUP,‎ 2002
  3. (en) C. Hirsch, Numerical Computation of Internal and External Flows, vol. 2, Wiley,‎ 1990