Welche Methoden sind möglich, um komprimierbare Euler-Gleichungen zu lösen?

13

Ich möchte meinen eigenen Löser für komprimierbare Euler-Gleichungen schreiben, und vor allem möchte ich, dass er in allen Situationen zuverlässig funktioniert. Ich möchte, dass es FE-basiert ist (DG ist in Ordnung). Was sind die möglichen Methoden?

Mir ist bewusst, dass ich DG 0. Ordnung (endliche Volumina) mache, und das sollte sehr robust funktionieren. Ich habe einen grundlegenden FVM-Solver implementiert, der hervorragend funktioniert, aber die Konvergenz ist recht langsam. Dies ist jedoch definitiv eine Option.

Ich habe einen FE-Löser (funktioniert für jedes Netz und jede Polynomordnung für jedes Element) für linearisierte Euler-Gleichungen implementiert, aber es treten störende Oszillationen auf (und schließlich wird er ausgeblasen, sodass ich ihn nicht verwenden kann, um mein Problem zu lösen) und Ich habe in der Literatur gelesen, dass man es stabilisieren muss. Wenn ich eine gewisse Stabilisierung einsetze, würde das bei allen Problemen (= Randbedingungen und Geometrien) zuverlässig funktionieren? Wie hoch wird die Konvergenzrate sein?

Abgesehen davon gibt es eine andere robuste Methode für Euler-Gleichungen (dh DG höherer Ordnung mit einer gewissen Stabilisierung)?

Ich bin mir bewusst, dass viele Menschen in ihren Forschungscodes viele verschiedene Dinge ausprobiert haben, aber ich bin an einer robusten Methode interessiert, die für alle Geometrien und Randbedingungen funktioniert (Bearbeitung: in 2D und 3D).

Ondřej Čertík
quelle

Antworten:

11

Die hauptsächliche numerische Schwierigkeit bei der Lösung eines nichtlinearen Systems erster Ordnung hyperbolischer PDEs wie der Euler-Gleichungen (für kompressiblen, nichtviskosen Fluss) besteht darin, dass Diskontinuitäten (Stoßwellen) in der Lösung nach endlicher Zeit auftreten, selbst wenn die anfänglichen Daten glatt sind. Um damit umzugehen, verwenden die meisten modernen Codes beide

  • Steigungs- (oder Fluss- ) Begrenzer , mit denen Ableitungen in der Nähe von Diskontinuitäten genau berechnet werden können, ohne dass störende Oszillationen auftreten. und
  • Ungefähre Riemann-Löser , die lokal (an jeder Gitterkante / Fläche) ein Anfangswertproblem mit stückweise konstanten Anfangsdaten und einer einzelnen Diskontinuität lösen.

Es gibt Diskretisierungen mit endlicher Differenz (FD), endlichem Volumen (FV) und endlichen Elementen (FE), die Begrenzer und Riemann-Löser enthalten, und alle können hochgenau ausgeführt werden, zumindest in Bezug auf Erschütterungen. Es ist daher nicht sinnvoll, kategorisch zu sagen, dass FE-Methoden schneller konvergieren als FV-Methoden - sie sind vergleichbar, wenn vergleichbare Ordnungsdiskretisierungen verwendet werden.

Unter den FE-Methoden sind diskontinuierliche Galerkin-Methoden am besten geeignet, da die Lösung tatsächlich diskontinuierlich ist. Wenn Sie Ihre eigenen implementieren möchten, empfehle ich Ihnen, dieses Übersichtsdokument zu lesen und eine Kopie des Textes von Hesthaven & Warburton zu erhalten , um die Grundlagen zu verstehen. Dann gibt es viele Papiere auf DG für kompressible Strömung .

Wenn Sie bereit sind, den Code eines anderen zu verwenden, und ich weiß, dass Sie Python verwenden, sollten Sie sich den Hedge-Code von Andreas Klöckner ansehen , der über eine Python-Oberfläche verfügt und auf GPUs ausgeführt werden kann. Es gibt wahrscheinlich andere gute DG-Codes und viele gute FV-Codes (wie Clawpack , das auch eine Python-Schnittstelle hat ).

Es gibt auch neuere Methoden höherer Ordnung, wie z. B. Spektraldifferenzen. Für eine aktuelle Perspektive siehe Cheng & Shu 2009, Hochrangige Schemata für CFD: A Review oder Ekaterinaris 2005, Hochrangige genaue numerische Diffusionsmethoden für die Aerodynamik .

David Ketcheson
quelle
Danke David, besonders für all die Hinweise auf Papiere. FV ist nur ein DG nullter Ordnung, nicht wahr? Oder ist FV höherer Ordnung irgendwie anders als DG derselben Ordnung? Ich möchte etwas selbst implementieren, damit ich voll und ganz verstehe, was los ist. Der Absicherungscode sieht cool aus.
Ondřej Čertík
1
FE und FV sind für Schemata erster Ordnung oft gleichwertig. Die Schemata höherer Ordnung unterscheiden sich im Allgemeinen, und keines ist eine Teilmenge des anderen.
David Ketcheson
1
Sie können bis zu einem gewissen Grad mit "Rekonstruktion DG" vereinheitlichen. Normalerweise verwendet FV stückweise konstante Testfunktionen und rekonstruiert mit Nachbarn, um die Reihenfolge zu erhöhen. DG verwendet normalerweise einen passenden Testraum (Galerkin) und erhöht die interne Reihenfolge. Beachten Sie, dass DG immer noch Begrenzer für starke Erschütterungen benötigt und dann keine Galerkin-Methode mehr ist. Rekonstruktion DG ermöglicht beides: die interne Ordnung erhöhen und mit Nachbarn rekonstruieren, daher sind konventionelle FV und DG Grenzfälle.
Jed Brown
Wenn ich ein physikalisches System modelliere, von dem ich glaube, dass es aus empirischen Gründen keine Stoßwellen anzeigt, was ist dann eine gute Methode?
Sigfpe
@sigfpe am besten postest du eine neue frage mit mehr informationen.
David Ketcheson