Eigensolver
Eigensolver
Section SCF::Eigensolver
Type integer
Which eigensolver to use to obtain the lowest eigenvalues and
eigenfunctions of the Kohn-Sham Hamiltonian. The default is
conjugate gradients (cg), except that when parallelization in states is
enabled, the default is chebyshev_filter.
Options:
- cg:
Conjugate-gradients algorithm.
- plan:
Preconditioned Lanczos scheme. Ref: Y. Saad, A. Stathopoulos, J. Chelikowsky, K. Wu and S. Ogut,
"Solution of Large Eigenvalue Problems in Electronic Structure Calculations", BIT 36, 1 (1996).
- evolution:
(Experimental) Propagation in imaginary time.
This eigensolver uses a time propagation in imaginary time (see, e.g., Aichinger, M. & Krotscheck, E.,
Computational Materials Science 34, 188–212 (2005), 10.1016/j.commatsci.2004.11.002).
The timestep is set using EigensolverImaginaryTime. The convergence typically depends
on the total imaginary time in a propagation which means that it should be faster with larger
timesteps. However, simulations typically diverge above a certain timestep that depends on the system.
In general, it is advisable to use an exponential method that always converges, especially for large
timesteps, i.e., set TDExponentialMethod to lanczos or chebyshev.
The propagation method can be set with ImaginaryTimePropagator and variable timestepping
can be enabled with ImaginaryTimeVariableTimestep.
Moreover, this method usually converges quite slowly, so you might need to increase MaximumIter.
It is incompatible with smearing for the occupations.
- rmmdiis:
Residual minimization scheme, direct inversion in the
iterative subspace eigensolver, based on the implementation of
Kresse and Furthmüller [Phys. Rev. B 54, 11169
(1996)]. This eigensolver requires almost no orthogonalization
so it can be considerably faster than the other options for
large systems. To improve its performance a large number of ExtraStates
are required (around 10-20% of the number of occupied states).
Note: with unocc, you will need to stop the calculation
by hand, since the highest states will probably never converge.
Usage with more than one block of states per node is experimental, unfortunately.
- chebyshev_filter:
Chebyshev polynomials are used to construct a spectral filter that is iteratively applied to a trial subspace,
amplifying a subset of the lowest eigenvalues of the Hamiltonian, which effectively isolates the invariant
subspace associated with the these states. The filtered subspace is projected to define a reduced eigenvalue problem,
which is then solved using dense diagonalisation. Finally, the eigenstates of the original Hamiltonian are recovered
via subspace rotation. For further details, see [Zhou et. al.](http://dx.doi.org/10.1016/j.jcp.2014.06.056)