Skip to content

WIP: Direct Minimisation. FD mode.

Aleksei requested to merge alxvov/gpaw:dm_grid into master

Implementation of the direct minimisation algorithm using the LBFGS with a preconditioner (P-LBFGS) and a parabolic line search in the finite difference mode at zero kelvin temperature. Here is a comparison of the P-LBFGS and the RMM-DIIS algorithm (with default parameters of eigensolver and density mixing) done on small molecules using the PBE0 functional:

hybrid

The convergence is considered to be achieved when the square of the residual norm is less than 4.0e-8 eV^2 per electron. RMM-DIIS fails to converge for the OH molecule, but might converge with other non-default density mixing parameters.

Here is a comparison of the P-LBFGS with the RMM-DIIS and the Davidson algorithms using the PBE functional. For the OH molecule, the P-LBFGS converges in 144 iterations and the Davidson algorithm in 102.

gga

Here is an example of how to run the code:

from ase.build import molecule
from gpaw import GPAW, FD
from gpaw.odd.gd.oddvar import ODDvarFD

sys = molecule('CH4')
sys.center(vacuum=4.0)

calc = GPAW(mode=FD(), nbands=0)
calc.atoms = sys

opt = ODDvarFD(calc)
opt.run()

The direct minimisation can be applied to non-unitary invariant functionals as for example self-interaction corrected functionals (which we are currently working on.) It would be nice to add the direct minimisation to the GPAW calculator as it is just an alternative method to the SCF algorithms.

Edited by Jens Jørgen Mortensen

Merge request reports