# ABINIT, GW input variables:

## List and description.

This document lists and provides the description of the name (keywords) of the GW input variables to be used in the main input file of the abinis code.
The new user is advised to read first the new user's guide, then the abinis help file, before reading the present file. It will be easier to discover the present file with the help of the lesson 6 of the tutorial Other input variables directly related to the GW computation are : getkss getscr optdriver. Note also the merging utility Mrgscr, for screening files.

##### Copyright (C) 2002-2006 ABINIT group (XG)
This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors .

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr

Files that describe other input variables:

- Basic variables, VARBAS
- Developper variables, VARDEV
- File handling variables, VARFIL
- Geometry builder + symmetry related variables, VARGEO
- Ground-state calculation variables, VARGS
- Internal variables, VARINT
- Parallelisation variables, VARPAR
- Projector-Augmented Wave variables, VARPAW
- Response Function variables, VARRF
- Structural optimization variables, VARRLX
- Wannier fonctions variables, VARWAN

### Content of the file : alphabetical list of variables.

A.
B. bdgw
C.
D.
E. ecuteps ecutsigx ecutwfn
F. freqremax freqspmax
G. gwcalctyp
H.
I. inclvkb
J.
K. kptgw
M.
N. nbandkss nfreqim nfreqre nfreqsp npwkss nkptgw nomegasrd npweps npwsigx npwwfn nsheps nshsigx nshwfn
O. omegasrdmax
P. ppmfrq ppmodel
Q. qptdm
R.
S. soenergy splitsigc symmorphi
T.
U.
V.
W.
X.
Y.
Z. zcut

bdgw
Mnemonics: BanDs for GW calculation
Characteristic: GW
Variable type: integer bdgw(2,nkptgw)
Default is all 0's
For each k-point with number igwpt in the range (1:nkptgw), bdgw(1,igwpt) is the number of the lowest band for which the GW computation must be done, and bdgw(2,igwpt) is the number of the highest band for which the GW computation must be done.

When variable gwcalctyp >= 20, quasiparticle wavefunctions are computed and represented as linear combinations of some LDA wavefunctions. bdgw designates the LDA wavefunctions used a basis set: quasiparticle wavefunctions are expanded on the LDA states in between bdgw(1,igwpt) and bdgw(2,igwpt).

Go to the top | Complete list of input variables

ecuteps
Mnemonics: Energy CUT-off for EPSilon (the dielectric matrix)
Characteristic: GW
Variable type: real
Default is 0.0
Only relevant if optdriver=3, that is, GW calculations.

ecuteps determines the cut-off energy of the planewave set used to represent the independent-particle susceptibility $\chi^{(0)}_{KS}$, the dielectric matrix $\epsilon$, and its inverse.
It is not worth to take ecuteps bigger than four times ecutwfn, this latter limit corresponding to the highest Fourier components of a wavefunction convoluted with itself. Usually, even twice the value of ecutwfn might overkill. In any case, a convergence study is worth.

This set of planewaves can also be determined by the other input variables npweps and nsheps, but these are much less convenient to use for general systems, than the selection criterion based on a cut-off energy.

Go to the top | Complete list of input variables

ecutsigx
Mnemonics: Energy CUT-off for MAT ??
Characteristic: GW
Variable type: real
Default is 0.0
Only relevant if optdriver=4, that is, GW calculations. This input variable was named "ecutmat" prior to v4.3 .

ecutsigx determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator.

This set of planewaves can also be determined by the other input variables npwsigx and nshsigx, but these are much less convenient to use for general systems, than the selection criterion based on the cut-off energy.

Go to the top | Complete list of input variables

ecutwfn
Mnemonics: Energy CUT-off for WaveFunctions
Characteristic: GW
Variable type: real
Default is 0.0
Only relevant if optdriver=3 or 4, that is, GW calculations.

ecutwfn determines the cut-off energy of the planewave set used to represent the wavefunctions in the formula that generates the independent-particle susceptibility $\chi^{(0)}_{KS}$ (for optdriver=3), or the self-energy (for optdriver=4).
Usually, ecutwfn is smaller than ecut, so that the wavefunctions are filtered, and some components are ignored. As a side effect, the wavefunctions are no more normalized, and also, no more orthogonal. Also, the set of plane waves can be much smaller for optdriver=3, than for optdriver=4, although a convergence study is needed to choose correctly both values.

This set of planewaves can also be determined by the other input variables npwwfn and nshwfn, but these are much less convenient to use for general systems, than the selection criterion based on the cut-off energy.

Go to the top | Complete list of input variables

freqremax
Mnemonics: FREQuencies along the Real axis MAXimum
Characteristic:
Variable type: real parameter
Default is 0.0
freqremax is used only for numerical integration of the GW self-energy (gwcalctyp= 2, 12, 22, 9, 19, 29).
freqremax sets the maximum real frequency used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. freqremax and nfreqre define the spacing of the frequency mesh along the real axis.
Go to the top | Complete list of input variables

freqspmax
Mnemonics: FREQuencies for the SPectral function MAXimum
Characteristic:
Variable type: real parameter
Default is 0.0
freqspmax sets the maximum real frequency used to calculate the spectral function from the GW Green's function. freqspmax and nfreqsp define the spacing of the frequency mesh along the real axis.
Go to the top | Complete list of input variables

gwcalctyp
Mnemonics: GW CALCulation TYPe
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=3 or 4, that is, GW calculations.

gwcalctyp governs the choice between the different capabilities of the GW code.

- 0 <= gwcalctyp <= 9 : standard "1 shot" quasiparticle method
- 10 <= gwcalctyp <= 19 : self-consistent quasiparticle method on energies only
- 20 <= gwcalctyp <= 29 : self-consistent quasiparticle method on energies and wavefunctions

- gwcalctyp = 0, 10, or 20 : standard Plasmon-Pole model GW calculation
- gwcalctyp = 2, 12, or 22 : GW calculation using numerical integration (contour deformation method, see e.g. S. Lebegue et al. PRB 67, 155208 (2003).)
- gwcalctyp = 5, 15, or 25 : Hartree-Fock calculation
- gwcalctyp = 6, 16, or 26 : Screened Exchange calculation
- gwcalctyp = 7, 17, or 27 : COHSEX calculation
- gwcalctyp = 8, 18, or 28 : model GW calculation following S. Faleev et al. PRL 93, 126406 (2004) using a Plasmon-Pole model
- gwcalctyp = 9, 19, or 29 : model GW calculation following S. Faleev et al. PRL 93, 126406 (2004) using numerical integration (contour deformation method)

Go to the top | Complete list of input variables

inclvkb
Mnemonics: INCLude VKB
Characteristic: GW
Variable type: integer
Default is 1
Only relevant if optdriver=3, that is, a screening calculation.

In case inclvkb is 1, the non-local part of the commutator og the Hamiltonian with the position operator is correctly included in the q=0 contribution. This is unfortunately time-consuming. In case inclvkb is 0, this contribution is incorrectly omitted, but the computation is much faster ...

The importance of this contribution depends on the number of k points. Turning off inclvkb should be made by experienced users only.

Go to the top | Complete list of input variables

kptgw
Mnemonics: K-PoinTs for GW calculations
Characteristic: GW
Variable type: real kptgw(3,nkptgw)
Default is all 0.0's
For each k-point with number igwpt in the range (1:nkptgw), kptgw(1,igwpt) is the reduced coordinate of the k-point.

At present, not all k-points are possible. Only those corresponding to the k-point grid defined with the same repetition parameters (kptrlatt, or ngkpt) than the GS one, but WITHOUT any shift, are allowed.

Go to the top | Complete list of input variables

nbandkss
Mnemonics: Number of BaNDs STOred
Characteristic:
Variable type: integer parameter
Default is 0
This input variable (also called "nbndsto" prior to v4.3) is used for the preparation of a GW calculation : it will be used in a GS run (where optdriver=0) to generate a _KSS file. In this run, nbandkss should be non-zero. Then, this GS run should be followed with a run where optdriver=3.

- If nbandkss=0, no _KSS file is 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 : it will be the minimum of the number of plane waves over 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.

See npwkss for the selection of the number of the planewave components of the eigenstates to be stored.

Very important : for the time being, istwfk must be 1 for all the k-points.
When nbandkss is non-zero, symmorphi must be set to 0, in case there are non-symmorphic operations.

For more details about the format of the abo_KSS file, see the routine outkss.f .

Go to the top | Complete list of input variables

nfreqim
Mnemonics: Number of FREQuencies along the IMaginary axis
Characteristic:
Variable type: integer parameter
Default is 0
nfreqim is used only for numerical integration of the GW self-energy (gwcalctyp= 2, 12, 22, 9, 19, 29).
nfreqim sets the number of pure imaginary frequencies used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy.
Go to the top | Complete list of input variables

nfreqre
Mnemonics: Number of FREQuencies along the Real axis
Characteristic:
Variable type: integer parameter
Default is 0
nfreqre is used only for numerical integration of the GW self-energy (gwcalctyp= 2, 12, 22, 9, 19, 29).
nfreqre sets the number of real frequencies used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. It can be used also in case of ppmodel calculation, i.e, gwcalctyp<10, to reduce the number of frequencies used to evaluate the dielectric matrix from the (default) two to one frequency (omega=0) by setting (nfreqre=1). This might be a good idea in case one plan to use ppmodel>1. This will force the calculation of screening on a single frequency (omega=0) and hence reduce memory and disk space requirment. The only draw back is that the user will not be able to perform self energy calculation using ppmodel 1, since in the last case the dielectric matrix calculated on two frequencies is required. If the user is not sure which ppmodel to use, then s/he is not advised to use this input variable. Using the default values, one must be able to get a screening file that can be used with any ppmodel.
Go to the top | Complete list of input variables

nfreqsp
Mnemonics: Number of FREQuencies along the Real axis
Characteristic:
Variable type: integer parameter
Default is 0
nfreqsp sets the number of real frequencies used to calculate the spectral function of the GW Green's function.
Go to the top | Complete list of input variables

npwkss
Mnemonics: Number of planewave COMponents STOred
Characteristic:
Variable type: integer parameter
Default is 0
This input variable (was called "ncomsto" prior to v4.3) is used for the preparation of a GW calculation : the GS run (where optdriver=1 and nbandkss/=0) should be followed with a run where optdriver=3. Also, if nbandkss=0, no use of npwkss.

npwkss defines the number of planewave components of the Kohn-Sham states to build the Hamiltonian, in the routine outkss.f, and so, the size of the matrix, the size of eigenvectors, and the number of available states, to be stored in the abo_KSS file. If it is set to 0, then, the planewave basis set defined by the usual Ground State input variable ecut is used to generate the superset of all planewaves used for all k-points. Note that this (large) planewave basis is the same for all k-points.

Very important : for the time being, istwfk must be 1 for all the k-points.

Go to the top | Complete list of input variables

nkptgw
Mnemonics: Number of GW PoinTs
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=4, that is, GW calculations. This input variable was called "ngwpt" in versions before v4.3 .

nkptgw gives the number of k-points for which the GW calculation must be done. It is used to dimension kptgw

Go to the top | Complete list of input variables

nomegasrd
Mnemonics: Number of OMEGA to evaluate the Sigma Real axis Derivative
Characteristic: GW
Variable type: integer
Default is 9
Only relevant if optdriver=4, that is, GW calculations.
The number of frequencies omega where sigma is calculation around the KS energy on the real axis. From these values, the derivative of Sigma with respect to omega and calculated at the KS energy is evaluated.
Go to the top | Complete list of input variables

npweps
Mnemonics: Number of PlaneWaves for EPSilon (the dielectric matrix)
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=3, that is, GW calculations.

npweps determines the size of the planewave set used to represent the independent-particle susceptibility $\chi^{(0)}_{KS}$, the dielectric matrix $\epsilon$ and its inverse.
See ecuteps (preferred over npweps) for more information.

Go to the top | Complete list of input variables

npwsigx
Mnemonics: Number of PlaneWaves for SIGma eXchange
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=4, that is, GW calculations. This input variable was previously called "npwmat".

npwsigx determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator.
See ecutsigx (preferred over npwsigx) for more information.

Go to the top | Complete list of input variables

npwwfn
Mnemonics: Number of PlaneWaves for WaveFunctioNs
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=3 or 4, that is, GW calculations.

npwwfn determines the size of the planewave set used to represent the wavefunctions in the formula that generates the independent-particle susceptibility $\chi^{(0)}_{KS}$.
See ecutwfn (preferred over nshwfn) for more information.

Go to the top | Complete list of input variables

nqptdm
Mnemonics: Number of Q - PoinTs for the Dielectric Matrix
Characteristic:
Variable type: integer
Default is 0
Used only in the GW (screening) part of ABINIT, that is for optdriver=3.
If equal to 0, the set of q-points for computing the dielectric matrix is determined automatically. When non-zero, the list of q points is to be read from qptdm.
This allows to split the big calculation of all dielectric matrices into smaller calculations, performed independently. The files _SCR, that are generated, can be merged thanks to the Mrgscr utility.
Go to the top | Complete list of input variables

nsheps
Mnemonics: Number of SHells for EPSilon (the dielectric matrix)
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=3, that is, GW calculations.

nsheps determines the size of the planewave set used to represent the independent-particle susceptibility $\chi^{(0)}_{KS}$, the dielectric matrix $\epsilon$ and its inverse.
See ecuteps (preferred over nsheps) for more information.

Go to the top | Complete list of input variables

nshsigx
Mnemonics: Number of SHells for MAT ??
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=4, that is, GW calculations.This input variable was named "nshma" prior to v4.3 .

nshsigx determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator.
See ecutsigx (preferred over nshsigx) for more information.

Go to the top | Complete list of input variables

nshwfn
Mnemonics: Number of SHells for WaveFunctioNs
Characteristic: GW
Variable type: integer
Default is 0
Only relevant if optdriver=3 or 4, that is, GW calculations.

nshwfn determines the number of shells of the planewave set used to represent the wavefunctions in the formula that generates the independent-particle susceptibility $\chi^{(0)}_{KS}$.
See ecutwfn (preferred over nshwfn) for more information.

Go to the top | Complete list of input variables

omegasrdmax
Mnemonics: OMEGA to evaluate the Sigma Real axis Derivative : MAXimal value
Characteristic: GW
Variable type: real
Default is 1.0 eV
Only relevant if GW calculations.
The maximum distance from the KS energy where to evaluate Sigma. Sigma is evaluated at [KS_energy - maxomegasrd, KS_energy + maxomegasrd] sampled nomegasrd times.
Go to the top | Complete list of input variables

ppmfrq
Mnemonics: Plasmon Pole Model FReQuency plasfrq (old name)
Characteristic: ENERGY, GW
Variable type: real
Default is 0.0 Ha
Only relevant if optdriver=3, that is, GW calculations.

The present GW implementation is based on a plasmon-pole model. In this plasmon-pole model, the screening must be available at zero frequency, as well as at another frequency, imaginary, on the order of the plasmon frequency (the peak in the EELS spectrum). This information is used to derive the behaviour of the dielectric matrix for all the frequencies (complex). ppmfrq defines the imaginary frequency at which the dielectric matrix is evaluated, in addition to the zero frequency. If the plasmon-pole approximation is good, then, the choice of ppmfrq should have no influence on the final result. One should check whether this is the case. In general, the plasmon frequencies of bulk solids are on the order of 0.5 Hartree.

Go to the top | Complete list of input variables

ppmodel
Mnemonics: Plasmon Pole MODEL
Characteristic: GW, ENERGY
Variable type: integer
Default is 1
Only relevant if optdriver=3, that is, GW calculations of screening.

- ppmodel=1 : PP model of Godby and Needs, See
- ppmodel=2 : PP model of Hybertsen and Louie, See Phys Rev B 34, 5390 (1986)
- ppmodel=3 : PP model of W. von der Linden and P. Horsh see Phys Rev B 37, 8351 (1988)
- ppmodel=4 : PP model of Farid and Engel. See Phys Rev B47,15931 (1993) WARNING: still under coding!!!
- ppmodel=0 : no PP model, numerical integration (contour deformation method, see e.g. S. Lebegue et al. PRB 67, 155208 (2003).)

Please note that the difference between ppmodel 1 and ppmodel 2,3,4, is that in the first case, the dynamic screening is calculated by fitting along the imaginary axis using the dielectric matrix calculated at two frequencies, whereas in the last three cases, it is done by employing sum rules and using the dielectric matrix calculated only at omega=0. see nfreqre. Please note also that in the case of ppmodel 4, the plasmon energies are not simple mathematical parameters, but rather have a physical meaning (at least the lowest ones). Thus the calculated plasmon band structure (plasmon energy vs q vector) is shown as standard output for the lowest 10 bands in the output file.
Go to the top | Complete list of input variables

qptdm
Mnemonics: Q - PoinTs for the Dielectric Matrix
Characteristic:
Variable type: real array qptdm(3,nqptdm)
Default is 0. 0. 0. (for just one q-point)
Used only in the GW (screening) part of ABINIT, that is for optdriver=3, and when nqptdm/=0 .
Contains the q points for use in the GW (screening) part of ABINIT, instead of the automatic generation of the q points when nqptdm=0. These q points are given in terms of reciprocal space primitive translations (NOT in cartesian coordinates!). For further explanation, see the input variable nqptdm.
Go to the top | Complete list of input variables

soenergy
Mnemonics: Scissor Operator ENERGY
Characteristic: GW, ENERGY
Variable type: real
Default is 0.0
Only relevant if optdriver=3, that is, GW calculations of screening.
The Scissor operator energy to be added to unoccupied levels for the screening calculation. In some cases, it mimics a second iteration self-consistent GW calculation.
Go to the top | Complete list of input variables

splitsigc
Mnemonics: SPLIT SIGma Correlation
Characteristic: GW, DEVELOP
Variable type: integer
Default is 0
Only relevant if optdriver=4, that is, GW calculations of self-energy
Govern the splitting of the correlation part of the self-energy in various contributions. So far, the results only appear in the log file.
splitsigc is intended as a succession of bits that govern the decomposition (or not) as a function of different criteria.

- The first bit governs the decomposition in terms of Coulomb Hole (COH) and Screened Exchange (SEX) contributions
- The second bit governs the decomposition in terms of Coulomb and Kinetic contributions

symmorphi
Mnemonics: SYMMORPHIc symmetry operations
Characteristic: GW, DEVELOP
Variable type: integer
Default is 1,
With symmorphi=1, symmetry operations with a non-symmorphic vector are allowed. With symmorphi=0, they are not allowed. In the latter case, if the symmetry operations are specified in the input file, the code will stop and print an error message if a non-symmorphic vector is encountered. By contrast, if the symmetry operations are to be determined automatically (if nsym=0), then the set of symmetries will not include the non-symmorphic operations.

Note : this feature exist because in the present status of the GW calculations, non-symmorphic symmetry operations cannot be exploited. Thus, the k points cannot be restricted to the IBZ. In order to prepare GW calculations, and to perform GW calculations, symmorphi=0 should be used, together with nsym=0.

Go to the top | Complete list of input variables

zcut
Mnemonics: Z-CUT
Characteristic: GW , ENERGY
Variable type: real
Default is 0.1 eV =3.67493260d-03Ha
Only relevant if optdriver=4, that is, GW calculations. It is meant to avoid some divergencies that might occur due to the numerical treatment of integrable poles along the integration path. If the denominator becomes smaller than zcut, a small imaginary part (depending on zcut) is added, in order to avoid the divergence.
Ideally, one should make a convergence study of zcut decreasing for increasing number of k-points.
Go to the top | Complete list of input variables

Goto : ABINIT home Page | Suggested acknowledgments | List of input variables | Tutorial home page | Bibliography

Help files : New user's guide | Abinis (main) | Abinis (respfn) | Mrgddb | Anaddb | AIM (Bader) | Cut3D | Optic | Mrgscr