Quantenbahnen und womit sie essen

In dieser kleinen Notiz geht es darum, wie man schöne Bilder zeichnet, ein wenig ĂŒber die Physik, von der selten die Rede ist, ĂŒber die Bomov-Quantenmechanik.



Kleine EinfĂŒhrung


Wie uns jede Science-Fiction und jeder pseudowissenschaftliche Unsinn gerne erzÀhlt, wie zum Beispiel der Film The Secret, unterscheiden sich die Gesetze der Mikrowelt sehr von den klassischen, die wir gewohnt sind.
In der Welt der Quantenmechanik regiert die durch die Wellenfunktion gegebene Wahrscheinlichkeit alles.  psi (Detailinteressierte können beispielsweise den Beitrag „Myonkatalyse aus Sicht der Quantenchemie. Teil I: Gewöhnlicher Wasserstoff vs. Myonwasserstoff“ lesen .)
Die Beine aller Arten von lustigen Dingen, wie Schrödinger-Katzen , Heisenbergs Ungewissheitsprinzipien und Bells Ungleichungen, wachsen aus den wahrscheinlichkeitstheoretischen Eigenschaften eines Quantentech heraus.

Aber all diese Bilder mit allen Arten von Elektronenorbitalen beantworteten die Frage „Wie fliegt ein Elektron im Weltraum?“ Nicht. Um diese Situation zu klĂ€ren, verbrachten die Physiker viel Zeit damit, konnten sie aber nicht bewĂ€ltigen. Doch David Bohm (vielen durch den Aaronov-Bohm-Effekt bekannt ) schuf schließlich einen der Formalismen der Quantenmechanik (seinen Namen) , in dem es noch Trajektorien gibt, auf denen sich das Quantenteilchen bewegt. Und im Gegensatz zu den Feynman-Pfadintegralen ist dieser Pfad fĂŒr jedes Partikel genau einer. Diese Eigenschaft ermöglicht es Ihnen im Grunde, die Bewegung von Partikeln zu verfolgen und die Bewegung von klassischen Partikeln und Quantenteilchen zu vergleichen, auf die wir in diesem Artikel eingehen werden.
nicht nur Formalismus
Eigentlich interessiert sich niemand besonders fĂŒr den Formalismus selbst, aber aus diesem Formalismus kann man eine der Interpretationen der Quantenmechanik konstruieren, die aufgrund der scheinbaren Einfachheit der klassischen Mechanik von einigen Freaks geliebt wird (nicht vielen, weil es nicht sehr einfach ist, in dieses GeschĂ€ft einzusteigen).
Wir werden diese (wie auch andere) Interpretation nicht diskutieren.


Klassische und Quantenbahnen


Wir werden ein ziemlich langweiliges System betrachten: Ein Elektron im Feld mehrerer Protonen. Über dieses System sowie ĂŒber die klassische und die Quantenmechanik können Sie im ersten und zweiten Teil des Beitrags „Myonkatalyse aus Sicht der Quantenchemie“ lesen.

Das klassische Problem der Teilchenbewegung in einem bestimmten Potential ist durch das zweite Newtonsche Gesetz gegeben:

m ddotx=F


wobei m die Teilchenmasse ist, x die Koordinate ist, F die auf das Teilchen wirkende Kraft ist und  ddotx= fracd2xdt2 - die zweite Ableitung der zeitlichen Koordinate des Partikels oder die Beschleunigung. Wenn nur potentielle KrĂ€fte im System wirken, kann die Kraft durch eine neue EntitĂ€t ausgedrĂŒckt werden, potentielle Energie V as

F=− fracdVdx


In unserem Fall ein Elektron im Feld mehrerer Protonen,

wo das Elektron mit jedem der Protonen nach dem Coulombschen Gesetz wechselwirkt

V(R)=−ke2/R

wobei k ein Koeffizient ist, der in Atomeinheiten gleich 1 ist, e die Elektronenladung ist und R der Abstand vom Elektron zum Proton ist.
In diesem Fall ist das Gesamtpotential, das auf das Elektron wirkt, gleich

V= sumNn=1Vn(Rn)=− sumNn=1 fracke2Rn


wobei der Index n die Protonen (Gesamtprotonen N StĂŒck) nummeriert und R n der Abstand vom Elektron zum n- ten Proton ist.

Das numerische Lösen des Diffurs, das Newtons zweites Gesetz ist, ist eine schwierige Aufgabe. Hauptsache, Sie mĂŒssen die Ausgangsposition und die Geschwindigkeit festlegen. Wenn das Elektron zu schnell fliegt, bricht es aus der Anziehungskraft des Protons (der Protonen) aus und fliegt ins Unendliche. Wenn nur ein bisschen Energie vorhanden ist, flattert es fĂŒr immer im Feld eines der Kerne, ohne die anderen zu besuchen.
Strahlungsreibung
Wenn wir die Strahlungsreibung berĂŒcksichtigen, die dadurch entsteht, dass das Elektron bei seiner Bewegung mit Beschleunigung einen Teil seiner Energie an das elektromagnetische Feld abgibt und es irgendwo abgibt, rollt das Elektron irgendwann auf den Kern.

Was also in den Klassikern passiert, wissen wir.

Aber was wird in der Bomov-Dynamik passieren?
In diesem Fall bewegt sich das Teilchen auch nach dem zweiten Newtonschen Gesetz mit Potenzial V=V mathrmC+V mathrmQ wo V mathrmC - das klassische Potential aus dem ĂŒblichen Newtonschen Gesetz, das in unserem Fall die oben angegebene Form hat.
Das heißt ZusĂ€tzlich zum klassischen Potential wird eine andere EntitĂ€t darauf einwirken: das Quantenpotential V mathrmQ mit (in 1D Fall) der Form

V mathrmQ=− frac hbar22mA fracd2Adx2


Dabei ist A die Amplitude (der Modul) der Wellenfunktion A=| psi| (  psi=A exp(i varphi) wo  varphi - Phase der Wellenfunktion).
Um die Bewegungsgleichung eines Quantenteilchens zu erhalten, mĂŒssen wir noch etwas ĂŒber die Wellenfunktion wissen.
Über versteckte Optionen
Böhms Formalismus ist eine Theorie mit versteckten Parametern. Da der verborgene Parameter (Wellenfunktion) jedoch nicht lokal ist, genĂŒgt das Rechenergebnis dieses Formalismus immer noch den oben erwĂ€hnten Ungleichungen von Bell.


Im Fall eines Protons kennen wir (siehe zum Beispiel hier ) den genauen Ausdruck der Elektronenwellenfunktion im Grundzustand (1s) [ in atomaren Einheiten ]:

 psi(R)= exp(−R)


Über Normalisierung und Einheiten
In der Formel fĂŒr das Quantenpotential wird die Normalisierung des ZĂ€hlers mit dem Nenner reduziert, so dass wir uns nicht darum kĂŒmmern werden.
Das Argument des Exponenten ist in der Tat nicht wert R und R/a0 wo a0 Ist der Bohr-Radius (0.529 Å). Aber da wir atomare Einheiten verwenden, wo a0=1 Diese LĂ€ngeneinheit können wir uns leisten, nicht zu schreiben. Mehr dazu können Sie hier lesen.

Bei mehreren Protonen ergibt sich im Rahmen der Methode der MolekĂŒlorbitale als Kombinationen von Atomorbitalen ( MO LKAO , siehe hier ) der Grundzustand mit ausreichender Genauigkeit aus der Summe der 1s-Orbitale der Atome:

 psi ungefĂ€hr sumNn=1 psin(Rn)= sumNn=1 exp(−Rn)


Um das Quantenpotential herauszufinden, mĂŒssen Sie nur diesen Ausdruck verwenden.
Nun <s> d </ s>
Funktion  psi als Summe der 1s-Orbitale ist also real A= psi .
Da sich ein Elektron in drei Dimensionen bewegen kann, wird eine eindimensionale Ableitung benötigt A″xx= fracd2Adx2 Ersetzen Sie mit seiner dreidimensionalen Verallgemeinerung:  DeltaA=A″xx+A″yy+A″zz . Betreiber  Delta kann als Quadrat des Operators nabla dargestellt werden :  Delta= nabla2 . Sie können sich auch die Entfernung vorstellen Rn wie Rn= sqrt mathbfR2n wo  mathbfRn Ist der Radiusvektor des Elektrons relativ zum n-ten Proton.

Dann

 DeltaA= nabla2 psi= sumNn=1 nabla2 psin(Rn)


Die erste Ableitung gilt als einfach:

 nabla psin(Rn)= nabla exp(−Rn)= exp(−Rn) cdot(−1) cdot frac12 Underbrace sqrt mathbfR2nRn cdot2 mathbfRn=− exp(−Rn) cdot frac mathbfRnRn


Die zweite Ableitung ist schon etwas komplizierter:

 nabla( nabla exp(−Rn))=− frac mathbfRnRn nabla exp(−Rn)− exp(−Rn) nabla frac mathbfRnRn= exp(−Rn)− frac2 exp(−Rn)Rn


wo − frac mathbfRnRn nabla exp(−Rn)= exp(−Rn) cdot underbrace left(− frac mathbfRnRn right)21= exp(−Rn) und
− exp(−Rn) nabla frac mathbfRnRn=− exp(−Rn) cdot left( frac overbrace nabla mathbfRn3Rn− frac2 mathbfR2n2R3n right)=− frac2 exp(−Rn)Rn .
Das Ergebnis bleibt:
 Delta psi= overbrace sumNn=1 exp(−Rn) psi− sumNn=1 frac2 exp(−Rn)Rn
Teilen Sie alles in  psi=A und multiplizieren mit − frac hbar22m
wir bekommen
V mathrmQ=− frac hbar22m left(1− sumNn=1 frac2 exp(−Rn)Rn right)
Die Einheit verschwindet wÀhrend der Differenzierung, um StÀrke zu erlangen, so dass Sie nur die zweite Amtszeit sicher verlassen können.

Dadurch können wir unser Quantenpotential als aufschreiben

V mathrmQ ungefĂ€hr frac hbar2m sumNn=1 frac exp(−Rn)Rn


und mit diesem ausdruck können wir bereits die böhmsche dynamik eines elektronen im feld vieler protonen steuern.

Implementierung


FĂŒr all diese Schande wurde Code in Python geschrieben, den es hier gibt:
Python-Code
from math import * import numpy as np cutoff=5.0e-4 Quantum=True def dist(r1,r2): return np.dot((r1-r2), (r1-r2)) def Vc(r, r0): if dist(r, r0)>=cutoff: return -1.0/dist(r, r0) else: return -1.0/cutoff rH=[] #h1 #rH.append(np.array([ 0.0, 0.0, 0.0])) #h2 rH.append(np.array([-1.0, 0.0, 0.0])) rH.append(np.array([+1.0, 0.0, 0.0])) def Vat(r): V=0.0 for rh in rH: V+=Vc(r,rh) return V def PsiA(r): psi=0.0 for rh in rH: if dist(r, rh)<1.0e3: psi+=np.exp(-dist(r, rh)) return psi def Vq(r): vq=0.0 for rh in rH: if dist(r, rh)>=cutoff: vq-=2.0*np.exp(-dist(r, rh))/dist(r, rh) else: vq-=2.0*np.exp(-cutoff)/cutoff vq*=(-0.5) # -0.5*hbar**2/me return vq def GradF(F, r): grad=np.zeros(3) dx=0.1 for i in range(0,3): dr=np.zeros(3) dr[i]=dx #print(dr) #print(F(r+dr)-F(r-dr)) grad[i]+=(F(r+dr)-F(r-dr))/(2.*dx) return grad dt=0.001 tmax=2.0e1 DR=1.0 dx=0.001 MaxR=10.0 t=0.0 cent=np.zeros(3) Ntrj=30 m=1.0 def GenRvBox(DX): return np.random.uniform(-DX,+DX,3) def GenRvSph(DX): r=np.random.uniform(0.0,DX) phi=np.random.uniform(0.0,2.0*np.pi) theta=np.random.uniform(0.0,np.pi) x=r*np.sin(theta)*np.cos(phi) y=r*np.sin(theta)*np.sin(phi) z=r*np.cos(theta) return np.array([x,y,z]) for ntrj in range(0,Ntrj): if Quantum: outf=open("bmd_%05i" % (ntrj) + ".trj", "w") else: outf=open("cmd_%05i" % (ntrj) + ".trj", "w") nat=np.random.randint(0,len(rH)) r=rH[nat]+GenRvSph(DR) rprev=r+GenRvBox(dx) outf.write("%15.10f %15.10f %15.10f\n" % tuple(r)) t=0.0 while t<=tmax and dist(r,cent)<=MaxR: F= -GradF(Vat, r) if Quantum: F-= GradF(Vq, r) rnew= 2.*r - rprev + (F/m)*dt**2 rprev=r r=rnew outf.write("%15.10f %15.10f %15.10f\n" % tuple(r)) t+=dt outf.close() exit() 


Wir werden nur einige Punkte diskutieren.
Newtons zweites Gesetz wird mit dem Verlet-Algorithmus integriert :

x(t+ Deltat)=2x(t)−x(t− Deltat)+ fracF(t)m Deltat2


Die Anfangsposition wird durch zufĂ€lliges AuswĂ€hlen eines der Protonen erzeugt, eine Richtung wird zufĂ€llig um dieses herum ausgewĂ€hlt (unter Verwendung von Kugelkoordinaten). Um die Anfangsgeschwindigkeit einzustellen, mĂŒssen Sie eine andere vorherige Position einstellen. Es wird unter Verwendung eines anderen kleinen Zufallsvektors ausgewĂ€hlt.

Durch Ein- und Ausschalten des Quantenpotentials wechseln wir zu quantenklassischen Bewegungsmodi.

Dann können Sie mit Gnuplot wunderschöne Bilder fĂŒr das Wasserstoffatom erstellen

und fĂŒr das MolekĂŒl H 2 +


Wie Sie sehen können, sind die klassischen Flugbahnen (oben, blau) entweder sehr lokalisiert oder, wenn sich das Elektron zu schnell bewegen muss, von den Kernen weggelaufen. Im Quantenfall (niedriger, rosa) können die Elektronen aufgrund des Quantenpotentials wesentlich weiter vom Kern entfernt sein, und im Fall des H 2 + -MolekĂŒls können Sie von einem Proton zum anderen laufen, was eine indirekte Visualisierung chemischer Bindungen darstellt.

Ein paar Worte zum Erstellen von Bildern: Um einen Neon-Effekt zu erzielen, wird jeder Pfad mehrmals von dĂŒnnem Weiß bis zu dickem Schwarz durch die Schatten der gewĂŒnschten Farbe gezogen. Zum bequemen AuswĂ€hlen einer solchen Palette können Sie beispielsweise die Website https://www.color-hex.com/ verwenden.
Ein Beispielskript ist unten angegeben.
Skript fĂŒr Gnuplot
unset key
set xyplane relative 0

unset box

set view map

set size ratio -1

unset border
unset xtics
unset ytics

set terminal pngcairo size 2160,4096 backgr rgb "black"
set output "tmp.png"

yshift=-5.0
maxiC=29
maxiQ=29
splot \
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 30.0 lc rgb "#030d19" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 18.0 lc rgb "#071b33" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 17.0 lc rgb "#0a294c" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 16.0 lc rgb "#0e3766" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 15.0 lc rgb "#11457f" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 14.0 lc rgb "#155399" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 13.0 lc rgb "#1861b2" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 12.0 lc rgb "#1c6fcc" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 11.0 lc rgb "#1f7de5" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 10.0 lc rgb "#238bff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 9.0 lc rgb "#3896ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 8. lc rgb "#4ea2ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 7. lc rgb "#65adff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 6. lc rgb "#7bb9ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 5. lc rgb "#91c5ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 4. lc rgb "#a7d0ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 3. lc rgb "#bddcff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 2. lc rgb "#d3e7ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 1. lc rgb "#e9f3ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 0.5 lc rgb "#ffffff" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 30.0 lc rgb "#190613" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 18.0 lc rgb "#330c27" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 17.0 lc rgb "#4c123b" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 16.0 lc rgb "#66184f" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 15.0 lc rgb "#7f1e63" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 14.0 lc rgb "#992476" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 13.0 lc rgb "#b22a8a" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 12.0 lc rgb "#cc309e" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 11.0 lc rgb "#e536b2" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 10.0 lc rgb "#ff3dc6" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 9.0 lc rgb "#ff50cb" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 8. lc rgb "#ff63d1" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 7. lc rgb "#ff77d7" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 6. lc rgb "#ff8adc" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 5. lc rgb "#ff9ee2" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 4. lc rgb "#ffb1e8" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 3. lc rgb "#ffc4ed" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 2. lc rgb "#ffd8f3" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 1. lc rgb "#ffebf9" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 0.5 lc rgb "#ffffff" not



Fazit


Die Flugbahnen von Bomov sind zwar schwer zu verstehen und zu berechnen, ermöglichen es Ihnen jedoch, schöne Bilder zu zeichnen, die zeigen, wie viel mehr Spaß und Reichtum als die klassische Mechanik machen.

Wenn Sie Kommentare, Fragen, VorschlÀge haben: schreiben Sie. :)

Source: https://habr.com/ru/post/de476948/


All Articles