Optimale Verwendung der Strang-Aufspaltung (für die Reaktionsdiffusionsgleichung)


9

Ich habe eine seltsame Beobachtung gemacht, als ich die Lösung für eine einfache 1D-Reaktionsdiffusionsgleichung berechnet habe:

tein=2x2ein- -einb

tb=- -einb

tc=ein

Der Anfangswert von ist eine Konstante ( ), und ich interessiere mich nur für das Integral über von bis ( ). Der Zweck von und der Gleichung besteht nur darin, dieses Integral zu bewerten.b ( 0 , x ) = b 0 a 0 1 1 0 a ( t , x ) d t c bb(0,x)=b0ein0101ein(t,x)dtctc=ein

Ich verwendete ein Strang-Aufteilungsschema für die Kopplung zwischen Diffusion und Reaktion (eine Halbschrittreaktion, dann eine Vollschrittdiffusion und dann wieder eine Halbschrittreaktion), ein Crank Nicholson-Schema für die Diffusion und eine analytische Lösung für die Reaktion ( einschließlich der Gleichung ).tc=ein

Da ein Schritt der analytischen Lösung mehr als einen Faktor 3 langsamer war als ein Schritt des Crank Nicholson-Schemas, habe ich versucht, mehr als einen Crank Nicholson-Schritt für jeden Reaktionsschritt durchzuführen. Ich hatte gehofft, mit weniger Schritten des Strang-Aufteilungsschemas auszukommen, damit ich insgesamt schneller bin.

Es kann jedoch der gegenteilige Effekt beobachtet werden, nämlich dass viel mehr Schritte für das Strang-Aufteilungsschema erforderlich sind, wenn mehr als ein Crank Nicholson-Schritt verwendet wird. (Ich befasse mich nur mit der Genauigkeit des Integrals über , das schneller zu konvergieren scheint als selbst.) Nachdem ich mich einige Zeit gewundert hatte, bemerkte ich, dass der gleiche Effekt auch für und dass ich sogar verstehe warum für diesen Fall. Der Punkt ist, dass, wenn ich genau einen Crank Nicholson-Schritt mache, das Gesamtschema zu einer Trapezregel wird (wenn ).a b ( t , x ) = b 0 = 0 b ( t ) = 0eineinb(t,x)=b0=0b(t)=0

Wenn ich also als Teil des Diffusionsschritts behandeln würde, würde eine Erhöhung der Anzahl der Crank Nicholson-Schritte (wahrscheinlich) nicht zu einer verringerten Gesamtgenauigkeit führen (wie beobachtet). Dies scheint jedoch den Zweck der Verwendung einer analytischen Lösung für den (nichtlinearen und möglicherweise sehr steifen) Reaktionsteil des Systems zu vereiteln.tc=ein

Hier ist meine Frage: Gibt es eine bessere Möglichkeit, im Kontext einer Strang-Aufspaltung zu behandeln, als sie entweder als Teil des Reaktionsschritts zu behandeln oder zu behandeln es als Teil des Diffusionsschritts. Ich möchte vermeiden, "gezwungen" zu werden, genau einen Crank Nicholson-Schritt für die Diffusion zu verwenden. (Zum Beispiel in 3D würde ich es vorziehen, die Diffusion mithilfe einer FFT analytisch zu lösen, anstatt Crank Nicholson zu verwenden. Natürlich kann ich FFT auch mit Crank Nicholson kombinieren, es ist also keine so große Sache.)tc=ein


In people.maths.ox.ac.uk/dellar/OperatorLB.html scheint ein ähnlicher Effekt beschrieben zu werden. Die Schlussfolgerung ist, dass es entscheidend ist, Crank Nicholson anstelle der genauen Lösung zu verwenden. Vielleicht ist die Antwort auf meine Frage ein einfaches Nein.
Thomas Klimpel

Mit Ihren Gleichungen scheint etwas nicht zu stimmen. erscheint nicht in den ersten beiden, wodurch die Kopplung in eine Richtung erfolgt, was bedeutet, dass Sie zu jedem als Nachbearbeitungsschritt berechnen können . c tcct
Bill Barth

@ BillBarth Ich habe die Frage geändert, um die Rolle von zu klären . So ist nur ein Mittel zum compute . Bitte lassen Sie mich wissen, wenn Sie Vorschläge haben, wie dieses Integral genauer berechnet werden kann (als das, was ich aus der oben beschriebenen Kombination von Strang-Aufteilung und Crank Nicholson erhalte), möglicherweise unter Verwendung eines Nachbearbeitungsschritts. c 1 0 a ( t , x ) d tcc01ein(t,x)dt
Thomas Klimpel

Dies ist nun lange her, aber haben Sie erkannt, dass dieses Gleichungssystem als parabolische PDE in mit einem exponentiellen Reaktionsterm geschrieben werden kann? Ich frage mich wohl, ob Sie dieses 3-Variablen-System wirklich lösen möchten, anstatt eines vereinfachten. c
Bill Barth

@ BillBarth Ich würde gerne erfahren, wie dieses System als parabolische PDE mit einem exponentiellen Reaktionsterm geschrieben werden kann. Die Geschwindigkeit der Lösung dieses Modells ist ein begrenzender Faktor während der Modellkalibrierung (die mehrere Stunden dauern kann), obwohl die verwendete Genauigkeit in Bezug auf die Zeitintegration weit von einer vollständigen Konvergenz entfernt ist.
Thomas Klimpel

Antworten:


6

Ich werde dies als Antwort schreiben, obwohl es die Frage nicht direkt beantwortet.

Wenn Sie die zweite Gleichung und die dritte Gleichung in die erste und die dritte in die zweite Gleichung einfügen, erhalten Sie zusammen: Umordnen dieser beiden ergibt:

2ct2=2x2ct+btbt=- -(ct)b
Nun können wir beide einmal int integrieren, wobei die erste Gleichung übrigbleibt: c
t(ct- -2cx2- -b)=01b(bt)=- -ct
t Mit der dritten Gleichung können wir die "Konstante" der Integration alsA(x)=a0-2c0ausdrücken
ct- -2cx2=b+EIN(x)
. Die zweite Gleichung ist etwas kniffliger. Wenn wir ein wenig umschreiben, haben wir: t 0 1EIN(x)=ein0- -2c0x2- -b0 Dies führt zur Lösung lnb(x,t)-lnb0(x)=-c(x)+c0(x) oder lnb
0t1b(x,t')(b(x,t')t')dt'=- -0tc(x,t')t'dt'
lnb(x,t)- -lnb0(x)=- -c(x)+c0(x)
Exponentiierend ergibt: b=b0ec0-c Und schließlichergibt das Einstecken in die PDE fürcc
lnbb0=- -c+c0
b=b0ec0- -c
c
ct- -2cx2=b0ec0- -c+EIN(x)

cc- -c0c0(x)=0

ct=2cx2+ein0- -(1- -e- -c)b0
c>c0

b0=0

t=1c(x,1)


cein

Kein Problem. Ich nörgelte mich nach unserem ersten Austausch von Kommentaren an. Ich hoffe es ist hilfreich.
Bill Barth
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.