** 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 :

- T - Temperature -
*T*- the temperature at which the canonical ensemble heat bath is set - E - Energy Density - <
*E*> - the average energy per lattice site of the system, ranging from +2 to -2. - C - Specific Heat Density -
(<
*E*²> - <*E*> ²) /*T*² - the specific heat per lattice site of the system - M - Magnetization - <
*M*> - the average spin at each lattice site, ranging from +1 in the Up position to -1 in the Down position - Chi χ - Magnetic Susceptibility -
(<
*M*²> - <*M*> ²)/*T*- susceptibility per lattice site of the system

Jeffrey Wasserman

jeffwass@pha.jhu.edu

May 9, 2005