One-Dimensional Schrödinger Solver


This is an application that numerically solves the one-dimensional Schrödinger equation by turning it from a differential equation into a finite difference eigenvalue equation, and finding the eigenvalues and eigenvectors of the resultant matrix. As written, it approximates the system using a 400×400 matrix. On my 1.66Ghz Core2 Duo Ubuntu Laptop, it takes between 5 and 10 seconds to complete one solution. There are several potentials built in, including the SHO, the Coulomb well, the square well, and a 1-d lattice of Coulomb wells (to approximate a band-gap solid).

Once the equation is solved, you can plot the potential with the wave function and the square of the wave function on top of it. The x axis range is shared, but the y-axis range (of course) has a different meaning for the potential and the wave function; as such, a different zero y (i.e. x axis) and scale is used for the wave function, the square of the wave function, and the energy scale. The energy eigenvalue can be drawn across the potential as a dotted line.

Hopefully the interface won't be too hard to figure out...!

Note that implicitly there's a huge (infinite?) square well at the edges of the solution, as the equation is solved within a finite range of x. By default, the plot pads the edges of the solution by 10%, so that you can see the whole thing. Drag the mouse on the plot to zoom. (That will zoom in x for everything, but only in y for the potential and energy eigenstate; the entire y range of the wave function is always plotted.)

Application. Download this and run it. If you run it from the command line, run it with "java -jar". I believe on many operating systems with Java properly installed, you can also just click on it. (Try it!) It is compiled with Java 1.6 (also called Java 6). If you have an earlier version, it's time to upgrade....

Source Code. It is available under the GPL version 2. In addition to this source code, you also need the JSci Library, which is itself available under the GPL.