CCLRC Logo

Density functional repository


Design considerations


Introduction

Below the main considerations for setting up this repository are discussed. The overall aim was to choose an approach that allows reproducible results using readily accessible data. This should;

All Fortran source code provided here as well as the specifications of the functionals were produced with a modified version of the dfauto program [Strange:2001].

Reference systems

In order to validate the implementation of a functional reference data are provided. To validate the energy and the potential atomic data are given. The reasons for providing atomic data are The systems for which reference data will be provided are the closed shell systems He, Ne, Ar, Kr, and Xe and the open shell systems 3He, 4N, 4P, 4As, and 4Sb. All calculations are non-relativistic. The reason to extend the validation set down the columns of the periodic table is the following. It is expected that terms that may be very small for the light elements may be big for the heavy atoms and the other way around. So to make problems as visible as possible a range atoms is to be preferred.

All atomic energies given were calculated with GAMESS-UK.

Basis set

The basis set [ECCEBSD] for these reference calculations is chosen to be the "DZVP (DFT Orbital)" basis set by N. Godbout, D. R. Salahub, J. Andzelm, and E. Wimmer [Godbout:1992] because

Quadrature

The quadrature details listed below are for reference only. In practice any grid of a similar quality should yield the same results.

The angular grid is the 302 point Lebedev-Laikov grid [Lebedev:1999]. As the densities of the listed atoms are spherically symmetric much smaller Lebedev grids can be used as well. However the 302 point grid seems to be a rather popular one which is supported by most codes and was chosen for that reason.

The radial grid is the logarithmic grid [Mura:1996]

    -alpha log(1-x**3), x=(2i+1)/(2N), i=0,N-1
where the following parameters were chosen

SystemalphaN
1He1.93318968631624250
1Ne2.36971638967797250
1Ar4.42762799124042250
1Kr5.48776427083319250
1Xe6.73498342329528250
3He1.93318968631624250
4N 4.05346224550179250
4P 6.23609576231045250
4As7.17151012665701250
4Sb9.04233885535015250

Essentially, alpha is set 3.3 times the Bragg-Slater radius of the element. However as the Bragg-Slater radii are not available for most of the noble gas atoms and slight deviations may occur through the transformation from Ångstrom to Bohr the values for alpha were reproduced in the above table.

With the above grids the maximum error in the numerical overlap matrix was 0.50e-10 and the maximum error in the integrated number of electrons upon convergence was 0.50e-10 electrons.

The test bed

There are different types of functionals out there. Some functionals are meant to model the exchange contributions, some model the correlation contributions and some model both. The set up chosen here is to test The reason to test correlation functionals together with the LDA exchange functional is that there are programs which currently cannot evaluate the Hartree-Fock exchange term.

Some exchange or correlation functionals are made up of more than one term. For example the P86 correlation functional was defined by adding a gradient correction to the PZ81 local density correlation functional. In such a case the results for each meaningful component are given. I.e. in our example the results for the PZ81 functional would be given along with those and the for the P86 functional. The results for the gradient correction term alone will not be given because this term is not a sensible correlation functional in its own right and its correct implementation can be tested by testing the PZ81 implementation and subsequently the P86 implementation.

Standard subroutine calls

Perhaps the most common density functionals are gradient corrected functionals (also known as "generalised gradient approximations or GGA's). I.e. they are of the form

as given in equations (7) and (8) of [Pople:1992]. The expression for the corresponding potential is given by

which correspondes to equation (9) of the same paper, and the matrix elements are

(see equation (16)), and something similar for the beta matrix elements.

From the above we learn that to calculate the exchange-correlation energy and the Kohn-Sham matrix elements with gradient corrected functionals we need to provide

and return where the name in brackets is the variable to be used in the codes to represent the quantities.

In the closed shell case however less quantities need to be computed. Also some of the quantities one would expect can be combined at the functional level. The closed shell case routines only return these compound quantities which are defined as

closed shell quantityequivalent in terms of open shell quantities
vsigmaaa:=2*vsigmaaa+vsigmaab
v2rhoa2:=v2rhoa2+v2rhoab
v2rhoasigmaaa:=v2rhoasigmaaa+v2rhoasigmaab+v2rhoasigmabb
v2sigmaaa2:=2*v2sigmaaa2+4*v2sigmaaaab+2*v2sigmaaabb+v2sigmaab2

DFT repository Quantum Chemistry Group