The Ising Model


This is an intermediate post between the one on the Monte Carlo methods and one presenting a Monte Carlo C++ program I intend to write. My goal is to briefly expose the theory here – most of it with links – and provide a very easy JavaScript example for the Metropolis algorithm applied on the 2D Ising model.

The model

The Ising model is one of the simplest models that have a non trivial behavior and it’s very important because of the universality. For this post and the next one, I’ll consider a special case, the 2D Ising model on a square lattice. I even drop the position dependency of the magnetic field/coupling and the directional dependency of the interaction strength, so the Hamiltonian will be:

H=-J\sum\limits_{(i,j)}s_i s_j - B\sum\limits_i s_i

J>0 for ferromagnetic interaction and J<0 for antiferromagnetic interaction, the sum over (i, j) is summing all adjacent pairs.
There isn’t much to say about it besides what’s already in the Wikipedia pages, it’s a quite simple model. The book1 I pointed out in last post also contains quite a bit of information on it so I won’t bother to present more theory here.

Metropolis Monte Carlo

Please take a look into my last post for the theory, here it is applied on a 2D square-lattice Ising model with periodic boundary conditions:

Canvas is not supported by your browser!

It’s JavaScript code I quickly wrote just to illustrate the Metropolis algorithm. Here is the code:

The code is pretty straightforward, with the help of the comments and the last post it shouldn’t be hard to understand. I tried to make it easy to understand instead of optimizing it, for example one could pre-calculate the exponentials for energy difference for a spin flip at a specific temperature, but probably the code would not be so clear so I did not bother.


This is just a quick post before having a C++ program implemented. It’s Sunday, so I didn’t want to spend too much time on it. Hopefully it can be useful even as it is.

If you find any mistakes, please point them out.

  1. Computational Physics A book by Konstantinos Anagnostopoulos 

Leave a Reply

%d bloggers like this: