sktv.dev

Ising model

Ising model is one of the simplest statistical mechanical model to study phase transitions. It models the paramagnet to ferromagnet phase transition.

The basic element of the model is a “spin” that occupies points on a “lattice”. The spin represents magnetic monents of atomic spin. It can take binary values - 0 or 1, up or down, black or white etc - that represents the orientation of the spin. The spins can interact with neighboring elements in the lattice. A competition between the interactions to order the spins and the temperature to bring in disorder ensues.

Ernst Ising, the eponym for this model, studied the one dimensional Ising model and concluded that it does not exhibit a phase transition. Let us consider a 2-dimensional square lattice. In the simplest case, one can assume that each spin only interact with its nearest neighbors (up, down, left, and right) and the strength of their interaction is same. The total energy of the system as prescribed by the Ising model in this case is

$$ E = -J\sum_{ \langle ij \rangle } s_i s_j, $$

where $$J$$ is the interaction strength, $$s_i$$ is the spin at lattice point $$i$$, and the summation is over all neighboring pair of lattice points. The spin values are

$$ s_i = \begin{cases} -1, & \text{up state} \ +1, &\text{down state.} \end{cases}$$

When the interaction strength $$J$$ is positive, the energy is lower when neighboring spins are aligned in the same direction. The total energy is the least when all spins are aligned in the same direction (either all up or all down). However, at a finite temperature, it is not the energy which is minimized, but the free energy ($$F = E - TS$$).

Code

A C++ implementation of square lattice 2D Ising model is available here : https://github.com/sachu92/2d-ising-model

Last updated on August 27, 2019