Mit welcher 2D-PDE mit einer genauen Lösung kann ich meinen FEM-PDE-Code testen / verifizieren?

Nov 24 2020

Ich habe ein Programm erstellt, um zeitabhängige 2D-PDEs mit der Finite-Elemente-Methode zu lösen und vernünftig aussehende Ergebnisse für die 2D-Schallwellengleichung zu erhalten. Jetzt möchte ich noch weiter gehen und eine PDE mit einer bekannten exakten / analytischen Lösung zum Vergleich lösen. Ich habe jedoch große Probleme, eine geeignete Gleichung zu finden. Es scheint, dass es keine zeitabhängigen 2D-Gleichungen mit einer analytischen Lösung gibt, die keine unendlichen Summen oder dergleichen beinhaltet. Ich dachte darüber nach, eine 1D-Gleichung zu nehmen und sie auf zwei Dimensionen zu erweitern, indem ich sie einfach in einer 2D-Domäne löse, ohne etwas zu ändern, um die Gleichung entlang der y-Achse zu replizieren. Randbedingungen scheinen jedoch die Dinge durcheinander zu bringen, und diese 1D-Gleichungen funktionieren auf unendlichen Domänen, dh auf der gesamten realen Achse.

Gibt es eine solche Gleichung für mich? Gibt es eine andere etablierte Methode zum Testen der Richtigkeit einer PDE-Solver-Implementierung?

Antworten

5 BillBarth Nov 25 2020 at 00:14

Wie Maxim's Kommentar hervorhebt, sollten Sie in der Lage sein, eine beliebige Lösung zu erstellen, diese durch die ursprüngliche, kontinuierliche PDE zu drehen, eine Forcierungsfunktion, Randbedingungen (zeitabhängig) und Anfangsbedingungen zu generieren und diese in Ihr Programm einzufügen. Führen Sie es aus und vergleichen Sie die Antwort mit der Funktion, mit der Sie begonnen haben. Dies wird als Methode für hergestellte Lösungen bezeichnet und ist eine sehr effektive Methode, um die Qualität der Lösungen Ihres Programms festzustellen. Es ist auch eine großartige Möglichkeit, Netz- und Zeitschritt-Verfeinerungsstudien durchzuführen, die Ihren oder den Anforderungen eines Prüfers entsprechen.