PDE-Diskretisierung mit der Rotationsmethode und der Linienmethode (Modulare Implementierung)


8

Die Wärmegleichung wird mit FV (oder FEM) im Raum diskretisiert, und es wird eine halbdiskrete Gleichung erhalten (System von ODEs). Dieser Ansatz, der als Linienmethode bekannt ist , ermöglicht den einfachen Wechsel von einer zeitlichen Diskretisierung zu einer anderen, ohne dass Code dupliziert wird. Insbesondere können Sie jeden Zeitintegrator für ODEs ohne großen Aufwand wiederverwenden. Dies ist sehr praktisch, da Sie, wenn Sie Ihre räumliche Diskretisierung von FV in FE ändern, immer noch eine halbdiskrete Gleichung erhalten und Ihre Zeitintegratoren weiterhin arbeiten.

Jetzt versuche ich, die Rotationsmethode für das gleiche Problem zu implementieren . Die zeitliche Diskretisierung zwingt mich jedoch zunächst dazu, die räumliche Diskretisierung für jedes zeitliche Diskretisierungsschema, das ich möglicherweise verwenden möchte, neu zu schreiben. Dies eliminiert die Wiederverwendung von Zeitintegratoren, die ich zuvor hatte, und macht es sehr kompliziert, modulare Software zu schreiben, die eine PDE sowohl mit der Methode der Linien als auch mit der Methode von Rothe diskretisieren kann.

Gibt es eine Möglichkeit, beide Ansätze ohne Codeduplizierung zu implementieren?

Bearbeiten:

Bei konvektionsdominierten Problemen muss die FE-Diskretisierung sowohl zeitlich als auch räumlich stabilisiert werden, was die Rothe-Methode zur "besten" Wahl macht. Dies ist jedoch bei FV / DG-Methoden nicht der Fall.

Bei der Linienmethode wird die PDE zuerst räumlich und dann zeitlich diskretisiert. Bei der Rothe-Methode wird die PDE zuerst zeitlich und dann räumlich diskretisiert. Die dritte Möglichkeit besteht darin, sowohl räumlich als auch zeitlich gleichzeitig zu diskretisieren (auch als Raum-Zeit-Diskretisierungen bezeichnet). Eine Diskussion über die Methode der Linien und die Methode der Rothe finden Sie hier . Für weitere Informationen ist das Buch "Finite-Elemente-Methoden für Strömungsprobleme" von Donea und Huerta eine gute Ressource.


@gnzlbg: Vielleicht könnten Sie ein oder zwei Verweise auf die Methoden einfügen, die Sie diskutieren? Dies ist die Art von Frage, in der unsere Community in der Regel gut ist. Der Mangel an Antworten zeigt also, dass wir nicht genau wissen, was Sie fragen.
Aron Ahmadia

@AronAhmadia fertig.
Gnzlbg

2
Vielen Dank für die zusätzlichen Informationen. Ich habe keine Antwort, aber ich glaube, dass die Einwände gegen die Linienmethode auf der Seite, auf die Sie verlinkt haben, falsch sind. Sie sind eigentlich nur Einwände gegen die Verwendung von mehrstufigen Zeitdiskretisierungen in Kombination mit dynamisch adaptiven räumlichen Gittern. Diese Auswahlmöglichkeiten sind unabhängig davon, ob man die Methode der Linien oder die Methode der Rothe verwendet. Innerhalb der Linienmethode kann man unter Verwendung der Runge-Kutta-Zeitdiskretisierung Ein-Schritt-Schemata hoher Ordnung erhalten.
David Ketcheson

@DavidKetcheson Ja, ich stimme den Argumenten in der Diskussion auch nicht vollständig zu. Dennoch ist die Rothe-Methode für FEM-Diskretisierungen von konvektionsdominierten Problemen wirklich besser: Der Stabilisierungsparameter hängt sowohl vom Zeitschritt als auch von der verwendeten räumlichen und zeitlichen Diskretisierung ab. Mit der Linienmethode würde Ihr Stabilisierungsparameter gelinde gesagt schwierig werden. Die Vor- und Nachteile jeder Methode sind jedoch ein ganzes Thema für sich, und man müsste auch Raum-Zeit-Formulierungen berücksichtigen.
Gnzlbg

Seit @Wolfgang die Beschreibung der Methode von Rothe geschrieben hat, auf die Sie als Teil der Dokumentation für deal.II verlinkt haben, habe ich ihn gebeten, Ihre Antwort in Angriff zu nehmen.
Aron Ahmadia

Antworten:


8

Ich habe nicht wirklich viel mehr zu sagen als auf den Seiten, auf die Sie verlinkt haben, aber für mich lauten die Hauptargumente wie folgt:

  • Bei vielen Problemen muss das Netz zwischen den Zeitschritten angepasst werden. Der konzeptionelle Rahmen hierfür ist die Rothe-Methode, bei der die räumliche Diskretisierung bei jedem Zeitschritt unabhängig gewählt werden kann, während bei der Linienmethode a priori davon ausgegangen wird, dass die PDE in ein ODE-System umgewandelt wird - was mit der Netzanpassung nicht kompatibel ist.

  • Wenn Sie Ihr Netz jedoch nicht anpassen möchten, spielt es keine Rolle: In den meisten Fällen spielt es keine Rolle, ob die räumliche Diskretisierung zwischen den Zeitschritten gleich sein soll oder nicht Wenn Sie zuerst im Raum und dann in der Zeit mit Ihrem bevorzugten Zeitintegrator diskretisieren oder umgekehrt, werden Sie in jedem Zeitschritt das gleiche diskrete Problem haben, das Sie lösen müssen. In solchen Fällen sind die Rothe-Methode und die Linienmethode identisch.

  • Dies gilt auch für den Fall, dass Sie das Netz nur gelegentlich anpassen möchten: Sie können dies als Methode für Linien betrachten, die auf mehrere Zeitschritte angewendet werden, dann das Netz anpassen und dann einen weiteren Satz von Zeitschritten, in denen Sie sich befinden Wenden Sie die Linienmethode an. Oder Sie können sich dies als die Rothe-Methode vorstellen, bei der Sie das Netz nur gelegentlich anpassen. Es wird im Wesentlichen zu demselben numerischen Schema kommen, nur zu einem anderen philosophischen Standpunkt.

Es könnte sich lohnen, noch einen Punkt hinzuzufügen: In der ODE-Welt werden häufig Schemata höherer Ordnung mit mehreren Stufen oder mehreren Schritten verwendet. Das Abfüllen dieser Algorithmen in Pakete bietet daher einen erheblichen Vorteil, da Sie ein ODE-System nur auf die eine oder andere Weise übergeben müssen. Andererseits verwendet man für zeitabhängige PDEs meistens ziemlich einfache Zeitschrittmethoden (mit der bemerkenswerten Ausnahme einiger hyperbolischer Löser): zum Beispiel Crank-Nicolson, BDF-2 oder nur die Vorwärts- oder Rückwärts-Euler-Schemata . Für diese einfachen Zeitintegratoren ist es nicht besonders schwierig, die Zeitintegration von Hand zu codieren, da sie so viel einfacher ist als die räumliche Diskretisierung. Dies bedeutet, dass der Preis für das Denken in Bezug auf die Rothe-Methode - da kein ODE-Solver-Paket verwendet werden kann - gering ist. Der Preis für die Verwendung der Linienmethode, bei der das Netz zwischen den Zeitschritten nicht angepasst werden kann, ist hoch. Dies könnte erklären, warum die meisten Menschen in der adaptiven Finite-Elemente-Welt lieber nach der Rothe-Methode denken.

Als Konsequenz aus dem letzten Punkt und zurück zur ursprünglichen Frage: Es ist in der Tat wahr, dass es bei der Rothe-Methode schwierig ist, alles objektorientiert schön zu verpacken. (I) Solange Sie sich jedoch an eine einzelne Klasse von ODE-Integratoren halten, können Sie natürlich die Koeffizienten der verschiedenen Stufen des Integrators in einer Klasse tabellieren und den Code, der sie berechnet, vollständig kapseln lassen. und (ii) die Tatsache, dass man üblicherweise relativ einfache Zeitintegratoren für zeitabhängige PDEs verwendet, bedeutet, dass die zur Implementierung der Zeitintegration erforderliche Codemenge gewöhnlich erheblich kleiner ist als die Codemenge, die sich mit der räumlichen Diskretisierung befasst. Mit anderen Worten, ich weiß nicht, wie ich die räumliche von der zeitlichen Diskretisierung mit der Rothe-Methode gut trennen kann, aber ich habe '


1
Diese "Antwort" ist eher ein Kommentar - ich sehe nicht, wie sie die Frage beantwortet. Wenn Sie in der Linienmethode eine Ein-Schritt-Methode verwenden, ist es auch nichts Falsches, bei jedem Schritt einen anderen Satz von ODEs zu haben.
David Ketcheson

1
@ WolfgangBangerth "Ein-Schritt" -Methode im Gegensatz zur Mehrschritt-Methode. Runge-Kutta-Methoden, einschließlich Rosenbrocks-, DG-in-Time- und IMEX-Varianten, sind mit Anpassungsfähigkeit einfach zu verwenden. Das Design von Zeitintegrationsschemata kann ähnlich subtil sein wie die räumliche Diskretisierung, unter Berücksichtigung starker Stabilitätseigenschaften, eingebetteter Fehlerkontrolle, bei der die eingebetteten Schemata gewünschte Stabilitätseigenschaften aufweisen, mit gewünschten Eigenschaften verbunden sind, auf bestimmte Teile des Spektrums abzielen, eine gewünschte Stufenordnung erhalten und die Geometrie beibehalten Eigenschaften, die für den impliziten Löser so kostengünstig wie möglich sind usw.
Jed Brown

1
Sie können dies natürlich tun. Das Problem bei Ihrem Ansatz ist, dass Sie Lösungen für vorherige Netze auf das neue Netz interpolieren (oder irgendwie projizieren) müssen. Dies führt zu einem Fehler, der nicht nur eine Galerkin-Projektion ist und daher nicht einfach zu analysieren ist - das Ergebnis ist nicht einfach ein Galerkin-Schema.
Wolfgang Bangerth

1
Wenn Sie dagegen eine Methode über den Rothe-Ansatz ableiten, erhalten Sie eine PDE für jeden Zeitschritt, in dem die Lösung des vorherigen Zeitschritts auf der rechten Seite angezeigt wird. Durch Diskretisieren testen Sie diese vorherige Lösung mit Testfunktionen für das aktuelle Netz. Dies kann als eine Art Projektion interpretiert werden - es handelt sich jedoch nicht um die L2-Projektion, sondern um eine gewichtete Kombination aus L2- und H1-Projektion, wobei das Gewicht vom Zeitschritt abhängt. Da es sich um ein reines Galerkin-Schema handelt, ist es leicht zu analysieren, und ich würde die Vermutung wagen, dass der Fehler auf diese Weise kleiner ist.
Wolfgang Bangerth

1
Abschließend möchte ich nur vermuten, dass es in der Praxis keinen großen Unterschied macht, wenn Sie das Netz nur gelegentlich ändern. Da das Testen einer Lösung auf einem Netz mit Testfunktionen aus einem anderen Netz eine Art Schmerz ist, mache ich diese Interpolation die ganze Zeit - ohne zu viele Probleme ;-)
Wolfgang Bangerth
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.