X-Mas Übungszettel, Aufgabe 18

Ein Hinweis vorneweg: Um Änderungen und neue Funktionen, etc, zu testen, verwenden Sie immer kleine Systemparameter, also insbesondere, eine kleine Systemgröße und kurze Zeit.

Dynamik

a) Dynamik in der Tundra

Wir beginnen damit, dass wir die Startwellenfunktion definieren. Diese soll ein Gausspaket lokalisiert bei x0, mit Breite a und Impuls k sein.

ψ0[x_,x0_,a_,p_]:=(π a^2)^(-1/4)Exp[- (x-x0)^2/(2a^2)+I p x]

Nun testen wir die Normierung von ψ0....

Integrate[Abs[ψ0[x,0,a,0]]^2,{x,-Infinity,Infinity}];

... und lösen die zeitabhängige Schrödingergleichung. Dazu definieren wir zunächst die Parameter unseres Problems
- size: Systemgroesse, 
- mass: Masse des “Teilchens”, 
- maxtime: Laenge des Zeitintervalls, das wir betrachten, 
... und die Parameter des Zustandes bei t=0. 
- initwidth: Breite des Wellenpakets zu Beginn, 
- initp: Impulswert fuer die Startwellenfunktion, 
- start: Startposition des Wellenpakets

size = 20;
mass=5;
maxtime = 10;
initwidth = .5;
initp = 10;
start = 0;

Unter Verwendung der Funktion NDSolve lösen wir die zeitabhaengige Schroedingergleichung numerics. Das ist eine partielle Differentialgleichung zweiter Ordnung. Vollziehen Sie nach, wie das funktioniert. 
NB: Es dauert ggf. eine Weile, bis Mathematica die Loesung berechnet hat.

free=NDSolve[
{-1/(2mass) D[ψ[x,t],x,x]== I D[ψ[x,t],t],
ψ[x,0] == ψ0[x,start,initwidth,initp],
ψ[size,t]==0,ψ[-size,t]==0},
ψ,
{x,-size,size},
{t,0,maxtime}];

Nun plotten wir die die Lösung in Abhängigkeit der Zeit. Dazu eignet sich die Funktion “Manipulate”. 
NB 1: Damit das ganze keine Stunden dauert, tun wir das nur für eine feste Anzahl “discretization” von Punkten. 
NB 2: Durch klicken auf das kleine ‘+‘ im Manipulate-Fenster koennen Sie Plotparameter einstellen, und sogar einen Film abspielen lassen.  
NB 3: Falls “Manipulate” nicht funktionieren sollte, plotten Sie die Wellenfunktion einfach fuer feste Zeitpunkte.

discretization =1000;

Manipulate[ListPlot[{Table[Flatten[{x,Evaluate[Abs[ψ[x,t]]^2/.free]}],{x,-size,size,2*size/discretization}]},PlotRange-> .2],{t,0,maxtime}]

b) Dynamik mit einzelnem Baum

Wir definieren das Potential eines einzelnen Baumes unter Verwendung der Funktion “Piecewise”.

USingleTree[x_,x0_,h_,w_]:=Piecewise[{{0,x<x0-w/2},{(x- x0+w/2) *2h/w,x0-w/2≤x≤x0},{-(x- x0-w/2) *2h/w,x0≤x≤x0+w/2},{0,x>x0+w/2}}]

Wieder definieren wir die Parameters unseres Problems. Dazu kommt nun 
- barrierpos: Position des Baumes
- treeheight: Höhe des Baumes
- treewidth: Breite des Baumes an der breitesten Stelle

size = 20;
maxtime = .5; 
start = -10;
mass = 1;
initwidth = .5;initp = 20;barrierpos = 0;treeheight = 20; treewidth=2;

... und schauen uns das resultierende Potential an.

Plot[USingleTree[x,barrierpos
,treeheight,treewidth],{x,-.5size,.5size},PlotRange-> Full, Filling -> Bottom]

Nun lösen wir wieder die Schroedingergleichung mit Potential.

s=NDSolve[{-1/(2mass) D[ψ[x,t],x,x]+USingleTree[x,barrierpos,treeheight,treewidth]ψ[x,t]== I D[ψ[x,t],t],ψ[x,0] == ψ0[x,start,initwidth,initp],ψ[size,t]==ψ[-size,t]},ψ,{x,-size,size},{t,0,maxtime}];

Wieder wandeln wir alles in eine Tabelle um, damit das Plotten schneller geht.

discretization =1000;

BaumTable=Table[Flatten[{x,.02USingleTree[x,barrierpos,treeheight,treewidth]}],{x,-size,size,2*size/discretization}];

Manipulate[ListPlot[{Table[Flatten[{x,Evaluate[Abs[ψ[x,t]]^2/.s]}],{x,-size,size,2*size/discretization}],BaumTable},PlotRange-> Full],{t,0,maxtime}]

c) Dynamik in einer Baumschule

Wir definieren das Potential der Baumschule in Abhängigkeit der Anzahl von Bäumen, und der Größe des Systems, sowie der Parameter für die einzelnen Bäume

UBaumschule[x_,s_,n_,h_,w_]:=Sum[USingleTree[x,2*s/n *i,h,w],{i,-n/2+.5,n/2-.5}]

Nun kommt - ntrees: Anzahl der Bäume zu unseren Parametern dazu

size = 20;
maxtime = 5;
start = 0;
initwidth = .5;
initp = 2;
treeheight = 20; 
ntrees=10; treewidth=1;

Plot[UBaumschule[x,40,20,20,1],{x,-20,20},PlotRange-> Full, Filling -> Bottom]

Schroedingergleichung loesen

b=NDSolve[{-D[ψ[x,t],x,x]+UBaumschule[x,size,ntrees,treeheight,treewidth]ψ[x,t]== I D[ψ[x,t],t],ψ[x,0] == ψ0[x,start,initwidth,initp],ψ[size,t]==0,0==ψ[-size,t]},ψ,{x,-size,size},{t,0,maxtime}];

Plot der Loesung

discretization =1000;

BaumSchulTable=Table[Flatten[{x,.1UBaumschule[x,size,ntrees,treeheight,treewidth]}],{x,-size,size,2*size/discretization}];

Manipulate[ListPlot[{Table[Flatten[{x,Evaluate[Abs[ψ[x,t]]^2/.b]}],{x,-size,size,2*size/discretization}],BaumSchulTable},PlotRange-> Full],{t,0,maxtime}]

Es ist zu sehen, dass nach langer Zeit sich die Aufenthaltswahrscheinlichkeit über die gesamte Baumschule (also das gesamte Gitter) mittelt, und somit überall nahezu gleich ist.

d) Dynamik im Wald

Im Wald sind Bäume zufällig gemäß ihrer Breite, Höhe, und Position verteilt. Um das zu simulieren, ziehen wir jeweils Zahlen zwischen 0 und 1 zufällig. Diese werden wir später entsprechend skalieren.

PosList= RandomReal[{-1,1},500];
HeightList= RandomReal[1,500];
WidthList=RandomReal[1,500];
UWald[x_,s_,n_,h_,w_]:=Sum[USingleTree[x,s *PosList[[i]] ,h * HeightList[[i]],w *WidthList[[i]]],{i,1,n}]

size = 40;start = 0;barrierpos = 10;maxtime = 10;initwidth = .5;initp = 2;treeheight = 20; 
ntrees=2*size/2; 
treewidth=2;

Potential plotten

Plot[UWald[x,size,ntrees,treeheight,treewidth],{x,-20,20},PlotRange-> Full,Filling-> Bottom]

Wir lösen wieder die Schrödingergleichung.

w=NDSolve[{-D[ψ[x,t],x,x]+UWald[x,size,ntrees,treeheight,treewidth]ψ[x,t]== I D[ψ[x,t],t],ψ[x,0] == ψ0[x,start,initwidth,initp],ψ[size,t]==0,0==ψ[-size,t]},ψ,{x,-size,size},{t,0,maxtime}];

Plot der Lösung

discretization = 1000;

BaumTable=Table[Flatten[{x,.1UWald[x,size,ntrees,treeheight,treewidth]}],{x,-size,size,2*size/discretization}];

Manipulate[ListPlot[{Table[Flatten[{x,Evaluate[Abs[ψ[x,t]]^2/.w]}],{x,-size,size,2*size/discretization}],BaumTable},PlotRange-> Full],{t,0,maxtime}]

Im Gegensatz zur Baumschule sehen wir hier, dass die Aufenthaltswahrscheinlichkeit auch nach langer Zeit in der Nähe des Startpunktes am höchsten ist. Das Phänomen, das auf der Zufälligkeit des Potentials beruht, und der davon verursachten Interferenz, wurde in den 50er Jahren von Anderson entdeckt und nennt sich daher Anderson-Lokalisierung. Wenn viele Teilchen in einem zufälligen Potential sind, und außerdem noch wechselwirken, wird daraus die sogenannte “Vielteilchenlokalisierung”. Das ist ein deutlich komplexeres Phänomen, über das auch bei uns in der Arbeitsgruppe geforscht wird.

e) Kinematik des Waldes

Nun wollen wir  die stationäre Schrödingergleichung lösen, also ein Eigenwertproblem. Dazu definieren wir zunächst wieder die Parameter unseres Problems

NB: Weil wir keine Zeitabhängigkeit haben, können wir nun viel größere Systeme berechnen.

size = 100;
treeheight = 10;
ntrees=size/5; 
treewidth=1;

Wir lösen das Eigenwertproblem numerisch für die ersten k Eigenwerte und -funktionen unter Verwendung des Befehls “NDEigensystem”. Vollziehen Sie wieder nach, was hier passiert.

k=4;

{vals,funs}=NDEigensystem[
{-D[ϕ[x],x,x]+ UBaumschule[x,size,ntrees,treeheight,treewidth] ϕ[x],
DirichletCondition[ϕ[x]==0,True]},
ϕ,
{x,-size,size},
k];

Wir können nun die Lösungen graphisch darstellen.

NB: Dazu skalieren wir das Potential, so dass sich Potential und Eigenfunktionen gemeinsam darstellen lassen.

Table[
Plot[
{(Evaluate[ funs[[l]] ][x] )^2,
.01UBaumschule[x,size,ntrees,treeheight,treewidth]},
{x,-size,size},
PlotRange->Full,PlotLabel->vals[[l]],PlotTheme->"Minimal"],
{l,Length[vals]}]

Was wir hier beobachten können ist die Entstehung von sogenannten Bloch-Wellen im Festkörper. 
Zudem ist die Entstehung von sogenannter Bandstruktur zu beobachten, das sind Regionen mit hoher Aufenthaltswahrscheinlichkeit (die Bänder) und Regionen mit niedriger Aufenthaltswahrscheinlichkeit dazwischen (Bandlücken). In der Theorie von Festkörpern spielen diese (allerdings im k-Raum) eine große Rolle.