Dans les regions lisses de l'ecoulement, les deux principales sources d'erreur d'un schema numerique sont la dissipation numerique (amortissement de l'amplitude des ondes) et la dispersion numerique (erreur sur la vitesse de phase). L'analyse de Fourier permet de quantifier ces deux phenomenes en etudiant comment le schema transforme chaque mode de Fourier individuellement.
Cette analyse est independante du cas test : on linearise les equations autour d'un etat uniforme et on etudie la reponse du schema complet (reconstruction spatiale + flux numerique + integration temporelle) a une perturbation sinusoidale de nombre d'onde
L'implementation se trouve dans euler1d/fourier_analysis.py.
On gele les coefficients autour d'un etat uniforme
ou
avec
-
$\lambda_1 = u_0 - c_0$ (onde acoustique gauche), -
$\lambda_2 = u_0$ (onde entropique), -
$\lambda_3 = u_0 + c_0$ (onde acoustique droite).
Chaque mode propre se propage independamment a sa vitesse propre. C'est cette propriete qui permet d'analyser la reponse du schema mode par mode.
Le systeme linearise admet trois modes independants, chacun associe a un vecteur propre droit (direction de perturbation) et un vecteur propre gauche (direction de projection).
Perturbation alignee sur le deuxieme vecteur propre :
Seule la densite varie. La perturbation est advectee a la vitesse
Vecteur propre gauche (pour projection) :
On verifie :
Perturbation alignee sur le troisieme vecteur propre :
Tous les champs varient. La perturbation se propage a la vitesse
Vecteur propre gauche :
On verifie :
Perturbation alignee sur le premier vecteur propre :
Se propage a la vitesse
Vecteur propre gauche :
Les vecteurs propres gauches forment les lignes de
Pour un nombre d'onde
qui varie de
On injecte une perturbation sinusoidale alignee sur un mode propre :
ou
Le facteur d'amplification
-
$\lvert G \rvert = 1$ : pas d'amortissement (schema ideal). -
$\lvert G \rvert < 1$ : le mode est amorti. Le schema est dissipatif. -
$\lvert G \rvert > 1$ : le mode est amplifie. Le schema est instable pour ce mode.
La phase exacte apres un pas de temps est :
ou
Le rapport de phase mesure l'erreur de dispersion :
- Rapport
$= 1$ : vitesse de phase correcte (schema ideal). - Rapport
$> 1$ : l'onde numerique va trop vite (erreur de phase avancee). - Rapport
$< 1$ : l'onde numerique va trop lentement (erreur de phase retardee).
Le facteur
Une seule simulation avec une perturbation
Pour chaque mode
Etape 1 -- Perturbation cosinus. On initialise :
On effectue un pas de temps complet avec le schema. On projette la sortie sur le vecteur propre gauche
Etape 2 -- Perturbation sinus. Meme chose avec :
On obtient le signal scalaire
Etape 3 -- Projection modale. On extrait les coefficients de Fourier par produit scalaire discret :
Etape 4 -- Reconstruction de
ou
Etape 5 -- Module et phase.
Etape 6 -- Post-traitement de la phase. La phase est depliee avec np.unwrap pour eviter les sauts de NaN lorsque
-
Schema ideal :
$\lvert G \rvert = 1$ pour tout$\theta$ (courbe horizontale). -
Schemas d'ordre 1 (Rusanov, HLL, HLLC, Godunov) :
$\lvert G \rvert$ chute fortement des les moyennes frequences. Ces schemas sont tres dissipatifs : ils amortissent significativement les ondes courtes. Cela lisse les discontinuites mais diffuse aussi les structures fines. -
Lax-Wendroff :
$\lvert G \rvert \approx 1$ sur une large plage de$\theta$ . Le schema est peu dissipatif, ce qui preserv les ondes mais peut generer des oscillations pres des discontinuites (pas d'amortissement des hautes frequences parasites). -
Schemas d'ordre eleve (MUSCL, WENO) :
$\lvert G \rvert$ reste proche de 1 jusqu'a des$\theta$ moderes, puis chute pour les hautes frequences. Le compromis est meilleur : les ondes physiques sont preservees, et seules les frequences mal resolues sont amorties. -
Instabilite : si
$\lvert G \rvert > 1$ pour un$\theta$ donne, le mode est amplifie a chaque pas de temps. Cela indique un schema instable pour ce CFL. - Une chute brutale a
$\theta = \pi$ signifie que le schema ne resout que les basses frequences.
-
Schema ideal : rapport
$= 1$ pour tout$\theta$ . -
Rapport
$> 1$ a un$\theta$ donne : l'onde numerique se propage plus vite que la vitesse exacte. Cela produit une erreur de phase avancee (l'onde arrive trop tot). -
Rapport
$< 1$ : l'onde se propage trop lentement (erreur de phase retardee). -
Lax-Wendroff :
$\lvert G \rvert$ est proche de 1, mais le rapport de phase s'ecarte significativement de 1 aux hautes frequences. C'est la signature d'un schema dispersif : il ne dissipe pas les ondes mais les fait voyager a la mauvaise vitesse, ce qui genere des oscillations en amont et en aval des discontinuites. -
Schemas d'ordre eleve : le rapport de phase reste proche de 1 sur une plage de
$\theta$ d'autant plus large que l'ordre est eleve.
| Schema | Dissipation | Dispersion |
|---|---|---|
| Ordre 1 (Rusanov, Godunov...) |
|
Phase peu pertinente (mode trop amorti) |
| Lax-Wendroff | Fort ecart de phase aux hautes frequences | |
| MUSCL + limiteur |
|
Bon rapport de phase en basses freq. |
| WENO3/WENO5 |
|
Rapport de phase |
L'implementation se trouve dans le module euler1d/fourier_analysis.py. Deux fonctions principales :
Avance l'etat
| Methode | Etages | Schemas concernes |
|---|---|---|
| RK1 | 1 | Euler explicite, Lax-Wendroff |
| RK2 | 2 | MUSCL, ENO2 |
| RK3 (SSP) | 3 | WENO3 |
| RK4 | 4 | JST |
| RK5 (Dormand-Prince) | 6 | WENO5 |
Calcule le facteur d'amplification
-
wave_type:"entropie"(onde de densite a vitesse$u_0$ ) ou"acoustique"(onde acoustique droite a vitesse$u_0 + c_0$ ). -
n_cells: nombre de cellules du maillage periodique (256 par defaut). -
n_modes: nombre de modes de Fourier analyses (de$m = 1$ a$m = n_{\text{modes}}$ ).
Le dictionnaire retourne contient :
-
theta: tableau des nombres d'onde reduits$\theta = 2\pi m / N$ . -
abs_G: tableau des$\lvert G(\theta) \rvert$ (dissipation). -
phase_ratio: tableau des$\varphi_{\text{num}} / \varphi_{\text{exact}}$ (dispersion,NaNsi le mode est trop amorti).
- [Toro, 2009] E.F. Toro, Riemann Solvers and Numerical Methods for Fluid Dynamics, 3e edition, Springer. Chapitre 13 : analyse de Fourier des schemas de volumes finis.
- [Hirsch, 2007] C. Hirsch, Numerical Computation of Internal and External Flows, 2e edition, Elsevier. Chapitre 8 : analyse de stabilite et proprietes dissipatives/dispersives.