All of the ab initio molecular dynamics calculations reported in
Chapters 3 and 5 have performed using the CASTEP
and CETEP
codes. The large scale calculations in Chapters 6 and 7 have been done
using code which we have implemented on the massively parallel
Connection Machine CM200 at the Edinburgh Parallel Computing Centre.
CASTEP and CETEP use a plane wave basis set to expand the electronic wavefunction on which a band-by-band minimisation is achieved by the preconditioned conjugate gradients method in the space of the expansion coefficients, but constrained to maintain orthogonality of the single particle states. The Brillouin zone is sampled using the special k-points scheme of Monkhurst and Pack. On calculations on metallic systems the Gaussian smearing method of Fu and Ho is used with the entropy correction scheme of Devita.
Massively parallel computation provides an excellent technique for working with larger systems. Unlike the use made of CASTEP and CETEP in the calculations given in Chapters 3 and 5, the emphasis in Chapters 6 and 7 is on solving a single large problem rather that many smaller ones.
The CM200 code is implemented for semiconducting and insulating systems
only. Expanding the wavefunction in plane waves gives a natural
variable in which to parallelise over when using a very large number of
processors (>16000). The plane wave coefficients
are operated on in parallel along the
axis of the array
in which they are stored. Axes i (bands) and
(special
k-points) are relatively small in comparison to the Fourier expansion
in
and are therefore operated on in series. This is the most
efficient method since, generally, the number of
components at
each band and k-point is larger that the number of processors on the
CM200. With this data distribution, the only necessary interprocessor
communication (which slows the algorithm) is in summing over
's
when orthogonalising the wavefunctions, performing the FFT's on the
charge density and packing/unpacking the wavefunction in order to
construct the 3d charge density from the 1d wavefunction
-axis.