• Martin Schlipf's avatar
    add special G=0 treatement for HSE functional · 5117e207
    Martin Schlipf authored
    Although G=0 is not divergent for HSE, the large changes near the
    origin cause problems in the numerical calculation of the nonlocal
    exchange energy. To correct this a "divergence" correction analogously
    to PBE0 is introduced.
    
    subtract exp(-rcut^2*G^2)*V(G) to make Fourier transform stable near G=0
    set all energy contributions of G=0 in main loop to 0
    add divergence correction at the end modifying the PBE0 one appropriately
    
    new function in HSEFunctional is used to calculate the scaling of the
    HSE "divergence" relative to the PBE0 one
    InteractionPotential.h contains this additional function
    
    the integrals ~k^2 are not evaluated because they are of higher order
    (in PBE0 the potential is ~k^{-2} near G=0, so that the k^2 terms are
    important, in HSE the potential is ~const. near G=0, so that the k^2
    terms do not contribute a lot
    
    git-svn-id: http://qboxcode.org/svn/qb/branches/hse-dev@1404 cba15fb0-1239-40c8-b417-11db7ca47a34
    5117e207