Use the code

Once the executable exc created (it should be in \$prefix/bin after the make install) you can run the EXC code.

What you need is:

  • The ground state calculation output = kss file.
  • GW corrected energy = gw file.
  • Screening function = em1 file.
  • An input file (see below)

Then execute: exc -k file.kss -e file.em1 -g file.gw -i input > exc.log &

Defaults:
The commmand exc > exc.log & will look for a default in.kss and in.em1 files in the current directory. An input file exc.in will be also searched in the current directory.

Input file

This is an example of input file to be given to EXC. For a complete list of input variables see below.


exciton ! important

exc ! full excitonic calculation. this will imply the use of an abinit SCR file

so ! use a scissor operator which implies a value for soenergy,
! alternatively you might use 'gw' which implies the use of an abinit GW file
soenergy 0.6

shiftk ! put this value if you use shifted k-points

matsh 4 ! this is just an update of the old (still working) npwmat
(but instead of giving the total number of plane waves, you give a closed shell)
npwsh 12 ! this is just an update of the old (still working) npwwfn
(but instead of giving the total number of plane waves, you give a closed shell)

nband 8 ! last band to be considered in the calculation
lomo 1 ! first band to be considered: 1 is default

haydock ! use haydock iterative technique: this avoid the full diagonization
niter 100 ! number of iterations in the haydock iterative scheme

omegai 0.0 ! first frequency (eV)
omegae 10.0 ! last frequency (eV)
domega 0.1 ! step of frequency (eV)
broad 0.1 ! Lorentzian broadening (eV)

q 0. 0. 0. ! momentum transfer: (0,0,0) is default, like for optical regime

savememory ! permits to save a little memory
verboselevel 1 ! this is the default. a value of 3 will print out lots of stuff

List of input variables


!----- Type of calculation (default: linear response:tddft) -------------------
linear ! default: linear response in G space.
! solving the tddft equation for \chi
! this is not implemented in EXC

exciton ! excitonic calculation (the EXC code) in transition space
!--------------------------------------------------------------------------------

!---------- Energies for the diagonal part of H^exc (default:enks) ---------------------------------
enks ! default: use the Kohn-Sham eigenvalues found in the ground-state file
! to construct the diagonal of H^exc
gw ! perturbative GW energies: this variable implies the existence of a gwfile
qpsenergy ! self-consistent quasiparticle energies. this variable implies the
! existence of a qps file
so ! scissor operator correction.
! see below soenergy, stretch_valence, stretch_conduction
soenergy ! value of the scissor correction. default: 0.0
stretch_valence ! stretch = GW bandwidth / DFT bandwidth. default: 1.0
stretch_conduction ! modify energy in a linear way in order to reproduce the GW bandwidth
! like: e_GW = e_DFT * stretch
somult ! multi-scissor operator correction. implies the existence of a file
! called somult.in
!---------------------------------------------------------------------------------------------------

!---------- Wavefunctions for the matrix elements (default:kss) ----------------------------
kss ! default. use the Kohn-Sham wavefunctions found in the ground-state file
! to construct the numerator of \chi^0
qps ! self-consistent quasiparticle eavefunctions. this variable implies the existence
! of a qps file
!-------------------------------------------------------------------------------------------

!------ Tamm-Dancoff Approximation (default) ---------------------------------------------------------
tammdancoff ! if this flag occurs the calculation will use the so-called Tamm-Dancoff approximation,
! i.e. only the resonant part of H^exc will be taken into account
resonant ! equivalent to tammdancoff
!-----------------------------------------------------------------------------------------------------

!--- Exciton solver (default:fulldiago) --------------------------------------------------------------
fulldiago ! default. diagonalization of the excitonic hamiltonian.
haydock ! iterative inversion of the excitonic hamiltonian. implies the variable niter (see below).
! only the final spectrum is obtained but no excitonic eigenvalues and eigenvectors,
! preventing further analysis.
niter ! number of iterations for the haydock iterative procedure. default:100
haydock_restart ! write restart file. default false
!-----------------------------------------------------------------------------------------------------

!---- Screening --------------------------------------------------------------------------
wdiag ! default: only the diagonal (in G) of Wgg' is retained. it turns out to be a good
! approximation for solids
wfull !the whole gg' structure of W is used. important for clusters.

lf ! default: calculate also the exchange term <>.
nlf ! avoid the calculation of the exchange term <>. if rpa this corresponds to
! to a calculation without local fields.
!------------------------------------------------------------------------------------------

!----- Use of shikted k-points --------------------------------------------------
shiftk ! if the ground state structure has been calculated using shifted
! k-points, we have to tell dp about it, otherwise it will try to use
! the symmetries of the system to sample the whole Brillouin zone.
! Alternatively (and deprecatively) you can still use the old way ...
nsymk 1 ! force EXC to consider only the first symmetry (the identity)
noinvk ! do not use inversion
! Remember: either one uses the 'shiftk' flag OR 'nsym 1' + 'noinv'
!--------------------------------------------------------------------------------

!----- convergency parameters ----------------------------------------------------
npwwfn ! number of plane waves to describe the wavefunctions
! default: all plane waves found on the _KSS file will be used
wfnsh ! number of shells of plane waves to describe the wavefunctions
! default:all
! Remark: only one of the above parameters has to be specified

npwmat ! number of G-vectors for the \epsilon matrix (related to local
! fields) ! default:all
matsh ! number of shells og G-vectors for the \epsilon matrix (related
! to local fields) ! default:all
! Remark: only one of the above parameters has to be specified

nbands ! number of the last band (highest energy) to be included in the
! calculation ! default:all
lomo ! number of the first band (lowest energy) to be included in the
! calculation ! default:1
!---------------------------------------------------------------------------------

!-- Pseudopotential --------------------------------------------------------------
novkb ! exclude the nonlocal part of the pseudopotential, which is unfortunately
! the leading term for a big number of transitions
!---------------------------------------------------------------------------------

!----- Momentum Transfer - Polarization of light ---------------------------------
q
! This specifies the momentun transfer (vector) to the
! system. The value of q can range from 0 to very high
! value (several Brilloun zones equivalent)
! Very high q vector can be found in Electron energy loss
! or Inelastic X-ray Scattering. The case q=0 is
! particularly important for optical absorption, where the
! polarization of light can be secified giving a small
! value in one or another direction, e.g.
! q 0.0001 0.0001 0.0
! Remark: q uses the reduced coordinates here, not the
! cartesian ones.
doublegrid ! Allows to read two separate KSS-files for initial and final
! states, which are shifted by q with respect to each other.
! (e.g. k.p perturbation theory will be avoided at small q)
! USAGE: dp -i -k -k
! dp1.kss corresponds to the final states at k,
! dp2.kss corresponds to the initial states at k-q
antieps ! calculation of eps*(-q,-w) instead of eps(q,w), which
! corresponds to exchanging the two kss files in doublegrid
!---------------------------------------------------------------------------------

!----- Other flags -----------------------------------------------------------------
savememory ! if present this flag will make the code calculating the rhotw
! at any transition with a double Fourier transform, rather than
! storing the wave functions in real space. Advantage: reduction
! of the memory. Disadvantage: 3 instead of 2 Fourier
! transform per wavefunction.
verboselevel ! =0,1,2,3
! 0) minimum amount of info written down
! 1) default values. essential things are written down
! 2) Verbose mode: many more things are written down
! 3) Debug mode: to use only in debugging case,
! all the loop indices are written
! (tree and mem files created)
!-----------------------------------------------------------------------------------