13 Jul 2026
Monte Carlo Simulation of a Two-Dimensional Ising Model
Aim
To simulate a two-dimensional Ising model using the Metropolis method and study the variation of magnetisation with temperature.
Apparatus and software
Computer, Maxima or Python, random-number generator, and plotting software.
Figure

Theory
The Ising model represents a lattice of spins $s_i=\pm1$. Neighbouring spins interact through
\[E=-J\sum_{\langle ij\rangle}s_is_j.\]At temperature $T$, a trial spin reversal with energy change $\Delta E$ is accepted with probability $\min[1,e^{-\Delta E/(k_BT)}]$. Repeating this process generates equilibrium configurations. The magnetisation per spin is
\[M=\frac{1}{N}\left|\sum_i s_i\right|.\]Observations
For a $20\times20$ lattice with $J/k_B=1$:
| Temperature $T$ | Mean magnetisation $M$ |
|---|---|
| 1.0 | 0.998 |
| 1.5 | 0.982 |
| 2.0 | 0.911 |
| 2.3 | 0.612 |
| 2.6 | 0.244 |
| 3.0 | 0.108 |
Graph

Result
The simulation shows an ordered state at low temperature and a disordered state at high temperature, with a sharp reduction in magnetisation near $T\approx2.3J/k_B$ for the finite lattice used.
Viva Questions
- Why are spins restricted to two values? This is the defining approximation of the Ising model.
- What is the Metropolis criterion? It gives the probability of accepting an energetically unfavourable trial move.
- Why are equilibration steps discarded? The initial configuration may not represent thermal equilibrium.
Discussion