Page 1 of 1

[Solved] gwcalctyp 09: Renormalization factor

Posted: Sat May 18, 2013 4:45 pm
by gabriel.antonius
Hi every one,
When making a one-shot GW calculation with contour deformation, I find that with gwcalctyp 09,
the renormalization factor used is 1.0000
Is that a bug? Is there any purpose in this?
And what is the difference anyway between gwcalctyp 02 and 09? It is not documented so well, and there is no automatic test with gwcalctyp 09 !

Here is an abipy input with silicium

Code: Select all

"""One-shot GW calculations on silicon."""
from abipy.htc import Launcher

calc = Launcher('02-si/calc')

calc.set_bindir('/Users/Antonius/Work/Software/abinit/7.2.2-private/build2/src/98_main/')
calc.set_pseudodir('/Users/Antonius/Work/Software/abinit/7.2.2-private/tests/Psps_for_tests/')
calc.set_pseudos('14si.pspnc')

# Bands
nband_occ = 4
nband_unocc = 12
nband_tot = nband_occ + nband_unocc
nband_buff = nband_tot / 10
nband_extra = nband_tot + nband_buff

groundstate = {
    'tolvrs' : 1e-2,
    'iscf' : 7,
    'ixc' : 7,
    'optforces' : 0,
    'nband' : 3 * nband_occ,
    'nbdbuf' : nband_occ,
    'kptopt' : 1,
    'ngkpt' : 3 * [2],
    'nshiftk' : 4,
    'shiftk' : [[0.5,0.5,0.5],
                [0.5,0.0,0.0],
                [0.0,0.5,0.0],
                [0.0,0.0,0.5]],
    }

wavefunctions = {
    'iscf' : -2,
    'getden' : -1,
    'tolwfr' : 1e-2,
    'nband' : nband_extra,
    'nbdbuf' : nband_buff,
    }

screening = {
    'optdriver' : 3,
    'irdwfk' : 1,
    }

sigma = {
    'optdriver' : 4,
    'nkptgw' : 1,
    'kptgw' : [0,0,0],
    'bdgw' : [nband_occ-2, nband_occ+7],
    'irdwfk' : 1,
    'irdscr' : 1,
    }

gw_options = {
    'gwcalctyp' : '09',
    'awtr' : 1,
    'symchi' : 1,
    'symsigma' : 0,
    'gwpara' : 2,
    'nfreqim' : 2,
    'nfreqre' : 4,
    'freqremax' : '40 eV',
    }

ecut = 5.
planewaves = {
    'ecut' : ecut,
    'ecutwfn' : ecut,
    'ecutsigx' : 2 * ecut,
    'ecuteps' : 2.5,
    'nband' : nband_tot,
    }

kpoint_grid_unshifted = {
    'kptopt' : 1,
    'ngkpt' : 3 * [2],
    'nshiftk' : 1,
    'shiftk' : [0,0,0],
    }

silicon_cell = {
    'acell' : 3*[10.217],
    'rprim' : [[0.0,0.5,0.5],
               [0.5,0.0,0.5],
               [0.5,0.5,0.0]],
    'ntypat' : 1,
    'znucl' : 14,
    'natom' : 2,
    'typat' : [1,1],
    'xred' : [3*[0.0], 3*[0.25]]
    }

options = {
    'istwfk' : '*1',
    'enunit' : 1,
    'prtvol' : 10,
    'npfft' : 1,
    }


calc.ndtset = 4
calc.set_variables(groundstate, 1)
calc.set_variables(wavefunctions, 2)
calc.set_variables(screening, 3)
calc.set_variables(sigma, 4)

calc.set_variables(gw_options)
calc.set_variables(kpoint_grid_unshifted)
calc.set_variables(planewaves)
calc.set_variables(silicon_cell)
calc.set_variables(options)

calc.link_io(3, 2, 'wfk')
calc.link_io(4, 2, 'wfk')
calc.link_io(4, 3, 'scr')

calc.make()
calc.run()
print calc.report()

Re: gwcalctyp 09: Renormalization factor

Posted: Sun May 19, 2013 12:35 pm
by gmatteo
Hi Gabriel,

I find that with gwcalctyp 09,
the renormalization factor used is 1.0000
Is that a bug? Is there any purpose in this?


I would say that it is done on purpose since the factor Z is not used
in this particular case.
gwcalcty x9, indeed, corresponds to the model self-energy of Faleev that is static (see PRL 93, 126406 (2004)).
The QP correction are obtained by diagonalizing the model self-energy instead of using the standard perturbative
approach that requires the computation of Z.

And what is the difference anyway between gwcalctyp 02 and 09? I


x2 corresponds to the "true" GW approximations (non-hermitian, frequency dependent), whereas x9
corresponds to the model self-energy of Faleev (static, Hermitian)

and there is no automatic test with gwcalctyp 09 !


There are tests for gwcalctyp 28 and 29. I would say that using gwcalctyp 09 does not make much sense
since, in Faleev's method, the model self-energy is always solved self-consistently.