Thomas A. Moore -- August 2007
This program provides a visual simulation of the Drude model of conduction in a metal, simulating the motion of randomly moving electrons (blue dots) as hey collide with each other and with fixed lattice atoms (red dots) in the presence of an external electric field.
When you press the "Run" button, the electrons are given initially random velocities, with a (default) root-mean-square speed of 7 pixels/s. Subsequently the program uses simple newtonian mechanics to simulate each electron's motion as collides with other electrons and/or the lattice atoms. Electrons that move beyond the edges of the window re-emerge on the opposite side, allowing the program to effectively simulate an infinite lattice within a finite space.
The program calculates and monitors both the average time in movie frames since the electron last collided with something (the average is computed each frame over all the electrons), the average time between collisions (computed in the same way), and the rms speed of the electrons. The small yellow bar that appears on the screen indicates the average vertical position of the electrons. In the absence of an electric field, this bar will simply fluctuate around the center.
You can apply an external electric field oriented either vertically up the screen or vertically down the screen by selecting an option from the field pop-up menu on the upper left side of the window. If you apply a field, the electrons will accelerate (according to newtonian mechanics) during the interval between collisions, and you should see that the yellow bar begins to move decisively in the direction opposite to the electric field (why opposite?), indicating a vertical drift of electrons relative to the lattice. You should also see that the rms speed of the electrons increases, as collisions the convert electrostatic potential energy they gain while drifting in the electric field to the kinetic energy of their random thermal motion. [Remember that the temperature of the electrons is proportional to the square of their rms speed: (3/2)kBT = (1/2)mvrms2]. You can reset the electrons to their original rms speed (thus resetting their temperature) by pressing the "Reset Temp" button.
More complex simulations
If you click the "Fix Temp" checkbox, the program will remove any excess energy the electrons accumulate during each step, as if the lattice were placed in good thermal contact with a constant-temperature reservoir. This can allow one to more quantitatively investigate the effects on the drift speed of increasing the field strength (using the field menu) and/or increasing the metal's fixed temperature (by selecting "Double" from the electron speed pop-up menu). Simply count how many seconds it takes the yellow bar to move one window height. Does the yellow bar seem to move at a constant rate (on the average), or does it accelerate? Can you predict how changing the field and/or the fixed temperature will affect its motion?
I have tried to make this program as transparent and as easy-to-use as possible. Please send any bug reports or feature requests to me at firstname.lastname@example.org. 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).