A silane molecule is placed in a cubic simulation cell of side length
, with a grid spacing (corresponding to a
plane wave cut-off of 537 eV) in each direction. The orbitals are
initialized to atom-centered fireballs [41]
which are strictly localized within spheres of radius
. Each orbital is allowed to vary freely within its
localization region. There is one orbital on each hydrogen atom and
four on the silicon. In Fig. 2 we show the
convergence of the total energy as a function
of iteration number. The effect of using different fixed values of the
kinetic energy preconditioning parameter may be seen. The limit
corresponds to the case of no preconditioning. It can be
seen that improved performance is achieved for a range of values of
.
|
In Figs. 3 and 4 we show the convergence of the total energy as a function of iteration number for different grid spacings and localization radii, respectively. For the calculations presented in these two figures we used a kinetic energy preconditioning parameter . As the grid spacing is reduced, or the localization radius increased, the size of the basis set and the number of variational parameters in the minimization increases. From Figs. 3 and 4 it is clear that the preconditioning scheme is working well as the number of iterations required to reach a given accuracy does not vary a great deal with the size of the problem. For instance, in Fig. 3, we see that the calculation with a grid spacing of (134 eV) reaches an energy convergence of Ha after 11 iterations, whilst with a grid spacing of (839 eV), i.e., almost 16 times as many basis functions, the same level of convergence is achieved in just 14 iterations.
|
|
Finally, as an alternative to preconditioning the Fourier transformed gradient by multiplying it with the preconditioner in reciprocal space, in accord with Eq. (44), we have developed a real space implementation of the preconditioning scheme. In this we convolve the real space gradient with the inverse fast Fourier transform (FFT) of . Of course, a full convolution would be costly: if the gradient and preconditioner are both of size , then the computational effort required to perform a full convolution scales as . Thus, we truncate the preconditioner in real space at a radial cut-off so that it is nonzero over only a small number of points . The computational cost of performing a convolution between the gradient and this truncated preconditioner is much more favourable and scales as . For typical values of and , this is comparable to the cost of preconditioning in reciprocal space.
Truncating the preconditioner in real space is not simply a matter of improving the computational efficiency, for it also makes physical sense: the reason behind preconditioning is to smear out large kinetic energy variations over short distances, thus a convolution that is localized in real space over just a few grid points is all that should be required. This is demonstrated by the results presented in Fig. 5, which shows the convergence of the total energy with this real space scheme for the above-introduced silane molecule. The different curves correspond to various radial cut-offs for the inverse FFT of the preconditioning function . Comparing Figs. 2 and 5 we see that preconditioning via local convolution in real space is as successful as the conventional reciprocal space approach, and that there is little sensitivity to the choice of the cut-off radius , which may be as small as .
|