One-Dimensional Ising Model


This program provides a Monte Carlo simulation of the one-dimensional Ising model in equilibrium with a heat bath at temperature T. The output includes the mean energy, the magnetization, the susceptibility, and the heat capacity. The instantaneous energy and magnetization are plotted as a function of time.


The Metropolis algorithm for sampling the states of the one-dimensional Ising model in equilibrium with a heat bath at temperature T is as follows:

  1. Choose an initial configuration of N spins. (The program chooses all the spins to be +1.)
  2. Pick a spin at random and compute the trial change in energy, ΔE, that would occur if the spin were flipped. Periodic boundary conditions are used.
  3. If ΔE < 0, accept the flip. If r < exp(-ΔE/kT), where r is a uniform random number between 0 and 1, the change is also accepted; otherwise reject the flip and retain the original microstate. One Monte Carlo step per spin (mcs) is equivalent to N attempted spin flips.
  4. Repeat steps 2 and 3.
  5. Accumulate data for the various thermodynamic averages once the system is in equilibrium.


  1. Choose N = 50 and determine the energy, specific heat, magnetization, and susceptibility as a function of temperature. Compare your computed results for the energy with the exact answer (for zero magnetic field):

    E(T) = -N tanh(1/T).

    (We choose units such that J/k = 1.) Make sure that you run for a sufficient number of Monte Carlo steps per spin.
  2. What is the value of the magnetization for T = 0? What is the mean value of the magnetization for T > 0? Does the one-dimensional Ising model have a phase transition for T > 0?
  3. One of the best laboratory realizations of a one-dimensional Ising ferromagnet is a chain of bichloride-bridged iron +2 ions known as FeTAC. Measurements of the susceptibility yield a value of the exchange interaction J given by J/k = 17.4 K. (Experimental values of J are typically given in temperature units.) Use this value of J to interpret your Monte Carlo results for the temperature dependence of the susceptibility. What would be the susceptibility at 10 K, 20 K, and 40 K?
  4. Compute the energy and magnetization as a function of temperature for magnetic fields equal to 0.1, 0.5, and 1.0. Discuss your results in terms of the competition between the disordering effect of increasing temperature and the ordering effect of the magnetic field.
  5. Fix the temperature at T = 1. Approximately how long does it take for the magnetization to change sign for N = 8, 32, and 128? In the limit N → ∞ would the magnetization ever change sign?
  6. Is the acceptance ratio an increasing or decreasing function of T? Does the Metropolis algorithm become more or less efficient as the temperature is lowered? (There are more efficient algorithms for low temperatures.)

Java Classes

Updated 28 December 2009.