SchroSolver 2.3

Thomas Moore and Jason Evans '00  --  September 2007


This program solves the one-dimensional time-independent Schrödinger equation for an electron experiencing various potential energy functions (including ones you define) and for various energy values. It also allows you to find energy eigenvalues quickly.


Basic Instructions:

Choose a potential energy function using the pop-up menu at the upper right corner of the window and adjust the function's characteristics using other controls that appear below it. Then enter a value for the energy and press the Draw button to display the solution to the Schrödinger equation for the potential energy function shown and the energy specified. Most energies will yield physically unreasonable solutions where the solution goes off to either positive or negative infinity. By trying different values for the energy, you should be able to find the energy eigenvalues where the Schrödinger equation yields physically reasonable wavefunctions (i.e. the energy eigenfunctions) that go to zero for large x.


The algorithm used by the program to solve the Schrödinger equation is described in section Q10.5 of Six Ideas That Shaped Physics, Unit Q (McGraw-Hill, 2003), with the wavefunction value set to zero at the far left edge of the wavefunction graph. A somewhat earlier version of the program is described in section Q10.6. The overall vertical scale of the wavefunction has no physical meaning (see these sections), so the scale has been arbitrarily set so that the wavefunction is as large as possible on the graphs.


You can print both the potential energy graph and the wavefunction graph by selecting Print under the File menu.


The Find Button

After you have gone through the process of finding energy eigenvalues and eigenfunctions, you will appreciate the Find button. Pressing this function causes the computer to execute a simple search algorithm that finds the next higher energy level. Note that for most potential energy functions, the number of bound energy states is finite, so the algorithm will fail after a while, yielding an energy value close to where the electron becomes unbound and drawing a physically absurd wavefunction.


Notes About Special Cases

In the Symmetric Well case, solutions to the Schrödinger equation can be either symmetric (i.e. the solution that has the value at any x as it has at –x), or antisymmetric (the solution at x has negative the value it has at –x). By default, SchroSolver does not start by setting the wavefunction to be zero at the far left of the graph, but rather sets its slope to be zero in the center and sets the function at –x to be equal to that at +x. This generates a symmetric solution (as indicated by the lower pop-up menu that appears in this case). If you select Antisymmetric from that pop-up menu that appears in this case, Schrosolver will set the wavefunction value to be 0 at the center and sets the function at –x to be negative the value at +x, creating an antisymmetric solution. Unlike the solutions Schrosolver generats for other potential energy functions, these wavefunctions will not necessarily go to zero as x approaches the left side of the graph. You should also find that the energy eigenvalues for which these solutions do approach zero at large values of x will be slightly different in the symmetric and antisymmetric cases (see if you can figure out why).


The Hydrogen case specifies the potential energy for an electron in a hydrogen atom. In this case, SchroSolver generates a one-dimensional wavefunction whose absolute square gives probability that the electron will be found a certain distance r from the proton. For physical reasons beyond our scope here, this wavefunction must go to zero at r = 0, as if there were an infinite potential barrier at r = 0. Therefore, SchroSolver in this case begins the calculation by setting the wavefunction to be zero at r = 0: it turns out that if we then solve the Schrödinger equation as if it were one-dimensional in this case gives us the wavefunction whose interpretation is given above.


Modifying the Potential Energy Function

You can go beyond the basic potential energy functions defined by the controls in the upper right of the window by creating your own potential energy functions. Start with the pre-defined function that is closest to what you want, and then drag the round handles on the function graph vertically to change the function value at that point. To create a new round handle, click on the potential energy curve at the point you would like to create the handle.


Concluding Comments

We have tried to make this program as transparent and as easy-to-use as possible. I (TM) wrote the basic version of the program, and Jason Evans helped add the new features provided in version 2.0. Please send any bug reports or feature requests to me at tmoore@pomona.edu. This program was written using REALBasic, a superb development environment for Macintosh, Windows, and Linux platforms. For more information, visit www.realbasic.com. This program is freeware, and may be freely distributed, used, and/or modified, subject to the terms of the GNU General Public License, version 2 or higher (http://www.opensource.org/licenses/gpl-license.php).