Quelles sont les méthodes possibles pour résoudre les équations d'Euler compressibles

13

Je voudrais écrire mon propre solveur pour les équations d'Euler compressibles, et surtout je veux qu'il fonctionne de manière robuste dans toutes les situations. Je voudrais qu'il soit basé sur FE (DG est ok). Quelles sont les méthodes possibles?

Je suis conscient de faire du DG d'ordre 0 (volumes finis) et cela devrait fonctionner très solidement. J'ai implémenté un solveur FVM de base et cela fonctionne très bien, mais la convergence est assez lente. Cependant, c'est certainement une option.

J'ai implémenté un solveur FE (fonctionne pour tout maillage et tout ordre polynomial sur n'importe quel élément) pour les équations d'Euler linéarisées, mais je reçois des oscillations parasites (et finalement il explose, donc je ne peux pas l'utiliser pour résoudre mon problème) et J'ai lu dans la littérature qu'il faut le stabiliser. Si j'implémente une certaine stabilisation, cela fonctionnerait-il de manière robuste pour tous les problèmes (= conditions aux limites et géométries)? Quel sera le taux de convergence?

En dehors de cela, existe-t-il une autre méthodologie robuste pour les équations d'Euler (c.-à-d. DG d'ordre supérieur avec une certaine stabilisation)?

Je suis conscient que beaucoup de gens ont essayé beaucoup de choses différentes dans leurs codes de recherche, mais je suis intéressé par une méthode robuste qui fonctionne pour toutes les géométries et conditions aux limites (édition: en 2D et 3D).

Ondřej Čertík
la source

Réponses:

11

La principale difficulté numérique pour résoudre un système non linéaire de premier ordre d'EDP hyperboliques comme les équations d'Euler (pour l'écoulement compressible et non visqueux) est que les discontinuités (ondes de choc) apparaissent dans la solution après un temps fini, même si les données initiales sont lisses. Pour y faire face, la plupart des codes modernes utilisent à la fois

  • des limiteurs de pente (ou de flux ) , qui permettent de calculer avec précision des dérivées à proximité de discontinuités sans introduire d'oscillations parasites; et
  • Solveurs de Riemann approximatifs , qui localement (à chaque bord / face de grille) résolvent un problème de valeur initiale avec des données initiales constantes par morceaux et une discontinuité unique.

Il existe des discrétisations de différences finies (FD), de volumes finis (FV) et d'éléments finis (FE) qui incorporent des limiteurs et des solveurs de Riemann, et toutes peuvent être rendues très précises, au moins à l'écart des chocs. Il n'est donc pas logique de dire catégoriquement que les méthodes FE convergent plus rapidement que les méthodes FV - elles seront comparables si des discrétisations d'ordre comparables sont utilisées.

Parmi les méthodes FE, les méthodes discontinues de Galerkin sont les plus appropriées ici, car la solution sera en fait discontinue. Si vous souhaitez mettre en œuvre le vôtre, je vous suggère de lire ce document de synthèse et d'obtenir une copie du texte de Hesthaven & Warburton pour comprendre les bases. Ensuite, il y a beaucoup de papiers sur DG pour le débit compressible .

Si vous êtes prêt à utiliser le code de quelqu'un d'autre, et comme je sais que vous utilisez Python, vous pouvez jeter un œil au code Hedge d'Andreas Kloeckner , qui a une interface Python et peut fonctionner sur des GPU. Il existe probablement d'autres bons codes DG disponibles et de nombreux bons codes FV (tels que Clawpack , qui a également une interface Python ).

Il existe également de nouvelles méthodes d'ordre élevé telles que la différence spectrale. Pour une perspective récente, voir Cheng & Shu 2009, High Order Schemes for CFD: A Review ou Ekaterinaris 2005, High-order precise, low numeric diffusion methods for aerodynamics .

David Ketcheson
la source
Merci David, en particulier pour tous les conseils aux articles. FV n'est rien d'autre que DG, n'est-ce pas? Ou le FV d'ordre supérieur est-il en quelque sorte différent du même DG d'ordre? Je veux mettre en œuvre quelque chose moi-même, afin de bien comprendre ce qui se passe. Le code de couverture a l'air cool.
Ondřej Čertík
1
FE et FV sont souvent équivalents pour les schémas de premier ordre. Les schémas d'ordre supérieur sont généralement différents, et aucun n'est un sous-ensemble de l'autre.
David Ketcheson
1
Vous pouvez unifier dans une certaine mesure avec "reconstruction DG". FV utilise normalement des fonctions de test constantes par morceaux et reconstruit à l'aide de voisins pour augmenter l'ordre. DG utilise normalement un espace de test correspondant (Galerkin) et élève l'ordre interne. Notez que DG a toujours besoin de limiteurs pour les chocs forts, et puis ce n'est plus une méthode Galerkin. Reconstruction DG vous permet de faire les deux: augmenter l'ordre interne et reconstruire en utilisant des voisins, ainsi les FV et DG conventionnels sont des cas limites.
Jed Brown
Si je modélise un système physique qui, selon moi, pour des raisons empiriques n'affiche pas d'ondes de choc, alors quelle est la bonne méthode?
sigfpe
@sigfpe, il serait préférable pour vous de poster une nouvelle question, avec plus d'informations.
David Ketcheson