Computational Physics

(Rick Simeone) #1

10.6 Further applications and Monte Carlo methods 321
Another approach is inspired by a particular type of motion of polymers: repta-
tion. This is a snake-type motion which, in the case of the Monte Carlo algorithm,
works as follows. A trial step consists of removing the last bead (the ‘tail’) of
the polymer and this is attached to the head. Acceptance of this move proceeds
according to the standard Metropolis criterion.
The previous methods are typical Metropolis methods, in the sense that every
conformation is strongly correlated with the previous one, and these correlations
may result in extremely slow relaxation. Another approach tries to avoid this correl-
ation by generating a new polymer at each step. This must be done quite carefully
as simply adding beads will typically result in very unprobable conformations. This
is because there will certainly be overlaps or crossings. We should therefore add
new segments to the polymer carefully, avoiding high-energy conformations.
A method in which this is done is theRosenbluth algorithm[41]. We start with
two beads on positions(0, 0)and(1, 0)(the distance between the beads is taken to
be 1). Now we add the third one. This is characterised by the angle made by the three
beads. The Metropolis algorithm suggests that it would be wise to add the third one
with a distribution exp[−E(θ )/(kBT)], whereE(θ )is the interaction energy of the
third bead (of angleθ) with the first two. This is, however, difficult to do if we do not
want to use many trial steps. Therefore we discretise the space of possibleθ-values
to obtain a finite number of, say, six different values ofθ, with a random offset
and spaced by 2π/6. Now we calculate the weightswj(l) =exp[−E(θj)/(kBT)]
for these sixθ-values numbered byj(ldenotes the bead we are adding), and their
sumW(l):
W(l)=



j

exp[−E(θj)/(kBT)]. (10.49)

We accept anglejwith probabilitywj(l)/W(l). This is done by the ‘roulette-wheel’
algorithm. In fact, what we do is divide up the interval[0, 1]into six segments of size
w(jl)/W(l). Then we calculate a uniform random number between 0 and 1, and we
check which segmentjit corresponds to. Then we choose the correspondingθj. The
final Boltzmann weight of the polymer is exp[−Etotal/(kBT)], whereEtotalis the
total energy of the chain. Some reflection may convince you that this is equivalent
to the product of thewj:


exp[−Etotal/(kBT)]=

∏N


l= 3

w(jl) (10.50)

wherejdenotes the choice which has been made for the angleθat stepl.
We choose as parameters of the Lennard–Jones potential =0.25, andσ=0.8
(the distance between the polymers is taken to be 1). If the algorithm does what
we want it to do, it should generate the polymers distributed according to (10.50).

Free download pdf