background image
c CCLRC
Section 3.2
Molecular dynamics simulations normally require properties that depend on position and velocity
at the same time (such as the sum of potential and kinetic energy). The velocity at time t is
obtained from the average of the velocities half a timestep either side of timestep t:
v(t)
1
2
v(t -
1
2
t) + v(t +
1
2
t)
.
(3.8)
The instantaneous kinetic energy, for example, can then be obtained from the atomic velocities as
E
kin
(t) =
1
2
N
1
m
i
v
2
i
(t) ,
(3.9)
and assuming the system has no net momentum the instantaneous temperature is
T (t) =
2
k
B
f
E
kin
(t) ,
(3.10)
where i labels particles, N the number of particles in the system, k
B
the Boltzmann's constant and
f the number of degrees of freedom in the system.
f = 3N - 3 - 3N
f rozen
- 3N
shells
- N
constraints
- p .
(3.11)
Here N
f rozen
indicates the number of frozen atoms in the system, N
shells
number of core-shell units
and N
constraints
number of bond and pmf constraints. Three degrees of freedom are subtracted
for the centre of mass zero net momentum (we impose) and p is zero for periodic or three for
non-periodic systems.
The routines nve 1 vv and nve 1 lfv implement the Verlet algorithm in velocity and leapfrog
flavours respectively and calculate the instantaneous temperature. The conserved quantity is the
total energy of the system
H
NVE
= U + E
kin
,
(3.12)
where U is the potential energy of the system and E
kin
the kinetic energy at time t.
The full selection of integration algorithms, indicating both VV and LFV cast integration, within
DL POLY 3 is as follows:
nve 1 vv
nve 1 lfv
Constant E algorithm
nvt l1 vv
nvt l1 lfv
Constant T algorithm (Langevin [
18
])
nvt e1 vv
nvt e1 lfv
Constant E
kin
algorithm (Evans [
19
])
nvt b1 vv
nvt b1 lfv
Constant T algorithm (Berendsen [
20
])
nvt h1 vv
nvt h1 lfv
Constant T algorithm (Hoover [
21
])
npt b1 vv
npt b1 lfv
Constant T,P algorithm (Berendsen [
20
])
npt h1 vv
npt h1 lfv
Constant T,P algorithm (Hoover [
21
])
npt m1 vv
npt m1 lfv
Constant T,P algorithm (MTK [
22
])
nst b1 vv
nst b1 lfv
Constant T, algorithm (Berendsen [
20
])
nst h1 vv
nst h1 lfv
Constant T, algorithm (Hoover [
21
])
nst m1 vv
nst m1 lfv
Constant T, algorithm (MTK [
22
])
Note that the decision whether to use VV or LFV integration algorithms is a precompile option
and so separate makefiles (see Appendix
C
) for these schemes exist in the build directory.
44