SimSurface Information

Summary

SimSurface is a program designed for use in instruction of computational science in general and of the specific numerical techniques used in the program. SimSurface demonstrates two commonly used computational techniques.

The first, simulated annealing, is an often-used method for finding global maxima and minima of complicated multi-dimensional functions. It can be used any time you have a function that gets big when things are bad and small when things are good (or vice-versa). The problem being solved in SimSurface is a minimization of potential energy. The question we are trying to answer is: given n stationary electrons/protons confined to a 2-dimensional surface by four charged walls, what arrangement of electrons has the minimum total energy and is therefore the configuration preferred by nature?

If the user chooses to experiment with the "Application" part of Simsurface, he enters numbers that specify the initial conditions of the surface and electrons (number of electrons and the charge values on the walls).

If instead he chooses to experiment with the "Algorithm" section of Simsurface, he is prompted for values which determine how fast the system cools. The "Architecture" section of SimSurface is not yet functional: the code can only be run on one machine, in this case an SGI Power Challenge.

Typical initial configuration

Typical final configuration

Once the system has reached a minimum energy (to within a specified tolerance), we would like to know what the electrical potential looks like around the electrons. This could of course just be calculated directly at each point, but a much faster and widely used technique called relaxation is actually used to solve Laplace's equation. Laplace's equation says that the net curvature of the potential surface is zero everywhere (del^2 phi=0) on the surface (except at the point charges themselves), but the relaxation method is very easy to understand, even for those that do not fully understand the equation it is solving. It is an iterative process, which at each iteration sets the value of a grid point equal to the average of its 4 neigbors. The charges and walls are held constant throughout this process. SimSurface displays the end result of this process: the potential on the plate.

Note that the colored bands in the image are equipotential lines of the field.

Running SimSurface

To run SimSurface on Shodor machines, simply enter the following values into the SimSurface form.

Then submit the page, and wait a few seconds. It shouldn't take more than 20 seconds or so for reasonably small numbers of electrons. The results page that you get back includes all the parameters you selected as well as four numbers output by SimSurface. The initial and final energies are simply the net potential energies of the electron configuration both initially (random configuration) and after the annealing (minimum energy configuration). The initial and final temperatures come from the annealing process. They are not temperatures of anything physical in the problem; they are only analogs to temperature. The final temperature is the temperature at which the annealing procedure "freezes" the electrons into their minimum energy configuration. Of course this temperature is determined by how accurate a minimum we want. SimSurface has very good accuracy to a few significant figures without sacrificing too much speed.


Assorted Notes and Frequently Asked Questions

Occasionally the final energy obtained is different, or the pattern is slightly varied. Why?
The simulated annealing process used by SimSurface is inherently random in nature. Thus when run with different random seeds, the program may produce different output patterns. However the differences in energies should be very small.

SimSurface is great, but I'm looking for an example of simulated annealing that does not require as much understanding of physics. Any suggestions?
Why yes. We also have a program titled SimElevator which uses the same annealing process to model the way in which people arrange themselves in an elevator. If there's sufficient interest in this (mail us), we would consider creating a Mosaic front end to this as well.

Is source code for SimSurface publicly available?
In a word, no. In two words, not yet . At the moment SimSurface is in development, and source code is not available. Currently, we have the entire environment required to run SimSurface running on both a Cray Y-MP and an SGI Power Challenge, and we hope to be able to support more architectures in the near future. A Macintosh version has just been written and we will soon be able to compile a native version for the PowerMacs. Interest in the Macintosh version of SimSurface, which does not require an internet connection (only a 68040 Mac or faster), should be directed to Ben Davenport (bpd@phoenix.princeton.edu).

What's the coolest thing about SimSurface?
Our opinion: when we find the minimum energy configuration of 64 electrons, we are in essence solving a global minimum problem in 128 dimensions. If instead we just tested each coordinate at each of 10 values (a very coarse sampling), we would have 1.0e128 energy calculations. Needless to say this would take longer than the age of the universe. Instead, our program runs in about 6 seconds. Thus as you can see the algorithm used is far more important than whether the program is run on a Cray, an SGI or a Macintosh.


Ben Davenport (bpd@phoenix.princeton.edu)
Robert Panoff (rpanoff@ncsa.uiuc.edu)