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
.
![]() |