About this project

The Ising model is the simplest system in which interacting particles collectively undergo a phase transition, and the standard test bench for Monte Carlo methods. This project pairs a Python package that simulates the model in one and two dimensions with a complete set of notes, which can be read online section by section. The notes explain the physics, from the exact solution of the chain to Onsager's solution of the square lattice, then the simulation methods and their statistical analysis. Every simulated result is checked against an exact solution: the transfer matrix for chains, exact enumeration and Kaufman's formula for finite lattices, and Onsager's and Yang's results for the infinite lattice. The notes are written for undergraduate students who have followed a first course in statistical physics. The code is on GitHub, and the notes can also be downloaded as a PDF.

Abstract

The Ising model is the simplest model of a system in which many interacting particles collectively undergo a phase transition. These notes give a self-contained introduction to the model in one and two dimensions. After a reminder of the statistical mechanics needed, we solve the one-dimensional chain exactly with the transfer matrix and show that it has no phase transition. We then introduce mean-field theory, and turn to the two-dimensional square lattice: the Peierls argument, Kramers–Wannier duality, Onsager's exact solution, critical exponents and universality. The second half of the notes is devoted to Monte Carlo simulations: importance sampling, the Metropolis, heat-bath and Wolff algorithms, the statistical analysis of the data, and finite-size scaling. Every numerical result is produced by the accompanying Python code, and checked against the exact solutions. The notes are aimed at undergraduate students who have followed a first course in statistical physics. Exercises with answers are given at the end.