(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 9.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 157, 7] NotebookDataLength[ 76485, 1895] NotebookOptionsPosition[ 74152, 1815] NotebookOutlinePosition[ 74698, 1836] CellTagsIndexPosition[ 74655, 1833] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["\<\ Numerical solution of the 2D time-dependent Schr\[ODoubleDot]dinger equation \ using the Chebyshev method\ \>", "Title", CellChangeTimes->{{3.6213212817560925`*^9, 3.6213213519241056`*^9}, { 3.6213213949185653`*^9, 3.6213214189499397`*^9}, {3.621926050158556*^9, 3.6219260839950156`*^9}}], Cell[TextData[StyleBox["Colin Greenshields\n\nProgram developed and used \ during the period 2013-2015 as part of my PhD research at the University of \ Glasgow.", "Subsubtitle"]], "Subtitle", CellChangeTimes->{{3.6219290006735735`*^9, 3.6219290110724835`*^9}, { 3.6446617287097864`*^9, 3.6446617464158173`*^9}, {3.6446617834034824`*^9, 3.6446620867304153`*^9}, {3.6446621245916815`*^9, 3.644662131284094*^9}, { 3.6446621620005474`*^9, 3.6446621841837864`*^9}}], Cell[CellGroupData[{ Cell["Global variables", "Section", CellChangeTimes->{{3.6213215245459795`*^9, 3.621321534606555*^9}}], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "Using", " ", "$", " ", "to", " ", "indicate", " ", "global", " ", "variables"}], " ", "*)"}]], "Input", CellChangeTimes->{{3.6213223764767075`*^9, 3.6213223943327284`*^9}, 3.621929137167672*^9, {3.63801508177785*^9, 3.6380150963796854`*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"$Lx", "=", "7.5"}], ";"}], " ", RowBox[{"(*", " ", RowBox[{ "Length", " ", "of", " ", "simulation", " ", "area", " ", "along", " ", "x", " ", "axis"}], " ", "*)"}]}], "\n", RowBox[{ RowBox[{"$Nx", "=", "64"}], ";", " ", RowBox[{"(*", " ", RowBox[{ "Number", " ", "of", " ", "grid", " ", "points", " ", "along", " ", "x", " ", "axis"}], " ", "*)"}], "\n", RowBox[{"$Ly", "=", "7.5"}], ";"}], "\n", RowBox[{ RowBox[{"$Ny", "=", "64"}], ";"}], "\n", RowBox[{ RowBox[{"$m", "=", "1"}], ";", " ", RowBox[{"(*", " ", RowBox[{"Mass", " ", "of", " ", "particle"}], " ", "*)"}], "\n", RowBox[{"$\[HBar]", "=", "1"}], ";"}], "\n", RowBox[{ RowBox[{"$q", "=", RowBox[{"-", "1"}]}], ";", " ", RowBox[{"(*", " ", RowBox[{"Charge", " ", "of", " ", "particle"}], " ", "*)"}], "\n", RowBox[{"$\[Delta]", "=", "100"}], ";", " ", RowBox[{"(*", " ", RowBox[{ "Controls", " ", "the", " ", "accuracy", " ", "of", " ", "the", " ", "Chebyshev", " ", "expansion"}], " ", "*)"}]}]}], "Input", InitializationCell->True, CellChangeTimes->{{3.595572200134625*^9, 3.595572200136464*^9}, { 3.6213222371737394`*^9, 3.6213223650360527`*^9}, {3.621322420160206*^9, 3.621322444119576*^9}, {3.6213224832908163`*^9, 3.6213224881030917`*^9}, { 3.621658678484542*^9, 3.6216587045833874`*^9}, {3.621926344967874*^9, 3.6219263617379036`*^9}, {3.6219276352461405`*^9, 3.621927636837343*^9}, { 3.644661703936943*^9, 3.6446617048885446`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Discretisation", "Section", CellChangeTimes->{{3.6213215245459795`*^9, 3.621321534606555*^9}, { 3.6213216235616426`*^9, 3.6213216273508596`*^9}}], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ "Note", " ", "that", " ", "the", " ", "grid", " ", "is", " ", "centred", " ", "on", " ", "the", " ", "origin"}], " ", "*)"}]], "Input", CellChangeTimes->{{3.621322542013175*^9, 3.621322575340081*^9}, { 3.6213226414878645`*^9, 3.6213226508524003`*^9}, {3.6216587120714006`*^9, 3.621658736376243*^9}, {3.62192637696353*^9, 3.621926377478331*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"x", "[", "i_", "]"}], ":=", RowBox[{ RowBox[{"$Lx", "/", "$Nx"}], " ", RowBox[{"(", RowBox[{"i", "-", RowBox[{"$Nx", "/", "2"}]}], ")"}]}]}], " ", RowBox[{"(*", " ", RowBox[{ "x", " ", "coordinate", " ", "corresponding", " ", "to", " ", "index", " ", "i"}], " ", "*)"}]}], "\n", RowBox[{ RowBox[{"y", "[", "j_", "]"}], ":=", RowBox[{ RowBox[{"$Ly", "/", "$Ny"}], " ", RowBox[{"(", RowBox[{"j", "-", RowBox[{"$Ny", "/", "2"}]}], ")"}]}]}], "\n", RowBox[{ RowBox[{ RowBox[{"kx", "[", "i_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"2", " ", "\[Pi]"}], ")"}], "/", "$Lx"}], " ", RowBox[{"(", RowBox[{"i", "-", RowBox[{"$Nx", "/", "2"}]}], ")"}]}]}], " ", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Spatial", " ", "frequency", " ", "corresponding", " ", "to", " ", "index", " ", "i"}], ",", " ", RowBox[{ "when", " ", "working", " ", "in", " ", "Fourier", " ", "space"}]}], " ", "*)"}]}], "\n", RowBox[{ RowBox[{"ky", "[", "j_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"2", " ", "\[Pi]"}], ")"}], "/", "$Ly"}], " ", RowBox[{"(", RowBox[{"j", "-", RowBox[{"$Ny", "/", "2"}]}], ")"}]}]}]}], "Input", InitializationCell->True, CellChangeTimes->{{3.595572220584729*^9, 3.595572220586504*^9}, 3.6213226630881004`*^9, {3.6213230319761996`*^9, 3.6213231051233835`*^9}, { 3.621658775064311*^9, 3.6216587759067125`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Discrete", " ", "Fourier", " ", RowBox[{"transforms", ".", " ", "RotateLeft"}], " ", "is", " ", "used", " ", "since", " ", "the", " ", "Mathematica", " ", "functions", " ", "Fourier", " ", "and", " ", "InverseFourier", " ", "require", " ", "the", " ", "zero", " ", "frequency", " ", "to", " ", "be", " ", "at", " ", "the", " ", "start", " ", "of", " ", "the", " ", "array"}], ",", " ", RowBox[{"rather", " ", "than", " ", "in", " ", "the", " ", RowBox[{"centre", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"FT", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"$Lx", "/", RowBox[{"Sqrt", "[", RowBox[{"2", " ", "\[Pi]"}], "]"}]}], ")"}], " ", RowBox[{"(", RowBox[{"$Ly", "/", RowBox[{"Sqrt", "[", RowBox[{"2", " ", "\[Pi]"}], "]"}]}], ")"}], " ", RowBox[{"RotateLeft", "[", RowBox[{ RowBox[{"Fourier", "[", RowBox[{ RowBox[{"RotateLeft", "[", RowBox[{"\[CapitalPsi]", ",", RowBox[{"{", RowBox[{ RowBox[{"$Ny", "/", "2"}], ",", RowBox[{"$Nx", "/", "2"}]}], "}"}]}], "]"}], ",", RowBox[{"FourierParameters", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"$Ny", "/", "2"}], ",", RowBox[{"$Nx", "/", "2"}]}], "}"}]}], "]"}]}], "//", "N"}]}], "\n", RowBox[{ RowBox[{"InverseFT", "[", "\[CapitalPsi]FT_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", " ", "\[Pi]"}], "]"}], "/", "$Lx"}], ")"}], " ", RowBox[{"(", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", " ", "\[Pi]"}], "]"}], "/", "$Ly"}], ")"}], " ", RowBox[{"RotateLeft", "[", RowBox[{ RowBox[{"InverseFourier", "[", RowBox[{ RowBox[{"RotateLeft", "[", RowBox[{"\[CapitalPsi]FT", ",", RowBox[{"{", RowBox[{ RowBox[{"$Ny", "/", "2"}], ",", RowBox[{"$Nx", "/", "2"}]}], "}"}]}], "]"}], ",", RowBox[{"FourierParameters", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"$Ny", "/", "2"}], ",", RowBox[{"$Nx", "/", "2"}]}], "}"}]}], "]"}]}], "//", "N"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.5955725955790854`*^9, 3.5955725955799713`*^9}, { 3.6213218332936387`*^9, 3.621321843387216*^9}, {3.621322961767184*^9, 3.6213229942440414`*^9}, {3.6213243746617107`*^9, 3.6213243784681177`*^9}, { 3.6213244662338715`*^9, 3.621324599614106*^9}, {3.621324647833791*^9, 3.62132466454142*^9}, {3.6215767969298744`*^9, 3.6215768138508425`*^9}, { 3.621658803908762*^9, 3.621658805234764*^9}, {3.621676274096043*^9, 3.621676281256456*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Spatial", " ", "derivatives", " ", "of", " ", "wavefunction"}], " ", "*)"}], "\n", RowBox[{ RowBox[{ RowBox[{"GridLaplacian", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{"InverseFT", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"kx", "[", "i", "]"}], "^", "2"}]}], "-", RowBox[{ RowBox[{"ky", "[", "j", "]"}], "^", "2"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", RowBox[{"$Nx", "-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", RowBox[{"$Ny", "-", "1"}]}], "}"}]}], "]"}], " ", RowBox[{"FT", "[", "\[CapitalPsi]", "]"}]}], "]"}]}], "\n", RowBox[{ RowBox[{"GridxDeriv", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{"InverseFT", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"I", " ", RowBox[{"kx", "[", "i", "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", RowBox[{"$Nx", "-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", RowBox[{"$Ny", "-", "1"}]}], "}"}]}], "]"}], " ", RowBox[{"FT", "[", "\[CapitalPsi]", "]"}]}], "]"}]}], "\n", RowBox[{ RowBox[{"GridyDeriv", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{"InverseFT", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"I", " ", RowBox[{"ky", "[", "j", "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", RowBox[{"$Nx", "-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", RowBox[{"$Ny", "-", "1"}]}], "}"}]}], "]"}], " ", RowBox[{"FT", "[", "\[CapitalPsi]", "]"}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.6213229138094406`*^9, 3.6213229731118326`*^9}, { 3.6215768230913706`*^9, 3.6215768774674807`*^9}, 3.621676313720113*^9}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"kxMax", "[", RowBox[{"Lx_", ",", "Nx_"}], "]"}], ":=", RowBox[{"\[Pi]", " ", RowBox[{"Nx", "/", "Lx"}]}]}], " ", RowBox[{"(*", " ", RowBox[{ "Maximum", " ", "frequency", " ", "represented", " ", "on", " ", "grid"}], " ", "*)"}]}], "\n", RowBox[{ RowBox[{"kyMax", "[", RowBox[{"Ly_", ",", "Ny_"}], "]"}], ":=", RowBox[{"\[Pi]", " ", RowBox[{"Ny", "/", "Ly"}]}]}]}], "Input", InitializationCell->True, CellChangeTimes->{{3.595572278695019*^9, 3.5955722786965933`*^9}, { 3.621321683810089*^9, 3.6213216998930087`*^9}, {3.6213228668377542`*^9, 3.621322885775837*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Take", " ", "an", " ", "analytical", " ", "function", " ", "f", RowBox[{"(", RowBox[{"x", ",", "y"}], ")"}], " ", "and", " ", "represent", " ", "it", " ", "on", " ", "the", " ", "grid"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ToGrid", "[", "f_", "]"}], ":=", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"f", "[", RowBox[{ RowBox[{"x", "[", "i", "]"}], ",", RowBox[{"y", "[", "j", "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", RowBox[{"$Nx", "-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", RowBox[{"$Ny", "-", "1"}]}], "}"}]}], "]"}], "//", "N", " "}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.5955723027917433`*^9, 3.5955723027935658`*^9}, { 3.605855022793309*^9, 3.6058550277945952`*^9}, {3.621321728277632*^9, 3.621321757805321*^9}, {3.6213227608886943`*^9, 3.6213228330308204`*^9}, { 3.621676302300893*^9, 3.6216763106469073`*^9}, {3.6219264407988424`*^9, 3.621926444137248*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Wavefunctions and potentials", "Section", CellChangeTimes->{{3.59557284312501*^9, 3.595572855239729*^9}, { 3.6203870369364243`*^9, 3.6203870405316296`*^9}, {3.621321786896985*^9, 3.621321791327238*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Introduce", " ", "cylindrical", " ", "coordinates"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"\[Rho]", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", RowBox[{"Sqrt", "[", RowBox[{ RowBox[{"x", "^", "2"}], "+", RowBox[{"y", "^", "2"}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"\[Phi]", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], "\[Equal]", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], ",", "0", ",", RowBox[{"ArcTan", "[", RowBox[{"x", ",", "y"}], "]"}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.595572278695019*^9, 3.5955722786965933`*^9}, 3.621321683810089*^9, {3.621334556099223*^9, 3.6213345637216587`*^9}, { 3.6215732591805267`*^9, 3.621573266132924*^9}, {3.621658952842223*^9, 3.6216589533102245`*^9}, {3.6216763320189447`*^9, 3.6216763331109467`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Cylindrically", " ", "symmetric", " ", "vector", " ", "potential", " ", "describing", " ", "uniform", " ", "B", " ", "field", " ", "along", " ", "the", " ", "z", " ", RowBox[{"axis", ".", " ", "The"}], " ", "symmetry", " ", "axis", " ", "of", " ", "the", " ", "vector", " ", "potential", " ", "is", " ", "located", " ", "at", " ", RowBox[{ RowBox[{"(", RowBox[{"x0", ",", "y0"}], ")"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"CylindricalA", "[", RowBox[{"x0_", ",", "y0_", ",", "B_"}], "]"}], ":=", RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "0.5"}], " ", "B", " ", RowBox[{"\[Rho]", "[", RowBox[{ RowBox[{"x", "-", "x0"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], " ", RowBox[{"Sin", "[", RowBox[{"\[Phi]", "[", RowBox[{ RowBox[{"x", "-", "x0"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], "]"}]}], ",", RowBox[{"0.5", " ", "B", " ", RowBox[{"\[Rho]", "[", RowBox[{ RowBox[{"x", "-", "x0"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], " ", RowBox[{"Cos", "[", RowBox[{"\[Phi]", "[", RowBox[{ RowBox[{"x", "-", "x0"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], "]"}]}], ",", "0"}], "}"}]}], "]"}], "]"}], " "}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.5955725955790854`*^9, 3.5955725955799713`*^9}, 3.6213218332936387`*^9, {3.621323210723423*^9, 3.621323220122961*^9}, { 3.621324856577757*^9, 3.6213250253700533`*^9}, {3.621325188984741*^9, 3.621325286360112*^9}, {3.6213253544542317`*^9, 3.6213254072603245`*^9}, { 3.6213254581632137`*^9, 3.6213254659788275`*^9}, {3.6213346171717157`*^9, 3.621334624202118*^9}, {3.621658838119622*^9, 3.6216588611140623`*^9}, { 3.6216589233425713`*^9, 3.6216589475070143`*^9}, {3.6216593640433455`*^9, 3.6216594283310585`*^9}, {3.621926501763749*^9, 3.62192655904705*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Laguerre", "-", RowBox[{"Gaussian", " ", RowBox[{"(", "LG", ")"}], " ", RowBox[{"wavefunction", ".", " ", "Here"}], " ", "n", " ", "and", " ", "\[ScriptL]", " ", "are", " ", "the", " ", "radial", " ", "and", " ", "azimuthal", " ", "indices", " ", "respectively"}]}], ",", " ", RowBox[{"while", " ", "\[Rho]0", " ", "is", " ", "the", " ", "width", " ", RowBox[{"parameter", ".", " ", "The"}], " ", "wavefunction", " ", "is", " ", "centred", " ", "on", " ", RowBox[{"(", RowBox[{"x0", ",", "y0"}], ")"}], " ", "in", " ", "real", " ", "space", " ", "and", " ", "at", " ", RowBox[{"(", RowBox[{"kx0", ",", "ky0"}], ")"}], " ", "in", " ", "Fourier", " ", RowBox[{"space", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Nn\[ScriptL]", "[", RowBox[{"n_", ",", "\[ScriptL]_"}], "]"}], ":=", RowBox[{"Sqrt", "[", RowBox[{ RowBox[{"(", RowBox[{"2", " ", RowBox[{"n", "!"}]}], ")"}], "/", RowBox[{"(", RowBox[{"\[Pi]", " ", RowBox[{ RowBox[{"(", RowBox[{"n", "+", RowBox[{"Abs", "[", "\[ScriptL]", "]"}]}], ")"}], "!"}]}], ")"}]}], "]"}]}], " ", RowBox[{"(*", " ", RowBox[{"Normalisation", " ", "constant"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"LG", "[", RowBox[{ "x0_", ",", "y0_", ",", "kx0_", ",", "ky0_", ",", "n_", ",", "\[ScriptL]_", ",", "\[Rho]0_"}], "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"Nn\[ScriptL]", "[", RowBox[{"n", ",", "\[ScriptL]"}], "]"}], " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"1", "/", "\[Rho]0"}], " ", RowBox[{"If", "[", RowBox[{ RowBox[{"\[ScriptL]", "\[NotEqual]", "0"}], ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"\[Rho]", "[", RowBox[{ RowBox[{ RowBox[{"x", "[", "i", "]"}], "-", "x0"}], ",", RowBox[{ RowBox[{"y", "[", "j", "]"}], "-", "y0"}]}], "]"}], " ", RowBox[{"Sqrt", "[", "2", "]"}]}], ")"}], "/", "\[Rho]0"}], ")"}], "^", RowBox[{"Abs", "[", "\[ScriptL]", "]"}]}], ",", "1"}], "]"}], " ", RowBox[{"Exp", "[", RowBox[{"-", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[Rho]", "[", RowBox[{ RowBox[{ RowBox[{"x", "[", "i", "]"}], "-", "x0"}], ",", RowBox[{ RowBox[{"y", "[", "j", "]"}], "-", "y0"}]}], "]"}], "^", "2"}], "/", RowBox[{"\[Rho]0", "^", "2"}]}], ")"}]}], "]"}], " ", RowBox[{"LaguerreL", "[", RowBox[{"n", ",", RowBox[{"Abs", "[", "\[ScriptL]", "]"}], ",", RowBox[{"2", " ", RowBox[{ RowBox[{ RowBox[{"\[Rho]", "[", RowBox[{ RowBox[{ RowBox[{"x", "[", "i", "]"}], "-", "x0"}], ",", RowBox[{ RowBox[{"y", "[", "j", "]"}], "-", "y0"}]}], "]"}], "^", "2"}], "/", RowBox[{"\[Rho]0", "^", "2"}]}]}]}], "]"}], " ", RowBox[{"Exp", "[", RowBox[{"I", " ", "\[ScriptL]", " ", RowBox[{"\[Phi]", "[", RowBox[{ RowBox[{ RowBox[{"x", "[", "i", "]"}], "-", "x0"}], ",", RowBox[{ RowBox[{"y", "[", "j", "]"}], "-", "y0"}]}], "]"}]}], "]"}], " ", RowBox[{"Exp", "[", RowBox[{"I", " ", "kx0", " ", RowBox[{"(", RowBox[{ RowBox[{"x", "[", "i", "]"}], "-", "x0"}], ")"}]}], "]"}], " ", RowBox[{"Exp", "[", RowBox[{"I", " ", "ky0", " ", RowBox[{"(", RowBox[{ RowBox[{"y", "[", "j", "]"}], "-", "y0"}], ")"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", RowBox[{"$Nx", "-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", RowBox[{"$Ny", "-", "1"}]}], "}"}]}], "]"}]}], "//", "N"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.595572359537196*^9, 3.595572359538765*^9}, { 3.621323166394888*^9, 3.6213231737233067`*^9}, {3.62132324423634*^9, 3.6213232476545353`*^9}, {3.621323303280717*^9, 3.6213234149991074`*^9}, { 3.621323470243267*^9, 3.621323479492796*^9}, {3.6213345867769775`*^9, 3.621334608608226*^9}, {3.6215732902513037`*^9, 3.621573291320365*^9}, { 3.6215815503977575`*^9, 3.6215816267651253`*^9}, {3.6215819194638667`*^9, 3.6215819484335237`*^9}, {3.6216589726542583`*^9, 3.6216592103674755`*^9}, { 3.6216594548199053`*^9, 3.6216595022127886`*^9}, {3.621926612071543*^9, 3.621926699104096*^9}, {3.621926768118617*^9, 3.62192676985022*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"B0", "[", "\[Rho]0_", "]"}], ":=", RowBox[{ RowBox[{"(", RowBox[{"4", " ", "$\[HBar]"}], ")"}], "/", RowBox[{"(", RowBox[{ RowBox[{"Abs", "[", "$q", "]"}], " ", RowBox[{"\[Rho]0", "^", "2"}]}], ")"}], " ", RowBox[{"(*", " ", RowBox[{ "Strength", " ", "of", " ", "uniform", " ", "B", " ", "field", " ", "for", " ", "which", " ", "an", " ", "LG", " ", "wavefunction", " ", "with", " ", "width", " ", "\[Rho]0", " ", "is", " ", "a", " ", "Landau", " ", "state"}], " ", "*)"}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.6215736008800707`*^9, 3.6215736064633904`*^9}, { 3.6215738570827246`*^9, 3.621573936690278*^9}, {3.6215744461414175`*^9, 3.6215744541008725`*^9}, {3.6215819582250834`*^9, 3.6215819748090324`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"\[Rho]B", "[", "B_", "]"}], ":=", RowBox[{"2", " ", RowBox[{"Sqrt", "[", RowBox[{"$\[HBar]", "/", RowBox[{"Abs", "[", RowBox[{"$q", " ", "B"}], "]"}]}], "]"}], " ", RowBox[{"(*", " ", RowBox[{ "Width", " ", "that", " ", "an", " ", "LG", " ", "wavefunction", " ", "must", " ", "have", " ", "to", " ", "be", " ", "a", " ", "Landau", " ", "state", " ", "of", " ", "a", " ", "field", " ", "with", " ", "strength", " ", "B"}], " ", "*)"}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.595572538879662*^9, 3.595572538881147*^9}, { 3.621323250839718*^9, 3.6213232523698053`*^9}, {3.621323493220581*^9, 3.6213234957927284`*^9}, 3.621573615344898*^9, {3.6215739613786902`*^9, 3.621574001502985*^9}, {3.6215740341318517`*^9, 3.621574051836864*^9}, { 3.6215744398710585`*^9, 3.6215744628653736`*^9}, {3.6219268095366898`*^9, 3.6219268530451665`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Time-evolution", "Section", CellChangeTimes->{{3.59557284312501*^9, 3.595572855239729*^9}, { 3.6203870369364243`*^9, 3.6203870405316296`*^9}, {3.621321903846674*^9, 3.6213219172814426`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ RowBox[{"Calculation", " ", "of", " ", "time"}], "-", RowBox[{"evolution", " ", "using", " ", "the", " ", "Chebyshev", " ", RowBox[{"method", ".", " ", "See"}], " ", "manuscript", " ", "for", " ", "description", " ", "of", " ", "the", " ", "algorithm", " ", "and", " ", "definition", " ", "of", " ", "all", " ", RowBox[{"variables", ".", " ", "The"}], " ", "function", " ", "GeneralCheby", " ", "works", " ", "for", " ", "any", " ", "Hamiltonian", " ", "with", " ", "the", " ", "form", " ", "of", " ", "\[ScriptCapitalH]", " ", "defined", " ", "below"}]}], ",", " ", RowBox[{ "while", " ", "ChebyTDSEuniformB", " ", "simplifies", " ", "this", " ", "for", " ", "use", " ", "with", " ", "the", " ", "CylindricalA", " ", "vector", " ", RowBox[{"potential", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"a", "[", RowBox[{"S2_", ",", "S1x_", ",", "S1y_", ",", "S0_"}], "]"}], ":=", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"S2", " ", RowBox[{"(", RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"kxMax", "[", RowBox[{"$Lx", ",", "$Nx"}], "]"}], "^", "2"}]}], "-", RowBox[{ RowBox[{"kyMax", "[", RowBox[{"$Ly", ",", "$Ny"}], "]"}], "^", "2"}]}], ")"}]}], "+", RowBox[{"2", " ", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Max", "[", "S1x", "]"}], " ", RowBox[{"kxMax", "[", RowBox[{"$Lx", ",", "$Nx"}], "]"}]}], "+", RowBox[{ RowBox[{"Max", "[", "S1y", "]"}], " ", RowBox[{"kyMax", "[", RowBox[{"$Ly", ",", "$Ny"}], "]"}]}]}], ")"}]}], "+", RowBox[{"Max", "[", "S0", "]"}], "-", RowBox[{"Min", "[", "S0", "]"}]}], ")"}], "/", "2"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"b", "[", RowBox[{"S2_", ",", "S1x_", ",", "S1y_", ",", "S0_"}], "]"}], ":=", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"S2", " ", RowBox[{"(", RowBox[{ RowBox[{"-", RowBox[{ RowBox[{"kxMax", "[", RowBox[{"$Lx", ",", "$Nx"}], "]"}], "^", "2"}]}], "-", RowBox[{ RowBox[{"kyMax", "[", RowBox[{"$Ly", ",", "$Ny"}], "]"}], "^", "2"}]}], ")"}]}], "+", RowBox[{"Max", "[", "S0", "]"}], "+", RowBox[{"Min", "[", "S0", "]"}]}], ")"}], "/", "2"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"\[ScriptCapitalH]", "[", RowBox[{ "\[CapitalPsi]_", ",", "S2_", ",", "S1x_", ",", "S1y_", ",", "S0_"}], "]"}], ":=", RowBox[{ RowBox[{"S2", " ", RowBox[{"GridLaplacian", "[", "\[CapitalPsi]", "]"}]}], "+", RowBox[{"I", " ", "S1x", " ", RowBox[{"GridxDeriv", "[", "\[CapitalPsi]", "]"}]}], "+", RowBox[{"I", " ", "S1y", " ", RowBox[{"GridyDeriv", "[", "\[CapitalPsi]", "]"}]}], "+", RowBox[{"S0", " ", "\[CapitalPsi]"}]}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ OverscriptBox["\[ScriptCapitalH]", "~"], "[", RowBox[{ "\[CapitalPsi]_", ",", "S2_", ",", "S1x_", ",", "S1y_", ",", "S0_"}], "]"}], ":=", RowBox[{ RowBox[{"1", "/", RowBox[{"a", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}]}], " ", RowBox[{"(", RowBox[{ RowBox[{"\[ScriptCapitalH]", "[", RowBox[{ "\[CapitalPsi]", ",", "S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], "-", RowBox[{ RowBox[{"b", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", "\[CapitalPsi]"}]}], ")"}]}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"M", "[", RowBox[{"S2_", ",", "S1x_", ",", "S1y_", ",", "S0_", ",", "\[Eta]_"}], "]"}], ":=", RowBox[{ RowBox[{"Ceiling", "[", RowBox[{ RowBox[{"a", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", RowBox[{"\[Eta]", "/", "$\[HBar]"}]}], "]"}], "+", "$\[Delta]"}]}], "\[IndentingNewLine]", "\n", RowBox[{ RowBox[{"GeneralCheby", "[", RowBox[{ "S2_", ",", "S1x_", ",", "S1y_", ",", "S0_", ",", "\[CapitalDelta]t_", ",", "\[CapitalPsi]Initial_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "Tq\[CapitalPsi]", ",", "TqMinus2\[CapitalPsi]", ",", "TqMinus1\[CapitalPsi]", ",", "sum"}], "}"}], ",", RowBox[{ RowBox[{"TqMinus2\[CapitalPsi]", "=", "\[CapitalPsi]Initial"}], ";", "\[IndentingNewLine]", RowBox[{"TqMinus1\[CapitalPsi]", "=", RowBox[{ OverscriptBox["\[ScriptCapitalH]", "~"], "[", RowBox[{ "\[CapitalPsi]Initial", ",", "S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"sum", "=", RowBox[{ RowBox[{ RowBox[{"BesselJ", "[", RowBox[{"0", ",", RowBox[{ RowBox[{"a", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", RowBox[{"\[CapitalDelta]t", "/", "$\[HBar]"}]}]}], "]"}], " ", "TqMinus2\[CapitalPsi]"}], "-", RowBox[{"2", " ", "I", " ", RowBox[{"BesselJ", "[", RowBox[{"1", ",", RowBox[{ RowBox[{"a", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", RowBox[{"\[CapitalDelta]t", "/", "$\[HBar]"}]}]}], "]"}], " ", "TqMinus1\[CapitalPsi]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"Tq\[CapitalPsi]", "=", RowBox[{ RowBox[{"2", " ", RowBox[{ OverscriptBox["\[ScriptCapitalH]", "~"], "[", RowBox[{ "TqMinus1\[CapitalPsi]", ",", "S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}]}], "-", "TqMinus2\[CapitalPsi]"}]}], ";", "\[IndentingNewLine]", RowBox[{"sum", "=", RowBox[{"sum", "+", RowBox[{"2", " ", RowBox[{ RowBox[{"(", RowBox[{"-", "I"}], ")"}], "^", "q"}], " ", RowBox[{"BesselJ", "[", RowBox[{"q", ",", RowBox[{ RowBox[{"a", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", RowBox[{"\[CapitalDelta]t", "/", "$\[HBar]"}]}]}], "]"}], " ", "Tq\[CapitalPsi]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"TqMinus2\[CapitalPsi]", "=", "TqMinus1\[CapitalPsi]"}], ";", "\[IndentingNewLine]", RowBox[{"TqMinus1\[CapitalPsi]", "=", "Tq\[CapitalPsi]"}], ";"}], ",", RowBox[{"{", RowBox[{"q", ",", "2", ",", RowBox[{"M", "[", RowBox[{ "S2", ",", "S1x", ",", "S1y", ",", "S0", ",", "\[CapitalDelta]t"}], "]"}]}], "}"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Exp", "[", RowBox[{ RowBox[{"-", "I"}], " ", RowBox[{"b", "[", RowBox[{"S2", ",", "S1x", ",", "S1y", ",", "S0"}], "]"}], " ", "\[CapitalDelta]t"}], "]"}], " ", "sum"}], "//", "N"}]}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.595572622032131*^9, 3.5955726220338497`*^9}, { 3.621324299048378*^9, 3.6213243308724337`*^9}, {3.6215769766461535`*^9, 3.6215769934421144`*^9}, {3.6215770759168315`*^9, 3.6215772017280273`*^9}, { 3.6215824230866723`*^9, 3.6215824733905497`*^9}, {3.621583015478555*^9, 3.6215830171206493`*^9}, {3.6215933284921093`*^9, 3.6215933303802176`*^9}, { 3.621659618261392*^9, 3.6216598018893147`*^9}, {3.6216598391577797`*^9, 3.621660101425441*^9}, {3.621660148849524*^9, 3.621660149473525*^9}, { 3.621770590535367*^9, 3.621770631824751*^9}, {3.621773035331308*^9, 3.6217731070758343`*^9}, {3.6217732049972057`*^9, 3.6217732346216583`*^9}, { 3.6219269237912903`*^9, 3.6219269738205786`*^9}, {3.644661722734976*^9, 3.644661723889378*^9}, {3.644662239735484*^9, 3.64466224332349*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"ChebyTDSEuniformB", "[", RowBox[{"\[CapitalPsi]Initial_", ",", "B_", ",", "\[CapitalDelta]t_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "Ax", ",", "Ay", ",", "Az", ",", "S2", ",", "S1x", ",", "S1y", ",", "S0"}], "}"}], ",", RowBox[{ RowBox[{"Ax", "=", RowBox[{ RowBox[{"CylindricalA", "[", RowBox[{"0", ",", "0", ",", "B"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "1"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Ay", "=", RowBox[{ RowBox[{"CylindricalA", "[", RowBox[{"0", ",", "0", ",", "B"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "2"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Az", "=", RowBox[{ RowBox[{"CylindricalA", "[", RowBox[{"0", ",", "0", ",", "B"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "3"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"S2", "=", RowBox[{ RowBox[{"-", SuperscriptBox["$\[HBar]", "2"]}], "/", RowBox[{"(", RowBox[{"2", "$m"}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"S1x", "=", RowBox[{"$q", " ", "$\[HBar]", " ", RowBox[{"Ax", "/", "$m"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"S1y", "=", RowBox[{"$q", " ", "$\[HBar]", " ", RowBox[{"Ay", "/", "$m"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"S0", "=", RowBox[{ SuperscriptBox["$q", "2"], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Ax", "^", "2"}], "+", RowBox[{"Ay", "^", "2"}]}], ")"}], "/", RowBox[{"(", RowBox[{"2", " ", "$m"}], ")"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"GeneralCheby", "[", RowBox[{ "S2", ",", "S1x", ",", "S1y", ",", "S0", ",", "\[CapitalDelta]t", ",", "\[CapitalPsi]Initial"}], "]"}]}]}], "]"}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.6215830081371355`*^9, 3.621583009169194*^9}, { 3.6215830519586415`*^9, 3.6215830760410194`*^9}, {3.6215834630501547`*^9, 3.621583484603388*^9}, {3.6215835634228954`*^9, 3.6215835746315365`*^9}, { 3.6215836151688557`*^9, 3.6215836364320717`*^9}, {3.6215838738066487`*^9, 3.6215838755597486`*^9}, {3.621583947303852*^9, 3.6215839605346093`*^9}, { 3.621583993133474*^9, 3.62158401299861*^9}, {3.6215923917625313`*^9, 3.621592435604039*^9}, {3.6217732428272724`*^9, 3.621773251157687*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Calculation of observables", "Section", CellChangeTimes->{{3.59557284312501*^9, 3.595572855239729*^9}, { 3.6203870369364243`*^9, 3.6203870405316296`*^9}, {3.6213219913416786`*^9, 3.621322037261305*^9}, {3.6213220844350033`*^9, 3.621322111943577*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Action", " ", "of", " ", "operator", " ", "for", " ", "x"}], "-", RowBox[{ "component", " ", "of", " ", "kinetic", " ", "momentum", " ", "on", " ", "a", " ", "wavefunction", " ", "\[CapitalPsi]"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"pkinx\[CapitalPsi]", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "Ax", "}"}], ",", RowBox[{ RowBox[{"Ax", "=", RowBox[{"A", "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "1"}], "]"}], "]"}]}], ";", " ", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"-", "I"}], " ", "$\[HBar]", " ", RowBox[{"GridxDeriv", "[", "\[CapitalPsi]", "]"}]}], "-", RowBox[{"$q", " ", "Ax", " ", "\[CapitalPsi]"}]}]}]}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"pkiny\[CapitalPsi]", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "Ay", "}"}], ",", RowBox[{ RowBox[{"Ay", "=", RowBox[{"A", "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "2"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"-", "I"}], " ", "$\[HBar]", " ", RowBox[{"GridyDeriv", "[", "\[CapitalPsi]", "]"}]}], "-", RowBox[{"$q", " ", "Ay", " ", "\[CapitalPsi]"}]}]}]}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "x", " ", "and", " ", "y", " ", "components", " ", "of", " ", "current", " ", "density"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"jx", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{ RowBox[{"Re", "[", RowBox[{ RowBox[{"Conjugate", "[", "\[CapitalPsi]", "]"}], " ", RowBox[{"pkinx\[CapitalPsi]", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}]}], "]"}], "/", "$m"}]}], " ", "\[IndentingNewLine]", RowBox[{ RowBox[{"jy", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{ RowBox[{"Re", "[", RowBox[{ RowBox[{"Conjugate", "[", "\[CapitalPsi]", "]"}], " ", RowBox[{"pkiny\[CapitalPsi]", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}]}], "]"}], "/", "$m"}]}], "\[IndentingNewLine]", "\n", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Combine", " ", "two", " ", "arrays", " ", "into", " ", "an", " ", "array", " ", "of", " ", "2", "D", " ", "vectors"}], ",", " ", RowBox[{ "in", " ", "the", " ", "form", " ", "required", " ", "by", " ", "ListVectorPlot"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Create2DVectors", "[", RowBox[{"vxArray_", ",", "vyArray_"}], "]"}], ":=", RowBox[{"MapThread", "[", RowBox[{ RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"vx", ",", "vy"}], "}"}], ",", RowBox[{"{", RowBox[{"vx", ",", "vy"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"vxArray", ",", "vyArray"}], "}"}], ",", "2"}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"jxy", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{"Create2DVectors", "[", RowBox[{ RowBox[{"jx", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], ",", RowBox[{"jy", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}]}], "]"}]}], " ", "\n", "\[IndentingNewLine]", RowBox[{ RowBox[{"Absjxy", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", RowBox[{"Sqrt", "[", RowBox[{ RowBox[{ RowBox[{"jx", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], "^", "2"}], "+", RowBox[{ RowBox[{"jy", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], "^", "2"}]}], "]"}], " ", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Absolute", " ", "value", " ", "of", " ", "the", " ", "current", " ", "density", " ", "within", " ", "the", " ", "x"}], "-", RowBox[{"y", " ", "plane"}]}], " ", "*)"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.5955727009295197`*^9, 3.59557270093029*^9}, { 3.621334689068828*^9, 3.621334722393734*^9}, {3.621335197966935*^9, 3.621335209428591*^9}, {3.6213352861159773`*^9, 3.621335286283987*^9}, 3.621336171108596*^9, 3.621336388570034*^9, {3.621336420946886*^9, 3.621336422394969*^9}, {3.6213368462082095`*^9, 3.6213368599009924`*^9}, { 3.621336910403881*^9, 3.6213369148831377`*^9}, {3.621337275372756*^9, 3.621337447006573*^9}, 3.621577328333269*^9, {3.6215775298877974`*^9, 3.6215775757314196`*^9}, 3.621577612795539*^9, {3.621660369839512*^9, 3.6216603910867496`*^9}, {3.621676183927885*^9, 3.621676219714348*^9}, { 3.621837291474338*^9, 3.6218373355288153`*^9}, {3.621927013912649*^9, 3.621927050354313*^9}, 3.6219270857663755`*^9, {3.621927166434117*^9, 3.621927172549328*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Action", " ", "of", " ", "operator", " ", "for", " ", "z"}], "-", RowBox[{ "component", " ", "of", " ", "kinetic", " ", "orbital", " ", "angular", " ", "momentum", " ", "on", " ", "the", " ", "wavefunction", " ", RowBox[{"\[CapitalPsi]", ".", " ", "This"}], " ", "is", " ", "calculated", " ", "for", " ", "a", " ", "rotation", " ", "axis", " ", "located", " ", "at", " ", RowBox[{ RowBox[{"(", RowBox[{"x0", ",", "y0"}], ")"}], "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"LkinzPsi", "[", RowBox[{"\[CapitalPsi]_", ",", "x0_", ",", "y0_", ",", "A_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"Ax", ",", "Ay"}], "}"}], ",", RowBox[{ RowBox[{"Ax", "=", RowBox[{"A", "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "1"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Ay", "=", RowBox[{"A", "[", RowBox[{"[", RowBox[{"All", ",", "All", ",", "2"}], "]"}], "]"}]}], ";", RowBox[{ RowBox[{ RowBox[{"-", "I"}], " ", "$\[HBar]", " ", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", RowBox[{"x", "-", "x0"}]}], "]"}], "]"}], " ", RowBox[{"GridyDeriv", "[", "\[CapitalPsi]", "]"}]}], "-", RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], "]"}], " ", RowBox[{"GridxDeriv", "[", "\[CapitalPsi]", "]"}]}]}], ")"}]}], "-", RowBox[{"$q", " ", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", RowBox[{"x", "-", "x0"}]}], "]"}], "]"}], " ", "Ay"}], "-", RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", RowBox[{"y", "-", "y0"}]}], "]"}], "]"}], " ", "Ax"}]}], ")"}], " ", "\[CapitalPsi]"}]}]}]}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"Expectation", " ", "value", " ", "of", " ", "z"}], "-", RowBox[{ "component", " ", "of", " ", "kinetic", " ", "orbital", " ", "angular", " ", RowBox[{"momentum", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ExpectationLkinz", "[", RowBox[{"\[CapitalPsi]_", ",", "x0_", ",", "y0_", ",", "A_"}], "]"}], ":=", RowBox[{"Re", "[", RowBox[{ RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"Conjugate", "[", "\[CapitalPsi]", "]"}], " ", RowBox[{"LkinzPsi", "[", RowBox[{"\[CapitalPsi]", ",", "x0", ",", "y0", ",", "A"}], "]"}]}], ",", "2"}], "]"}], "/", RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "^", "2"}], ",", "2"}], "]"}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.621837051218316*^9, 3.6218371973437724`*^9}, { 3.6218372723487043`*^9, 3.6218372748447084`*^9}, {3.6218373508324423`*^9, 3.621837413372952*^9}, {3.621838764996565*^9, 3.6218388041214333`*^9}, { 3.6219272260418215`*^9, 3.621927228194625*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Expectation", " ", "values", " ", "of", " ", "x", " ", "and", " ", "y", " ", RowBox[{"coordinates", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Expectationx", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{ RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", "x"}], "]"}], "]"}], " ", RowBox[{ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "^", "2"}]}], ",", "2"}], "]"}], "/", RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "^", "2"}], ",", "2"}], "]"}]}]}], "\n", RowBox[{ RowBox[{"Expectationy", "[", "\[CapitalPsi]_", "]"}], ":=", RowBox[{ RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"ToGrid", "[", RowBox[{"Function", "[", RowBox[{ RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}], ",", "y"}], "]"}], "]"}], " ", RowBox[{ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "^", "2"}]}], ",", "2"}], "]"}], "/", RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "^", "2"}], ",", "2"}], "]"}]}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.6218392642442417`*^9, 3.6218393504811926`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "Vorticity", " ", "of", " ", "the", " ", "current", " ", "density"}], ",", " ", RowBox[{ "defined", " ", "here", " ", "as", " ", "half", " ", "of", " ", "the", " ", "curl", " ", "of", " ", "the", " ", "current", " ", RowBox[{"density", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"\[CapitalOmega]z", "[", RowBox[{"\[CapitalPsi]_", ",", "A_"}], "]"}], ":=", " ", RowBox[{"0.5", " ", RowBox[{"Re", "[", RowBox[{ RowBox[{"GridxDeriv", "[", RowBox[{"jy", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], "]"}], "-", RowBox[{"GridyDeriv", "[", RowBox[{"jx", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], "]"}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.5840937387806664`*^9, 3.5840938581454935`*^9}, 3.5840945619177465`*^9, {3.584094617479925*^9, 3.584094666611735*^9}, { 3.584094827652946*^9, 3.584094902334217*^9}, {3.5840987823460164`*^9, 3.5840987929996257`*^9}, {3.5840988348550196`*^9, 3.584098944852311*^9}, { 3.5843521136024985`*^9, 3.584352127885316*^9}, {3.5914379255064106`*^9, 3.5914379581112757`*^9}, {3.591438167216236*^9, 3.5914381678562727`*^9}, { 3.595227960083351*^9, 3.595227981141556*^9}, {3.595228030548382*^9, 3.5952280897467675`*^9}, {3.595229357899302*^9, 3.595229362714577*^9}, { 3.6213370158349113`*^9, 3.6213371439672403`*^9}, {3.621577579970662*^9, 3.621577587069068*^9}, {3.6216762169063425`*^9, 3.6216762376231794`*^9}, 3.621839575277588*^9, {3.6219273161631794`*^9, 3.621927316709181*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Plotting", "Section", CellChangeTimes->{{3.59557284312501*^9, 3.595572855239729*^9}, { 3.6203870369364243`*^9, 3.6203870405316296`*^9}, {3.6213218758100705`*^9, 3.621321876971137*^9}}], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"\[Omega]L", "[", "B_", "]"}], ":=", RowBox[{ RowBox[{"-", "$q"}], " ", RowBox[{"B", "/", RowBox[{"(", RowBox[{"2", " ", "$m"}], ")"}]}]}]}], " ", RowBox[{"(*", " ", RowBox[{ "Larmor", " ", "frequency", " ", "corresponding", " ", "to", " ", "field", " ", "strength", " ", "B"}], " ", "*)"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"T", "[", "B_", "]"}], ":=", RowBox[{"2", RowBox[{"Pi", "/", RowBox[{"(", RowBox[{"2", RowBox[{"Abs", "[", RowBox[{"\[Omega]L", "[", "B", "]"}], "]"}]}], ")"}]}]}]}], " ", RowBox[{"(*", " ", RowBox[{"Cyclotron", " ", "period"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "Radius", " ", "of", " ", "classical", " ", "cyclotron", " ", "orbit", " ", "corresponding", " ", "to", " ", "field", " ", "strength", " ", "B", " ", "and", " ", "transverse", " ", "momentum", " ", "pC"}], " ", "*)"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"\[Sigma]", "[", RowBox[{"B_", ",", "pC_"}], "]"}], ":=", RowBox[{"(", RowBox[{ RowBox[{"Abs", "[", "pC", "]"}], "/", RowBox[{"(", RowBox[{"2", " ", "$m", " ", RowBox[{"Abs", "[", RowBox[{"\[Omega]L", "[", "B", "]"}], "]"}]}], ")"}]}], ")"}]}], "\[IndentingNewLine]"}], "Input", InitializationCell->True, CellChangeTimes->{{3.5955723027917433`*^9, 3.5955723027935658`*^9}, { 3.605855022793309*^9, 3.6058550277945952`*^9}, {3.621321728277632*^9, 3.621321757805321*^9}, {3.621334894486577*^9, 3.621334907854342*^9}, 3.6215736933973627`*^9, 3.621574073666113*^9, 3.621574146911302*^9, 3.6215742206475196`*^9, {3.621574275989685*^9, 3.6215743938974285`*^9}, { 3.6215744502966547`*^9, 3.6215744677626534`*^9}, {3.6215828615947533`*^9, 3.621582936624045*^9}, {3.6215975552468586`*^9, 3.62159755602686*^9}, { 3.621676409301481*^9, 3.621676432124321*^9}, {3.621922030588943*^9, 3.621922030744943*^9}, {3.6396490410774593`*^9, 3.6396490473098164`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "When", " ", "use", " ", "ListDensityPlot", " ", "need", " ", "to", " ", "transpose", " ", "the", " ", "array", " ", RowBox[{"first", ".", " ", "It"}], " ", "also", " ", "appears", " ", "better", " ", "centred", " ", "if", " ", "shifted", " ", "by", " ", "one", " ", "grid", " ", "point", " ", "in", " ", "each", " ", RowBox[{"direction", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"ProbDensForPlot", "[", "\[CapitalPsi]_", "]"}], ":=", SuperscriptBox[ RowBox[{"Abs", "[", RowBox[{"Transpose", "[", RowBox[{"RotateLeft", "[", RowBox[{"\[CapitalPsi]", ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}]}], "]"}], "]"}], "]"}], "2"]}], " ", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ RowBox[{ "Plotting", " ", "probability", " ", "density", " ", "in", " ", "x"}], "-", RowBox[{"y", " ", "plane", " ", "at", " ", "a", " ", "given", " ", RowBox[{"time", ".", " ", "The"}], " ", "colour", " ", "scale", " ", "runs", " ", "from", " ", "0", " ", "to", " ", RowBox[{"intensityScaleMax", ".", " ", "xLength"}], " ", "and", " ", "yLength", " ", "specify", " ", "the", " ", "plot", " ", "area"}]}], ",", " ", RowBox[{ RowBox[{ "which", " ", "may", " ", "be", " ", "smaller", " ", "than", " ", "the", " ", "simulation", " ", RowBox[{"area", ".", " ", "yOffest"}], " ", "allows", " ", "the", " ", "centre", " ", "of", " ", "the", " ", "plot", " ", "area", " ", "to", " ", "be", " ", "shifted", " ", "along", " ", "the", " ", "y"}], "-", RowBox[{"axis", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"PlotProbDens", "[", RowBox[{ "\[CapitalPsi]_", ",", "probDensScaleMax_", ",", "xLength_", ",", "yLength_", ",", "yOffset_", ",", "opts___"}], "]"}], ":=", RowBox[{"ListDensityPlot", "[", RowBox[{ RowBox[{"ProbDensForPlot", "[", "\[CapitalPsi]", "]"}], ",", "opts", ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "xLength"}], "/", "2"}], ",", RowBox[{"xLength", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "yLength"}], "/", "2"}], "+", "yOffset"}], ",", RowBox[{ RowBox[{"yLength", "/", "2"}], "+", "yOffset"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "probDensScaleMax"}], "}"}]}], "}"}]}], ",", RowBox[{"ColorFunction", "\[Rule]", RowBox[{"(", RowBox[{ RowBox[{"Directive", "[", RowBox[{ RowBox[{"Opacity", "[", RowBox[{"Rescale", "[", RowBox[{"#", ",", RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", FractionBox[ RowBox[{"Max", "[", SuperscriptBox[ RowBox[{"Abs", "[", "\[CapitalPsi]", "]"}], "2"], "]"}], "probDensScaleMax"]}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Lighter", "[", RowBox[{"Blue", ",", RowBox[{"1", "/", "3"}]}], "]"}]}], "]"}], "&"}], ")"}]}], ",", RowBox[{"ColorFunctionScaling", "\[Rule]", "True"}], ",", RowBox[{"DataRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "$Lx"}], "/", "2"}], ",", RowBox[{"$Lx", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "$Ly"}], "/", "2"}], ",", RowBox[{"$Ly", "/", "2"}]}], "}"}]}], "}"}]}], ",", RowBox[{"AspectRatio", "\[Rule]", RowBox[{"yLength", "/", "xLength"}]}], ",", RowBox[{"Frame", "\[Rule]", "False"}], ",", RowBox[{"Background", "\[Rule]", "None"}]}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Similar", " ", "to", " ", "PlotProbDens", " ", "above"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"PlotCurrentDens", "[", RowBox[{ "\[CapitalPsi]_", ",", "A_", ",", "currentScaleMax_", ",", "xLength_", ",", "yLength_", ",", "yOffset_"}], "]"}], ":=", RowBox[{"ListVectorPlot", "[", RowBox[{ RowBox[{"jxy", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], ",", RowBox[{"DataRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "$Lx"}], "/", "2"}], ",", RowBox[{"$Lx", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "$Ly"}], "/", "2"}], ",", RowBox[{"$Ly", "/", "2"}]}], "}"}]}], "}"}]}], ",", RowBox[{"AspectRatio", "\[Rule]", RowBox[{"yLength", "/", "xLength"}]}], ",", RowBox[{"VectorScale", "\[Rule]", RowBox[{"{", RowBox[{"0.06", ",", RowBox[{"Scaled", "[", "1.8", "]"}], ",", "None"}], "}"}]}], ",", RowBox[{"Frame", "\[Rule]", "False"}], ",", RowBox[{"VectorColorFunction", "\[Rule]", RowBox[{"(", RowBox[{ RowBox[{"Directive", "[", RowBox[{ RowBox[{"Opacity", "[", RowBox[{"Rescale", "[", RowBox[{"#5", ",", RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", FractionBox[ RowBox[{"Max", "[", RowBox[{"Absjxy", "[", RowBox[{"\[CapitalPsi]", ",", "A"}], "]"}], "]"}], "currentScaleMax"]}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Darker", "[", RowBox[{"Red", ",", "1"}], "]"}]}], "]"}], "&"}], ")"}]}], ",", RowBox[{"VectorColorFunctionScaling", "\[Rule]", "True"}], ",", RowBox[{"VectorPoints", "\[Rule]", "16"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "xLength"}], "/", "2"}], ",", RowBox[{"xLength", "/", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "yLength"}], "/", "2"}], "+", "yOffset"}], ",", RowBox[{ RowBox[{"yLength", "/", "2"}], "+", "yOffset"}]}], "}"}]}], "}"}]}], ",", RowBox[{"Background", "\[Rule]", "None"}]}], "]"}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Plotting", " ", "evolution", " ", "of", " ", "probability", " ", "density", " ", "and", " ", "probability", " ", "current", " ", RowBox[{"density", ".", " ", "Accepts"}], " ", "as", " ", "an", " ", "argument", " ", "a", " ", "list", " ", "containing", " ", "the", " ", "wavefunction", " ", "at", " ", "a", " ", "number", " ", "of", " ", "different", " ", "time", " ", "steps"}], ",", " ", RowBox[{ "which", " ", "can", " ", "be", " ", "generated", " ", "by", " ", "applying", " ", "ChebyTDSEuniformB", " ", "iteratively", " ", "using", " ", RowBox[{"NestList", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Surface", "[", RowBox[{ "\[CapitalPsi]List_", ",", "step_", ",", "xLength_", ",", "yLength_", ",", "yOffset_"}], "]"}], ":=", RowBox[{"Polygon", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ FractionBox[ RowBox[{"step", "-", "1"}], RowBox[{ RowBox[{"Length", "[", "\[CapitalPsi]List", "]"}], "-", "1"}]], ",", RowBox[{ RowBox[{"-", "xLength"}], "/", "2"}], ",", RowBox[{ RowBox[{ RowBox[{"-", "yLength"}], "/", "2"}], "+", "yOffset"}]}], "}"}], ",", RowBox[{"{", RowBox[{ FractionBox[ RowBox[{"step", "-", "1"}], RowBox[{ RowBox[{"Length", "[", "\[CapitalPsi]List", "]"}], "-", "1"}]], ",", RowBox[{"xLength", "/", "2"}], ",", RowBox[{ RowBox[{ RowBox[{"-", "yLength"}], "/", "2"}], "+", "yOffset"}]}], "}"}], ",", RowBox[{"{", RowBox[{ FractionBox[ RowBox[{"step", "-", "1"}], RowBox[{ RowBox[{"Length", "[", "\[CapitalPsi]List", "]"}], "-", "1"}]], ",", RowBox[{"xLength", "/", "2"}], ",", RowBox[{ RowBox[{"yLength", "/", "2"}], "+", "yOffset"}]}], "}"}], ",", RowBox[{"{", RowBox[{ FractionBox[ RowBox[{"step", "-", "1"}], RowBox[{ RowBox[{"Length", "[", "\[CapitalPsi]List", "]"}], "-", "1"}]], ",", RowBox[{ RowBox[{"-", "xLength"}], "/", "2"}], ",", RowBox[{ RowBox[{"yLength", "/", "2"}], "+", "yOffset"}]}], "}"}]}], "}"}], ",", RowBox[{"VertexTextureCoordinates", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}]}], "}"}]}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"PlotEvolution", "[", RowBox[{ "\[CapitalPsi]List_", ",", "A_", ",", "probDensScaleMax_", ",", "currentScaleMax_", ",", "xLength_", ",", "yLength_", ",", "yOffset_"}], "]"}], ":=", RowBox[{"Show", "[", RowBox[{ RowBox[{"Map", "[", RowBox[{ RowBox[{"Function", "[", RowBox[{"step", ",", RowBox[{"Graphics3D", "[", RowBox[{"Style", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Texture", "[", RowBox[{"ImageData", "[", RowBox[{"Show", "[", RowBox[{ RowBox[{"PlotProbDens", "[", RowBox[{ RowBox[{"\[CapitalPsi]List", "[", RowBox[{"[", "step", "]"}], "]"}], ",", "probDensScaleMax", ",", "xLength", ",", "yLength", ",", "yOffset"}], "]"}], ",", RowBox[{"PlotCurrentDens", "[", RowBox[{ RowBox[{"\[CapitalPsi]List", "[", RowBox[{"[", "step", "]"}], "]"}], ",", "A", ",", "currentScaleMax", ",", "xLength", ",", "yLength", ",", "yOffset"}], "]"}], ",", RowBox[{"Background", "\[Rule]", "None"}]}], "]"}], "]"}], "]"}], ",", RowBox[{"EdgeForm", "[", "Gray", "]"}], ",", RowBox[{"Surface", "[", RowBox[{ "\[CapitalPsi]List", ",", "step", ",", "xLength", ",", "yLength", ",", "yOffset"}], "]"}]}], "}"}], ",", RowBox[{"Lighting", "\[Rule]", RowBox[{"{", RowBox[{"{", RowBox[{"\"\\"", ",", "White"}], "}"}], "}"}]}]}], "]"}], "]"}]}], "]"}], ",", RowBox[{"Range", "[", RowBox[{"Length", "[", "\[CapitalPsi]List", "]"}], "]"}]}], "]"}], ",", RowBox[{"Graphics3D", "[", RowBox[{"{", RowBox[{"Gray", ",", RowBox[{"Line", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0"}], "}"}]}], "}"}], "]"}]}], "}"}], "]"}], ",", RowBox[{"BoxRatios", "\[Rule]", RowBox[{"{", RowBox[{"3", ",", "1", ",", RowBox[{"yLength", "/", "xLength"}]}], "}"}]}], ",", RowBox[{"Boxed", "\[Rule]", "False"}], ",", RowBox[{"ViewPoint", "\[Rule]", RowBox[{"{", RowBox[{"1.9", ",", RowBox[{"-", "2"}], ",", "0.7"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"72", "*", "3.125"}]}], ",", RowBox[{"Background", "\[Rule]", "None"}], ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"AxesEdge", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}], ",", "Automatic", ",", "Automatic"}], "}"}]}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{"\"\<\!\(\*SubscriptBox[\(\[Omega]\), \(c\)]\)\!\(\* StyleBox[\"t\", FontWeight->\"Plain\", FontSlant->\"Italic\"]\)\>\"", ",", "\"\<\!\(\* StyleBox[\"x\", FontSlant->\"Italic\"]\)/\!\(\*SubscriptBox[\(\[Rho]\), \(B\)]\)\>\"", ",", "\"\<\!\(\* StyleBox[\"y\", FontSlant->\"Italic\"]\)/\!\(\*SubscriptBox[\(\[Rho]\), \(B\)]\)\>\""}], "}"}]}], ",", RowBox[{"Ticks", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0.5", ",", "\"\<\[Pi]\>\""}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"2", "\[Pi]"}]}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", RowBox[{"-", "1"}], ",", "0", ",", "1", ",", "2"}], "}"}]}], "}"}]}]}], "]"}]}]}]}]], "Input", InitializationCell->True, CellChangeTimes->{{3.596264098816272*^9, 3.5962641028075004`*^9}, { 3.596264915804001*^9, 3.596264919559216*^9}, {3.5962823589636927`*^9, 3.596282421389263*^9}, {3.596282736770302*^9, 3.5962828656446733`*^9}, { 3.5963441342373414`*^9, 3.5963441351163917`*^9}, {3.5963712720438623`*^9, 3.5963712723628807`*^9}, {3.5963720219517546`*^9, 3.596372031561304*^9}, { 3.59643084920147*^9, 3.5964308583679943`*^9}, {3.5964358557078257`*^9, 3.5964358821703396`*^9}, 3.5964369789270706`*^9, {3.596437069361243*^9, 3.5964370837420654`*^9}, {3.600924458187535*^9, 3.6009244585065527`*^9}, { 3.6009244920984745`*^9, 3.600924495854689*^9}, {3.600924533056817*^9, 3.600924537916095*^9}, {3.6009246110452776`*^9, 3.6009246934509907`*^9}, { 3.6009249402631083`*^9, 3.6009249653815446`*^9}, {3.6009264821082964`*^9, 3.60092663585009*^9}, {3.6009269098267603`*^9, 3.600926912603919*^9}, { 3.6055908277016535`*^9, 3.605590838986299*^9}, {3.60585394949092*^9, 3.6058539617796226`*^9}, {3.6058539924403763`*^9, 3.605853993849457*^9}, { 3.605854586081331*^9, 3.6058546073705482`*^9}, {3.6058548626501493`*^9, 3.605854865686323*^9}, 3.6058549007163267`*^9, 3.60585520236458*^9, 3.605855428676524*^9, 3.6058555260080914`*^9, {3.605855576369972*^9, 3.605855619240424*^9}, {3.605855753776119*^9, 3.6058557548591805`*^9}, 3.6058560172291875`*^9, {3.6058562437941465`*^9, 3.6058562442471724`*^9}, { 3.605856579241333*^9, 3.605856579507348*^9}, 3.605856738342433*^9, { 3.605856831815779*^9, 3.6058568717630644`*^9}, {3.605856956260897*^9, 3.6058569626422625`*^9}, 3.605856996729212*^9, {3.6058570707794476`*^9, 3.605857082309107*^9}, {3.605857213823629*^9, 3.605857273354034*^9}, { 3.6058573969941053`*^9, 3.6058574360653405`*^9}, {3.605857471879389*^9, 3.60585754358349*^9}, {3.6058576700277224`*^9, 3.605857670746763*^9}, { 3.6058577065788126`*^9, 3.605857708896946*^9}, {3.6058577408807745`*^9, 3.6058578329230394`*^9}, 3.6058579279314737`*^9, {3.60585799902654*^9, 3.6058580615891185`*^9}, {3.6058580955280595`*^9, 3.6058580972931604`*^9}, {3.605858146634983*^9, 3.605858165505062*^9}, { 3.6058582053403406`*^9, 3.6058582752423387`*^9}, {3.605858319949896*^9, 3.605858334743742*^9}, {3.605858465473219*^9, 3.605858468070368*^9}, { 3.605858825598817*^9, 3.605858828017956*^9}, {3.6058593177289653`*^9, 3.605859327321514*^9}, {3.605859565960163*^9, 3.6058595718985033`*^9}, 3.605859607776555*^9, {3.605859659739527*^9, 3.605859661323618*^9}, { 3.6058599466919403`*^9, 3.6058599485080442`*^9}, {3.6058603117548203`*^9, 3.6058603236335*^9}, {3.605863429441886*^9, 3.6058635072373357`*^9}, { 3.605864324075056*^9, 3.605864325108115*^9}, {3.605864400136407*^9, 3.6058644741146383`*^9}, 3.605864525771592*^9, {3.6058645561293287`*^9, 3.6058646098904037`*^9}, {3.6058646408281736`*^9, 3.6058646569360948`*^9}, 3.605864729678255*^9, {3.6058647615380774`*^9, 3.6058647781290264`*^9}, 3.605865191173651*^9, {3.605865702754912*^9, 3.6058657248231745`*^9}, { 3.6058657563999805`*^9, 3.6058657568030033`*^9}, {3.6058671273293934`*^9, 3.605867149249647*^9}, {3.6058671976454153`*^9, 3.6058671977224197`*^9}, { 3.6058717582682676`*^9, 3.6058717806925507`*^9}, {3.605871969877371*^9, 3.605871971821482*^9}, {3.605933059403351*^9, 3.6059330629375534`*^9}, { 3.60593332164135*^9, 3.605933353705184*^9}, {3.6059333888741956`*^9, 3.605933394217501*^9}, {3.6059339887845087`*^9, 3.6059339973970013`*^9}, { 3.6059341247102833`*^9, 3.6059341306806245`*^9}, {3.6059343659000783`*^9, 3.605934392422595*^9}, {3.605934552336742*^9, 3.6059345524627495`*^9}, { 3.6059346407968016`*^9, 3.6059346424988985`*^9}, 3.605935726265887*^9, { 3.6059384515247626`*^9, 3.6059384568550673`*^9}, {3.605938518203576*^9, 3.605938533265438*^9}, {3.605940617041623*^9, 3.605940638560854*^9}, { 3.605955208505622*^9, 3.605955218406188*^9}, {3.605955419306679*^9, 3.6059554213807974`*^9}, {3.605955488792653*^9, 3.6059555067966833`*^9}, { 3.6059557273883004`*^9, 3.6059557294504185`*^9}, {3.606020166121894*^9, 3.6060201675369744`*^9}, {3.6060224760590143`*^9, 3.606022477135076*^9}, { 3.6060399217527723`*^9, 3.606039927552104*^9}, {3.606040006747634*^9, 3.6060400079787045`*^9}, {3.6060418175182037`*^9, 3.6060418180872364`*^9}, {3.6061071081208696`*^9, 3.606107113587182*^9}, { 3.606107803371636*^9, 3.606107804446697*^9}, {3.6061078442979765`*^9, 3.6061078711235113`*^9}, {3.6061079598585863`*^9, 3.6061079824138765`*^9}, {3.606108056868135*^9, 3.606108082194584*^9}, { 3.606108129251275*^9, 3.6061081304663444`*^9}, {3.606109117288788*^9, 3.6061091190848904`*^9}, {3.606111978202422*^9, 3.606112018089704*^9}, { 3.6061120483194327`*^9, 3.6061120846265097`*^9}, {3.60611216120989*^9, 3.606112198141002*^9}, {3.6061122680119987`*^9, 3.6061122927874155`*^9}, { 3.6061123261583242`*^9, 3.6061123846596704`*^9}, {3.606112476373916*^9, 3.606112477939006*^9}, {3.6061304674269457`*^9, 3.606130487323084*^9}, 3.6061306664963317`*^9, {3.6061308706200066`*^9, 3.606130871794074*^9}, { 3.615270616894723*^9, 3.615270638117937*^9}, {3.615270910749531*^9, 3.61527096108841*^9}, {3.6152725040426617`*^9, 3.6152725113570805`*^9}, { 3.615272674003383*^9, 3.615272689595275*^9}, {3.6152728497264338`*^9, 3.6152728573118677`*^9}, {3.6152733949416184`*^9, 3.6152734452144938`*^9}, {3.615273544031146*^9, 3.615273547131323*^9}, { 3.6155275320421715`*^9, 3.615527556076546*^9}, {3.6155285014886208`*^9, 3.615528680873881*^9}, {3.619325409373805*^9, 3.619325425629034*^9}, { 3.619325484222737*^9, 3.619325536576429*^9}, 3.6193255682132845`*^9, { 3.6193263585772624`*^9, 3.619326366783639*^9}, {3.6193264445908346`*^9, 3.619326489964031*^9}, {3.619422202000715*^9, 3.619422233887539*^9}, 3.6194224072844563`*^9, {3.620380458768377*^9, 3.6203804921002836`*^9}, { 3.6203812546348977`*^9, 3.620381282148472*^9}, {3.6203819993894954`*^9, 3.6203819999805293`*^9}, {3.620382070064538*^9, 3.6203820717226324`*^9}, { 3.620385249403183*^9, 3.6203852660781364`*^9}, {3.620385698381863*^9, 3.620385766108737*^9}, {3.620385859758093*^9, 3.620385866064454*^9}, { 3.620385944687951*^9, 3.620385957170665*^9}, {3.620386010784732*^9, 3.6203860979257154`*^9}, {3.620386361276778*^9, 3.620386370618313*^9}, { 3.6203864589633656`*^9, 3.620386459724409*^9}, {3.620386591773962*^9, 3.620386689383545*^9}, {3.6203867252545967`*^9, 3.6203867357791986`*^9}, { 3.620386775644479*^9, 3.6203868058852086`*^9}, {3.620386837059992*^9, 3.62038684157625*^9}, {3.620386878621369*^9, 3.6203869009906483`*^9}, 3.620386935914646*^9, {3.6203871129957743`*^9, 3.6203871956615024`*^9}, 3.620387268102646*^9, 3.6203873284670987`*^9, {3.62038741818423*^9, 3.620387432261035*^9}, {3.62038746818509*^9, 3.620387479269724*^9}, { 3.620387513537684*^9, 3.620387549198724*^9}, 3.6203877928136578`*^9, 3.6204502186401796`*^9, {3.620450779223243*^9, 3.6204507858256207`*^9}, { 3.620539033259282*^9, 3.6205390343392982`*^9}, {3.6205393502414703`*^9, 3.620539404797308*^9}, {3.620539467099515*^9, 3.620539470289564*^9}, { 3.620540767272527*^9, 3.6205407788633475`*^9}, 3.6205408210146217`*^9, { 3.6205417063161764`*^9, 3.6205417066905775`*^9}, {3.620541994557883*^9, 3.620541997069487*^9}, {3.6205512673990135`*^9, 3.6205512678202143`*^9}, 3.620551458140548*^9, 3.620552148816161*^9, {3.620552235801914*^9, 3.6205522358799143`*^9}, {3.6205523196988616`*^9, 3.6205523197768617`*^9}, {3.6205523971841974`*^9, 3.6205524626575127`*^9}, {3.6205525051675873`*^9, 3.6205525234820194`*^9}, {3.620552624570197*^9, 3.620552629250205*^9}, { 3.6205529633559923`*^9, 3.620552968597601*^9}, {3.6215776724769526`*^9, 3.62157771666648*^9}, {3.621582204517171*^9, 3.621582259797333*^9}, { 3.6216604214288025`*^9, 3.6216604785249033`*^9}, {3.6216613877101*^9, 3.6216617437963257`*^9}, {3.6216617798011885`*^9, 3.621661819846459*^9}, { 3.6216618767553587`*^9, 3.621661960168706*^9}, {3.621662097090146*^9, 3.6216621469166336`*^9}, {3.6216624177191095`*^9, 3.6216624209171147`*^9}, {3.621662579803394*^9, 3.6216625847330027`*^9}, { 3.6216626191466627`*^9, 3.6216629201335917`*^9}, {3.621662955374054*^9, 3.621662968103676*^9}, {3.621667825940586*^9, 3.6216679923928785`*^9}, { 3.621668057585393*^9, 3.6216680628114023`*^9}, {3.6216681923904295`*^9, 3.621668223793285*^9}, 3.6216682607029495`*^9, {3.621668321184256*^9, 3.6216683228066587`*^9}, 3.6216684082480087`*^9, 3.6216684421936684`*^9, { 3.6216688582952*^9, 3.621668859153201*^9}, {3.6216690522347403`*^9, 3.6216690536231427`*^9}, {3.6216691343376846`*^9, 3.621669248873086*^9}, { 3.621669298434373*^9, 3.621669317107606*^9}, 3.6216694320798073`*^9, { 3.6216697109770975`*^9, 3.621669714970704*^9}, {3.621669830270507*^9, 3.6216699156182566`*^9}, {3.6216699534171233`*^9, 3.6216699754443617`*^9}, 3.62167018487473*^9, 3.621670306258543*^9, {3.6216708548179064`*^9, 3.6216710615026693`*^9}, {3.6216711096755543`*^9, 3.6216712114657326`*^9}, {3.6216712441009903`*^9, 3.621671257158213*^9}, { 3.6216721233372755`*^9, 3.621672137829701*^9}, {3.6216721757689676`*^9, 3.621672268635931*^9}, {3.621675860189316*^9, 3.6216760313528166`*^9}, { 3.6219274262369733`*^9, 3.621927426673774*^9}, {3.621927514252328*^9, 3.621927520055538*^9}, {3.621927557511204*^9, 3.621927570350026*^9}, 3.6264397325901637`*^9, {3.6264400823027782`*^9, 3.6264400996600084`*^9}, 3.6349069891231613`*^9, {3.6349089809266863`*^9, 3.634908986348996*^9}, { 3.6380171317300963`*^9, 3.6380171343862486`*^9}, {3.639299563064048*^9, 3.6392995635830774`*^9}, {3.6392999190884113`*^9, 3.6392999315631247`*^9}, 3.6396366105378056`*^9, {3.639636804654908*^9, 3.639636807385065*^9}}] }, Open ]] }, Open ]] }, WindowSize->{1348, 606}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, PrintingCopies->1, PrintingPageRange->{32000, 32000}, PrintingOptions->{"Magnification"->1., "PaperOrientation"->"Portrait", "PaperSize"->{595.1999999999999, 841.8}}, Magnification->0.8999999761581421, FrontEndVersion->"9.0 for Microsoft Windows (64-bit) (November 20, 2012)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[579, 22, 304, 6, 129, "Title"], Cell[886, 30, 469, 6, 69, "Subtitle"], Cell[CellGroupData[{ Cell[1380, 40, 103, 1, 70, "Section"], Cell[1486, 43, 299, 6, 29, "Input"], Cell[1788, 51, 1550, 38, 170, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[3375, 94, 154, 2, 70, "Section"], Cell[3532, 98, 402, 7, 29, "Input"], Cell[3937, 107, 1563, 50, 90, "Input", InitializationCell->True], Cell[5503, 159, 3300, 84, 90, "Input", InitializationCell->True], Cell[8806, 245, 2084, 57, 90, "Input", InitializationCell->True], Cell[10893, 304, 661, 19, 50, "Input", InitializationCell->True], Cell[11557, 325, 1150, 29, 50, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[12744, 359, 214, 3, 70, "Section"], Cell[12961, 364, 1100, 29, 70, "Input", InitializationCell->True], Cell[14064, 395, 2275, 54, 50, "Input", InitializationCell->True], Cell[16342, 451, 5211, 130, 130, "Input", InitializationCell->True], Cell[21556, 583, 835, 19, 29, "Input", InitializationCell->True], Cell[22394, 604, 966, 20, 29, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[23397, 629, 202, 3, 70, "Section"], Cell[23602, 634, 8510, 209, 380, "Input", InitializationCell->True], Cell[32115, 845, 2630, 66, 177, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[34782, 916, 262, 3, 70, "Section"], Cell[35047, 921, 5251, 132, 350, "Input", InitializationCell->True], Cell[40301, 1055, 3938, 102, 150, "Input", InitializationCell->True], Cell[44242, 1159, 1556, 47, 70, "Input", InitializationCell->True], Cell[45801, 1208, 1686, 35, 50, "Input", InitializationCell->True] }, Open ]], Cell[CellGroupData[{ Cell[47524, 1248, 196, 3, 70, "Section"], Cell[47723, 1253, 2111, 51, 130, "Input", InitializationCell->True], Cell[49837, 1306, 24287, 505, 753, "Input", InitializationCell->True] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)