Ich bin mit den üblichen Diskretisierungsverfahren für PDEs nicht sehr vertraut. Ich weiß, dass Crank-Nicolson ein beliebtes Verfahren zur Diskretisierung der Diffusionsgleichung ist. Ist das auch eine gute Wahl für den Advektionssemester?
Ich interessiere mich für die Lösung der Reaktions-Diffusions-Advektions- Gleichung,
Dabei ist der Diffusionskoeffizient der Substanz und die Geschwindigkeit.
Für meine spezifische Anwendung kann die Gleichung in der Form geschrieben werden,
Hier ist das Crank-Nicolson-Schema, das ich angewendet habe,
Beachten Sie die Begriffe und . Dies ermöglicht es dem Schema, zwischen folgenden Optionen zu wechseln:
- 1/2 Crank-Niscolson,
- ist vollständig implizit
- ist vollständig explizit
Die Werte können unterschiedlich sein, so dass der Diffusionsbegriff Crank-Nicolson und der Advektionsbegriff etwas anderes sein kann. Was ist der stabilste Ansatz, was würden Sie empfehlen?
quelle
Im Allgemeinen sollten Sie eine implizite Methode für parabolische Gleichungen (den Diffusionsteil) verwenden - explizite Schemata für parabolische PDE benötigen einen sehr kurzen Zeitschritt, um stabil zu sein. Umgekehrt sollten Sie für den hyperbolischen Teil (Advektion) eine explizite Methode verwenden, da diese billiger ist und die Symmetrie des zu lösenden linearen Systems nicht durch die Verwendung eines impliziten Diffusionsschemas stört. In diesem Fall möchten Sie zentrierte Differenzen wie vermeiden und zu einseitigen Differenzen wechseln. aus Stabilitätsgründen.(uj+1−uj−1)/2Δt (uj−uj−1)/Δt
Ich würde vorschlagen, dass Sie sich Randy Leveques Buch oder Dale Durrans Buch für "von Neumann-Stabilitätsanalyse" ansehen . Dies ist ein allgemeiner Ansatz zur Feststellung der Stabilität Ihres Diskretisierungsschemas, vorausgesetzt, Sie haben periodische Randbedingungen. (Es gibt auch einen guten Wiki - Artikel hier .)
Die Grundidee ist anzunehmen, dass Ihre diskrete Approximation eine Summe von ebenen Wellen , wobei die Wellenzahl und die Frequenz ist. Sie stopfen eine ebene Welle in Ihre Annäherung an die PDE und beten, dass sie nicht explodiert. Wir können die ebene Welle als und wollen sicherstellen, dass .ei(kjΔx−ωnΔt) k ω ξneikjΔx |ξ|≤1
Betrachten Sie zur Veranschaulichung die gewöhnliche Diffusionsgleichung mit vollständig impliziter Differenzierung:
Wenn wir in einer ebenen Welle substituieren, dann dividieren durch und , erhalten wir die Gleichungξn eikjΔx
Räumen Sie jetzt ein bisschen auf und wir bekommen:
Dies ist immer weniger als eins, so dass Sie im klaren sind. Wenden Sie dies für das explizite, zentrierte Schema für die Advektionsgleichung an:
und sehen , was Sie erhalten. (Diesmal wird es einen Imaginärteil geben.) Sie werden feststellen, dass , was traurige Zeiten sind. Daher meine Ermahnung, dass du es nicht benutzt. Wenn Sie dies tun können, sollten Sie keine großen Schwierigkeiten haben, ein stabiles Schema für die vollständige Advektions-Diffusions-Gleichung zu finden.ξ |ξ|2>1
Das heißt, ich würde ein vollständig implizites Schema für den Diffusionsteil verwenden. Ändern Sie die Differenzierung im Advektionsteil in wenn und wenn und wählen Sie einen Zeitschritt, sodass . (Dies ist die Courant-Friedrichs-Lewy-Bedingung .) Sie ist nur in erster Ordnung korrekt, daher möchten Sie möglicherweise Diskretisierungsschemata höherer Ordnung nachschlagen, wenn dies Sie betrifft.uj−uj−1 v>0 uj−uj+1 v<0 VΔt/Δx≤1
quelle