ABINIT GW MANUAL (up to the 3.3.3 version)
                 (later will be completely different
                  and chi and sig will be integrated in abinis main)

First step: generate a Kohn Sham Electronic Structure
as input for further steps in the GW calculation (KSS file).

main input variables:

nbandkss -1

Mnemonics:
Number of BaNDs for eigenSTate Output
Characteristic: DEVELOP 
Variable type: integer parameter 
Default is 0
If nbandkss=0, no output of the eigenstates is performed 
(no _KSS file created).
If nbandkss=-1, all the available eigenstates (energies
and eigenfunctions) are stored in a abo_KSS file at the end of the
ground state calculation. The number of states is forced to be
the same for all k-points.
If nbandkss is greater than 0, abinit stores (about)
nbandkss eigenstates in a abo_KSS file. This number of states
is forced to be the same for all k-points.

npwkss 0

Mnemonics:
Number of planewave COMponents for eigenSTate Output
Characteristic: DEVELOP 
Variable type: integer parameter 
Default is -1
If nbandkss=0, 
no use of npwkss.
If nbandkss/=0, npwkss
defines the number of planewave components of the Kohn-Sham states
to be stored in the abo_KSS file. The planewave basis is the
same for all k-points. If npwkss=-1, the maximal number of components 
is stored (the same for all k-points).

kssform 1

defines the form of KSS file
use kssform 1 preferencially!!! (KSS in double precision form)!

Sample input file:

# Crystalline silicon
# calculation of kss file for 10 k-points in IBZ

# Definition of the unit cell: fcc
acell 3*10.217         # This is equivalent to   10.217 10.217 10.217
rprim  0.0  0.5  0.5   # FCC primitive vectors (to be scaled by acell)
       0.5  0.0  0.5   
       0.5  0.5  0.0

# Definition of the atom types
ntypat 1           # There is only one type of atom
znucl 14          # The keyword "znucl" refers to the atomic number of the 
                  # possible type(s) of atom. The pseudopotential(s) 
                  # mentioned in the "files" file must correspond
                  # to the type(s) of atom. Here, the only type is Silicon.
                         
# Definition of the atoms
natom 2           # There are two atoms
typat 1 1         # They both are of type 1, that is, Silicon.
xred              # Reduced coordinate of atoms
   0.0  0.0  0.0
   0.25 0.25 0.25


# Definition of the k-point grid
kptopt 1          # Option for the automatic generation of k points,
nkpt 10
ngkpt  4 4 4  
nshiftk 4
shiftk  0.5 0.5 0.5  # These shifts will be the same for all grids
        0.5 0.0 0.0
        0.0 0.5 0.0
        0.0 0.0 0.5

# Definition of the planewave basis set (at convergence 16 Rydberg 8 Hartree)
ecut 8.0         # Maximal kinetic energy cut-off, in Hartree

# Definition of the SCF procedure
nstep 10          # Maximal number of SCF cycles
toldfe  1.0d-6
diemac 12.0       # Although this is not mandatory, it is worth to
                  # precondition the SCF cycle. The model dielectric
                  # function used as the standard preconditioner
                  # is described in the "dielng" input variable section.
                  # Here, we follow the prescription for bulk silicon.

# Definition of parameters for the calculation of the kss file
nband  9          
nbandkss -1        # number of bands in KSS file (the maximum possible)
npwkss 0         # number of plane waves in KSS file (the maximum possible)
kssform 1         # KSS file form (recomanded 1 double precision form)

Output:

file _KSS containing mainly diagonalized KS eigenvalues and eigenfunctions
          for all the given k-points.

Check in the output file that the eigenvalues after diagonalization 
are more or less the same than those one given by self-consistncy
at convergence.
Check also the normalization (must be of course ~1) and the orthogonalization
(must be ~0) for the wavefunctions.




Second step: calculate the screening (chi program)

Input file for chi  (chi.in) :

PLASMONPOLE     # model
65     169      # npwsigx npwwfn
25              # nbnds
2               # nomega
0.0     0.0     # omega start
0.0     13.6058 # omega end

PLASMONPOLE = the model to be used for screening (only this one)
npwsigx = npweps = the dimension of the epsilon^-1 or chi or chi0 matrices
npwwfn = the number of plane waves to be used to represent wavefunctions
nbnds = the number of bands to be used to calculate the chi0 matrix
omega start and omega end = the two frequencies to be used to calculate
                            the plasmon pole model. use 0 for the first
                            and ~ i omega_plasma (in eV) for the second
                            (recomanded by the experience)

to run teh program chi

ln -s sio_KSS fort.10
chi < chi.in >& chi.log &  (in csh)

Output file:

out.em1 : contains the epsilon^-1 (symmetrized) matrix calculated for
          the frequencies given in the input, and for all the q's
          given by a difference k - k' where k and k' belong to the
          set of k-points chosen in the first calculation.


Check in the chi.log the value for the dielectric constant.




Third step: calculation of Self-energy matrix elements and GW corrections.
            (sig program)

Input file for sig : sig.in :

169     137                                 # npwsigx npwwfn
100                                         # nbnds
10                                          # nkcalc
-0.125000   -0.250000    0.000000     4 5   # kpt minbnd maxbnd
-0.125000    0.500000    0.000000     4 5
-0.250000   -0.375000    0.000000     4 5
-0.125000   -0.375000    0.125000     4 5
-0.125000    0.250000    0.000000     4 5
-0.250000    0.375000    0.000000     4 5
-0.375000    0.500000    0.000000     4 5
-0.250000    0.500000    0.125000     4 5
-0.125000    0.000000    0.000000     4 5
-0.375000    0.000000    0.000000     4 5
0.1                                         # zcut


npwsigx = number of plane waves to be considered in the Exchange term of
          the Self Energy (which is diagonal on it)
          (the number of plane waves considered for the Correlation term
          of Sigma is given by the dimension npweps given
          in the previous chi calculation).
npwwfn  = the number of plane waves to be used to represent wavefunctions
nkcalc  = number of k-points where to calculate GW corrections
kpt     = reduced coordinates of k-point where to calculate
minbnd maxbnd = bands interval where to calculate GW corrections (in
                this case of silicon, the highest occupied and the lowest
                unoccupied)
zcut    = parameter given to avoid poles in the integrals to be calculated


To run sig:

ln -s sio_KSS fort.10
ln -s out.em1 fort.12
sig < sig.in >& sig.log &

Output files:

sig.out textual file
out.gw  


Check warning in the sig.log file.
For energy levels beyond the plasma frequency usually
the GW results are wrong using the plasmonpole model, and
the program warns checking on the d Sig_c / d omega derivative.




Convergence:

convergence must be verified with respect to all the parameters
checking at the opening of the gaps.
Usually the number of k-points to be used is the
same as the ground state DFT calculation.
For the chi calculation usually the number of bands, the number
of pw for the wavefunctions the dimension of the epsilon^-1 matrix
are the same as those ones that can give an EELS spectrum including
Local Field effects at convergence. But this is NOT a general rule
and there can be cases where this is not verified. Because for
en EELS spectrum you look at only one element of the epsilon^-1 matrix
where in a GW calculation you consider the whole matrix.
For the sig calculation usually the number of bands to be used is
much more higher than in the chi calculation (a factor 4),
where the npwwfn should be less. The convergence on the Sig_exchange
part is slower the the Sig_correlation (which is fixed at npweps of chi).
But also is less cumbersome so that you can put there all the
pw the KSS file contains.
Finally leave zcut at 0.1 and if you want, verify the stability
with respect to it.
