simulation methods in statistical physics, project report, fk7029, stockholm university
DESCRIPTION
Molecular Dynamics and Metropolis Monte Carlo Simulation of Lennard-Jones Argon liquidthe code is available on https://github.com/sebArn/argonLiquidTRANSCRIPT
Molecular Dynamics and
Metropolis Monte Carlo Simulation of
Lennard-Jones Argon liquid
Course Project for FK7029
Simulation Methods in Statistical Physics, Spring 2013
at Stockholm University
Author: Sebastian Arnoldt
March 11, 2013
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 1
Contents
1 Introduction 2
2 Approach 3
3 Setup 5
3.1 Preliminary Setup . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Molecular Dynamics - 108 atoms . . . . . . . . . . . . . . . . 5
3.3 Metropolis Monte Carlo - 108 atoms . . . . . . . . . . . . . . 6
3.4 Monte Carlo and Molecular Dynamics - 500 atoms . . . . . . . 8
4 Data Analysis 9
4.1 Potential and Kinetic Energy . . . . . . . . . . . . . . . . . . 9
4.2 Radial Distribution Function . . . . . . . . . . . . . . . . . . . 9
4.3 Heat Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Results 12
5.1 Molecular Dynamics - 108 atoms . . . . . . . . . . . . . . . . 12
5.2 Monte Carlo - 108 atoms . . . . . . . . . . . . . . . . . . . . . 16
5.3 Molecular Dynamics - 500 atoms . . . . . . . . . . . . . . . . 20
5.4 Monte Carlo - 500 atoms . . . . . . . . . . . . . . . . . . . . . 24
6 Discussion 28
7 Conclusions 29
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 2
1 Introduction
The aim of this project is to produce stable computer simulations of a
Lennard-Jones Argon liquid by using Molecular Dynamics and Monte Carlo
techniques. Once the simulation code runs stable, measurements of respective
energies and the heat capacity are performed. Moreover the radial distribu-
tion function is computed. The foundation of this project are the somewhat
vague lab instructions found in [6].
A personal side-challenge of this project is to write my �rst simulation
using Python and trying to refute the common misconception that Python
may not be used to write physics simulations. To run this code you need to
install the following:
� Python 2.7.3
� SciPy (for computations)
� Numpy (for computations)
� vPython (for 3D visualization)
� matplotlib (for plotting in data analysis part)
This code has been tested on Linux Ubuntu 12.04 LTE, 32-bit. The reason
for installing Python 2.7.3 (instead of the latest version) is that the package
SciPy.Weave currently only runs under Python 2.7. All of the above can
be installed via the Ubuntu software center. In this code I try to �nd the
right balance between readability, taking advantage of Python features and
performance. This being my �rst Python code, I follow community advise
from stackover�ow.com and www.scipy.org, in particular the references [5]
and [4].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 3
2 Approach
When simulating a Lennard-Jones (LJ) �uid in Molecular Dynamics (MD)
code from a previously written Monte Carlo (MC) simulation of the same
system can be re-used and vice versa. The main di�erence between both
implementations is that in MD we need a scheme to integrate the Newtonian
equations of motion. Contrarily in MC we need a scheme to accept or reject
con�gurations of the system under study that have been generated through
random processes ([1], [2]).
Keeping this in mind, I have designed both simulations in the following
manner. There are two main routines, monteCarlo.py and molDyn.py for
the corresponding MD and MC simulations. Both main routines source the
system parameters from con�g.py and the functionality from functions.py.
In con�g.py all system parameters are stored and imported from other rou-
tines by calling from con�g import*. To distinguish the parameters from
regular variables, they are de�ned in upper case letters, for instance TEM-
PERATURE. The key functionalities such as generating an fcc-lattice or
calculating the LJ potential are coded in functions.py.
Data analysis is performed by saving the results of the simulations to text
�les and analysing them in separate Python scripts, dataAnalysisMD_N.py
respectively dataAnalysisMC_N.py.
Throughout this project report I use the reduced units introduced in [2,
p.40]. The choice for these units is σ as unit of length, ε as unit of energy
and m as unit of mass. From these choices the unit of temperature is ε/kB
and the unit of time σ√m/ε. In the following, I denote time by the symbol
τ . In reduced units, the LJ potential becomes:
ULJ(r) = 4
[(1
r
)12
−(1
r
)6]
(1)
.
Fig. 1 below shows a conversion table between reduced units and SI units for
LJ argon. The above LJ potential is used in its truncated and shifted form
for all simulations below. This method requires to apply an energy correction
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 4
during the calculation of the potential energy. Following [2, pp.36] this energy
correction is:
ecut = 4
[(1
rc
)12
−(1
rc
)6]
(2)
where rc is the cut o� radius of half length of the simulation box.
Figure 1: Conversion between reduced units and SI units, taken from [2,p.42].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 5
3 Setup
3.1 Preliminary Setup
Initially, a system of three atoms in a three dimensional box is set-up in the
reduced LJ potential. The three atoms are assigned suitable velocities in
di�erent directions and equations of motion are integrated with the Velocity
Verlet Algorithm given in [3, p.203]. After a few steps, computer calculations
are checked by hand. This procedure reveals the most serious programming
bugs, for instance divergences in total energy. Moreover the behaviour of the
atoms is simulated in 3D to observe whether the trajectories of the atoms
follow the expected physical behaviour and whether the implementation of
periodic boundary conditions works correctly.
3.2 Molecular Dynamics - 108 atoms
Having debugged most of the program code, a more realistic simulation is
performed. To �nd out whether the code produces sensible results, the simu-
lation parameters of case study 4 in [2, p.97] are used. Similar but not exactly
the same results are expected, since randomness exists in the algorithm and
the algorithm presented here does not follow case study 4 in [2, p.97] in all
details. The simulation parameters are summarized in tab. 1 below1.
Table 1: MD Simulation Parameters - 108 Atoms - MD. # means number.
Parameter Symbol Setting Units
temperature at start Tstart 0.728 kB
time step dτ 0.004 τ# atoms N 108 #
length of simulation box Lbox 5.0387 σnumber density ρ 0.8442 1/σ3
cut-o� radius rc12 · Lbox σ
# iterations n 6 · 105 #
1Note that the simulation parameters are calculated by setting the number of atoms
and the lattice constant in the code. I have listed the parameters explicitly here for
convenience.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 6
The atoms are initially placed on an fcc-lattice, which closely resembles Ar-
gon in it's liquid phase [3, pp. 208]. Next, the velocity components for
each atom are drawn from a Maxwell-Boltzmann distribution that is centred
around zero, using the built-in functionality of Python's SciPy package. The
idea behind this approach is to reach the equilibrium state within a �nite
calculation time. The velocities could instead be drawn from a uniform ran-
dom distribution and the atoms could be placed randomly in the simulation
box. Drawing the velocities from the Maxwell Boltzmann distribution and
placing the atoms on an fcc-lattice, however, lets the system relax towards
equilibrium faster [7].
The velocities are rescaled with the given start temperature Tstart only
once, directly after their initialization. Simultaneously the sum of all veloci-
ties is set equal to zero. For the integration of equations of motion the same
Velocity Verlet integrator-scheme as in the previous section is used (3.1).
The kinetic, potential and total energy are sampled during each time step
and saved to a .txt �le. The positions and velocities are sampled every 100th
time-step and saved to a separate .text �le. Velocities and positions are not
sampled during the �rst 20 τ , i.e. the equilibration time of the simulation.
Moreover, time and date of the simulation as well as the simulation param-
eters are recorded in each �le. Subsequently, the data analysis is performed
in separate Python scripts using the saved .txt �les.
3.3 Metropolis Monte Carlo - 108 atoms
Having completed and debugged the MD simulation, most of the code can
be re-used to perform a Metropolis MC simulation. The vital adjustment
in the code is to replace the Velocity Verlet Algorithm used in the MD sim-
ulation with an acceptance-rejection rule that satis�es the detailed balance
criterion. Moreover the time steps of the MD simulation are replaced with
random trial moves. The code written for this Metropolis MC follows the
importance-sampling algorithm described in [1, pp.114]. The simulation pa-
rameters are the same as in the above MD simulation. However, the equi-
librium temperature Tequil of the MD simulation is calculated before running
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 7
the MC simulation using:
Tequil =〈2Ekin〉f
(3)
, where f stands for the number of degrees of freedom. The MC simulation
is then run at Tequil = 1.4275 of the MD simulation. Although the MD
simulation is run in the NVE ensemble, versus the NVT ensemble in the
MC simulation, some sort of comparability is hoped to be achieved by doing
this. The remaining simulation parameters are the same for the MD and MC
simulation.
Tab. 2 below summarizes the simulation parameters of the MC simula-
tion. Note that the number of iterations is eight times higher in the MC
simulation than in the MD simulation. This is done to improve the statistics
for the MC simulation somewhat (compare 4). The positions are sampled
every 100th time after the system has reached equilibrium. Moreover the ra-
tio of acceptanceacceptance+rejections
is monitored during the simulation. The trial moves
are adjusted such that this ratio stays above 0.2 and below 0.3, which is
recommended by both [2] and [1]. The recorded positions, energies and the
accept-reject ratio are stored in separate .txt �les for data analysis. More-
over, the simulation time and date as well as the simulation parameters are
recorded.
Table 2: Monte Carlo Simulation Parameters - 108 Atoms.# means number.
Parameter Symbol Setting Unit
temperature T 1.4275 kB
trial displacement dr 0.2 * ranf(-1,1) σ# atoms N 108 #
length of simulation box Lbox 5.0387 σnumber density ρ 0.8442 1/σ3
cut-o� radius rc12 · Lbox σ
# iterations n 48 · 105 #
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 8
3.4 Monte Carlo and Molecular Dynamics - 500 atoms
Having made sure that the code works correctly in the previous set-ups,
both the MD and the MC simulation are repeated. The only parameter
that is changed is the number of atoms in the simulation box, which is now
increased to 500. The density is held �xed, which means that the simulation
box becomes larger. The start temperature for the MD simulation remains
the same, however the temperature at equilibrium of the MD simulation is
di�erent: Tequil = 1.5648. This is important, since the corresponding MC
simulation of 500 atoms is run at this new equilibrium temperature. Due to
limitations in computation time, the MC simulation for 500 atoms is only
run for 6 · 105 iterations (instead of 4.8 million for the MC simulation of 108
atoms). Moreover, the maximum trial displacement (DJUMP in con�g.py)
is adjusted to keep acceptance of trial moves in the desired bounds.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 9
4 Data Analysis
4.1 Potential and Kinetic Energy
In order to estimate the error of the potential and kinetic energy measured
in both MD and MD simulation, I apply the block averaging method by
Flyvbjerg & Peterson (FP) described in [2, D.3]. This method determines
after how many subsequently taken data samples of a quantity the data
samples become de-correlated. It also determines whether the simulation
has run long enough. This is achieved by plotting the standard deviation
of a block versus the number of times M the blocking operation has been
applied. Once the standard deviation becomes independent of M, a plateau
is reached in the plot. The corresponding value of M determines the number
of time steps after which the data de-correlates. This number is 2M . If no
plateau has been reached, the simulation has not run long enough [2, pp.98,
D.3].
4.2 Radial Distribution Function
To calculate the radial distribution function (RDF), I adopt Algorithm 7
suggested in [2, p.86], which is based on counting the distances of atom
pairs and binning the results. In the calculations below, I divide the region
of interest (half the box length) into 300 bins and calculate the RDF from
4000 snapshots of the simulated system. Snapshots are taken every 100th
iteration after the system has reached equilibrium. Note that in the MD and
MC simulations of 500 atoms, I only use 1000 instead of 4000 snapshots to
compute the RDF2.
Allen and Tilesley [1, p.195] suggest that a working error estimate for the
RDF is to apply the block averaging technique to several points of interest in
the RDF. The below analysis follows this suggestion, by analysing four points
in the computed RDF with the FP block averaging method. To do this, the
same code as for the energy calculations can be utilized. The four points of
2The reason for this is simply that I didn't have time to code the routine over to C and
it runs terribly slow in Python.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 10
interests are chosen to be the peaks, minima or the tail of the corresponding
RDF.
To check the calculated RDF for consistency with the above energy mea-
surements, I calculate the potential energy per atom from eq.(4.5.1) in [2,
p.100]:U
N= 2πρ
∫ ∞0
drr2u(r)g(r) (4)
, where u(r) is the Lennard Jones potential (including the cut-o� energy
correction) and g(r) is the RDF. To calculate the integral, I simply sum over
all contributions the integrand gives on the interval [0, half the box length]. I
thereby introduce an error that could be reduced by incorporating methods of
numerical integration. However, for this crude consistency check the simple
summation is su�cient.
4.3 Heat Capacity
In the NVT ensemble, the heat capacity CNV TV is related to the variance of
the total energy U as:3
CNV TV =
var(U)
T 2
.
Following [1, p.51], the variance in the total energy U can be divided into
contributions of potential and kinetic energy. Since those contributions are
not correlated, in the NVT ensemble the heat capacity is related to the
�uctuations in the potential energy V:
var(V ) = T 2
(CNV TV − 3
2N
).
Rearranging the latter equation gives the heat capacity per atom in the NVT
ensemble:
3Note that I have set kB = 1 here, to be consistent with the above introduced MD
units.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 11
CNV TV
N=
(var(V )
NT 2+
3
2
)(5)
Applying a similar transformation, [1, p.53] gives the following relationship
between �uctuations in the kinetic energy K respectively potential energy V
and heat capacity in the NVE ensemble:
var(K) = var(V ) =3
2NT 2
(1− 3N
2CV
).
Again this is rearranged to give heat capacity per atom:
CNV EV
N=
[2
3− 4var(K)
9T 2N
]−1
(6)
.
In the data analysis, the heat capacity is determined from the variance in
K respectively V in su�ciently long samples. These samples must be sig-
ni�cantly longer than the correlation time. I achieve this by sampling both,
MD and MC simulations, for su�ciently long time. Then I cut the very
long sample into smaller samples, where each smaller sample is signi�cantly
longer than the corresponding number 2M found in the above FP method
(4.1). The heat capacity is then determined from the mean of the computed
heat capacities of the smaller samples. The error of the heat capacity is
the corresponding standard deviation of the heat capacities of the smaller
samples.
To check the validity of this method, I run a second MD simulation of
108 atoms, with a minimally di�erent starting temperature Tstart = 0.738
(instead of Tstart = 0.728). I then calculate the heat capacity from the mea-
sured values ∆E∆T
and compare them to the values from the above calculation.
In this calculation, I use Gaussian error propagation to compute the error of
the heat capacity.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 12
5 Results
The results of each of the simulations are summarized in the plots below.
Values of computed quantities are summarized in tables at the end of each
subsection.
5.1 Molecular Dynamics - 108 atoms
Fig. 2 and �g.3 below show the evolution of kinetic, potential and total energy
during the MD simulation of 108 atoms. Fig. 2 shows the energies during
the �rst 20 τ of the simulation, i.e. the equilibration time suggested by [3,
chpt. 8]. From this it is apparent that 20 τ is indeed a su�ciently long
equilibration time for this MD simulation. In �g. 3 the long time evolution
of the same quantities is plotted - the interval of 6 · 105 steps corresponds to
2400 τ . Note that the total energy remains constant throughout the entire
simulation.
Figure 2: MD simulation, 108 atoms. Evolution of energy per atom duringequilibration of the system.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 13
Figure 3: MD simulation, 108 atoms. Long time evolution of energy peratom.
Fig. 4 below shows the results of the FP block-averaging method for the same
simulation. Both the standard deviations of the kinetic and potential energy
reach the plateau after M = 8 blocking operations.
Figure 4: MD simulation, 108 atoms. Determination of standard deviationσ using the FP block-averaging method described in [2, D.3].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 14
Fig. 15 below summarizes the results of the error calculation for the RDF.
Each sub-plot shows the results of applying the FP-method to the selected
data points of the RDF. The RDF itself is shown in �g. 16 below, where the
RDF g(r) is plotted as a function of r.
Figure 5: MD simulation, 108 atoms. Calculation of the error of selectedpoints in the RDF g(r) using the FP-method.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 15
Figure 6: MD simulation, 108 atoms. Radial distribution function g(r) as afunction of r. The error bars are barely noticeable on the plot.
Tab. 3 below summarizes the computed values of the quantities of inter-
est. The �rst column lists the method used for the calculation, the second
the computed quantity, the third the values of the quantity, the fourth the
corresponding error and the �fth column the corresponding units.
Table 3: MD Simulation Results - 108 Atoms.
Method Computed Computed
Used Quantity Value Error Units
FP Ekin 2.1412 ±0.0005 εFP Eavrgpot -4.5073 ±0.0005 ε
eq. 4 Erdfpot -4.5055 - ε
eq. 3 Tequi 1.4275 ±0.0004 ε/kB
sampling CNV EV /N 2.41 ±0.05 kB
changing Tstart CNV EV /N 2.4 ±0.3 kB
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 16
5.2 Monte Carlo - 108 atoms
Fig. 7 and �g.8 below show the evolution of the potential energy during the
MC simulation of 108 atoms. Fig. 7 shows the energies during the �rst 105
steps of the simulation. In �g. 3 the long time evolution of the potential
energy is plotted The accept-reject ratio is analysed from the data �le: it
stays between 0.2 and 0.3.
Figure 7: MC simulation, 108 atoms. Evolution of the potential energyduring the �rst 105 steps.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 17
Figure 8: MC simulation, 108 atoms. Evolution of potential energy for entiresimulation length.
Fig. 9 below shows the results of the FP block-averaging method for the
same simulation. The standard deviations of the potential energy reaches
the plateau after M = 16 blocking operations.
Figure 9: MC simulation, 108 atoms. Determination of standard deviationσ using the FP block-averaging method described in [2, D.3].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 18
Fig. 20 below summarizes the results of the error calculation for the RDF.
Each sub-plot shows the results of applying the FP-method to the selected
data points of the RDF. The RDF itself is shown in �g. 21 below, where the
RDF g(r) is plotted as a function of r.
Figure 10: MC simulation, 108 atoms. Calculation of the error of selectedpoints in the RDF g(r) using the FP-method.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 19
Figure 11: MC simulation, 108 atoms. Radial distribution function g(r) asa function of r. The error bars are barely noticeable.
Tab. 4 below summarizes the computed values of the quantities of interest
for the MC simulation of 108 atoms. The �rst column lists follow the same
logic as tab. 3 of the last section.
Table 4: MC simulation results - 108 atoms
Method Computed Computed
Used Quantity Value Error Unit
FP Eavrgpot -4.5199 ±0.0029 ε
eq. 4 Erdfpot -4.5198 - ε
sampling CV 2.40 ±0.09 kB
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 20
5.3 Molecular Dynamics - 500 atoms
Fig. 12 and �g.13 below show the evolution of kinetic, potential and total
energy during the MD simulation of 500 atoms. Fig. 12 shows the energies
during the �rst 20 τ of the simulation. In �g. 13 the long time evolution of
the same quantities is plotted.
Figure 12: MD simulation, 500 atoms. Evolution of energy per atom duringequilibration of the system.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 21
Figure 13: MD simulation, 500 atoms. Long time evolution of energy peratom.
Fig. 14 below shows the results of the FP block-averaging method for the
same simulation. Both the standard deviations of the kinetic and potential
energy reach the plateau after M = 5 blocking operations.
Figure 14: MD simulation, 500 atoms. Determination of standard deviationσ using the FP block-averaging method described in [2, D.3].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 22
Fig. 15 below summarizes the results of the error calculation for the RDF.
Each sub-plot shows the results of applying the FP-method to the selected
data points of the RDF. The RDF itself is shown in �g. 16 below, where the
RDF g(r) is plotted as a function of r.
Figure 15: MD simulation, 500 atoms. Calculation of the error of selectedpoints in the RDF g(r) using the FP-method.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 23
Figure 16: MD simulation, 500 atoms. Radial distribution function g(r) asa function of r. The error bars are barely noticeable.
Tab. 5 below summarizes the computed values of the quantities of interest
in the same fashion as in the preceding sections.
Table 5: MD Simulation Results - 500 Atoms.
Method Computed Computed
Used Quantity Value Error Units
FP Ekin 2.3472 ±0.0003 εFP Eavrgpot -6.0800 ±0.0003 ε
eq. 4 Erdfpot -6.0729 - ε
eq. 3 Tequi 1.5678 ±0.0003 ε/kB
sampling CNV EV /N 2.91 ±0.07 kB
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 24
5.4 Monte Carlo - 500 atoms
Fig. 17 and �g.18 below show the evolution of the potential energy during
the MC simulation of 500 atoms. Fig. 17 shows the energies during the �rst
105 steps of the simulation. In �g. 13 the long time evolution of the potential
energy is plotted. The accept-reject ratio is analysed from the data �le: it
stays between 0.2 and 0.5.
Figure 17: MC simulation, 500 atoms. Evolution of the potential energyduring the �rst 105 steps.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 25
Figure 18: MC simulation, 500 atoms. Evolution of potential energy forentire simulation length.
Fig. 19 below shows the results of the FP block-averaging method for the
same simulation. The standard deviations of the potential energy reaches
the plateau after M = 15 blocking operations.
Figure 19: MC simulation, 500 atoms. Determination of standard deviationσ using the FP block-averaging method described in [2, D.3].
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 26
Fig. 20 below summarizes the results of the error calculation for the RDF.
Each sub-plot shows the results of applying the FP-method to the selected
data points of the RDF. The RDF itself is shown in �g. 21 below, where the
RDF g(r) is plotted as a function of r.
Figure 20: MC simulation, 500 atoms. Calculation of the error of selectedpoints in the RDF g(r) using the FP-method.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 27
Figure 21: MC simulation, 500 atoms. Radial distribution function g(r) asa function of r. The error bars are barely noticeable.
Tab. 6 below summarizes the computed values of the quantities of interest
for the MC simulation of 500 atoms. The �rst column lists follow the same
logic as tab. 5 of the last section.
Table 6: MC simulation results - 500 atoms
Method Computed Computed
Used Quantity Value Error Unit
FP Eavrgpot -6.0588 ±0.0081 ε
eq. 4 Erdfpot -6.0852 - ε
sampling CV 2.8 ±1.6 kB
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 28
6 Discussion
In the MD simulation of 108 atoms the two independent methods of comput-
ing the potential energy deliver results that are in good agreement with each
other. The same holds for the two independent methods used for computing
the heat capacity in the same simulation. Moreover, the computed radial
distribution function is in good agreement with case study 4 in [2, p.101].
This demonstrates that the MD algorithm can be trusted.
Comparing the results of the MD simulation of 108 atoms with those of
the corresponding MC simulation, it is important to realize that the former
simulation runs in the NVE ensemble whereas the latter in the NVT ensem-
ble. This limits the comparability to some extend. However, the computed
potential energy, heat capacity and radial distribution function of the MC
simulation are in good agreement with the MD simulation. This in turn,
shows that the MC algorithm is trustworthy.
Comparing MD and MC simulations further, it is apparent from the en-
ergy plots that energy �uctuations are bigger in the MC than in the MD
simulation. This translates directly into an error for the potential energy
that is an order of magnitude larger than the corresponding error in the MD
simulation, caused by the fact that the potential energy needs longer to reach
the plateau in the FP method than in the MC than in the MD simulation.
However this does not translate into a di�erence in order of magnitude in
the errors of the heat capacity in both simulation. That may be an indication
for not having chosen the sample size adequately enough, i.e. too long sam-
ples in the MD simulation and/or too short samples in the MC simulation.
This has been investigated by recalculating the heat capacity in both cases
with various sample sizes. However, no signi�cant changes in the value of
the error have been observed.
The results of the MD and MC simulations for 500 atoms are in good
agreement with each other. However, the error in the heat capacity in the
MC simulation is unacceptably high. The explanation for such a high error
is the relatively short simulation time. One could argue from �g. 19 that
the plateau in the FP method is not reached during the simulation. This, in
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 29
turn means that the samples used in the computation of the heat capacity
are not long enough.
Another interesting aspect of discussion is the smoothing of the RDF.
Through varying the number of bins and the number of samples used to
calculate the RDF, di�erent degrees of smoothing can be achieved. This
topic is explored in depth in [1].
7 Conclusions
Stable Monte Carlo and Molecular Dynamics simulations of the Lennard-
Jones Argon liquid are coded and produce consistent results for the quantities
of interest, such as energies and heat capacity. Moreover, Python proves to
be a versatile tool for crafting such simulations.
SU - FK7029 Spring 2013 - Project Report - Sebastian Arnoldt 30
References
[1] M.P. Allen, D.J. Tildesley, 1987. Computer Simulation of Liquids. Ox-
ford (UK): Oxford University Press.
[2] D. Frenkel, B. Smit, 2002. Understanding Molecular Simulation - From
Algorithms to Applications. New York: Academic Press.
[3] J.M. Thijssen, 2007. Computational Physics. 2nd edition. Cambridge
(UK): Cambridge University Press.
[4] SciPy. Performance Python. Available at http://www.scipy.org/
PerformancePython. Accessed on 10.02.2013.
[5] StackOver�ow. Improve Nested Loop Performance. Avail-
able at: http://stackoverflow.com/questions/14855321/
improve-nested-loop-performance. Accessed on 13.02.2013.
[6] Stockholm University. Programming Projects. Available at:
http://www.syonax.net/physics/SimMethStatPhys/projects.pdf.
Accessed on 01.02.2013.
[7] University at Bu�alo, Physics Department. Statistical Physics. Available
at: http://www.physics.buffalo.edu/phy410-505/2011/topic5/
app2/index.html. Accessed on 05.02.2013.