ABINIT, ground-state calculation variables:

List and description.


This document lists and provides the description of the name (keywords) of all files handling 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, before reading the present file. It will be easier to discover the present file with the help of the tutorial.

When the user is sufficiently familiarized with ABINIT, the reading of the ~ABINIT/Infos/tuning file might be useful. For response-function calculations using abinis, the complementary file ~ABINIT/Infos/respfn_help is needed.

Copyright (C) 1998-2004 ABINIT group (DCA, XG, RC)
This file is distributed under the terms of the GNU General Public License, see ~ABINIT/Infos/copyright or http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~ABINIT/Infos/contributors .

Goto : ABINIT home Page | Welcome | 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
Files that describe other input variables:

Content of the file : alphabetical list of variables.


A. algalch  
B. bdberry   berryopt   boxcenter   boxcutmin  
C. chkexit   chkprim   cpus, cpum, cpuh  
D. diecut   diegap   dielam   dielng   diemac   diemix   dosdeltae  
E. efield   enunit  
F. fband   fixmom  
G.
H.
I. iatsph   iprcel  
J.
K. kberry   kptbounds   kptrlatt   kptrlen  
L.
M. mixalch  
N. natsph   nberry   nbdbuf   ndivk   ngfft   nline   npsp   %npspalch   nqpt   nspinor   ntypalch   %ntyppure  
O. occ   optdriver  
P. pspso  
Q. qpt   qptnrm  
R. ratsph  
S. so_typat   spinat   stmbias   symafm  
T. timopt   tphysel   tsmear  
U.
V. vacuum   vacwidth  
W.
X.
Y.
Z.




algalch
Mnemonics: ALGorithm for generating ALCHemical pseudopotentials
Characteristic:
Variable type: integer array algalch(ntypalch)
Default is 1 for all indices

Used for the generation of alchemical pseudopotentials, that is, when ntypalch is non-zero.

Give the algorithm to be used to generate the ntypalch alchemical potentials from the different npspalch pseudopotentials dedicated to this use.

Presently, algalch can only have the value 1, that is :

Later, other algorithms for the mixing might be included.




Go to the top | Complete list of input variables
bdberry
Mnemonics: BanD limits for BERRY phase
Characteristic:
Variable type: integer array bdberry(4)
Default is 4*0.

Used for non-zero values of berryopt.

Give the lower band and the upper band of the set of bands for which the Berry phase must be computed. Irrelevant if nberry is not positive. When nsppol is 1 (no spin-polarisation), only the two first numbers, giving the lower and highest bands, are significant. Their occupation number is assumed to be 2. When nsppol is 2 (spin-polarized calculation), the two first numbers give the lowest and highest bands for spin up, and the third and fourth numbers give the lowest and highest bands for spin down. Their occupation number is assumed to be 1 .

Presently, bdband MUST be initialized by the user in case of Berry phase calculation: the above-mentioned default will cause an early exit.



Go to the top | Complete list of input variables


berryopt
Mnemonics: BERRY phase options
Characteristic:
Variable type: integer berryopt
Default is 0

The other related input variables are :

The cases berryopt=-1,-2,-3 and 4 work only if kptopt=3, nsppol=1, nspinor=1, and occopt=1.



Go to the top | Complete list of input variables


boxcenter

Mnemonics: BOX CENTER
Characteristic:
Variable type: real array boxcenter(3)
Default boxcenter(1:3) is 0.5 0.5 0.5 .

Defines the center of the box, in reduced coordinates. At present, this information is only used in the case of Time-Dependent DFT computation of the oscillator strength. One must take boxcenter such as to be roughly the center of the cluster or molecule. The default is sensible when the vacuum surrounding the cluster or molecule has xred 0 or 1. On the contrary, when the cluster or molecule is close to the origin, it is better to take boxcenter=(0 0 0).



Go to the top | Complete list of input variables
boxcutmin

Mnemonics: BOX CUT-off MINimum
Characteristic:
Variable type: real
Default is 2.0 .

The box cut-off ratio is the ratio between the wavefunction plane wave sphere radius, and the radius of the sphere that can be inserted in the FFT box, in reciprocal space. In order for the density to be exact (in the case of plane wave, not PAW), this ratio should be at least two. If one uses a smaller ratio, one will gain speed, at the expense of accuracy. In case of pure ground state calculation (e.g. for the determination of geometries), this is sensible. However, the wavefunctions that are obtained CANNOT be used for starting response function calculation.



Go to the top | Complete list of input variables
charge
Mnemonics: CHARGE
Characteristic:
Variable type: real number
Default is 0.

Used to establish charge balance between the number of electrons filling the bands and the nominal charge associated with the atomic cores.
The code adds up the number of valence electrons provided by the pseudopotentials of each type (call this "zval"), then add charge, to get the number of electrons per unit cell, nelect.
Then, if iscf is positive, the code adds up the band occupancies (given in array occ) for all bands at each k point, then multiplies by the k point weight wtk at each k point. Call this sum "nelect_occ" (for the number of electrons from occupation numbers). It is then required that:
nelect_occ = nelect
To treat a neutral system, which is desired in nearly all cases, one must use charge=0. To treat a system missing one electron per unit cell, set charge=+1.




Go to the top | Complete list of input variables
chkexit
Mnemonics: CHecK whether the user want to EXIT
Characteristic:
Variable type: integer parameter
Default is 2 for sequential version of ABINIT, 1 for parallel version of ABINIT.

If chkexit is 1 or 2, ABINIT will check whether the user wants to interrupt the run (using the keyword "exit" on the top of the input file or creating a file named "abinit.exit": see the end of section 3.2 of abinis_help).

If chkexit=0, the check is not performed at all

If chkexit=1, the check is not performed frequently (after each SCF step)

If chkexit=2, the check is performed frequently (after a few bands, at each k point)



Go to the top | Complete list of input variables


chkprim
Mnemonics: CHecK whether the cell is PRIMitive
Characteristic: SYMMETRY FINDER
Variable type: integer parameter
Default is 1.

If the symmetry finder is used (see nsym), a non-zero value of chkprim will make the code stop if a non-primitive cell is used. If chkprim=0, a warning is issued, but the run does not stop.

If you are generating the atomic and cell geometry using spgroup, you might generate a PRIMITIVE cell using brvlatt=-1 .



Go to the top | Complete list of input variables


cpus, cpum, cpuh

Mnemonics: CPU time limit in: Seconds, Minutes, Hours
Characteristic: NO MULTI ; for cpum and cpuh : NO INTERNAL
Variable type: real parameters
Default is 0.0d0.

One of these three real parameters can be defined in the input file, to set up a CPU time limit. When the job reaches that limit, it will try to end smoothly. However, note that this might still take some time. If the user want a firm CPU time limit, the present parameter must be reduced sufficiently. Intuition about the actual margin to be taken into account should come with experience ...
Note that only one of these three parameters can be defined in a single input file. A zero value has no action of the job.
Internally, only cpus is used in the dtset array: adequate conversion factors are used to generate it from cpum or cpuh.




Go to the top | Complete list of input variables
diecut
Mnemonics: DIelectric matrix Energy CUToff
Characteristic: DEVELOP, ENERGY
Variable type: real parameter
Default diecut is 2.2d0 Ha.

Kinetic energy cutoff that controls the number of planewaves used to represent the dielectric matrix:
(1/2)[(2 Pi)*(Gmax)]2=ecut for Gmax.
Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. (1 Ha=27.2113961 eV)
All planewaves inside this "basis sphere" centered at G=0 are included in the basis. This is useful only when iprcel>=21, which means that a preconditioning scheme based on the dielectric matrix is used.
NOTE : a negative diecut will define the same dielectric basis sphere as the corresponding positive value, but the FFT grid will be identical to the one used for the wavefunctions. The much smaller FFT grid, used when diecut is positive, gives exactly the same results.
No meaning for RF calculations yet.




Go to the top | Complete list of input variables
diegap

Mnemonics: DIelectric matrix GAP
Characteristic: DEVELOP, ENERGY
Variable type: real parameter
Default diegap is 0.1 Ha.

Gives a rough estimation of the dielectric gap between the highest energy level computed in the run, and the set of bands not represented. Used to extrapolate dielectric matrix when iprcel >= 21.
Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. (1 Ha=27.2113961 eV)
No meaning for RF calculations yet.




Go to the top | Complete list of input variables
dielam

Mnemonics: DIelectric matrix LAMbda
Characteristic: DEVELOP
Variable type: real parameter between 0 and 1
Default dielam is 0.5 .

Gives the amount of occupied states with mean energy given by the highest level computed in the run, included in the extrapolation of the dielectric matrix. Used when iprcel >= 21.
No meaning for RF calculations yet.




Go to the top | Complete list of input variables
dielng
Mnemonics: model DIElectric screening LeNGth
Characteristic:
Variable type: real parameter
Default is 1.0774841d0 (bohr), for historical reasons.

Used for screening length (in bohr) of the model dielectric function, diagonal in reciprocal space. By default, given in bohr atomic units (1 bohr=0.5291772083 Angstroms), although Angstrom can be specified, if preferred, since dielng has the 'LENGTH' characteristics.
This model dielectric function is as follows :
             (     1        + dielng2 * K2 )  
diel(K)= --------------------------------------------
             ( 1/diemac + dielng2 * K2 ) * diemix
The inverse of this model dielectric function will be applied to the residual, to give the preconditioned change of potential. Right at K=0, diel(K) is imposed to be 1.

If the preconditioning were perfect, the change of potential would lead to an exceedingly fast solution of the self-consistency problem (two or three steps). The present model dielectric function is excellent for rather homogeneous unit cells.
When K->0 , it tends to the macroscopic dielectric constant, eventually divided by the mixing factor diemix.
For metals, simply put diemac to a very large value (10^6 is OK)
The screening length dielng governs the length scale to go from the macroscopic regime to the microscopic regime, where it is known that the dielectric function should tend to 1. It is on the order of 1 bohr for metals with medium density of states at the Fermi level, like Molybdenum, and for Silicon. For metals with a larger DOS at the Fermi level (like Iron), the screening will be more effective, so that dielng has to be decreased by a factor of 2-4.
This works for GS and RF calculation.




Go to the top | Complete list of input variables


diemac
Mnemonics: model DIElectric MACroscopic constant
Characteristic:
Variable type: real parameter
Default is 106 (metallic damping).

A rough knowledge of the macroscopic dielectric constant diemac of the system is a useful help to speed-up the SCF procedure: a model dielectric function, see the keyword dielng, is used for that purpose. It is especially useful for speeding up the treatment of rather homogeneous unit cells.

Some hint :
The value of diemac should usually be bigger than 1.0d0, on physical grounds.
For metals, simply put diemac to a very large value (the default 106 is OK)
For silicon, use 12.0 . A similar value is likely to work well for other semiconductors
For wider gap insulators, use 2.0 ... 4.0
For molecules in an otherwise empty big box, try 1.5 ... 3.0
Systems that combine a highly polarisable part and some vacuum are rather badly treated by the present version of ABINIT. You have to experiment a bit to find the best diemac. If you let diemac to its default value, you might even never obtain the self-consistent convergence !
For response function calculations, use the same values as for GS. The improvement in speed can be considerable for small (but non-zero) values of the wavevector.




Go to the top | Complete list of input variables


diemix
Mnemonics: model DIElectric MIXing factor
Characteristic:
Variable type: real parameter
Default is 1.0 .

Gives overall factor of the preconditioned residual potential to be transferred in the SCF cycle.
It should be between 0.0 and 1.0 .
If the model dielectric function were perfect, diemix should be 1.0 . By contrast, if the model dielectric function does nothing (when diemac=1.0d0 or dielng is larger than the size of the cell), diemix can be used to damp the amplifying factor inherent to the SCF loop.
For molecules, a value on the order 0.5 or 0.33 is rather usual.
When iscf=3 or iscf=5, diemix is only important at the few first iterations when anharmonic effects are important, since these schemes compute their own mixing factor for self-consistency.




Go to the top | Complete list of input variables
dosdeltae
Mnemonics: DOS Delta in Energy
Characteristic: ENERGY
Variable type: real parameter
Default is 0.0 .

Defines the linear grid resolution (energy increment) to be used for the computation of the Density-Of-States, when prtdos is non-zero.
If dosdeltae is set to zero (the default value), the actual increment is 0.001 Ha if prtdos=1, and the much smaller value 0.00005 Ha if prtdos=2. This different default value arises because the prtdos=1 case, based on a smearing technique, gives a quite smooth DOS, while the DOS from the tetrahedron method, prtdos=2, is rapidly varying.




Go to the top | Complete list of input variables
efield
Mnemonics: Electric FIELD
Characteristic:
Variable type: real array efield(3)
Default is 3*0.0 .

In case berryopt=4, a finite electric field calculation is performed. The value of this electric field, and its direction is determined by efield. It must be given in atomic units (1 a.u. of electric field= 514220624373.482 V/m, see note below), in cartesian coordinates.

References for the calculation under electric field (based on multi k point Berry phase) :

See also Umari, Pasquarello, PRL 90, 027401 (2003).

The atomic unit of electric field strength is : e_Cb/(4 pi eps0 a0**2), where e_Cb is the electronic charge in Coulomb (1.602176462e-19), eps0 is the electric constant (8.854187817d-12 F/m), and a0 is the Bohr radius in meter (0.5291772083e-10).


Go to the top | Complete list of input variables


enunit
Mnemonics: ENergy UNITs
Characteristic:
Variable type: integer parameter
Default is 0 (eigenvalues in hartree and phonon frequencies in hartree and cm-1).

Governs the units to be used for output of eigenvalues (and eventual phonon frequencies) If phonon frequencies are to computed :



Go to the top | Complete list of input variables
fband
Mnemonics: Factor for the number of BANDs
Characteristic: NO INTERNAL
Variable type: real parameter, positive or zero
Default is 0.125 in case occopt==1 (insulating case) and 0.500 for other values of occopt (metallic case). Not used in case occopt==0 or 2.

Governs the number of bands to be used in the code in the case the parameter nband is not defined in the input file (which means that occopt is not equal to 0 or 2).

In case fband is 0.0d0, the code computes from the pseudopotential files and the geometry data contained in the input file, the number of electrons present in the system. Then, it computes the minimum number of bands that can accomodate them, and use that value for nband.
In case fband differs from zero, other bands will be added, just larger than fband times the number of atoms. This parameter is not echoed in the top of the main output file, but only the parameter nband that it allowed to compute. It is also not present in the dtset array (no internal).
The default values are chosen such as to give naturally some conduction bands. This improves the robustness of the code, since this allows to identify lack of convergence coming from (near-)degeneracies at the Fermi level. In the metallic case, the number of bands generated might be too small if the smearing factor is large. The occupation numbers of the higher bands should be small enough such as to neglect higher bands. It is difficult to automate this, so a fixed default value has been chosen.




Go to the top | Complete list of input variables


fixmom
Mnemonics: FIX the magnetic MOMent
Characteristic:
Variable type: real parameter
Default is -99.99d0

This input variable is active only in the nsppol=2 case. If fixmom is not the "magic" value of -99.99d0, the magnetic moment of the system will be fixed to the value of fixmom. Otherwise, the magnetic moment will be determined self-consistently, by having the same spin up and spin down Fermi energy.

Note : for the time being, only the spin down Fermi energy is written out in the main output file. In the fixed magnetic moment case, it differs from the spin up Fermi energy.



Go to the top | Complete list of input variables


iatsph
Mnemonics: Index for the ATomic SPHeres of the atom-projected density-of-states
Characteristic:
Variable type: integer array iatsph(1:natsph)
Default is 1, 2, ... natsph

This input variable is active only in the prtdos=3 case.
It gives the number of the natsph atoms around which the sphere for atom-projected density-of-states will be build, in the prtdos=3 case. The radius of these spheres is given by ratsph.




Go to the top | Complete list of input variables
iprcel
Mnemonics: Integer for PReConditioning of ELectron response
Characteristic:
Variable type: integer parameter
Default is 0.

Used when iscf>0, to define the SCF preconditioning scheme. Potential-based preconditioning schemes for the SCF loop (electronic part) are STILL UNDER DEVELOPMENT. The present parameter (electronic part) describe the way the change of potential is derived from the residual.
The possible values of iprcel correspond to : The step at which the dielectric matrix is computed or recomputed is determined by modulo(iprcel,10).
For non-homogeneous cells, relatively large, iprcel=45 will likely give a large improvement over iprcel=0.
For nsppol=2 with metallic occopt, only iprcel=0 is allowed.
No meaning for RF calculations yet.




Go to the top | Complete list of input variables
kberry
Mnemonics: K wavevectors for BERRY phase computation
Characteristic:
Variable type: integer array kberry(3,nberry)
Default is an array of 0

Used for non-zero values of berryopt.

This array defines, for each Berry phase calculation (the number of such calculations is defined by nberry), the difference of wavevector between k points for which the overlap matrix must be computed. The polarisation vector will be projected on the direction of that wavevector, and the result of the computation will be the magnitude of this projection. Doing more than one wavevector, with different independent direction, allows to find the full polarisation vector. However, note that converged results need oriented grids, denser along the difference wavevector than usual Monkhorst-Pack grids.

The difference of wavevector is computed in the coordinate system defined by the k-points grid (see ngkpt and kptrlatt), so that the values of kberry are integers. Of course, such a k point grid must exist, and all the corresponding wavefunctions must be available, so that the computation is allowed only when kptopt is equal to 3. In order to save computing time, it is suggested to make a preliminary calculation of the wavefunctions on the irreducible part of the grid, with kptopt equal to 1, and then use these converged wavefunctions in the entire Brillouin zone, by reading them to initialize the kptopt=3 computation.



Go to the top | Complete list of input variables


kptbounds
Mnemonics: K PoinTs BOUNDarieS
Characteristic: NOT INTERNAL
Variable type: real array kptbounds(3,abs(kptopt)+1)
No Default

It is used to generate the circuit to be followed by the band structure, when kptopt is negative (it is not read if kptopt is zero or positive).

There are abs(kptopt) segments to be defined, each of which wich start from the end point of the preceeding one. Thus, the number of points to be input is abs(kptopt)+1. They form a circuit starting at kptbounds(1:3,1)/kptnrm and ending at kptbounds(1:3,abs(kptopt)+1)/kptnrm. The number of divisions of each segment is defined by ndivk.



Go to the top | Complete list of input variables


kptrlatt
Mnemonics: K - PoinTs grid : Real space LATTice
Characteristic:
Variable type: integer array kptrlatt(3,3)
No default.

This input variable is used only when kptopt is positive. It partially defines the k point grid. The other piece of information is contained in shiftk. kptrlatt cannot be used together with ngkpt.

The values kptrlatt(1:3,1), kptrlatt(1:3,2), kptrlatt(1:3,3) are the coordinates of three vectors in real space, expressed in the rprim coordinate system (reduced coordinates). They defines a super-lattice in real space. The k point lattice is the reciprocal of this super-lattice, eventually shifted (see shiftk).

If neither ngkpt nor kptrlatt are defined, ABINIT will automatically generate a set of k point grids, and select the best combination of kptrlatt and shiftk that allows to reach a sufficient value of kptrlen. See this latter variable for a complete description of this procedure.



Go to the top | Complete list of input variables


kptrlen
Mnemonics: K - PoinTs grid : Real space LENgth
Characteristic:
Variable type: real parameter
Default 20.0d0.

This input variable is used only when kptopt is positive and non-zero.

Preliminary explanation :
The k point lattice defined by ngkpt or kptrlatt is used to perform integrations of periodic quantities in the Brillouin Zone, like the density or the kinetic energy. One can relate the error made by replacing the continuous integral by a sum over k point lattice to the Fourier transform of the periodic quantity. Erroneous contributions will appear only for the vectors in real space that belong to the reciprocal of the k point lattice, except the origin. Moreover, the expected size of these contributions usually decreases exponentially with the distance. So, the length of the smallest of these real space vectors is a measure of the accuracy of the k point grid.

When either ngkpt or kptrlatt is defined, kptrlen is not used as an input variable, but the length of the smallest vector will be placed in this variable, and echoed in the output file.

On the other hand, when neither ngkpt nor kptrlatt are defined, ABINIT will automatically generate a large set of possible k point grids, and select among this set, the grids that give a length of smallest vector LARGER than kptrlen, and among these grids, the one that, when used with kptopt=1, reduces to the smallest number of k points. Note that this procedure can be time-consuming. It is worth to do it once for a given unit cell and set of symmetries, but not use this procedure by default. The best is then to set prtkpt=1, in order to get a detailed analysis of the set of grids.

If some layer of vacuum is detected in the unit cell (see the input variable vacuum), the computation of kptrlen will ignore the dimension related to the direction perpendicular to the vacuum layer, and generate a bi-dimensional k point grid. If the system is confined in a tube, a one-dimensional k point grid will be generated. For a cluster, this procedure will only generate the Gamma point.



Go to the top | Complete list of input variables


mixalch
Mnemonics: MIXing coefficients for ALCHemical potentials
Characteristic:
Variable type: integer array mixalch(npspalch,ntypalch)
Default is 0.d0 (will not accepted !)

Used for the generation of alchemical pseudoatoms, that is, when ntypalch is non-zero.

This array gives, for each type of alchemical pseudatom (there are ntypalch such pseudoatoms), the mixing coefficients of the basic npspalch pseudopotentials for alchemical use. For each type of alchemical pseudoatom, the sum of the mixing coefficients must equal 1.

The actual use of the mixing coefficients is defined by the input variable algalch.

Example 1. Suppose that we want to describe Ba(0.25) Sr(0.75) Ti O3.
The input variables related to the construction of the alchemical Ba(0.25) Sr(0.75) potential will be :

npsp   4                 ! 4 pseudopotentials should be read.
znucl  8 40 56 38        ! The nuclear charges. Note that the two
                         ! atoms whose pseudopotentials are to be mixed
                         ! are mentioned at the end of the series.
ntypat  3                ! There will be three types of atoms.
ntypalch   1             ! One pseudoatom will be alchemical.
                         ! Hence, there will be ntyppure=2 pure pseudoatoms,
                         ! with znucl 8 (O) and 40 (Ti), corresponding to 
                         ! the two first pseudopotentials. Out of the
                         ! four pseudopotentials, npspalch=2 are left
                         ! for alchemical purposes, with znucl 56 (Ba) 
                         ! and 38 (Sr).
mixalch    0.25  0.75    ! For that unique pseudoatom to be
                         ! generated, here are the mixing coeeficients,
                         ! to be used to combine the Ba and Sr pseudopotentials.

Example 2. More complicated, and illustrate some minor drawback of the design of input variables. Suppose that one wants to generate Al(0.25)Ga(0.75) As(0.10)Sb(0.90).
The input variables will be :

npsp  4                  ! 4 pseudopotentials should be read
znucl  13 31 33 51       ! The atomic numbers. All pseudopotentials
                         ! will be used for some alchemical purpose
ntypat  2                ! There will be two types of atoms.
ntypalch   2             ! None of the atoms will be "pure".
                         ! Hence, there will be npspalch=4 pseudopotentials
                         !  to be used for alchemical purposes.
mixalch    0.25  0.75 0.0  0.0   ! This array is a (4,2) array, arranged in the
           0.0   0.0  0.1  0.9   ! usual Fortran order.
Minor drawback : one should not forget to fill mixalch with the needed zero's, in this later case.




Go to the top | Complete list of input variables
natsph
Mnemonics: Number of ATomic SPHeres for the atom-projected density-of-states
Characteristic:
Variable type: integer parameter
Default is natom

This input variable is active only in the prtdos=3 case.
It gives the number of atoms around which the sphere for atom-projected density-of-states will be build, in the prtdos=3 case. The indices of these atoms is given by iatsph. The radius of these spheres is given by ratsph.




Go to the top | Complete list of input variables
nbdbuf
Mnemonics: Number of BanDs for the BUFfer
Characteristic:
Variable type: integer parameter
Default 0. However, the default is changed to 2 in some cases, see later.

nbdbuf gives the number of bands, the highest in energy, that, among the nband bands, are to be considered as part of a buffer. This concept is useful in two situations: in non-self-consistent calculations, for the determination of the convergence tolerance ; for response functions of metals, to avoid instabilities.

In non-self-consistent GS calculations (iscf<0), the highest levels might be difficult to converge, if they are degenerate with another level, that does not belong to the set of bands treated. Then, it might take extremely long to reach tolwfr, although the other bands are already extremely well-converged, and the energy of the highest bands (whose residual are not yet good enough), is also rather well converged.
In response to this problem, for non-zero nbdbuf, the largest residual (residm), to be later compared with tolwfr, will be computed only in the set of non-buffer bands (this modification applies for non-self-consistent as well as self-consistent calculation, for GS as well as RF calculations).
For a GS calculation, with iscf<0, supposing nbdbuf is not initialized in the input file, then ABINIT will overcome the default nbdbuf value, and automatically set nbdbuf to 2.

In metallic RF calculations, in the conjugate gradient optimisation of first-order wavefunctions, there is an instability situation when the q wavevector of the perturbation brings the eigenenergy of the highest treated band at some k point higher than the lowest untreated eigenenergy at some k+q point. If one accept a buffer of frozen states, this instability can be made to disappear. Frozen states receive automatically a residual value of -0.1d0.
For a RF calculation, with 3<=occopt<=7, supposing nbdbuf is not initialized in the input file, then ABINIT will overcome the default nbdbuf value, and automatically set nbdbuf to 2. This value might be too low in some cases.

Also, the number of active bands, in all cases, is imposed to be at least 1, irrespective of the value of nbdbuf.



Go to the top | Complete list of input variables


nberry
Mnemonics: Number of BERRY phase computations
Characteristic:
Variable type: integer nberry
Default is 1

Used for non-zero values of berryopt.

Gives the number of Berry phase computations of polarisation, or finite-difference estimations of the derivative of wavefunctions with respect to the wavevector, each of which might be characterized by a different change of wavevector kberry.

When equal to 0, no Berry phase calculation of polarisation is performed. The maximal value of nberry is 20.

Note that the computation of the polarisation for a set of bands having different occupation numbers is meaningless (although in the case of spin-polarized calculations, the spin up bands might have an identical occupation number, that might differ from the identical occupation number of spin down bands). Although meaningless, ABINIT will perform such computation, if required by the user. The input variable bdberry governs the set of bands for which a Berry phase is computed.

The computation of the Berry phase is not yet implemented for spinor wavefunctions (nspinor=2). Moreover, it is not yet implemented in the parallel version of ABINIT.



Go to the top | Complete list of input variables


ndivk
Mnemonics: Number of DIVisions of K lines
Characteristic: NOT INTERNAL
Variable type: integer array ndivk(abs(kptopt))
No default.

Gives the number of divisions of each of the segments of the band structure, whose path is determined by kptopt and kptbounds. This is only needed when kptopt is negative. In this case, the absolute value of kptopt is the number of such segments.

For example, suppose that the number of segment is just one (kptopt=-1), a value ndivk=4 will lead to the computation of points with relative coordinates 0.0, 0.25, 0.5, 0.75 and 1.0 , along the segment in consideration.

Now, suppose that there are two segments (kptopt=-2), with ndivk(1)=4 and ndivk(2)=2, the computation of the eigenvalues will be done at 7 points, 5 belonging to the first segment, with relative coordinates 0.0, 0.25, 0.5, 0.75 and 1.0, the last one being also the starting point of the next segment, for which two other points must be computed, with relative coordinates 0.5 and 1.0 .

It is easy to compute disconnected circuits (non-chained segments), by separating the circuits with the value ndivk=1 for the intermediate segment connecting the end of one circuit with the beginning of the next one (in which case no intermediate point is computed along this segment).



Go to the top | Complete list of input variables


ngfft
Mnemonics: Number of Grid points for Fast Fourier Transform
Characteristic:
Variable type: integer array ngfft(3)
Default is 0 0 0 (so, automatic selection of optimal values)

gives the size of fast fourier transform (fft) grid in three dimensions. Each number must be composed of the factors 2, 3, and 5 to be consistent with the radices available in our fft. If no ngfft is provided or if ngfft is set to 0 0 0, the code will automatically provide an optimal set of ngfft values, based on acell, rprim and ecut. This is the recommended procedure, of course.
The total number of FFT points is the product:
ngfft(1)*ngfft(2)*ngfft(3)=nfft .
When ngfft is made smaller than recommended values, the code runs faster and the equations in effect are approximated by a low pass fourier filter. The code reports to standard output (unit 06) a parameter "boxcut" which is the smallest ratio of the fft box side to the G vector basis sphere diameter. When boxcut is less than 2 the fourier filter approximation is being used. When boxcut gets less than about 1.5 the approximation may be too severe for realistic results and should be tested against larger values of ngfft. When boxcut is larger than 2, ngfft could be reduced without loss of accuracy. In this case, the small variations that are observed are solely due to the xc quadrature, that may be handled with intxc=1 to even reduce this effect.

Internally, ngfft is an array of size 18. The present components are stored in ngfft(1:3), while


The number of points stored by this processor in real space is n1*n2*n3proc, while in reciprocal space, it is n1*n2proc*n3.




Go to the top | Complete list of input variables
nline
Mnemonics: Number of LINE minimisations
Characteristic:
Variable type: integer parameter
Default is 4.

Gives maximum number of line minimizations allowed in preconditioned conjugate gradient minimization for each band. The Default, 4, is fine.
Special cases, with degeneracies or near-degeneracies of levels at the Fermi energy may require a larger value of nline (5 or 6 ?) Line minimizations will be stopped anyway when improvement gets small. With the input variable nnsclo, governs the convergence of the wavefunctions for fixed potential.
Note that nline=0 can be used to diagonalize the Hamiltonian matrix in the subspace spanned by the input wavefunctions.




Go to the top | Complete list of input variables
npsp
Mnemonics: Number PSeudoPotentials
Characteristic: NO MULTI
Variable type: integer parameter
Default is ntypat

Usually, the number of pseudopotentials to be read is equal to the number of type of atoms. However, in the case an alchemical mixing of pseudopotential is to be used, often the number of pseudopotentials to be read will not equal the number of types of atoms.

Alchemical pseudopotentials will be present when ntypalch is non-zero. See ntypalch to understand how to use alchemical potentials in ABINIT. The input variables ntypalch, algalch,mixalch) are active, and generate alchemical potentials from the available pseudopotentials. Also, the inner variables ntyppure,npspalch) becomes active. See these input variables, especially mixalch, to understand how to use alchemical potentials in ABINIT.



Go to the top | Complete list of input variables


npspalch
Mnemonics: Number of PSeudoPotentials that are "ALCHemical"
Characteristic: Inner
Variable type: integer parameter, non-negative

npspalch=npsp-ntyppure



Go to the top | Complete list of input variables


nqpt
Mnemonics: Number of Q - POINTs
Characteristic:
Variable type: integer parameter
Default is 0.

Determines whether one q point must be read (See the variables qpt and qptnrm).
Can be either 0 or 1.
If 1 and used in ground-state calculation, a global shift of all the k-points is applied, to give calculation at k+q. In this case, the output wavefunction will be appended by _WFQ instead of _WFK (see the section 4 of abinis_help) Also, if 1 and a RF calculation is done, defines the wavevector of the perturbation.




Go to the top | Complete list of input variables
nspden
Mnemonics: Number of SPin-DENsity components
Characteristic: DEVELOP
Variable type: integer parameter
The Default is the value of nsppol.

If nspden=1, no spin-magnetisation : the density matrix is diagonal, with same values spin-up and spin-down (compatible with nsppol=1 only, for both nspinor=1 or 2)

If nspden=2, scalar magnetization (the axis is arbitrarily fixed in the z direction) : the density matrix is diagonal, with different values for spin-up and spin-down (compatible with nspinor=1, either with nsppol=2 -general collinear magnetisation- or nsppol=1 -antiferromagnetism)

If nspden=4, vector magnetization : the density matrix is full, with allowed x, y and z magnetisation (useful only with nspinor=2 and nsppol=1, either because there is spin-orbit without time-reversal symmetry - and thus spontaneous magnetization, or with spin-orbit, if one allows for spontaneous non-collinear magnetism). Not yet available for forces, stresses, response functions.

The default (nspden=nsppol) does not suit the case of vector magnetization.



Go to the top | Complete list of input variables


nspinor
Mnemonics: Number of SPINORial components of the wavefunctions
Characteristic: DEVELOP
Variable type: integer parameter
The Default is 1.

If nspinor=1, usual case : scalar wavefunction (compatible with (nsppol=1, nspden=1) as well as (nsppol=2, nspden=2) )

If nspinor=2, the wavefunction is a spinor (compatible with nsppol=1, with nspden=1 or 4, but not with nsppol=2)

When nspinor is 2, the values of istwfk are automatically set to 1. Also, the number of bands, for each k-point, should be even.



Go to the top | Complete list of input variables


ntypalch
Mnemonics: Number of TYPe of atoms that are "ALCHemical"
Characteristic:
Variable type: integer parameter
The default is 0

Used for the generation of alchemical pseudopotentials : when ntypalch is non-zero, alchemical mixing will be used.

Among the ntypat types of atoms, the last ntypalch will be "alchemical" pseudoatoms, while only the first ntyppure will be uniquely associated with a pseudopotential (the ntyppure first of these, actually). The ntypalch types of alchemical pseudoatoms are to be made from the remaining npspalch pseudopotentials.

In this case, the input variables algalch,mixalch are active, and generate alchemical potentials from the available pseudopotentials. See these input variables, especially mixalch, to understand how to use alchemical potentials in ABINIT.



Go to the top | Complete list of input variables


ntyppure
Mnemonics: Number of TYPe of atoms that are "PURe"
Characteristic: Inner
Variable type: integer parameter, non-negative

ntyppure=ntypat-ntypalch



Go to the top | Complete list of input variables


occ
Mnemonics: OCCupation numbers
Characteristic: EVOLVING
Variable type: real array occ(nband)
Default : occ is set to 0's.

Gives occupation numbers for all bands in the problem. Needed if occopt==0 or occopt==2. Ignored otherwise. Also ignored when iscf=-2.
Typical band occupancy is either 2 or 0, but can be 1 for half-occupied band or other choices in special circumstances.
If occopt is not 2, then the occupancies must be the same for each k point.
If occopt=2, then the band occupancies must be provided explicitly for each band, EACH k POINT, and EACH SPIN-POLARIZATION, in an array which runs over all bands, k points, and spin-polarizations.
The order of entries in the array would correspond to all bands at the first k point (spin up), then all bands at the second k point (spin up), etc, then all k-points spin down.
The total number of array elements which must be provided is
( nband(1)+nband(2)+...+ nband(nkpt) ) * nsppol .
The occupation numbers evolve only for metallic occupations, that is, occopt>=3 .




Go to the top | Complete list of input variables
optdriver
Mnemonics: OPTions for the DRIVER
Characteristic:
Variable type: integer parameter
The Default is optdriver=0

For each dataset, choose the task to be done, at the level of the "driver" routine.

The choice is between :
optdriver=0 : ground-state calculation (GS), routine "gstate"
optdriver=1 : response-function calculation (RF), routine "respfn"
optdriver=2 : susceptibility calculation (SUS), routine "suscep"
optdriver=3 : susceptibility and dielectric matrix calculation (CHI), routine "screening"
(see the input variables ecutwfn, ecuteps, plasfrq, getkss, as well as nbandkss and nband)
optdriver=4 : self-energy calculation (SIG), routine "sigma"
optdriver=5 : non-linear response functions, using the 2n+1 theorem, routine "nonlinear"

If one of rfphon, rfelfd, or rfstrs is non-zero, while optdriver is not defined in the input file, ABINIT will set optdriver to 1 automatically. These input variables (rfphon, rfelfd, and rfstrs) must be zero if optdriver is not set to 1.



Go to the top | Complete list of input variables


so_typat
Mnemonics: Spin-Orbit: TYPe of each pseudo-ATom
pspso (obsolete)
Mnemonics: PSeudoPotential: treatment of Spin-Orbit interaction
Characteristic:
Variable type: integer array so_typat(ntypat)
Default is ntypat*1

For each type of atom (each pseudopotential), specify the spin-orbit interaction.
If 1 : no spin-orbit interaction, even if nspinor=2
If 2 : treat spin-orbit in the HGH form (not allowed for all pseudopotentials)
If 3 : treat spin-orbit in the HFN form (not allowed for all pseudopotentials)

Also, so_typat=0 default to 1, 2, or 3 according to the data contained in the pseudopotential file (1= there is no spin-orbit information in the psp file; 2= the spin-orbit information is of the HGH form; 3= the spin-orbit information is of the HFN form )



Go to the top | Complete list of input variables


qpt
Mnemonics: Q PoinT
Characteristic:
Variable type: real array of 3 elements
Default wavevector is 0 0 0.

Define a q vector.
See qptnrm for extra normalization.
In ground-state calculation, if nqpt is 1, the vector qptn(1:3)= qpt(1:3)/qptnrm is added to each renormalized k point kpt(1:3)/kptnrm to generate the normalized, shifted, set of k-points kptns(1:3,1:nkpt).
In response-function calculations, qptn(1:3)= qpt(1:3)/qptnrm is the wavevector of the phonon-type calculation.
For insulators, there is no restriction on the q-points to be used for the perturbations. By contrast, for metals, for the time being, it is adviced to take q points for which the k and k+q grids are the same (when the periodicity in reciprocal space is taken into account).
Tests remains to be done to see whether other q points might be allowed (perhaps with some modification of the code).




Go to the top | Complete list of input variables
qptnrm
Mnemonics: Q PoinTs NoRMalization
Characteristic:
Variable type: real parameter
Default is 1.0

Provides re-normalization of qpt. Must be positive, non-zero. The actual q vector (renormalized) is qptn(1:3)= qpt(1:3)/qptnrm.



Go to the top | Complete list of input variables
ratsph
Mnemonics: Radius of the ATomic SPHere
Characteristic:
Variable type: real parameter
Default is 2.0 Bohr

Active only in the prtdos=3 case, for the time being. Provides the radius of the spheres around the natsph atoms of indices iatsph, in which the local DOS and its angular-momentum projections will be analysed.
Note that, as presently implemented, the SAME radius is used for all the atoms. So, one might have to perform different calculations to obtain the set of relevant DOS, each corresponding to one atom type, for each of which a different radius might be used.
NOTE : The choice of this radius is quite arbitrary. In a plane-wave basis set, there is no natural definition of an atomic sphere. However, it might be wise to use the following well-defined and physically motivated procedure (in version 4.2, this procedure is NOT implemented, unfortunately) : from the Bader analysis, one can define the radius of the sphere that contains the same charge as the Bader volume. This "Equivalent Bader charge atomic radius" might then be used to perform the present analysis. See the AIM (Bader) help file for more explanations. Another physically motivated choice would be to rely on another charge partitioning, like the Hirshfeld one (see the cut3d utility). The advantage of using charge partitioning schemes comes from the fact that the sum of atomic DOS, for all angular momenta and atoms, integrated on the energy range of the occupied states, gives back the total charge. If this is not an issue, one could rely on the half of the nearest-neighbour distances, or any scheme that allows to define an atomic radius. Note that the choice of this radius is however critical for the balance between the s, p and d components. Indeed, the integrated charge within a given radius, behave as a different power of the radius, for the different channels s, p, d. At the limit of very small radii, the s component dominates the charge contained in the sphere ...




Go to the top | Complete list of input variables
spinat
Mnemonics: SPIN for AToms
Characteristic:
Variable type: real array spinat(3,natom) or spinat(3,natrd) if the symmetriser is used
Default is 0.0d0.

Gives the initial electronic spin-magnetisation for each atom, in unit of h-bar/2.

Note that if nspden=2, the z-component must be given for each atom, in triplets (0 0 z-component).
For example, the electron of an hydrogen atom can be spin up (0 0 1.0) or spin down (0 0 -1.0).

This value is only used to create the first exchange and correlation potential, and is not used anymore afterwards.
It is not checked against the initial occupation numbers occ for each spin channel.
It is meant to give an easy way to break the spin symmetry, and to allow to find stable local spin fluctuations, for example : antiferromagnetism, or the spontaneous spatial spin separation of elongated H2 molecule.
If the geometry builder is used, spinat will be related to the preprocessed set of atoms, generated by the geometry builder. The user must thus foresee the effect of this geometry builder (see objarf).
If the geometry builder is not used, and the symmetries are not specified by the user (nsym=0), spinat will be used, if present, to determine the anti-ferromagnetic characteristics of the symmetry operations, see symafm
If the symmetries are specified, and the irreducible set of atoms is specified, the anti-ferromagnetic characteristics of the symmetry operations symafm will be used to generate spinat for all the non-irreducible atoms.




Go to the top | Complete list of input variables


stmbias
Mnemonics: Scanning Tunneling Microscopy BIAS voltage
Characteristic: ENERGY
Variable type: real parameter
Default is 0.00

Gives, in Hartree, the bias of the STM tip, with respect to the sample, in order to generate the STM density map.
Used with positive iscf, occopt=7 (metallic, gaussian), nstep=1 , and positive prtstm, this value is used to generate a charge density map from electrons close to the Fermi energy, in a (positive or negative) energy range. Positive stmbias will lead to the inclusion of occupied (valence) states only, while negative stmbias will lead to the inclusion of unoccupied (conduction) states only.
Can be specified in Ha (the default), Ry, eV or Kelvin, since stmbias has the 'ENERGY' characteristics. 0.001 Ha = 27.2113961 meV = 315.773 Kelvin . With occopt=7, one has also to specify an independent broadening tsmear.




Go to the top | Complete list of input variables
symafm
Mnemonics: SYMmetries, Anti-FerroMagnetic characteristics
Characteristic:
Variable type: integer array symafm(nsym)
Default is nsym*1.

In case the material is magnetic (well, this is only interesting in the case of antiferromagnetism), additional symmetries might appear, that change the sign of the magnetisation. They have been introduced by Shubnikov (1951). They can be used by ABINIT to decrease the CPU time, by using them to decrease the number of k-points.
symafm should be set to +1 for all the usual symmetry operations, that do not change the sign of the magnetisation, while it should be set to -1 for the magnetisation-changing symmetries.
If the symmetry operations are not specified by the user in the input file, that is, if nsym=0, then ABINIT will use the values of spinat to determine the content of symafm.




Go to the top | Complete list of input variables
timopt
Mnemonics: TIMing OPTion
Characteristic: NO MULTI, DEVELOP
Variable type: integer parameter
Default is 1 for sequential code, 2 for parallel code.

This input variable allows to modulate the use of the timing routines.

If 0 => as soon as possible, suppresses all calls to timing routines
If 1 => usual timing behaviour, with short analysis, appropriate for sequential execution
If 2 => close to timopt=1, except that the analysis routine does not time the timer, appropriate for parallel execution.
If -1 => a full analysis of timings is delivered
If -2 => a full analysis of timings is delivered, except timing the timer




Go to the top | Complete list of input variables


tphysel
Mnemonics: Temperature (PHYSical) of the ELectrons
Characteristic: ENERGY
Variable type: real parameter
Default is 0.00

Gives, in Hartree, the physical temperature of the system, in case occopt=4, 5, 6, or 7.
Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. 0.001 Ha = 27.2113961 meV = 315.773 Kelvin . One has to specify an independent broadening tsmear. The combination of the two parameters tphysel and tsmear is described in a paper by M. Verstraete and X. Gonze, Phys. Rev. B (2002). Note that the signification of the entropy is modified with respect to the usual entropy. The choice has been made to use tsmear as a prefactor of the entropy, to define the entropy contribution to the free energy.




Go to the top | Complete list of input variables
tsmear
Mnemonics: Temperature of SMEARing
Characteristic: ENERGY
Variable type: real parameter
Default is 0.04

Gives the broadening of occupation numbers occ, in the metallic cases (occopt=3, 4, 5, 6 and 7). Can be specified in Ha (the default), eV, Ry, or Kelvin, since tsmear has the 'ENERGY' characteristics. 0.001 Ha = 27.2113961 meV = 315.773 Kelvin
Default is 0.04 Ha. This should be OK for a free-electron metal like Al. For d-band metals, use 0.01 Ha.
Always check the convergence of the calculation with respect to this parameter, and simultaneously, with respect to the sampling of k-points (see nkpt)
If occopt=3, tsmear is the physical temperature, as the broadening is based on Fermi-Dirac statistics. However, if occopt=4, 5, 6, or 7, the broadening is not based on Fermi-Dirac statistics, and tsmear is only a convergence parameter. It is still possible to define a physical temperature, thanks to the input variable tphysel. See the paper by M. Verstraete and X. Gonze, Phys. Rev. B (2002).




Go to the top | Complete list of input variables
vacuum
Mnemonics: VACUUM identification
Characteristic: NOT INTERNAL
Variable type: integer array vacuum(3)
No Default

Establishes the presence (if 1) or absence (if 0) of a vacuum layer, along the three possible directions normal to the primitive axes.

This information might be used to generate k-point grids, if kptopt=0 and neither ngkpt nor kptrlatt are defined (see explanations with the input variable prtkpt).
It will allow to select a zero-, one-, two- or three-dimensional grid of k points. The coordinate of the k points along vacuum directions is automatically set to zero.

If vacuum is not defined, the input variable vacwidth will be used to determine automatically whether the distance between atoms is sufficient to have the presence or absence of vacuum.



Go to the top | Complete list of input variables


vacwidth
Mnemonics: VACuum WIDTH
Characteristic: LENGTH
Variable type: real parameter
Default value is 10.0

Give a minimum "projected" distance between atoms to be found in order to declare that there is some vacuum present for each of the three directions. By default, given in bohr atomic units (1 bohr=0.5291772083 Angstroms), although Angstrom can be specified, if preferred, since vacwidth has the 'LENGTH' characteristics.
The precise requirement is that a slab of width vacwidth, delimited by two planes of constant reduced coordinates in the investigated direction, must be empty of atoms.




Go to the top | Complete list of input variables
Goto : ABINIT home Page | Welcome | 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