Notes for running VASP

VASP version

Currently we are running 5.4.1-05Feb2016, with patches 14032016 and 03082016 applied.

Stack memory versus Heap memory

Some VASP calculations need more stack memory than is typically provided by default by the bash shell. In particular, we have found that GW calculations and also Chemical Shielding calculations crash due to stack overflow. One fix in bash is to use the bash ulimit command to change the stack allocation; but we have added a function to VASP to remove the enforcement of the stack limit at run time following this suggestion.

PAW Sphere Overlap

VASP doesn't provide the capability to make your own PAW data sets, although the ones supplied with VASP are quite comprehensive and on the whole seem pretty good. One source of concern though is that their radii may be too large for a given problem, leading to PAW sphere overlap and uncontrolled errors. As far as we can tell, VASP does not check for sphere overlap at run time. The VASP POTCAR files contain the parameter RMAX, which evidently is the radius of the projectors for the given atom, in Bohrs. One can then check whether the radii of neighboring atoms in the structure of interest would overlap. If they do, compute the volume overlap and if it is less than 5% of the sphere volumes, the associated error is probably minimal. Some of the atoms, like oxygen, are supplied with a normal and a "hard" version of the POTCAR file, the latter having a smaller RMAX (but of course higher associated ENMAX).

Change in computation of Cq

Between the release of VASP 5.3.2 and 5.4.1, the computation of Cq changed. This value is output as part of an electric field gradient calculation, LEFG=.TRUE. See EGRAD.F in the src directory. Evidently this was a units conversion problem. Nevertheless, the results between 5.3.2 and 5.4.1 for the same input, differ markedly in the reported value of Cq.


In order to do Bader QTAIM analysis on the charge density, it is necessary to produce core charge files. This is accomplished with the (evidently undocumented) tag LAECHG in the INCAR file. Set LAECHG=.TRUE. to obtain AECCAR0, AECCAR1, and AECCAR2 files, in addition to the usual CHGCAR file.

The IDIOT tag in INCAR

The facility for issuing advice, warning messages, and error messages in VASP is largely handled by a routine called VTUTOR, located in the file tutor.F. This routine issues various levels of messages for different problems, and also identifies the user experience level by a variable named IDIOT. In most codes such a variable would be called VERBOSITY or something else equally neutral. From the file documentation: "IDIOT=0" means "complete expert" while "IDIOT=3" means "complete idiot". IDIOT=0 suppresses practically all warnings and advice, while higher levels up to IDIOT=3 output more and more warnings. The default level of IDIOT is 3, that is, the default user is evidently assumed to be "a complete idiot".

The value of IDIOT is read from the INCAR file (defaulting to 3 as noted above). An input value of 0 would suppress most warnings and advice. Nevertheless, in the code, VTUTOR is often called with the IDIOT parameter hard-set to 2 or 3 so in such cases most to all warnings and advice are output anyway.

As far as we can tell, the IDIOT parameter is not documented in the VASP manual, which is perhaps not surprising given that the VASP authors charge people money to use their code and refer to their customers as "complete idiots".

Copyright © 2009 - CSS Templates by Inf Design - Valid XHTML & CSS