For the past half a year or so Antoine Levitt and myself have been looking
at a particular tricky busyness for solid-state density-functional theory
namely how to design efficient self-consistent field (SCF) schemes for
large inhomogeneous systems.
I have already
on this matter in a short talk at the seminar
of our interdisciplinary working group,
but now our results have reached a stage suitable for publication.
The underlying problem we are tackling in our work is that
for large systems, meaning increased sizes of the unit cell,
the SCF iterations become harder and harder to solve.
Mathematically speaking the (spectral) condition number of the
fixed point iterations underlying the SCF procedure increase
rather drastically in such cases, leading to very slow convergence.
For example in aluminium the number of iterations required to converge an SCF
with a damped iteration scheme (the most simple one)
increases quadratically with the system size.
This quickly makes calculations intractable and multiple
more sophisticated approaches have therefore been developed over the years.
As is detailed in our work there are mainly two orthogonal directions of attack.
The first is to black-box "accelerate" the convergence by using the so-called
Anderson (or Pulay or DIIS) scheme. This reduces the growth of iterations
with system size from quadratic to linear (in the aluminium example),
which is a good start.
The second approach is to use a carefully designed preconditioner for the SCF
in order to tame the SCF iterations.
Figuratively speaking this approach makes use of known physics to prevents the SCF
from looking in the wrong direction for the solution.
If done right, meaning that the physics modelled by the preconditioner
fits the system at hand,
this allows the SCF iteration count to become independent of system size.
This latter approach is clearly the more important route to cure the problem,
but both approaches are orthogonal and are therefore typically combined
in order to get the fastest convergence.
Now what does it mean the preconditioner has to fit the system?
As we detail in the paper, the convergence of an SCF
is intimately linked to the dielectric behaviour of the material one models with the SCF.
For homogeneous cases (i.e. bulk insulators, metals and semiconductors)
people have devised very good models for their dielectric behaviour
and have used them to construct preconditioners.
As is well known (and confirmed by our study) these models show exactly
the desirable property of a size-independent iteration count.
The caveat is only that metals, insulators
and semiconductors have deviating dielectric properties, meaning
that each of these calls for a different preconditioning strategy.
In return this means that heterogeneous cases where multiple of these materials
are combined are difficult to treat in practice because none of the
bulk recipes fully fit.
The main aim of our work was therefore to design
a preconditioner which automatically and locally adapts to the system at hand,
meaning that for heterogeneous cases it treats metallic regions
like metals, insulating regions like insulators and so on.
As we demonstrate with a number of test cases
our preconditioner is able to do this completely black-box and parameter-free
and performs well also for large heterogeneous systems.
This is in contrast to previous approaches
to tackle this problem, which were not as general
as our approach and sometimes required complex hand-tuning of the involved parameters.
While our preconditioner solves the problem of efficiently treating cases
like metallic slabs, metal clusters and basically any combination of
metallic parts, insulators and vacuum,
it is not fully capable of distinguishing insulators and semiconductors.
We show that this can be cured at the expense of introducing
another parameter to our algorithm.
This works, but is not completely satisfactory to us.
Part of our ongoing work is therefore to
extend our scheme to treat mixed systems involving semiconductors as well.
Another aspect we have so far neglected is spin,
which is a constant annoyance for converging SCFs.
Having a solid dielectric model as we propose it,
also opens way to adapt preconditioning to each spin component
differently. We hope to use this in the future to
tackle convergence issues with spin
in a hopefully more rigorous way than this is done to date.
The full abstract of our paper reads
We propose a new preconditioner for computing the self-consistent problem in
Kohn-Sham density functional theory, based on the local density of states. This
preconditioner is inexpensive and able to cure the long-range charge sloshing
known to hamper convergence in large, inhomogeneous systems such as clusters
and surfaces. It is based on a parameter-free and physically motivated
approximation to the independent-particle susceptibility operator, appropriate
for both metals and insulators. It can be extended to semiconductors by using
the macroscopic electronic dielectric constant as a parameter in the model. We
test our preconditioner successfully on inhomogeneous systems containing
metals, insulators, semiconductors and vacuum.