Quantum well
Solving Schrodinger equation in real-time
Download original notebookInitial parameters
v0 = 8.; hb = 1.; d = 1.; m = 1.;
Operator
V = (*TB[*)Piecewise[{{(*|*)0(*|*),(*|*)-d<=#<d(*|*)},{(*|*)v0(*|*),(*|*)True(*|*)}}](*|*)(*1:eJxTTMoPSmNkYGAo5gESAZmpyanlmcWpTvkVmUxAAQBzVQdd*)(*]TB*) &; op[u_[x_]] := - hb^2/(2 m) u''[x] + V[x] u[x];
Controls
controls = EventHandler[InputGroup[<| "m" -> InputRange[0.1, 5, 2, 1.0, "Label"->"Mass"], "V" -> InputRange[0.1, 10, 2, 8.0, "Label"->"V0"], "d" -> InputRange[0.1, 2, 0.2, 1.0, "Label"->"d"] |>], Function[values, v0 = values["V"]; m = values["m"]; d = values["d"]; vplot = Table[{x,V[x]}, {x,-2,2,0.05}]; {ev, ef} = NDEigensystem[{op[u[x]], DirichletCondition[u[x] == 0, True]}, u[x], {x, -2, 2}, 6]; xaxis = Table[i, {i,-2,2,0.025}]; yaxis = Table[Evaluate[ef + ev], {x, xaxis}] // Transpose; ]]; controls // EventFire;
Graphical output
Row[ { Graphics[ { Table[ With[{i = i, color = ColorData[97][i]}, {color, Line[{xaxis, yaxis[[i]]} // Transpose ] // Offload} ] , {i, Length[yaxis]} ] , AbsoluteThickness[2] , Line[vplot // Offload] } , Axes -> True , PlotRange -> {{-2, 2}, {0, 16}} , ImageSize -> {350, 350} ] , controls } ]
(*GB[*){{(*VB[*)(FrontEndRef["72e6a61b-bde5-4a89-8a9e-08de5ff2f16d"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxulmiWaGSbpJqWkmuqaJFpY6lokWqbqGlgA+WlpRmmGZikAjQgWQw=="*)(*]VB*)(*|*),(*|*)(*VB[*)(EventObject[<|"Id" -> "be5c7087-95a7-4077-b88a-c36158bc23e0", "Initial" -> <|"m" -> 1., "V" -> 8., "d" -> 1.|>, "View" -> "60a1be29-4080-4313-b3c7-1405931a6b21"|>])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxkkGialGlnqmhhYGOiaGBsa6yYZJ5vrGpoYmFoaGyaaJRkZAgBy/BSW"*)(*]VB*)}}(*]GB*)