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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.)

  5. 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?