monte carlo simulations of the ising model
DESCRIPTION
The focus of this paper is to study the phase transitions of the lsing model in different dimensions. In particular to locate the critical point, determine the spin spin correlation function, and the critical exponent ?. A Monte Carlo simulation is used to recreate a magnet’s behavior during a phase transition in order to study these parameters. Both the single-spin flip Metropolis algorithm and the Wolff cluster spin flip algorithm are considered in this paper.TRANSCRIPT
MONTE CARLO SIMULATIONS OF THE ISING MODEL IN 2D, 3D, 4D, AND 5D
PHYSICS 171: STATISTICAL MECHANICS AND THERMODYNAMICS
FINAL PROJECT WINTER 2015
ALEJANDRO SANCHEZ
I. INTRODUCTION
The Ising model is a mathematical representation of the behavior of a magnetic materi-
al at its most basic form. The model consists of a system of spins on a lattice with each site
containing a spin 𝑠! of value +1 or -1. These spins interact with each other according to the
system’s Hamiltonian, which is:
𝐻 = −𝐽 𝑠!𝑠!!!,!!
− ℎ 𝑠!!
Here J is the coupling constant. J > 0 describes a ferromagnetic system, while J < 0 describes
an antiferromagnetic system. h represents the external magnetic field. And <i, j> represents
the nearest neighbor interaction between spins.
The focus of this paper will be to study the phase transitions of this model in different
dimensions. In particular to locate the critical point, which in the case of a magnet is the Curie
temperature, determine the spin spin correlation function, and the critical exponent 𝜐. A Monte
Carlo simulation is used to recreate a magnet’s behavior during a phase transition in order to
study these parameters. Given the large number of particles and their exponential increase in
numbers with respect to the dimension of the lattice, it is critical to use the appropriate type of
algorithm to ensure that the computations can be carried out in a timely manner. Therefore
two algorithms are considered for this paper, the single-spin flip model Metropolis Algorithm
and the Wolff cluster spin flip algorithm.
II. Theory
a. Critical Exponents: The Study of Parameters around the Curie Temperature
The Ising model exhibits a phase transition at the critical point, which is also known as
the Curie temperature 𝑇!. The phase transition corresponds to the moment where the macro-
scopic behavior of a material changes. These changes can be observed in the canonical parti-
tion function or in the free energy of the system under the form of singularities. These singu-
larities are best understood through the study of critical exponents. Three of the most com-
monly used ones are: Order parameters, Correlation length, and Response Functions. It is im-
portant to note that the behavior this paper seeks to analyze is around and close to the critical
temperature. Furthermore, what follows will focus in the case of the N-Dimensional Cubic
lattice Ising Model with h = 0. To avoid edge cases and maximize the spin interaction the
model will use periodic boundary conditions. In other words the square lattice will live on a
circular torus.
Order Parameters:
An order parameter is a thermodynamic quantity that, as it names suggests, helps us
understand the order of the system. More specifically it helps us understand in which phase
our magnet is. As the phase transition occurs, order parameters are those that have changed
value markedly. For a magnet, this can be seen through its magnetization.
𝑀 = 𝑠!! and 𝑚 = !!
N represents the total number of spins in the lattice.
When a magnet is at a temperature below the Curie temperature 𝑇!, in which case it is ferro-
magnetic (characterized by aligned spins), the magnetization is non–zero. In contrast, when
above 𝑇!, the magnet is paramagnetic (characterized with alternating spins) and has a magneti-
zation of zero. In particular, below 𝑇!, magnetization behaves as:
𝑚 ∝𝑇 − 𝑇!𝑇!
!
= |𝜏|!
With 𝜏 = !!!!!!
the reduced temperature and 𝛽 the critical exponent associated with the magnet-
ization.
Response Functions:
Other parameters such as the Susceptibility 𝜒 and the Heat Capacity C also respond to the
phase transition. These quantities are related to both the magnetization m and the energy E of
the system as follow:
𝜒 = 𝜕𝑀𝜕𝑇 =
1𝐾!𝑇
𝑚! − 𝑚 !
𝐶 = 𝜕𝐸𝜕𝑇 =
1𝐾!𝑇!
𝐸! − 𝐸 !
The focus is however in their divergence at the critical temperature. Both of these functions
diverge around the critical temperature and are described as
𝜒± ∝ 𝜏 ±!
𝐶± ∝ 𝜏 ±!
Where we look at ± 𝛾 in order to understand the behavior at both sides of the singularity.
Correlation Function and Length:
The macroscopic behavior of these parameters is linked to fluctuations in microscopic interac-
tions. In particular, the correlation function G determines the correlation between two different
spins in our lattice at a distance r.
𝐺(𝑟) = 𝜎!𝜎!!! − 𝜎! 𝜎!!!
These correlations are usually studied with respect to a characteristic distance named the cor-
relation length 𝜉 and the correlation function decays in the order of 𝑒!!/! for r ≫ 0.
Similarly to the other parameter, the correlation length also diverges at 𝑇! and behaves in the
order of
𝜉 ∝ 𝜏 –!
One important property of these critical exponents is that they depend only the symmetry of
the order parameters and the dimensionality of space. According to the critical scaling hypoth-
esis, due to the domination of large distance fluctuation the details of the system at short dis-
tances, such as lattice shape and interaction range can be ignored. Thus the systems with the
same dimensions and symmetry of order parameters will have the same critical exponents and
thus are part of the same universality class. One objective will be to verify if this holds for the
simulations that will be performed.
b. Critical Slowing down
The Ising model is designed to respond to nearest neighbor interactions. As the tem-
perature decreases, it becomes favorable from an energy point of view for spins to align with
their nearest neighbors. Thus with the decrease of temperature toward 𝑇!, the Ising system
shifts from an unordered to an ordered phase (or vice versa) and begins to form many large
clusters of spins of both +1 and -1. Since the spins in a cluster are surrounded by many simi-
larly oriented spins there is a very low probability that any spin away from the boundaries will
flip. Because only the peripheral spins will be flipping, the time required to flip an entire clus-
ter increases proportionally to a power of the correlation length. This is better illustrated by
looking at the correlation length, which we defined above, as the size of the largest cluster.
This phenomenon is called slowing down and it will be crucial for the implementation because
it will be the main impediment to getting results in a timely manner. Moving forward, the fo-
cus will lie on using simulations to recreate the phase transition and study the various quanti-
ties and concepts mentioned above.
III. Monte Carlo Simulation
When calculating an expectation value for some quantity in the Ising model as
< 𝑂 > = 𝑂 𝑠 𝑃(𝑠){!}
𝑤𝑖𝑡ℎ 𝑃 𝑠 = 1𝑍 𝑒
!!"(!)
it is necessary to sum over all possible states. Looking at a N-Dimensional lattice of size L the
numbers of states is ~ 2!! which even for medium sized lattices becomes intractable to calcu-
late. The Monte Carlo simulation recreates a distribution of states corresponding to that of the
canonical ensemble by performing a random walk through phase space. For this, the simula-
tion establishes a transition probability matrix that will represent the stochastic change from
one configuration of the lattice to the other. Loosely speaking, the simulation looks to use a
sample of configurations in order to get a good approximation of the desired quantity. This
paper focuses on two particular implementations of the Monte Carlo Simulation: the Metropo-
lis single-spin flip algorithm and the Wolff cluster algorithm.
i. Metropolis Algorithm
This algorithm seeks to update one spin at a time with the following transition probability ma-
trix
Π!" = 𝑞!!1
𝑒!!(!!! !!) for 𝐸! > 𝐸!for 𝐸! < 𝐸!
The steps used to implement the algorithm for this paper were as follow:
1. Initialize the system by creating a lattice with flips randomly oriented as +1 or -1
2. Go through every spin in the lattice and calculate the change in energy of the system
that would result from flipping that spin. If the change in energy is negative, flip the
spin; otherwise flip the spin with probability 𝑒!! (!!! !!).
3. Repeat step 2 as many times as necessary or until system has stabilized
The spins were visited in a linear sequence for every temperature, N times, where N represents
the number of Monte Carlo Steps required to create a new state to follow in the random walk.
The magnetization is averaged after visiting every spin in the lattice and each value is stored
in an array to later be averaged over N loops to get the average magnetization for a given tem-
perature. Similarly, after having visited all the spins during a Monte Carlo loop, the product of
spins 𝜎!𝜎!!! is calculated for varying values of r. These are then averaged over N loops to get
the spin spin correlation function at the given temperature. Note that the length between spins
cannot surpass half the length of the lattice since we are working in periodic boundary condi-
tions and any r greater than this would be double counting interactions.
Given that the magnetization serves as the order parameter, we measured the difference be-
tween consecutive values of average magnetization. The largest difference corresponds to the
critical temperature.
While this model can be applied to various circumstances and conditions, such as a varying
magnetic field, it is however very sensitive to the critical slowing down phenomenon de-
scribed above. In particular going through every spin in the lattice, exponentially grows the
number of calculations as the dimensions of the lattice increase. Furthermore, having to over-
come the large cluster formation close to the critical temperature flipping one spin at a time
makes this process intractable. Thus above 3D this process was too slow to get any realistic
results.
ii. Wolff Algorithm
The Wolff algorithm, derived from the Swendsen-Wang algorithm, is a cluster-based algo-
rithm. A cluster is created by grouping bonds among parallel spins and by flipping the entire
cluster at once, this method greatly reduces the impact of the critical slowing down.
To implement the algorithm, the following steps were followed:
1. Initialize the system by creating a lattice with flips randomly oriented as +1 or -1
2. Pick a spin at random to become the center of the cluster that will be created and even-
tually flipped. Look at all of its neighbors and add those that are parallel to it to a
queue.
3. Pop an element from the queue. Look at all of its neighbors: if a neighbor is in the
cluster, check if a connection was already attempted during the current Monte Carlo
loop. If such an attempt has not been made, add the popped element to the cluster with
probability 1 - 𝑒!!! and stop the search through neighboring spins.
4. If the previous step resulted in an added spin to the cluster, look at all the neighbors of
the newly added spin. If the neighbor is not in the cluster and not in the queue, add it to
the queue. Otherwise, do nothing.
5. Repeat steps 3 and 4 until the queue is empty. Flip all the spins in the cluster.
6. Repeat 2 through 5 as many times as necessary to stabilize the system.
The implementation of this code uses three global variables: the lattice, created in the same
way as when implementing the metropolis algorithm, a map of neighboring states, and the to-
tal energy of the system.
A lattice is created, followed by the initialization of the nearest neighbor map and calculating
the total initial energy using the latter.
For each temperature, the Wolff algorithm is run N Monte Carlo loops. At each loop the total
energy is updated with every flip of a spin. The spin spin correlation is also measured for vari-
ous 𝜎!𝜎!!!. In order to get good results, all spins at a distance r with r ranging from 0 to
length/2 are considered. Finally, the magnetization is calculated by summing over all the ele-
ments in the lattice.
Following N loops, an average of each quantity is taken for the given temperature and the val-
ues are stored in a file to reproduce the rest of the calculations at a later point.
In order to make the code run faster and the results more accurate, parallel computing is used
to run the entire process several times and average the values of each quantity over various
runs. More details can bee seen in the source code attached.
IV. Results
a. Critical Temperature
The study of the phase transition occurs around the critical temperature 𝑇!. Thus the first step
consists of identifying 𝑇! for different dimensions. As mentioned before, an order parameter
changes values when moving from one phase to another. For a magnet, this order parameter is
the magnetization. In theory, there is a singularity at 𝑇 = 𝑇! which means that we are looking
for a sharp change in values of the magnetization. As stated previously, taking the difference
of successive magnetization measurements and finding the index with the highest absolute dif-
ference did this. Below are the results obtained for the various dimensions:
Magnetization as function of Temperature for the 2D lattice. On the left is the result from the Wolff algorithm on a 80x80 lattice with a Tc = 2.30 and on the right the result form the Metropolis algorithm
on a 50x50 lattice with a Tc = 2.32
Curie Temperature for Square Lattice Ising Model Metropolis Accuracy Wolff Accuracy Theoretical
2D 2.24 0.987 2.30 0.987 2.27 3D 4.44 0.976 4.49 0.987 4.551 4D 6.67 0.999 6.68 5D 8.60 0.989 8.7
The results obtained were pretty accurate. Given the computation time required and the ineffi-
ciency of the code due to an unfound bug, the step taken between temperatures was not small
enough to get more precise results.
b. Correlation Function
The correlation function measures the correlation between two spins at a distance r.
Above the critical point, in the paramagnetic phase it is expected that the spins alternate in
sign thus there should be almost no correlation among spins. Close to the critical point and
below however, the spins are expected to align and hence show strong correlation. Measuring
the correlation at various temperatures and for the various dimensions, we get the following
graphs:
Spin Spin Correlation as a function of temperature. On the right are the results from the Wolff algo-rithm in all dimensions for different lattice sizes. On the left is the result from the metropolis algorithm
using for 2 dimensions on a 50x50 lattice
The behavior is in accordance with what is expected, fluctuating around 0 for high tempera-
tures and plateauing at 1 below Tc.
The Metropolis algorithm had great success in measuring the correlation function compared to
the Wolff algorithm. The main reasoning for this was the presence of a bug in the code for the
Wolff algorithm, which introduced large amounts of noise at high temperatures. To counteract
for this, instead of measuring the spin spin correlation between the spin at 0 and r as in the
Metropolis algorithm, every spin at a distance r was considered and the values were averaged.
This reduced the noise, but did not correct the inherent bug within the code. As the dimensions
grew it also became harder to run enough iterations to reach equilibrium and to swipe larger
ranges of temperatures, which is why there is a shrinking in the size of the correlation function
from the Wolff algorithm. However there is a sharp drop around the appropriate critical tem-
perature for each dimension in the Wolff algorithm results.
c. Correlation Length and Critical Exponent
From the correlation function we can get the correlation length for large values of r, which, as
mentioned previously, behaves as a power of 𝜈. To consider the largest possible values, r was
taken from the range length/4 to length/2. Given the relation between correlation length and
correlation function, the following reasoning was used to calculate 𝜈.
𝐺 𝑟 = 𝑒!!/!
ln (𝐺 𝑟 ) =−𝑟𝜉
Using a linear regression on ln (𝐺 𝑟 ), 𝜉 was determined as the slope of the ensuing regres-
sion. Repeating this process for the various temperatures resulted in 𝜉 (𝑇). Based on the above
formula 𝜉 ∝ 𝜏 –! another regression was used on ln (𝜉 ln 𝑇 = – 𝜈 ln ( 𝜏 ) to obtain 𝜈 as
the slope. Below are an example of the correlation length of the 3D Ising model as well as a
chart with the various values obtained with their respective errors.
Correlation Length of a 15x15x15 3D cubic lattice using Wolff
Correlation Length Critical Exponent for Square Lattice Ising Model Metropolis Accuracy Wolff Accuracy Theoretical 2D 0.96 0.96 0.71 0.71 1 3D 0.65 1.03 0.63 1.00 0.63 4D 0.87 0.87 1 5D 0.13 0.13 1
As expected, the correlation length shows symmetrically diverging behavior at the critical
temperature.
The Metropolis algorithm was more accurate than the Wolff algorithm in its calculation of the
correlation length. As mentioned previously, this is attributed to an error in the code for the
Wolff algorithm that introduced large amounts of noise making it very difficult to carry out
effective regressions.
d. Susceptibility and Heat Capacity
3D 15x15x15 Lattice using Wolff. Heat Capacity on the right and Susceptibility on the left. To better understand the phase transition and the concept of universality through the critical
exponents as mentioned in the beginning of this paper, we looked at the susceptibility and heat
capacity and calculated their exponents using the same methods as for finding the critical ex-
ponent for the correlation length, namely performing a linear regression on a log log function.
While the divergence of both quantities occurred at the critical temperature as predicted by the
theory, the results were not convincing. The results for susceptibility were mostly accurate,
but they broke down in higher dimensions; the results from the heat capacity were consistently
off. This can be partly explained by the fact that susceptibility depends on the magnetization
whereas the heat capacity depends in the energy, which might have been miscalculated in the
code.
However the consistency of all parameters despite the varying of lattice sizes, specifically for
those with low error seem to support the concept of universality.
Values for critical exponents for varying lattice sizes
Alpha Error Beta Error Mu Error Gamma Error
2D Wolff length 30 0.95
0.10 0.20 -‐
0.24 1.24 1.76 0.01
2D Wolff length 40 0.94
0.18 0.44 -‐
0.71 1.71 1.92 0.10
2D Wolff length 50 0.99
0.12 0.04 -‐
0.51 1.51 1.96 0.12
2D Wolff length 80 1.26
0.11 0.12 -‐
0.48 1.48 2.28 0.30
3D Wolff length 10 0.60 4.45 0.23 0.29 -‐
0.57 1.90 1.08 0.12
3D Wolff length 12 0.55 4.00 0.30 0.08 -‐
0.62 1.98 1.15 0.07
3D Wolff length 15 0.59 4.36 0.30 0.08 -‐
0.86 2.37 1.25 0.02
3D Wolff length 17 0.69 5.27 0.20 0.39 -‐
0.63 2.00 1.23 0.00
4D Wolff length 7 0.50
0.17 0.66 -‐
0.11 1.11 0.56 0.44
4D Wolff length 10 0.28
0.34 0.32 -‐
0.87 1.87 1.40 0.40 4D Wolff length 12 0.40
0.42 0.16 0.81 0.19 0.99 0.01
5D Wolff length 4 0.29
0.30 0.40 -‐
0.17 1.17 0.58 0.42
5D Wolff length 5 0.52
0.25 0.50 -‐
0.13 1.13 0.64 0.36
2D Metropolis length 30 -‐
0.18 0.44 -‐
1.00 2.00 -‐
2D Metropolis length 40
0.07 0.44 -‐
0.80 1.80
2D Metropolis length 50
0.18 0.44 -‐
0.96 1.96
2D Metropolis length630
0.16 0.28 -‐
1.11 2.11
3D Metropolis length 20
0.26 0.20 0.49 0.22 3D Metropolis length 17
0.27 0.17 0.52 0.17
3D Metropolis length 12
0.17 0.48 0.37 0.41 3D Metropolis length 15
0.28 0.14 0.65 0.03
V. Conclusion
To conclude, the Monte Carlo Simulation yielded the approximations of the Curie Tempera-
tures for the various dimensions modeled to a reasonable accuracy. Furthermore, both the
Wolff and the Metropolis algorithms presented spin spin correlation functions in accordance
with their expected behavior, being, no correlation at high temperatures and complete correla-
tion below the critical temperature with a sharp fall at the critical temperature. However, the
inherent nature of bugs in code made the calculation of this function extremely noisy in the
Wolff algorithm. While several measures were taken to take this into account, such as averag-
ing over more samples, the error could not be completely eliminated. Despite this, the calcula-
tion of the correlation function was reasonably accurate, especially for the Metropolis algo-
rithm, which made the calculation of the critical exponent 𝜈 possible though the errors were
pretty significant. But on a more general note, after looking at other parameters such as sus-
ceptibility and heat capacity, and their respective critical exponents for varying lattice sizes in
the different dimensions, there was a trend of consistency. This seems to be in accordance
with the theory of universality and scaling mentioned in the theory. The implementation of the
Monte Carlo Simulation was challenging due to the volume of computation and its sensitivity
to the critical slowing down around the critical temperature. However, implementing the
Wolff algorithm made the calculation in 4 and 5 dimensions tractable. This is without a doubt
a very useful tool in verifying the theoretical concepts as well as to give a strong visual repre-
sentation of some of the underlying physical phenomena.
VI. References
Meyer, Peter, “Computational Studies of Pure and Dilute Spin Models”, July 2000 < http://www.hermetic.ch/compsci/thesis/index.html> Hammel, Ben. "Monte Carlo Simulation of the Ising Model using Python". TheBro-kendesk.com 06 January 2014. 21 March 2015. < http://www.thebrokendesk.com/post/monte-carlo-simulation-of-the-ising-model-using-python/> Rongfen Sun, “Cluster Algorithms for the Ising model and the Widom-Rowlinson Model”, May 1999 < http://www.math.nus.edu.sg/~matsr/papers/ClarkThesis.pdf>
Wolfhard Janke “Monte Carlo Simulations of Spin Systems” < http://www.physik.uni-leipzig.de/~janke/Paper/spinmc.pdf>
M. Kardar, “Statistical Mechanics of Fields”