You are having some problem with Java.
This project requires at least Java 1.4. Please install a Java Plugin for your browser.

A version of Java at least 1.4 is necessary to run this applet. If you are having problems with this applet, please install the Java 1.4 Plugin from Sun, which will work with most recent browsers (including Internet Explorer, Netscape, and Mozilla).
Follow this link to download it.

This applet simulates an Ising magnet. on a square lattice, and was originally inspired by the xising simulation by Mike Creutz, as demonstrated on his xtoys webpage. It is highly recommended to use this applet in conjunction with the problem set written by Oleg Tchernyshyov, which was used in the Condensed Matter Physics I class at Johns Hopkins University

The magnet begins in a randomized state, and by default will cool down. The user can directly set the temperature by clicking or dragging on the thermometer. Heaters and chillers can be turned on by choosing the 'Heat' or 'Cool' buttons. These will change the temperature of the heat bath by the amount noted in the "delta T" control. The 'Hold' button will hold the temperature constant, and continue averaging in the intensive mode.

There are two distinct 'modes' of the simulation. "Visual Mode" is activated when the applet is first launched. This mode is for visualizing how the magnet looks as a function of temperature, and under varying boundary conditions. This mode is very useful for seeing qualitatively in 'real-time' how the magnet acts. However, any meaningful numerical analysis of the magnet must take ensemble averages, as well as ensure that each 'data point' is independent from the previous one. These constraints make the magnet update too slowly, so they are ignored in this 'Visual Mode'. But the user still gets an intuitive idea of how the magnet evolves with temperature and different boundary conditions.

Obtaining valid quantitative data requires more intensive calculations and averaging. "Intensive Mode" tries to ensure independent data points between magnet frames, as well as take ensemble averages, which the user can adjust the ensemble size. Additionally, a plot of system parameters (by default Energy vs. Temperature) is plotted in the right window. In intensive mode, the boundary values are constrained to be periodic.

In intensive mode, the user can choose which system parameters to plot for the X and Y axes. On the plot, zero points for Energy or Magnetization are drawn in gray, and the critical temperature is drawn in green. The actual calculated data can be displayed in the right-most window by clicking the "Show Data Table" button. The data buffers can be emptied by clicking the "Clear Data" button.

The default options for the intensive mode will easily demonstrate the specific heat peak at the critical temperature. However, the data is somewhat noisy. Better data can be obtained by increasing the number of ensemble averages, as well as decreasing the size of the temperature step. This additional accuracy comes at the expense of increasing the calculational time.

The simulation is based on the Metropolis algorithm. The magnet starts in a randomized state, and subsequent time translations are governed by a daemon that visits each site on the lattice exactly once. The daemon starts at a random site, and jumps by 29 sites (wrapping around the lattice when necessary). The local energy of the current site is determined through the four nearest neighbors, which are ferromagnetically coupled. Each neighbor interaction contributes a factor of -1 for aligned spins, and +1 for anti-aligned spins. The daemon will flip the spin if that will lower the energy. If not, the daemon will only flip the spin with a probability of the Boltzmann factor exp[-(delta E)/T] where delta E is the difference between the flipped and the unflipped energies.

In "Visual" mode each subsequent time-translated lattice is drawn, and a new temperature is determined through the settings of the Heater Control and the delta T adjuster. Various boundary conditions can be chosen. The speed of the animation can also be adjusted.

In "Intensive" mode several time translations are required to produce an independent system configuration. These independent configurations are then ensemble-averaged to calculate system parameters. Various parameters are plotted in the window. They are :

Please send any questions or comments about the simulation to:
Jeffrey Wasserman
May 9, 2005