Méthode pseudo-spectrale de Fourier et dissipation numérique

9

Réalisation d'une simulation numérique directe de la turbulence isotrope avec la méthode pseudo-spectrale de Fourier (Orzag & Patterson, PRL, 1972) en utilisant la FFT. Pour un aperçu de la méthode, qui est largement utilisée dans la communauté des turbulences, vous pouvez voir ce cours: http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf

En utilisant ce qu'on appelle les règles pour dealiasing qui consiste à faire u ( k , t ) = 0 i f k > 22/3test le temps,kest le nombre d'onde,kMAXest le nombre d'onde maximale et u est l'amplitude spectrale de la vitesse.

u^(k,t)=0              jeF   k>23kMUNEX
tkkMUNEXu^

Le dealiasing agit-il comme une dissipation numérique? En d'autres termes, y a-t-il une fuite d'énergie due au désalignement?

ucsky
la source
Ce n'est pas clair ce que votre question demande. Pourriez-vous clarifier?
Geoff Oxberry
et maintenant ?
ucsky

Réponses:

6

Le désengorgement de la convolution n'agit pas comme une dissipation numérique. En fait, l'énergie n'est conservée que si vous supprimez les termes alias.

L'idée qui sous-tend le détournement des convolutions basées sur la FFT est de se débarrasser des termes supplémentaires ajoutés par la FFT. Une convolution n'est qu'une somme, et vous pouvez la calculer en calculant simplement la somme. Cependant, c'est vraiment lent, il vaut donc mieux transformer les entrées de Fourier et multiplier le résultat, puis inverser la transformée de Fourier, qui, selon le théorème de convolution, est la même chose qu'une convolution.

Mais le théorème de convolution ne fonctionne que lorsque les entrées sont de longueur infinie; pour les entrées de longueur finie, des termes supplémentaires (alias) apparaissent qui ne sont pas physiques. Le point de déséquilibrage est de récupérer l'équation d'origine que vous tentiez de calculer, tout en vous permettant d'utiliser des FFT pour accélérer le calcul.

Malcolm
la source
Malcolm n'a pas mentionné la bibliothèque FFTW ++ qu'il a co-écrite, mais elle vous aide à effectuer rapidement des circonvolutions déséquilibrées en gérant implicitement le remplissage (entre autres). Voir fftwpp.sourceforge.net .
Matthew Emmett
Oh ouais, merci Matt! Les routines de convolution dans FFTW ++ réduisent vraiment le coût de calcul des convolutions déserrées. Il y a une référence sur la page sourceforge et plus sur ma page web. J'y ai travaillé avec John Bowman, dont le laboratoire de turbulence 3D est lié dans l'OP.
Malcolm
4

Comprendre ce que fait le dealiasing nécessite de comprendre pourquoi vous prenez des FFT en premier lieu. Pour moi, l'approche de la méthode des résidus pondérés fournit le cadre le plus simple:

  1. Vous développez une solution sous la forme d'une somme de modes de Fourier et la déposez dans les équations de Navier-Stokes. Vos fonctions de test sont également une base de Fourier.
  2. Lorsque vous multipliez les fonctions d'essai et de test ensemble et prenez le produit intérieur (c'est-à-dire que vous l'intégrez avec une conjugaison appropriée), vous verrez que vous avez une intégrale que vous ne pouvez pas simplement évaluer parce qu'elle n'est pas linéaire.
  3. Vous pouvez approximer cette intégrale en utilisant un schéma de quadrature uniforme où vous additionnez simplement la valeur aux points de collocation uniformes.
  4. Notez que votre quadrature est exacte pour une non-linéarité quadratique si vous utilisez 1,5 fois plus de points de quadrature que vous aviez de modes Fourier. C'est le facteur des trois moitiés.
  5. Enfin, notez que la quadrature peut être calculée efficacement comme une FFT.

Toute la magie FFT peut être considérée comme un schéma de quadrature efficace et approximatif qui peut être rendu exact pour les non-linéarités quadratiques. D'autres variantes de désengorgement jouent d'autres tours pour rendre la quadrature exacte pour la même classe de non-linéarités.

Donc, pour répondre à votre question, le désengorgement n'ajoute aucune dissipation. Cela peut être vu parce que chaque étape de la procédure était exacte.

Rhys Ulerich
la source
1

@Malcolm a donné une explication experte du déséquilibrage des sommes de convolution basées sur la FFT. Mon intuition me dit cependant que ce n'est toujours pas la réponse complète à @abberation nécessaire, donc je vais donner quelques phrases supplémentaires qui reflètent ma propre lutte pour la compréhension des méthodes numériques.

Le Dealiasing n'agit pas comme une dissipation numérique, mais il fait la même chose que la dissipation numérique - il empêche votre simulation de exploser.

Comment votre simulation explose-t-elle?

Il y a un transfert d'énergie non physique des nombres d'ondes élevés vers les nombres d'ondes bas qui provoque, d'abord l'instabilité (souvent suivie d'un simptome - 2 h d'ondes, distance du nœud de la grille h, les plus petites ondes pouvant être représentées sur une grille).

La raison derrière cela est le repliement des nombres d'ondes élevés vers les faibles nombres d'ondes qui peuvent être représentés par la grille. Cela provoque un "blocage spectral" - l'augmentation non physique des amplitudes (énergie de lecture) des nombres d'ondes élevés, qui s'aggrave à mesure que vous approchez de la limite supérieure des nombres d'ondes représentés.

Premier remède (Philips, 1959): Filtrer, ou rendre égale à zéro, la moitié supérieure du spectre de nombre d'onde représenté.

Deuxième recours (Orszag, 1971): le remède connu sous le nom de règle des deux tiers d'Orszag. Steven a déclaré que "filtrer la moitié des nombres d'ondes est un gaspillage, nous devrions garder 2 / 3N et filtrer uniquement le 1 / 3N supérieur."

La conclusion.

Nos simulations ont parfois tendance à exploser. Si vous vivez dans un univers de volume fini de second ordre (comme l’a fait l’auteur de ces lignes) et que vous ne savez rien des méthodes spectrales, ils vous disent "Oh, votre simulation explose? Essayez d’utiliser le vent de premier ordre au lieu du schéma central, ou mélangez votre schéma central avec 10% de vent ascendant dans une approche de correction différée. Cela ajoutera de la dissipation mais empêchera votre simulation d'exploser! Oh vous faites des ERP? Alors vous ne devriez pas utiliser au vent, sauf si vous effectuez ILES, utilisez simplement schéma central et Smagorinsky modélisera la dissipation physique qui se produit aux échelles les plus basses. " Si vous vivez dans l'univers des méthodes spectrales, vous apprenez comment se produit le transfert d'énergie non physique, et vous trouvez le remède dans le désengorgement par la règle des deux tiers ou "padding".

Mon inspiration pour cet article est un magnifique livre de J. Boyd "Chebyshev et Fourier Spectral Methods", section 11.

Mon conseil est:

Agissez physiquement ou spectralement, mais pensez spectralement! (Pour paraphraser le bien connu «Penser globalement, agir localement».)

John Travolta
la source
1

Il n'y a pas de fuite d'énergie associée au "désengorgement" en soi, mais il y a une fuite d'énergie associée à la troncature qui est toujours effectuée avec ou sans désaliasage. Laisse-moi expliquer:

si vous avez deux fonctions f et g , ayant toutes deux un contenu spectral jusqu'au mode k , le produit fg aura un contenu spectral jusqu'au mode 2k . Cependant, vous ne voulez pas que le contenu spectral de votre représentation double à chaque pas de temps. Par conséquent, vous voulez tronquer le produit fg aux k premiers modes. En faisant cela, vous perdez l'énergie contenue dans les modes supérieurs à k .

Le Dealiasing (ou anti-aliasing) garantit que les modes jusqu'à k sont corrects dans la représentation de fg , mais pas les modes supérieurs à k , car de toute façon ils seront rejetés.

nat chouf
la source