# Schéma de Godounov

En analyse numérique, le schéma de Godounov est un schéma numérique conservatif, suggéré par Sergueï Godounov en 1959 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 exacte ou approchée entre chaque cellule (ou volume de contrôle). 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

On cherche à résoudre le problème de Riemann suivant, en dimension un d'espace :
${\frac {\partial q}{\partial t}}+{\frac {\partial f(q)}{\partial x}}=0.$
En utilisant la méthode des volumes finis, on définit les quantités :
    $Q_{i}(t)={\frac {1}{\Delta x}}\int _{x_{i-1/2}}^{x_{i+1/2}}q(t,x)\,dx$
où les $x_{i}=x_{\text{low}}+\left(i-1/2\right)\Delta x$ forment un ensemble discret de points, avec $x_{\text{low}}$ la borne inférieure du domaine spatial.
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.
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_{i}^{n+1}=Q_{i}^{n}-{\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$
où l'on a posé $t^{n}=n\Delta t$ un ensemble de temps discrets et $Q_{i}^{n}=Q_{i}(t^{n})$. Le but de la méthode est ensuite d'estimer ces $Q_{i}^{n}$. Pour cela, on s'intéresse au terme intégral.
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_{i}^{n}$. Les intégrales sont donc calculées par
    $\int _{t^{n}}^{t^{n+1}}f(q(t,x_{i-1/2}))\,dt\approx \Delta tf^{\downarrow }\left(Q_{i-1}^{n},Q_{i}^{n}\right),$
avec $f^{\downarrow }\left(q_{l},q_{r}\right)$ une approximation de la solution exacte du problème de Riemann appelée flux numérique.
Pour la cohérence, 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_{i}^{n+1}=Q_{i}^{n}-\lambda \left({\hat {f}}_{i+1/2}^{n}-{\hat {f}}_{i-1/2}^{n}\right),\quad \lambda ={\frac {\Delta t}{\Delta x}},\quad {\hat {f}}_{i-1/2}^{n}=f^{\downarrow }\left(Q_{i-1}^{n},Q_{i}^{n}\right)$
On peut alors déterminer les $Q_{i}^{n}$ par récurrence sur $n$.

## Problème linéaire

Dans le cas d'un problème linéaire, soit $f(q)=aq$, sans perte de généralité, on peut supposer que $a>0$, et alors le schéma de Godunov devient :
    $Q_{i}^{n+1}=Q_{i}^{n}-\nu \left(Q_{i}^{n}-Q_{i-1}^{n}\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 CFL :
$\nu =\left|a{\frac {\Delta t}{\Delta x}}\right|\leq 1$.

## Algorithme en trois étapes

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 :
* 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.
* 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.
* 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 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\,$ où $|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'étape 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.