Gibt es einfache Möglichkeiten, die zeitabhängige Schrödinger-Gleichung numerisch zu lösen?


34

Ich möchte einige einfache Simulationen der Streuung von Wellenpaketen von einfachen Potentialen in einer Dimension durchführen.

Gibt es einfache Möglichkeiten, das eindimensionale TDSE für ein einzelnes Partikel numerisch zu lösen? Ich weiß, dass der Versuch, mit naiven Ansätzen partielle Differentialgleichungen zu integrieren, im Allgemeinen schnell zum Desaster führen kann. Ich suche deshalb nach Algorithmen die

  • sind numerisch stabil,
  • einfach zu implementieren sind oder leicht zugängliche Code-Bibliotheks-Implementierungen haben,
  • Laufen Sie einigermaßen schnell und hoffentlich
  • sind relativ einfach zu verstehen.

Ich möchte auch spektrale Methoden, und insbesondere Methoden, die wenig mehr sind als das Lösen der zeitunabhängigen Schrödinger-Gleichung wie üblich, relativ meiden. Ich würde mich jedoch für pseudospektrale Methoden interessieren, die B-Splines oder so etwas verwenden. Wenn die Methode ein zeitabhängiges Potential annehmen kann, dann ist das definitiv ein Bonus.

Natürlich wird jede solche Methode immer eine Reihe von Nachteilen haben, daher würde ich gerne davon hören. Wann geht das nicht Was sind häufige Fallstricke? Welche Wege kann es gehen und welche nicht?



@EmilioPisanty Ich habe eine Diskussion über Fehler zu meiner Beschreibung des SSFM hinzugefügt: Ich stelle fest (nach dem Schreiben meiner Antwort, sorry), dass Sie nicht an Spektralmethoden interessiert sind, sondern nur für den Fall ...

Aufgeräumter Faden; Entfernen der Diskussion über Aktualität aus der Physik.
Geoff Oxberry

1
Ich empfehle hier anzufangen, obwohl es eine Menge neuerer Arbeiten gibt: Einen Vergleich verschiedener Ausbreitungsschemata für die zeitabhängige Schrödinger-Gleichung .
David Ketcheson

3
@GeoffOxberry könntest du einen Screenshot dieser Kommentare zur Verfügung stellen?
Emilio Pisanty

Antworten:


24

Die Schrödinger - Gleichung ist effektiv ein Reaktions-Diffusions - Gleichung (alle Konstanten sind 1). Wenn es um eine partielle Differentialgleichung geht, gibt es zwei Möglichkeiten, sie zu lösen:

(1)ichψt=-2ψ+Vψ
  1. Implizite Methode (adv: große Zeitschritte & bedingungslos stabil, disadv: erfordert einen Matrixlöser, der schlechte Daten liefern kann)
  2. Explizite Methode (adv: einfach zu implementieren, disadv: erfordert kleine Zeitschritte für die Stabilität)

Für parabolische Gleichungen (linear in und 2. Ordnung in x ) ist die implizite Methode oft die bessere Wahl. Der Grund ist, dass die Stabilitätsbedingung für das explizite Verfahren d t d x 2 ist , was sehr klein sein wird. Sie können dieses Problem vermeiden, indem Sie die implizite Methode verwenden, die für den Zeitschritt keine solche Einschränkung aufweist (obwohl Sie sie in der Praxis normalerweise nicht wahnsinnig groß machen, weil Sie einen Teil der Physik verlieren können). Was ich als nächstes beschreibe, ist die Crank-Nicolson-Methode , ein allgemeines implizites Schema zweiter Ordnung (Raum und Zeit).txdtdx2

Vorspeisen

Um eine PDE rechnerisch zu lösen, müssen Sie sie diskretisieren (die Variablen müssen in ein Raster passen). Am einfachsten ist ein rechteckiges kartesisches Gitter. Hier steht für den Zeitindex (und ist immer ein Superskript) und j für den Positionsindex (immer ein Index). Durch Anwenden einer Taylor-Expansion für die positionsabhängige Variable wird Gleichung (1) zu i n + 1 j - jnj Wobei wir angenommen haben, dassV=V(x). Was als nächstes passiert, ist eine Gruppierung von ähnlichen räumlichen und zeitlichen Indizes (Sie können die Mathematik überprüfen): 1

ichψjn+1-ψjdt=-12(ψj+1n+1-2ψjn+1+ψj-1n+1dx2+ψj+1n-2ψjn+ψj-1ndx2)+12(Vjψjn+1+Vjψjn)
V=V(x) Diese Gleichung hat die Form (A0A-00A+A0A-00A+A0A-)(ψ n + 1 0 ψ n + 1 1& psgr; n + 1 J - 1 )=(
(2)12dtdx2ψj+1n+1+(ich-dtdx2-12Vj)ψjn+1+12dtdx2ψj-1n+1=ichψjn-12dtdx2(ψj+1n-2ψjn+ψj-1n)+12Vjψjn
die eine tri-diagonale Matrix genannt wirdund hateine bekannte Lösung! (plus Arbeitsbeispiele, darunter eine von mir geschrieben). Die explizite Methode kratzt die gesamte linke Seite (oder sollte ich die obere Zeile sagen?) Von Gleichung (2) mit Ausnahme desAusdrucksiψ n + 1 j aus .
(EIN0EIN-00EIN+EIN0EIN-00EIN+EIN0EIN-)(ψ0n+1ψ1n+1ψJ-1n+1)=(ψ0nψ1nψJ-1n)
ichψjn+1

Probleme

Das größte Problem, das ich bei impliziten Methoden festgestellt habe, ist, dass sie stark von den Randbedingungen abhängen. Wenn Sie schlecht definierte / implementierte Randbedingungen haben, können in Ihren Zellen störende Schwingungen auftreten, die zu schlechten Ergebnissen führen können (siehe meinen SciComp-Beitrag zu einem ähnlichen Thema). Dies führt zu einer tatsächlich 1. Ordnung Genauigkeit im Raum hat, anstatt 2. dass Ihr Plan sollte geben.

Implizite Methoden sind angeblich auch schwierig zu parallelisieren, aber ich habe sie nur für 1D-Wärmegleichungen verwendet und keine parallele Unterstützung benötigt, sodass ich die Behauptung weder verifizieren noch ablehnen kann.

Ich bin mir auch nicht sicher, wie sich die komplexe Natur der Wellenfunktion auf die Berechnungen auswirkt. Die Arbeit, die ich geleistet habe, verwendet die fluiddynamischen Gleichungen von Euler und ist daher mit nicht-negativen Beträgen völlig real.

Zeitabhängiges Potenzial

Wenn Sie ein analytisches zeitabhängige Potential haben (zB ), dann würden Sie einfach die aktuelle Zeit verwenden, t , für die V j auf der rechte Seite von (2) und der Zukunft der Zeit t + d t , auf der LHS. Ich glaube nicht, dass dies zu Problemen führen würde, aber ich habe dies nicht getestet, sodass ich diesen Aspekt auch nicht verifizieren oder verweigern kann.Vcos(ωt)tVjt+dt

Alternativen

Es gibt auch einige interessante Alternativen zur Crank-Nicolson-Methode. Das erste ist das sogenannte "Super-Time-Stepping" -Verfahren. In dieser expliziten Methode nehmen Sie den Zeitschritt ( ) und verwenden die Wurzeln von Chebyshev-Polynomen , um eine optimierte Menge von Zeitschritten zu erhalten, die sich schnell zu d t summieren, als N- mal d t / N- Schritte auszuführen (effektiv erhalten Sie & Dgr; T = N 2 d t, so dass jeder Schritt N Sie N d t vorrücktdtdx2dtdt/NNΔT=N2dtNNdtrechtzeitig). (Ich verwende diese Methode in meiner Forschung, weil Sie einen genau definierten "Fluss" von einer Zelle zur anderen haben, der zum Zusammenführen von Daten von einem Prozessor zu einem anderen verwendet wird, wobei ich das Crank-Nicolson-Schema nicht anwenden konnte.)

BEARBEITEN Beachten Sie, dass diese Methode zeitlich genau ist, aber wenn Sie eine Runge-Kutta 2-Methode zusammen verwenden, erhalten Sie ein zeitlich genaues Schema 2. Ordnung.

Die andere wird explizit als Wechselrichtung bezeichnet . Diese Methode setzt bekannte und genau definierte Randbedingungen voraus. Anschließend wird die Gleichung gelöst, indem die Grenze direkt in der Berechnung verwendet wird (es ist nicht erforderlich, sie nach jedem Schritt anzuwenden). Bei dieser Methode lösen Sie die PDE zweimal, einmal nach oben und einmal nach unten. Der Aufwärts-Sweep verwendet während der Abwärtsdurchlauf ep2ψ verwendet

2ψx2ψj-1n+1-ψjn+1-ψjn+ψj+1ndx2
für die Diffusionsgleichung, während die anderen Terme gleich bleiben würden. Der Zeitschrittn+1wird dann durch Mitteln der zwei Richtungsabtastungen gelöst.
2ψx2ψj+1n+1-ψjn+1-ψjn+ψj-1ndx2
n+1

1
Tolle Antwort, einzige Beschwerde ist, dass du mich geschlagen hast!
Kyle

@ChrisWhite: Ich habe heute Morgen darüber nachgedacht, wie das früher gemacht werden könnte, und das einzige, was ich mir ausgedacht habe, ist, es einmal für und einmal für mich zu machen . Ich werde mir das Papier (und vor allem den kostenlosen Code, den sie herausgeben) ansehen und sehen, wie sie es vorschlagen. RI
Kyle Kanos

@ChrisWhite Vielleicht ist die Hinterlist für die Berechnung von Eigenfunktionen, die ich durch imaginäres Zeitschrittverfahren berechnet habe: Sie ordnen die Schrittrichtung so an, dass die niedrigste Energieeigenfunktion den geringsten negativen Wert von und damit der langsamste Zerfall. Beim Iterieren einer zufälligen Eingabe bleibt sehr schnell nur die Form der niedrigsten Energieeigenfunktion übrig. Dann subtrahieren Sie dies vom Zufallseingang und wiederholen den Vorgang: Jetzt ist die nächstniedrigere Energieeigenfunktion die dominierende. Und so weiter. Es klingt ein bisschen zwielichtig (vor allem höher - h-hν eigenfuncs) aber es funktioniert! -hν

1
@DavidKetcheson: Eine Reaktions-Diffusions-Gleichung hat die Form . Im Fall der Schrödinger-Gleichung ist R ( u ) = V u ; Darf ich dann fragen, warum es sich nicht um eine RD-Gleichung handelt? Und seltsamerweise erscheint die Schrödinger-Gleichung tatsächlich in dem Wiki-Artikel über Reaktionsdiffusion, auf den ich verwiesen habe. Diese Zweideutigkeit, die ich gemacht habe, erscheint auch in vielen veröffentlichten Zeitschriften und Textentu=Dx2u+R(u)R(u)=Vu(Gehen Sie voran und suchen Sie es). Vielleicht wäre es für mich besser gewesen, die Verwendung von Standardbibliotheken (wie hier das übliche MO) wie PETSc, deal.ii oder pyCLAW zu empfehlen?
Kyle Kanos

1
@KyleKanos: Dein Beitrag ist gut. Tatsächlich wird Crank-Nicolson in dem von David Ketcheson veröffentlichten Artikel durch die erste Bezugnahme befürwortet. Der Vergleich zur Reaktionsdiffusion ist gut; Wie Sie bemerken, taucht der Vergleich zur Reaktionsdiffusion in vielen veröffentlichten Quellen auf. Ich denke, David Ketcheson suchte nach etwas wie der oben erwähnten "dispersiven Wellengleichung".
Geoff Oxberry

22

In den frühen 90er Jahren suchten wir nach einer Methode, um das TDSE schnell genug zu lösen, um Animationen in Echtzeit auf einem PC zu erstellen, und stießen auf eine überraschend einfache, stabile und explizite Methode, die von PB Visscher in Computers in Physics beschrieben wurde : " Ein schneller expliziter Algorithmus für die zeitabhängige Schrödinger - Gleichung ". Visscher stellt fest, dass, wenn Sie die Wellenfunktion in Real- und Imaginärteil aufteilen, , die SE zum System wird:ψ=R+ichich

dRdt=Hichdichdt=-HRH=-12m2+V

Wenn Sie dann berechnen und I zeitlich versetzt ( R bei 0 , Δ t , 2 Δ t , . . . Und ich bei 0,5 Δ t , 1,5 Δ t , . . . ) , Erhalten Sie die Diskretisierung:RichR0,Δt,2Δt,...ich0,5Δt,1.5Δt,...)

R(t+12Δt)=R(t12Δt)+ΔtHI(t)

I(t+12Δt)=I(t12Δt)ΔtHR(t)

mit (Standard-Dreipunkt-Laplace).

2ψ(r,t)=ψ(r+Δr,t)2ψ(r,t)+ψ(rΔr,t)Δr2

Dies ist explizit, sehr schnell zu berechnen und in genau zweiter Ordnung .Δt

Definieren der Wahrscheinlichkeitsdichte als

in ganzzahligen Zeitschritten und

P(x,t)=R2(x,t)+ich(x,t+12Δt)ich(x,t-12Δt)

in Schritten von einer halben ganzen Zahl

P(x,t)=R(x,t+12Δt)R(x,t-12Δt)+ich2(x,t)

macht den Algorithmus einheitlich, wodurch die Wahrscheinlichkeit erhalten bleibt.

Mit genügend Codeoptimierung konnten wir sehr schöne Animationen erhalten, die in Echtzeit auf 80486-Computern berechnet wurden. Die Schüler konnten jedes Potential "schöpfen", eine Gesamtenergie auswählen und die zeitliche Entwicklung eines Gaußschen Pakets verfolgen.


Das ist ein sehr guter Trick, um die realen und imaginären Komponenten zu lösen! Beachten Sie auch, dass Sie mit große, zentrierte Gleichungen erhalten können $$ ... $$. Ich habe mir erlaubt, das für dich zu tun, ich hoffe es macht dir nichts aus!
Kyle Kanos

Wir haben uns sehr gefreut, den Algorithmus zu finden - er war einfach zu programmieren und lief schnell. Der schwierigste Teil war, die Anfangsbedingungen richtig zu machen, R bei t = 0 und ich bei 0,5dt ... Die Bearbeitung macht mir nichts aus, ich war glücklich, überhaupt Gleichungen zu erhalten.

1
@ user40172 Wir haben ungefähr zur gleichen Zeit dasselbe für Wellenleiter gemacht und uns für das in meiner Antwort beschriebene BPM entschieden. Der Grund war, dass wir damals die FFTs getrennt von der Haupt-CPU mit einer DSP-Karte betreiben konnten. Wir dachten, wir wären so schlau, aber ich muss sagen, dass die Entwicklung einer Hardwarelösung für ein Softwareproblem im Jahr 2014 ziemlich schlecht aussieht! Die neueste Version von Visual Studio C ++ vektorisiert automatisch Code über CPUs und leistet mit der FFT hervorragende Arbeit.

1
0,5dt

1
@Rusian Da wir Streuung durchgeführt haben, haben wir ein Standard-Gauß-Wellenpaket mit freien Partikeln verwendet, aber darauf geachtet, dass es "weit genug" von allen Regionen entfernt gestartet wird, in denen das Potenzial nicht Null ist. Siehe zum Beispiel: demonstrations.wolfram.com/EvolutionOfAGaussianWavePacket

10

xt

Was Sie tun würden, ist eine getarnte Version der Strahlausbreitungsmethode für die optische Ausbreitung durch einen Wellenleiter mit unterschiedlichem Querschnitt (analog zu zeitlich variierenden Potentialen). Es wäre daher hilfreich, dies ebenfalls nachzuschlagen.

Ich betrachte SSFM / BPM folgendermaßen. Grundlage ist die Trotter-Produktformel der Lie-Theorie:

(1)limm(exp(Dtm)exp(Vtm))m=exp((D+V)t)

x-yx-y-zψ(x,y,z)tNΨ1024×1024N=10242=1048576

(2)dtΨ=KΨ=(D+V(t))Ψ

K=D+VN×Nu(N)Ψexp(Kt)iK=D+VNU(N)D+Vich2/(2m)-ich-1V0+ich-1(V0-V(x,y,z,t0))V0

Wir lassen:

(3)D=ich2m2-ich-1V0V=ich-1(V0-V(x,y,z,t))

Warum ich sie so aufgeteilt habe, wird unten klar.

DΨexp(ΔtD)Ψ

  1. FFT an Datensatz übergeben ΨΨ~x,y,zkx,ky,kz
  2. Ψ~exp(ΔtD)Ψ~exp(ichΔt(V0-kx2+ky2+kz2)/)
  3. Verursachen Sie eine inverse FFT, um unser Gitter wieder auf abzubildenexp(ΔtD)Ψ

    Jetzt sind wir wieder in der Position Domain. Dies ist die bessere Domain, um den Betreiber zu vermittelnVV

  4. Vermitteln Sie den Bediener Ψexp(ΔtV)Ψexp(ichΔt(V0-V(x,y,z,t))/)

ΔtV(x,y,z,t)

Δtexp(D+VΔt)exp(DΔt)exp(VΔt)VD

Beachten Sie, dass Sie selbst in der diskretisierten Welt immer nur einheitliche Operatoren vermitteln: FFTs und reine Phasenfaktoren.

ΔtΔxΔx/Δtc

Ein zweiter "Erfahrungspunkt" mit dieser Art von Dingen - ich würde fast wetten, dass Sie so Ihren Ideen folgen werden. Wir haben oft Ideen, die wir einfach und schnell und schmutzig simulieren wollen, aber es klappt nie ganz so! Ich würde mit dem SSFM beginnen, wie ich oben beschrieben habe, da es sehr einfach zu starten ist und Sie schnell sehen werden, ob die Ergebnisse physisch sind oder nicht. Später können Sie mit Ihrem Mathematica-SSFM-Code die Ergebnisse eines komplexeren Codes überprüfen, der möglicherweise einen Crank-Nicolson-Code nach Kyle Kanos Antwort erstellt .


Fehlergrenzen

Die Dynkin-Formel-Realisierung des Baker-Campbell-Hausdorff-Theorems:

exp(DΔt)exp(V)Δt)=exp((D+V)Δt+12[D,V]Δt2+)
Δt>0 zeigt, dass das Verfahren auf die zweite Ordnung genau ist, und kann zeigen, dass:

exp(DΔt)exp(V)Δt)exp(-12[D,V]Δt2)=exp((D+V)Δt+O(Δt3))

exp(V)Δt)exp(-12[D,V]Δt2)Δt

Δt22[D,V]=-ichΔt22m(x2V(x,t)+2xV(x,t)x)

[D,V]exp(-12[D,V]Δt2)e-ichφΔt2(ichd-(12[D,V]-ichφ(t))Δt2)(ichd-(12[D,V]-ichφ(t))Δt2)ψψ(x,t)Δtφ(12[D,V]-ichφ(t))Δt2exp(φdt)

Ein relevantes Papier über Fehler im SSFM / BPM ist:

Lars Thylén. "The Beam Propagation Method: Eine Analyse seiner Anwendbarkeit", Optical and Quantum Electronics 15 (1983), S. 433-439 .

Lars Thylén denkt über die Fehler in nicht-lügentheoretischen Begriffen nach (Lie-Gruppen sind meine Neigung, deshalb suche ich gerne nach Interpretationen davon), aber seine Ideen sind im Wesentlichen die gleichen wie oben.


1
exp[Δt(D+V)]exp[ΔtV/2]exp[ΔtD]exp[ΔtV/2]ΔtBefugnisse. Siehe zum Beispiel Bandrauk und Shen, Chem. Phys. Lette. 176, 428 (1991). Offensichtlich kann Ihr kinetischer Term nicht von den Koordinaten abhängen, das heißt, er funktioniert in krummlinigen Koordinaten nicht gut.

1
Ansonsten ist diese Split-Operator-Sache gekoppelt mit der FFT-Bewertung des kinetischen Energieoperators eine der Standardprozeduren zur Lösung des TDSE auf einer gitterbasierten Darstellung in der Molekularphysik.

@perplexity Vielen Dank. Es ist gut zu wissen, welche Felder verwendet werden. Das Datum 1991 auf Ihrer Referenz ist interessant: Ich war mir immer ziemlich sicher, dass die Idee des Split-Steps in den späten 1970er Jahren aus der Wellenleitersimulation hervorgegangen ist - vielleicht irre ich mich also.

1
Sie sind überhaupt nicht falsch. Das war in der Tat die Inspiration. Die erste Arbeit, die diese Ideen in QM umsetzt, die mir bekannt ist, ist Feit, Fleck und Steiger, J. Comput. Phys. 47, 412 (1982), wo sie, wenn ich mich recht erinnere, im Wesentlichen dieselben Tricks anwenden, mit dem Vorteil, dass der Operator hier einheitlich aufgebaut ist (im Gegensatz zu klassischen Wellen). Der FFT-Gitter-basierte Ansatz für diese Art von Simulationen wurde, glaube ich, zuerst von Ronnie Kosloff vorgeschlagen. Er hat eine sehr schöne Rezension zu diesem Thema auf seiner Webseite.

Eine weitere gute Referenz in meinem Bereich ist David Tannors Buch über Quantenmechanik: Eine zeitabhängige Perspektive. Prost.

5

Ich kann die Verwendung der Finite-Differenzen-Zeitdomänen-Methode (FDTD) empfehlen. Ich habe sogar vor einiger Zeit ein Tutorial geschrieben, das die meisten Ihrer Fragen beantworten sollte:

JR Nagel, "Eine Überprüfung und Anwendung des Algorithmus für den endlichen Zeitbereich, der auf die Schrödinger-Gleichung angewendet wird", ACES Journal, Vol. 24, Nr. 1, Februar 2009

Ich habe einige Matlab-Codes, die gut für 1D-Systeme laufen. Wenn Sie Erfahrung mit FDTD in der Elektromagnetik haben, funktioniert dies auch hervorragend für die Quantenmechanik. Ich kann meine Codes posten, wenn Sie interessiert sind.

Grundsätzlich werden die Wellenfunktionen nur direkt bearbeitet, indem die Ableitungen in endliche Differenzen aufgeteilt werden. Es ist dem Crank-Nicholson-Schema ähnlich, aber nicht genau. Wenn Sie mit FDTD aus der Theorie der elektromagnetischen Wellen vertraut sind, ist FDTD beim Lösen der Schrödinger-Gleichung sehr intuitiv.


4

Die einfachste Methode für finite Differenzen ist schnell und einfach zu verstehen, aber nicht einheitlich in der Zeit - die Wahrscheinlichkeit bleibt also nicht erhalten. Crank-Nicholson-Crout mittelt die vorwärts- und rückwärtsgerichteten Finite-Differenzen-Methoden, um eine hybride implizite / explizite Methode zu erzeugen, die immer noch recht einfach zu verstehen und zu implementieren ist und zeitlich einheitlich ist. Diese Site erklärt die Methode gut, stellt Pseudocode bereit und gibt die relevanten Eigenschaften an:

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ Hinweis: In der LHS der Gleichung 1 dieses Links fehlt ein - Zeichen, das sich auf der gesamten Seite ausbreitet.

Woher kommt die Nichteinheitlichkeit?

Um es auf den Punkt zu bringen: Beim Lösen des TDSE muss man herausfinden, wie man damit umgeht

|ψ(x,t)=e-ichHt|ψ(x,0)

welches einen Differentialoperator in einem Exponential enthält.

Durch Anwenden einer endlichen Vorwärtsdifferenz wird der Differentialoperator in eine tridiagonale Matrix (Umwandlung der Reals in ein Gitter) und das Exponential in die ersten beiden Terme seiner Taylor-Reihe umgewandelt

e-ichHt1-ichHt

Diese Diskretisierung und Linearisierung führt zur Nichteinheitlichkeit. (Sie können zeigen, dass die tridiagonale Matrix durch direkte Berechnung nicht einheitlich ist.) Die Kombination der vorwärts endlichen Differenz mit der rückwärts endlichen Differenz ergibt die Approximation

e-ichHt1-12ichHt1+12ichHt

was freundlicherweise einheitlich ist (wieder können Sie es durch direkte Berechnung zeigen).


Danke für die schnelle Antwort. Können Sie mehr Details zu diesen beiden Methoden liefern? Wie arbeiten sie und warum? Woher kommt die Nichteinheitlichkeit?
Emilio Pisanty

Ich würde gerne nähere Angaben machen, aber um nicht meine Zielgruppe zu verpassen, wäre es hilfreich zu wissen, wie viel Bildung und Erfahrung Sie in den folgenden Bereichen gesammelt haben: Analysis, Differentialgleichungen, Lineare Algebra, Quantenmechanik und numerische Methoden (insbesondere Finite-Differenzen-Methoden).

Nehmen Sie bitte so viel an, wie Sie von der Standardphysik und der Mathematik benötigen (obwohl Verweise auf die komplizierteren Teile wahrscheinlich helfen würden). Meine numerischen Methoden sind allerdings etwas verrostet.
Emilio Pisanty

Gibt es irgendwelche Unterschiede zwischen dieser und der Antwort von Kyle Kanos ? Ich meine, es ist nicht offensichtlich, wie Sie Ihre letzte Gleichung implementieren können - wie Sie geschrieben haben, bedeutet dies, dass ein vollständiger Operator invertiert wird. Sie sagen lediglich, dass die CN-Methode durch die Lösung ihrer tridiagonalen Gleichung einfach funktioniert(1+ich2Ht)-1(1+ich2Ht)ψ

Nein, es ist der gleiche Algorithmus wie von Kyle Kanos. Ich habe es nur so geschrieben, um es anders zu sehen. Ich habe gehofft, dass es einfacher zu konzipieren ist - während es einfacher zu implementieren ist. Ja, Sie lösen letztendlich nur eine tridiagonale Gleichung. Es gab ein altes (1967) Papier in AJP, das ich früher nicht finden konnte und das es sehr gut beschreibt: ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf Sie verwendeten CN, um 8-mm- Filmschleifen von Gaußschen Wellenpaketen zu produzieren verschiedene Potentiale abstreuen. Sie finden diese Filmschleifen immer noch in vielen Demo-Bibliotheken für Universitätsphysik.

3

H=p22m+V(x)=E.
pichx,  Eicht,  xx,
[-22mxx+V(x)]ψ=ichtψ,
2
xxψ=ttψ+

Zurück zum TDSE ist Crank-Nicolson die naheliegende Methode, da es sich um eine zeitlich begrenzte Erweiterung handelt, die die Einheitlichkeit der Evolution bewahrt (FTCS z. B. nicht). Für den 1-Raum-D-Fall kann es als eine Matrixiteration behandelt werden, die liest

ψn+1=(ich+ichτ2H~)-1(ich-ichτ2H~)ψn
ich
Hjk=(H~)jk=-22m[δj+1,k+δj-1,k-2δjkh2]+Vjδjk.
ψψψs=eichkx/L
|ψ|2dx
cp=E
c
ichcx=icht
Das heißt, die Advektionsgleichung, die keine Dispersion aufweist (wenn sie richtig in Lax-Wendroff-Methoden integriert ist), und Ihr Wellenpaket breiten sich in diesem Fall nicht mit der Zeit aus. Das Quantenanalogon ist die masselose Teilchen-Dirac-Gleichung.
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.