Phys690: Homework Assignment 4
03/19/07
==> Due on Wed 03/28 <==
(1). The two-dimensional Ising model.
This problem is based on materials from the text.
We have seen in class how the Ising model can be used to study
magnetism. With minor modifications, it can also be used to study
lattice gas (to understand gas-liquid transition) and binary alloys
(to understand phase separation of the two species).
Write a program to study the ferromagnetic Ising model with periodic
boundary conditions. Study an N=LxL square lattice. Set k=1 and
J=1. Compute the mean energy per spin E/N, the specific heat
C, the magnetization m=<M>, and <M^2>. Maple
is too slow to get enough numerical accuracy, so you should write the
code in C (C++), Fortran (Fortran90), or JAVA as the text does.
(The text's codes can be freely downloaded from
< http://www.opensourcephysics.org/sip >.
Feel free to refer to them or other codes that you find, but
be aware that improvement can
and should be made. For instance, you must include error estimates
on your results.
- Verify that your code is working correctly. One way to do this is
to compare the computed E/N, m, and <M^2> with
exact values in a case that you can compute analytically. For example,
enumerate a 2x2 lattice. (See Appendix 15C.) Do this at two temperatures.
- Study an 4x4 lattice as a function of temperature T, in the range
[1,5]. Plot E/N, C, and m as a function of T and
justify their behavior.
- Do the same for 8x8 and 16x16 systems. Do you see any evidence
of a phase transition? How does the behavior of C change as a
function of system size L ? If necessary, adjust the length of your
Monte Carlo run for different temperatures T.
- Compute the spin correlation function c(i)=< s0
si >, where s0 is a chosen "central" spin and
si is a spin i sites away. The average is over different
Monte Carlo samples, and also over different choices of
s0. The latter is because all spins are equivalent due to
translational invariance. Do so for an 16x16 lattice, with
s0 and si in the same row (column). Note that
the integer i can only be on [0, L/2] (Why?). Plot c(i) as a function
of i for different temperatures. Explain the curves. (For this part,
estimating the statistical error is optional.)
- Now we will use your program to study the ferromagnetic Ising
model on a triangular lattice. Make the necessary modifications in
your code. (Hint: This may not be as bad as you think. The difference
between the triangular and square lattices is in near neighbors.
Consider a site on a square lattice. Define two of its four
next near neighbors (diagonal) as near neighbors. Connect
these (new) near neighbors. Do this consistently for all sites. What
do you have now?) Repeat question 3 for the triangular lattice. Expand
the temperature range you examine if necessary. Compare your
results, particularly the temperature dependence, with those for
the square lattice. Do they make sense?