ABINIT, basic input variables:

List and description.


This document lists and provides the description of the name (keywords) of the "basic" 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 "basic" variables.


A. acell   angdeg  
B.
C.
D.
E. ecut  
F.
G.
H.
I. iscf   ixc  
J. jdtset  
K. kpt   kptnrm   kptopt  
L.
M.
N. natom   nband   ndtset   ngkpt   nkpt   nshiftk   nsppol   nstep   nsym   ntypat  
O. occopt  
P.
Q.
R. rprim  
S. shiftk   symrel  
T. tnons   toldfe   toldff   tolvrs   tolwfr   typat  
U. udtset  
V.
W. wtk  
X. xangst   xcart   xred  
Y.
Z. znucl  




acell
Mnemonics: scAle CELL
Characteristic: EVOLVING, LENGTH
Variable type: real array acell(3)

Gives the length scales by which dimensionless primitive translations (in "rprim") are to be multiplied. By default, given in bohr atomic units (1 bohr=0.5291772083 Angstroms), although Angstrom can be specified, if preferred, since acell has the 'LENGTH' characteristics. See further description of acell related to the rprim input variable.



Go to the top | Complete list of input variables
angdeg
Mnemonics: ANGles in DEGrees
Characteristic:
Variable type: real array angdeg(3)
No Default (use rprim as Default).

Gives the angles between directions of primitive vectors of the unit cell (in degrees), as an alternative to the input array rprim . Will be used to set up rprim, that, together with the array acell, will be used to define the primitive vectors. If the three angles are equal within 1.0d-12 (except if they are exactly 90 degrees), the three primitive vectors are chosen so that the trigonal symmetry that exchange them is along the z cartesian axis :
R1=( a  ,           0,c)
R2=(-a/2, sqrt(3)/2*a,c)
R3=(-a/2,-sqrt(3)/2*a,c)
where a2+c2=1.0d0
If the angles are not all equal (or if they are all 90 degrees), one will have the following generic form : where each of the vectors is normalized, and form the desired angles with the others.




Go to the top | Complete list of input variables
ecut
Mnemonics: Energy CUToff
Characteristic: ENERGY
Variable type: real parameter

Used for kinetic energy cutoff which controls number of planewaves at given k point by:
(1/2)[(2 Pi)*(k+Gmax)]2=ecut for Gmax.
All planewaves inside this "basis sphere" centered at k are included in the basis (except if dilatmx is defined).
Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. (1 Ha=27.2113961 eV)
This is the single parameter which can have an enormous effect on the quality of a calculation; basically the larger ecut is, the better converged the calculation is. For fixed geometry, the total energy MUST always decrease as ecut is raised because of the variational nature of the problem.

Usually one runs at least several calculations at various ecut to investigate the convergence needed for reliable results.

For k-points whose coordinates are build from 0 or 1/2, the implementation of time-reversal symmetry that links coefficients of the wavefunctions in reciprocal space has been realized. See the input variable istwfk. If activated (which corresponds to the Default mode), this input variable istwfk will allow to divide the number of plane wave (npw) treated explicitly by a factor of two. Still, the final result should be identical with the 'full' set of plane waves.

See the input variable ecutsm, for the smoothing of the kinetic energy, needed to optimize unit cell parameters.



Go to the top | Complete list of input variables


iscf
Mnemonics: Integer for Self-Consistent-Field cycles
Characteristic:
Variable type: integer parameter
Default is 5.

Control the self-consistency.
Positive, non-zero values => this is the usual choice for doing the usual ground state (GS) calculations or for structural relaxation, where the potential has to be determined self-consistently. The choice between different algorithms for SCF is possible : The default option is iscf=5, which is a compromise between speed and reliability. The value iscf=3 is safer but sometimes slower.
Other (negative) options:




Go to the top | Complete list of input variables
ixc
Mnemonics: Integer for eXchange-Correlation choice
Characteristic:
Variable type: integer parameter
Default is ixc=1 (Teter parameterization). However, if all the pseudopotentials have the same value of pspxc, the initial value of ixc will be that common value.

Control the choice of exchange and correlation (xc).
Note that the choice made here should agree with the choice made in generating the original pseudopotential, except for ixc=0 (usually only used for debugging). A warning is issued if this is not the case. However, the choices ixc=1, 2, 3 and 7 are fits to the same data, from Ceperley-Alder, and are rather similar, at least for spin-unpolarized systems.
The choice between the LDA or the LSD is governed by the value of nsppol (see below).


NOTE : in the implementation of the spin-dependence of these functionals, and in order to avoid divergences in their derivatives, the interpolating function between spin-unpolarized and fully-spin-polarized function has been slightly modified, by including a zeta rescaled by 1.d0-1.d-6. This should affect total energy at the level of 1.d-6Ha, and should have an even smaller effect on differences of energies, or derivatives.
The value ixc=10 is used internally : gives the difference between ixc=7 and ixc=9, for use with an accurate RPA correlation energy.




Go to the top | Complete list of input variables


jdtset
Mnemonics: index -J- for DaTaSETs
Characteristic: NO MULTI
Variable type: integer array jdtset(ndtset)
Default : the series 1, 2, 3 ... ndtset .

Gives the dataset index of each of the datasets. This index will be used : The allowed index values are between 1 and 99.
An input variable name appended with 0 is not allowed.
When ndtset==0, this array is not used, and moreover, no input variable name appended with a digit is allowed. This array might be initialized thanks to the use of the input variable udtset. In this case, jdtset cannot be used.




Go to the top | Complete list of input variables
kpt
Mnemonics: K - PoinTs
Characteristic:
Variable type: real array kpt(3,nkpt)
Default is 0. 0. 0. (for just one k-point)

Contains the k points in terms of reciprocal space primitive translations (NOT in cartesian coordinates!).
Needed ONLY if kptopt=0, otherwise deduced from other input variables.

It contains dimensionless numbers in terms of which the cartesian coordinates would be:
k_cartesian = k1*G1+k2*G2+k3*G3
where (k1,k2,k3) represent the dimensionless "reduced coordinates" and G1, G2, G3 are the cartesian coordinates of the primitive translation vectors. G1,G2,G3 are related to the choice of direct space primitive translation vectors made in rprim. Note that an overall norm for the k points is supplied by kptnrm. This allows one to avoid supplying many digits for the k points to represent such points as (1,1,1)/3.
Note: one of the algorithms used to set up the sphere of G vectors for the basis needs components of k-points in the range [-1,1], so the remapping is easily done by adding or subtracting 1 from each component until it is in the range [-1,1]. That is, given the k point normalization kptnrm described below, each component must lie in [-kptnrm,kptnrm].
Not read if kptopt/=0 .




Go to the top | Complete list of input variables


kptnrm
Mnemonics: K - PoinTs NoRMalization
Characteristic:
Variable type: real parameter
Default is 1.

Establishes a normalizing denominator for each k point. Needed only if kptopt<=0, otherwise deduced from other input variables.
The k point coordinates as fractions of reciprocal lattice translations are therefore kpt(mu,ikpt)/kptnrm. kptnrm defaults to 1 and can be ignored by the user. It is introduced to avoid the need for many digits in representing numbers such as 1/3.
It cannot be smaller than 1.0d0




Go to the top | Complete list of input variables
kptopt
Mnemonics: KPoinTs OPTion
Characteristic:
Variable type: integer parameter
Default is 0 .

Control the set up of the k-points list. The aim will be to initialize, by straight reading or by a preprocessing approach based on other input variables, the following input variables, giving the k points, their number, and their weight: kpt, kptnrm, nkpt, and, for iscf/=-2, wtk.

Often, the k points will form a lattice in reciprocal space. In this case, one will also aim at initializing input variables that give the reciprocal of this k-point lattice, as well as its shift with respect to the origin: ngkpt or kptrlatt, as well as on nshiftk and shiftk.

In the case of a grid of k points, the auxiliary variables kptrlen, ngkpt and prtkpt might help you to select the optimal grid.




Go to the top | Complete list of input variables
natom
Mnemonics: Number of ATOMs
Characteristic:
Variable type: integer parameter
Default is 1

Gives the total number of atoms in the unit cell. Default is 1 but you will obviously want to input this value explicitly.
Note that natom refers to all atoms in the unit cell, not only to the irreducible set of atoms in the unit cell (using symmetry operations, this set allows to recover all atoms). If you want to specify only the irreducible set of atoms, use the symmetriser, see the input variable natrd.




Go to the top | Complete list of input variables
nband
Mnemonics: Number of BANDs
Characteristic:
Variable type: integer parameter
Default is 1.

Gives number of bands, occupied plus possibly unoccupied, for which wavefunctions are being computed along with eigenvalues.
Note : if the parameter occopt (see below) is not set to 2, nband is a scalar integer, but if the parameter occopt is set to 2, then nband must be an array nband(nkpt* nsppol) giving the number of bands explicitly for each k point. This option is provided in order to allow the number of bands treated to vary from k point to k point.
For the values of occopt not equal to 0 or 2, nband can be omitted. The number of bands will be set up thanks to the use of the variable fband. The present Default will not be used.

If nspinor is 2, nband must be even for each k point.

In the case of a GW calculation (optdriver=3 or 4), nband gives the number of bands to be treated to generate the screening (susceptibility and dielectric matrix), as well as the self-energy. However, to generate the _KSS file (see kssform) the relevant number of bands is given by nbandkss.



Go to the top | Complete list of input variables


ndtset
Mnemonics: Number of DaTaSETs
Characteristic: NO MULTI
Variable type: integer parameter
Default is 0 (no multi-data set).

Gives the number of data sets to be treated.
If 0, means that the multi-data set treatment is not used, so that the root filenames will not be appended with _DSx, where 'x' is the dataset index defined by the input variable jdtset, and also that input names with a dataset index are not allowed. Otherwise, ndtset=0 is equivalent to ndtset=1.




Go to the top | Complete list of input variables
ngkpt
Mnemonics: Number of Grid points for K PoinTs generation
Characteristic: NOT INTERNAL
Variable type: integer array ngkpt(3)
No Default

Used when kptopt>=0, if kptrlatt has not been defined (kptrlatt and ngkpt are exclusive of each other).
Its three positive components give the number of k points of Monkhorst-Pack grids (defined with respect to primitive axis in reciprocal space) in each of the three dimensions. ngkpt will be used to generate the corresponding kptrlatt input variable. The use of nshiftk and shiftk, allows to generate shifted grids, or Monkhorst-Pack grids defined with respect to conventional unit cells.

When nshiftk=1, kptrlatt is initialized as a diagonal (3x3) matrix, whose diagonal elements are the three values ngkpt(1:3). When nshiftk is greater than 1, ABINIT will try to generate kptrlatt on the basis of the primitive vectors of the k-lattice: the number of shifts might be reduced, in which case kptrlatt will not be diagonal anymore.

Monkhorst-Pack grids are usually the most efficient when their defining integer numbers are even. For a measure of the efficiency, see the input variable kptrlen.



Go to the top | Complete list of input variables


nkpt
Mnemonics: Number of K - Points
Characteristic:
Variable type: integer parameter
Default is 0 if kptopt/=0, and 1 if kptopt==0.

If non-zero, nkpt gives the number of k points in the k point array kpt. These points are used either to sample the Brillouin zone, or to build a band structure along specified lines.

If nkpt is zero, the code deduces from other input variables (see the list in the description of kptopt) the number of k points, which is possible only when kptopt/=0. If kptopt/=0 and the input value of nkpt/=0, then ABINIT will check that the number of k points generated from the other input variables is exactly the same than nkpt.

If kptopt is positive, nkpt must be coherent with the values of kptrlatt, nshiftk and shiftk.
For ground state calculations, one should select the k point in the irreducible Brillouin Zone (obtained by taking into account point symmetries and the time-reversal symmetry).
For response function calculations, one should select k points in the full Brillouin zone, if the wavevector of the perturbation does not vanish, or in a half of the Brillouin Zone if q=0. The code will automatically decrease the number of k points to the minimal set needed for each particular perturbation.

If kptopt is negative, nkpt will be the sum of the number of points on the different lines of the band structure. For example, if kptopt=-3, one will have three segments; supposing ndivk is 10 12 17, the total number of k points of the circuit will be 10+12+17+1(for the final point)=40.



Go to the top | Complete list of input variables


nshiftk
Mnemonics: Number of SHIFTs for K point grids
Characteristic:
Variable type: integer parameter
The Default is 1.

This parameter gives the number of shifted grids to be used concurrently to generate the full grid of k points. It can be used with primitive grids defined either from ngkpt or kptrlatt. The maximum allowed value of nshiftk is 8. The values of the shifts are given by shiftk.



Go to the top | Complete list of input variables
nsppol
Mnemonics: Number of SPin POLarization
Characteristic:
Variable type: integer parameter
The Default is 1.

Give the number of independent spin polarisations. Can take the values 1 or 2.

If nsppol=1, one has an unpolarized calculation (nspinor=1, nspden=1) or an antiferromagnetic system (nspinor=1, nspden=2), or a calculation in which spin up and spin down cannot be disantengled (nspinor=2), non-collinear magnetism or presence of spin-orbit coupling, for which one needs spinor wavefunctions.

If nsppol=2, one has a spin-polarized calculation with separate and different wavefunctions for up and down spin electrons for each band and k point. Compatible only with nspinor=1, nspden=2.

In the present status of development, with nsppol=1, all values of ixc are allowed, while with nsppol=2, only ixc=0, 1, 7 and 11 are allowed.

See also the input variable nspden for the components of the density matrix with respect to the spin-polarization.



Go to the top | Complete list of input variables


nstep
Mnemonics: Number of self-consistent field STEPS
Characteristic:
Variable type: integer parameter
Default is 1.

Gives the maximum number of SCF cycles (or "iterations").
Full convergence from random numbers if usually achieved in 12-20 SCF iterations. Each can take from minutes to hours. In certain difficult cases, usually related to a small or zero bandgap, convergence performance may be much worse. When the convergence tolerance tolwfr on the wavefunctions is satisfied, iterations will stop, so for well converged calculations you should set nstep to a value larger than you think will be needed for full convergence, e.g. if 20 steps usually converges the system, set nstep to 30.

NOTE that a choice of nstep=0 is permitted; this will either read wavefunctions from disk (with irdwfk=1 or irdwfq=1, or non-zero getwfk or getwfq in the case of multi-dataset) and compute the density, the total energy and stop, or else (with all of the above vanishing) will initialize randomly the wavefunctions and compute the resulting density and total energy. This is provided for testing purposes.
One can output the density by using prtden.
Unlike the forces, the stress tensor also gets computed with nstep=0.




Go to the top | Complete list of input variables


nsym
Mnemonics: Number of SYMmetry operations
Characteristic: SYMMETRY FINDER
Variable type: integer parameter
Default is 0.

Gives number of space group symmetries to be applied in this problem. Symmetries will be input in array "symrel" and (nonsymmorphic) translations vectors will be input in array "tnons". If there is no symmetry in the problem then set nsym to 1, because the identity is still a symmetry.
In case of a RF calculation, the code is able to use the symmetries of the system to decrease the number of perturbations to be calculated, and to decrease of the number of special k points to be used for the sampling of the Brillouin zone. After the response to the perturbations have been calculated, the symmetries are used to generate as many as possible elements of the 2DTE from those already computed.

SYMMETRY FINDER mode (Default mode). If nsym is 0, all the atomic coordinates must be explicitely given (one cannot use the geometry builder and the symmetrizer): the code will then find automatically the symmetry operations that leave the lattice and each atomic sublattice invariant. It also checks whether the cell is primitive (see chkprim).
Note that the tolerance on symmetric atomic positions and lattice is rather stringent : for a symmetry operation to be admitted, the lattice and atomic positions must map on themselves within 1.0e-8 .

The user is allowed to set up systems with non-primitive unit cells (i.e. conventional FCC or BCC cells, or supercells without any distortion). In this case, pure translations will be identified as symmetries of the system by the symmetry finder. Then, the combined "pure translation + usual rotation and inversion" symmetry operations can be very numerous. For example, a conventional FCC cell has 192 symmetry operations, instead of the 48 ones of the primitive cell. A maximum limit of 384 symmetry operations is hard-coded. This corresponds to the maximum number of symmetry operations of a 2x2x2 undistorted supercell. Going beyond that number will make the code stop very rapidly. If you want nevertheless, for testing purposes, to treat a larger number of symmetries, change the initialization of "msym" in the abinit.f main routine, then recompile the code.



Go to the top | Complete list of input variables


ntypat
Mnemonics: Number of TYPEs of atoms
Characteristic: NO MULTI
Variable type: integer parameter
Default is 1.

Gives the number of types of atoms. E.g. for a homopolar system (e.g. pure Si) ntypat is 1, while for BaTiO3, ntypat is 3.
Except when alchemical mixing of pseudopotentials is used, the number of types of atoms will be equal to the number of pseudopotentials npsp to be provided by the user. Thus, The code will try to read the same number of pseudopotential files, whose names should have been given in the "files" file.
The first pseudopotential will be assigned the type number 1, and so on ...




Go to the top | Complete list of input variables
occopt
Mnemonics: OCCupation OPTion
Characteristic:
Variable type: integer option parameter
The Default is occopt=1.

Control how input parameters nband, occ, and wtk are handled. WARNING : one can use metallic occupation of levels in the case of a molecule, in order to avoid any problem with degenerate levels. However, it is adviced NOT to use occopt=6 (and to a lesser extent occopt=4 and 5), since the associated number of electron versus the Fermi energy is NOT garanteed to be a monotonic function. For true metals, AND a sufficiently dense sampling of the Brillouin zone, this should not happen, but be cautious ! As an indication of this problem, a small variation of input parameters might lead to a jump of total energy, because there might be two or even three possible values of the Fermi energy, and the bissection algorithm find one or the other.



Go to the top | Complete list of input variables
rprim
Mnemonics: Real space PRIMitive translations
Characteristic: EVOLVING (if ionmov==2 and optcell/=0)
Variable type: real array rprim(3,3)
Default : 3x3 unity matrix.

Give, in columnwise entry, the three dimensionless primitive translations in real space.
If the Default is used, that is, rprim is the the unity matrix, the three dimensionless primitive vectors are three unit vectors in cartesian coordinates. Each will be multiplied by the corresponding acell value to give the dimensional primitive vectors, called rprimd.
In the general case, the dimensional cartesian coordinates of the crystal primitive translations R1p, R2p and R3p, see rprimd, are The rprim variable is thus used to define directions of the primitive vectors, that will be multiplied by the appropriate length scale acell(1), acell(2), or acell(3) respectively to give the dimensional primitive translations in real space in cartesian coordinates.
Presently, it is requested that the mixed product (R1xR2).R3 is positive. If this is not the case, simply exchange a pair of vectors.
To be more specific, rprim 1 2 3 4 5 6 7 8 9 corresponds to input of the three primitive translations R1=(1,2,3), R2=(4,5,6), and R3=(7,8,9).
Note carefully that the first three numbers input are the first column of rprim, the next three are the second, and the final three are the third. This corresponds with the usual Fortran order for arrays. The matrix whose columns are the reciprocal space primitive translations is the inverse transpose of the matrix whose columns are the direct space primitive translations.

Alternatively to rprim, directions of dimensionless primitive vectors can be specified by using the input variable angdeg. This is especially useful for hexagonal lattices (with 120 or 60 degrees angles). Indeed, in order for symmetries to be recognized, rprim must be symmetric up to 10 digits, inducing a specification such as

rprim  0.86602540378  0.5  0.0
      -0.86602540378  0.5  0.0
       0.0            0.0  1.0
that can be avoided thanks to angdeg:
angdeg 90 90 120




Go to the top | Complete list of input variables
rprimd
Mnemonics: Real space PRIMitive translations, Dimensional
Characteristic: INTERNAL, EVOLVING (if ionmov==2 and optcell/=0)
Variable type: real array rprimd(3,3)

This internal variable gives the dimensional real space primitive vectors, computed from acell and rprim.



Go to the top | Complete list of input variables
shiftk
Mnemonics: SHIFT for K points
Characteristic:
Variable type: real array shift(3,nshiftk)
Default 0.5 0.5 0.5 ... 0.5

It is used only when kptopt>=0, and must be defined if nshiftk is larger than 1.
shiftk(1:3,1:nshiftk) defines nshiftk shifts of the homogeneous grid of k points based on ngkpt or kptrlatt.
The shifts induced by shiftk corresponds to the reduced coordinates in the coordinate system defining the k-point lattice. For example, if the k point lattice is defined using ngkpt, the point whose reciprocal space reduced coordinates are ( shiftk(1,ii)/ngkpt(1) shiftk(2,ii)/ngkpt(2) shiftk(3,ii)/ngkpt(3) ) belongs to the shifted grid number ii.

The user might rely on ABINIT to suggest suitable and efficients combinations of kptrlatt and shiftk. The procedure to be followed is described with the input variables kptrlen. In what follows, we suggest some interesting values of the shifts, to be used with even values of ngkpt. This list is much less exhaustive than the above-mentioned automatic procedure.

1) When the primitive vectors of the lattice do NOT form a FCC or a BCC lattice, the usual (shifted) Monkhorst-Pack grids are formed by using nshiftk=1 and shiftk 0.5 0.5 0.5 . This is often the preferred k point sampling. For a non-shifted Monkhorst-Pack grid, use nshiftk=1 and shiftk 0.0 0.0 0.0 , but there is little reason to do that.

The FCC k point sampling defined with nshiftk=4 and shiftk

        0.5 0.5 0.5
        0.5 0.0 0.0
        0.0 0.5 0.0
        0.0 0.0 0.5
is particularly efficient.

2) When the primitive vectors of the lattice form a FCC lattice, with rprim

        0.0 0.5 0.5
        0.5 0.0 0.5
        0.5 0.5 0.0
the usual Monkhorst-Pack sampling will be generated by using nshiftk= 4 and shiftk
        0.5 0.5 0.5
        0.5 0.0 0.0
        0.0 0.5 0.0
        0.0 0.0 0.5

3) When the primitive vectors of the lattice form a BCC lattice, with rprim

       -0.5  0.5  0.5
        0.5 -0.5  0.5
        0.5  0.5 -0.5
the usual Monkhorst-Pack sampling will be generated by using nshiftk= 2 and shiftk
        0.25  0.25  0.25
       -0.25 -0.25 -0.25
However, the simple sampling nshiftk=1 and shiftk 0.5 0.5 0.5 is excellent.

4) For hexagonal lattices, one can use nshiftk= 1 and shiftk 0.0 0.0 0.5



Go to the top | Complete list of input variables


symrel
Mnemonics:SYMmetry in REaL space
Characteristic:
Variable type: integer array symrel(3,3,nsym)
Default is the identity matrix for one symmetry.

Gives "nsym" 3x3 matrices expressing space group symmetries in terms of their action on the direct (or real) space primitive translations.
It turns out that these can always be expressed as integers.
Always give the identity matrix even if no other symmetries hold, e.g. symrel 1 0 0 0 1 0 0 0 1
Also note that for this array as for all others the array elements are filled in a columnwise order as is usual for Fortran.
The relation between the above symmetry matrices symrel, expressed in the basis of primitive translations, and the same symmetry matrices expressed in cartesian coordinates, is as follows. Denote the matrix whose columns are the primitive translations as R, and denote the cartesian symmetry matrix as S. Then
symrel = R(inverse) * S * R
where matrix multiplication is implied.
When the symmetry finder is used (see nsym), symrel will be computed automatically.




Go to the top | Complete list of input variables
tnons
Mnemonics: Translation NON-Symmorphic vectors
Characteristic:
Variable type: real array tnons(3,nsym)

Gives the (nonsymmorphic) translation vectors associated with the symmetries expressed in "symrel".
These may all be 0, or may be fractional (nonprimitive) translations expressed relative to the real space primitive translations (so, using the "reduced" system of coordinates, see "xred"). If all elements of the space group leave 0 0 0 invariant, then these are all 0.
When the symmetry finder is used (see nsym), tnons is computed automatically.




Go to the top | Complete list of input variables
toldfe
Mnemonics: TOLerance on the DiFference of total Energy
Characteristic:
Variable type: real parameter
Default is 0.0 (stopping condition ignored)

Sets a tolerance for absolute differences of total energy that, reached TWICE successively, will cause one SCF cycle to stop (and ions to be moved).
Can be specified in Ha (the default), Ry, eV or Kelvin, since ecut has the 'ENERGY' characteristics. (1 Ha=27.2113961 eV)
If set to zero, this stopping condition is ignored.
Effective only when SCF cycles are done (iscf>0). In this case, since toldfe, toldff, tolvrs and tolwfr are aimed at the same goal (causing the SCF cycle to stop), one and only one of these must be specified.
Because of machine precision, it is not worth to try to obtain differences in energy that are smaller than about 1.0d-12 of the total energy. To get accurate stresses may be quite demanding.




Go to the top | Complete list of input variables
toldff
Mnemonics: TOLerance on the DiFference of Forces
Characteristic:
Variable type: real parameter
Default is 0.0 (stopping condition ignored)

Sets a tolerance for differences of forces (in hartree/bohr) that, reached TWICE successively, will cause one SCF cycle to stop (and ions to be moved).
If set to zero, this stopping condition is ignored.
Effective only when SCF cycles are done (iscf>0). In this case, since toldfe, toldff, tolvrs and tolwfr are aimed at the same goal (causing the SCF cycle to stop), one and only one of these must be specified. This tolerance applies to any particular cartesian component of any atom, INCLUDING fixed ones. This is to be used when trying to equilibrate a structure to its lowest energy configuration (ionmov=2), or in case of molecular dynamics (ionmov=1)
A value ten times smaller than tolmxf is suggested (for example 5.0d-6 hartree/bohr).
This stopping criterion is not allowed for RF calculations.




Go to the top | Complete list of input variables
tolvrs
Mnemonics: TOLerance on the potential V(r) ReSidual
Characteristic:
Variable type: real parameter
Default is 0.0 (stopping condition ignored)

Sets a tolerance for potential residual that, when reached, will cause one SCF cycle to stop (and ions to be moved).
If set to zero, this stopping condition is ignored.
Effective only when SCF cycles are done (iscf>0). In this case, since toldfe, toldff, tolvrs and tolwfr are aimed at the same goal (causing the SCF cycle to stop), one and only one of these must be specified.
To get accurate stresses may be quite demanding.




Go to the top | Complete list of input variables
tolwfr
Mnemonics: TOLerance on WaveFunction squared Residual
Characteristic:
Variable type: real parameter
Default is 0.0d0 (stopping criterion ignored)

Gives a convergence tolerance for the largest squared "residual" (defined below) for any given band. The squared residual is:
  < nk|(H-E)2|nk >,    E = < nk|H|nk >,

which clearly is nonnegative and goes to 0 as the iterations converge to an eigenstate. With the squared residual expressed in Hartrees2 (Hartrees squared), the largest squared residual (called residm) encountered over all bands and k points must be less than tolwfr for iterations to halt due to successful convergence.
Note that if iscf>0, this criterion should be replaced by those based on toldfe (preferred for ionmov==0), toldff (preferred for ionmov/=0) or tolvrs (preferred for theoretical reasons!).
When tolwfr is 0.0, this criterion is ignored, and a finite value of toldfe, toldff or tolvrs must be specified. This also imposes a restriction on taking an ion step; ion steps are not permitted unless the largest squared residual is less than tolwfr, ensuring accurate forces.
To get accurate stresses may be quite demanding.
Note that the preparatory GS calculations before a RF calculations must be highly converged.
Typical values for these preparatory runs are tolwfr between 1.0d-16 and 1.0d-22.

Note that tolwfr is often used in the test cases, but this is tolwfr purely for historical reasons : except when iscf<0, other critera should be used.



Go to the top | Complete list of input variables


typat
Mnemonics: TYPE of atoms
Characteristic:
Variable type: integer array typat(natom) (or : typat(natrd) , if the geometry builder is used)
Default is 1 (for natom=1)

Array giving an integer label to every atom in the unit cell to denote its type.
The different types of atoms are constructed from the pseudopotential files. There are at most ntypat types of atoms.
As an example, for BaTiO3, where the pseudopotential for Ba is number 1, the one of Ti is number 2, and the one of O is number 3, the actual value of the typat array might be :
  typat 1 2 3 3 3

The array typat has to agree with the actual locations of atoms given in xred , xcart or xangst, and the input of pseudopotentials has to be ordered to agree with the atoms identified in typat.
The nuclear charge of the elements, given by the array znucl, also must agree with the type of atoms designated in "typat".
The array typat is not constrained to be increasing. An internal representation of the list of atoms, deep in the code (array atindx), groups the atoms of same type together. This should be transparent to the user, while keeping efficiency.




Go to the top | Complete list of input variables
udtset
Mnemonics: Upper limit on DaTa SETs
Characteristic:
Variable type: integer array udtset(2)
No Default (since it is not used when it is not defined).

Used to define the set of indices in the multi-data set mode, when a double loop is needed (see later).
The values of udtset must be between 1 and 9, and their product must be equal to ndtset.
If udtset is used, the input variable jdtset cannot be used.




Go to the top | Complete list of input variables
wtk
Mnemonics: WeighTs for K points
Characteristic:
Variable type: real array wtk(nkpt)
Default value is nkpt*1.0d0 .

Gives the k point weights.
The k point weights will have their sum normalized to 1 (unless occopt=2; see description of occopt) within the program and therefore may be input with any arbitrary normalization. This feature helps avoid the need for many digits in representing fractional weights such as 1/3.
wtk is ignored if iscf is not positive, except if iscf=-3.




Go to the top | Complete list of input variables
xangst
Mnemonics: vectors (X) of atom positions in cartesian coordinates -length in ANGSTrom-
Characteristic: NOT INTERNAL
Variable type: real array xangst(3,natom) (or xangst(3,natrd) if the geometry builder is used)

Gives the cartesian coordinates of atoms within unit cell, in angstrom. This information is redundant with that supplied by array xred or xcart.
If xred and xangst are ABSENT from the input file and xcart is provided, then the values of xred will be computed from the provided xcart (i.e. the user may use xangst instead of xred or xcart to provide starting coordinates).
One and only one of xred, xcart and xangst must be provided.
The conversion factor between Bohr and Angstrom is 1 Bohr=0.5291772083 Angstrom (See Physics Today August 1989 p.8).
Atomic positions evolve if ionmov/=0 . In constrast with xred and xcart, xangst is not internal.




Go to the top | Complete list of input variables
xcart
Mnemonics: vectors (X) of atom positions in CARTesian coordinates
Characteristic: EVOLVING, LENGTH
Variable type: real array xcart(3,natom) (or xcart(3,natrd) if the geometry builder is used)

Gives the cartesian coordinates of atoms within unit cell. This information is redundant with that supplied by array xred or xangst. By default, xcart is given in bohr atomic units (1 bohr=0.5291772083 Angstroms), although Angstrom can be specified, if preferred, since xcart has the 'LENGTH' characteristics.
If xred and xangst are ABSENT from the input file and xcart is provided, then the values of xred will be computed from the provided xcart (i.e. the user may use xcart instead of xred or xangst to provide starting coordinates).
Atomic positions evolve if ionmov/=0 .




Go to the top | Complete list of input variables
xred
Mnemonics: vectors (X) of atom positions in REDuced coordinates
Characteristic: EVOLVING
Variable type: real array xred(3,natom) (or xred(3,natrd) if the geometry builder is used)
Default to all 0.0d0

Gives the atomic locations within unit cell in coordinates relative to real space primitive translations (NOT in cartesian coordinates). Thus these are fractional numbers typically between 0 and 1 and are dimensionless. The cartesian coordinates of atoms are given by:
t_cartesian = t1*r1*a1+t2*r2*a2+t3*r3*a3
where (t1,t2,t3) are the "reduced coordinates" given in columns of "xred", (r1,r2,r3) are the columns of dimensionless array "rprim", and (a1,a2,a3) are the elements of the array "acell" giving length scales in bohr.
If you prefer to work only with cartesian coordinates, you may work entirely with "xcart" or "xangst" and ignore xred, in which case xred must be absent from the input file.
One and only one of xred, xcart and and xangst must be provided.
Atomic positions evolve if ionmov/=0 .




Go to the top | Complete list of input variables
znucl
Mnemonics: charge -Z- of the NUCLeus
Characteristic: NO MULTI
Variable type: real array znucl(npsp)

Gives nuclear charge for each type of pseudopotential, in order.
If znucl does not agree with nuclear charge, as given in pseudopotential files, the program writes an error message and stops.

N.B. : In the pseudopotential files, znucl is called "zatom".



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