## Description

Problem 1. (computer) (5 points)

Write a program to perform a Metropolis Monte Carlo simulation of the 2D Ising model

in zero field (H = 0) and on a square L×L lattice. The Hamiltonian of this model is given

by

H = −J ∑

hi, ji

sisj (si, j = ±1)

where the sum is over all distinct nearest-neigbor pairs and si and sj are the values of the

spins at the lattice sites i and j. Set J = 1. Use periodic boundary conditions and spin-flip

updates. Temperatures are expressed in energy units. Time is expressed in units of Monte

Carlo steps (MCS) (1 MCS = 1 update per spin on average, i.e. total of L × L random

updates).

(a) Check that the ground state energy is calculated correctly. (Use all-spins-up or allspins-down as your initial configuration and calculate the energy of this configuration.)

For the following, the task is to study the 32×32 Ising model at three different temperatures: T = 2.1, 2.265 and 3.5. Note: the middle temperature T = 2.265 is difficult and

the results will look different than for the other two cases.

(b) Estimate a suitable equilibration time for T = 2.1 and 3.5. Perform several short runs

and plot the magnetization m and the internal energy u per spin as a function of time (in

MCS). Use a random spin configuration as your initial state. Remember to use different

random number sequences for the separate runs.

(c) For T = 2.265, perform a long simulation run of at least 50 000 MCS and plot the

resulting magnetization curve. Can you explain what is happening? How will the behavior

affect the time needed to perform measurements at this temperature?

(d) Show a snapshot of a typical equilibrium configuration for each temperature. (You

can plot the lattice for example using the commands surf() and view(2) in Matlab.)

(e) Compute hmi and h|m|i for each temperature. Calculate the averages over several independent runs starting each run with a random spin configuration (remember to equilibrate

the system in the beginning of each run). Explain the results.

1

Problem 2. (computer) (1 extra point*)

Write a program which performs a simple random walk on a square 2D lattice. Measure

the mean squared displacement hR

2

(N)i as a function of the number of steps N. For each

value of N, perform several independent simulations to obtain the value of hR

2

(N)i. R(N)

denotes the distance between the initial site and the final site after N steps.

What relation does hR

2

(N)i follow?

Problem 3. (computer) (3 extra points*)

Write a program which performs a simulation of surface diffusion using the lattice gas

model on a square L×L lattice. In this model, each lattice site is either occupied (ni = 1)

or unoccupied (ni = 0) by a particle. Particle concentration is defined as θ = Np/(L ×

L) where Np is the total number of particles on the lattice. Diffusion is modeled by

considering each atom as a random walker. The only interaction between the particles is

the exclusion of double occupancy of lattice sites.

(a) Calculate the mean squared displacement of the collection of atoms as a function of

time (in MC steps) for varying concentrations of θ = 0.01,0.1,0.2,0.5,0.8. Show a plot

of your results.

(b) Using the results obtained in (a), calculate the diffusion constant D as a function of

particle concentration. Show a plot of your results.

Note that the program of problem 2 can be used as a starting point of problem 3.

This is the last assignment.

You must obtain at least 15 points overall from the exercises to take the exam. Bonus for

the exercise points is converted into exam points with some ratio.

*) The extra points are ONLY for passing the 15 points limit. They do not add to the exam

points.

2