Calculating a DOS can be done in two ways: The simple one is to perform a static (NSW=0, IBRION=-1) selfconsistent calculation and to take the DOSCAR file from this calculation. The DOSCAR file can be visualized with
> drawdosa simple FORTRAN program, which requires erlgraph routines. Mind that VASP can calculate partial DOS. Partial DOS are very powerful for the analysis of the electronic DOS (see section 7.29).
The simple approach discussed above is not applicable in all cases: A high quality DOS requires usually very fine k-meshes. You should think at least in orders of 16x16x16 meshes for small cells and even for large cells you might need something like 6x6x6- or 8x8x8-meshes. For larger cells it is often only possible to do calculations for one or two k-points (due to restrictions in central memory). This problem also occurs for band-structure calculations. In this case one is interested in the band-structure along certain lines in the BZ and for each line a division into approximately 10 k-points is required to get a dense packing of data points allowing visualization routines a smooth and realistic interpolation between these data points.
The usual way, to do DOS or band-structure calculations in this case is the following: the charge density and the effective potential converge rapidly with increasing number of k-points. So, as a first step one generates a high quality charge density using a few k-points in a static selfconsistent run. The next step is to perform a non-selfconsistent calculation using the CHGCAR file from this selfconsistent run (i.e. ICHARG is set to 11, see section 7.11) . Mind, this is the only way to calculate the band structure, because for band-structure calculations the supplied k-points form usually no regular three-dimensional grid and therefore a selfconsistent calculation gives pure nonsense !
For ICHARG=11, all k-points can be treated independently, there is no coupling between them, because the charge density and the potential are kept fixed. Therefore there is also no need to treat the k-points within one single run simultaneously. Just split the job into runs including only one single k-point and merge the results for the individual k-points into one single data file. For people being not so familiar with the output formats of the various files this procedure could produce some headache. Therefore we provide some tools for doing this (a Bourne-shell script for UNIX systems and a set of FORTRAN programs) and in the following a short description how to use these utilities is given:
The first step is to provide a KPOINTS file in the "entering all k-point coordinates explicitly"-format. If you want to calculate a DOS this file must also contain connection lists for tetrahedra (the tetrahedron method is the only probably the most usefull approach to calculate a DOS because it is parameter-free). To generate such a file you can use the utility
> vamp .Both programs read the POSCAR and KPOINTS file and generate a file IBZKPT which can be copied to KPOINTS. Having set up POSCAR and INCAR correctly use a shell-script called
> rundos.The rundos script is also also useful for band-structures -- the last step which is the calculation of the DOS fails in this case, but when you have reached this point all required actions have been performed correctly and all necessary files have been created. For band-structure calculation the utility
> tobandcan help to create a set of k-points along certain directions of the IRBZ.
The script rundos calls first a utility called "splitk" which splits the original KPOINTS file into many KPOINTS-files each with a single k-point. Then a loop over these k-point files is done and the EIGENVAL- and (if projection was switched on) PROCAR-files are saved. The individual EIGENVAL- and PROCAR-files are then merged together by tools called "mergeeig" and "mergepro". After this the original KPOINTS-file etc. is restored and all temporary EIGENVAL-, PROCAR- and KPOINTS-files are erased. To get the DOS, finally some utility called
> getdosis called generating a DOSCAR-file according to the data found on PROCAR or EIGENVAL. (This tool can always be used if valid EIGENVAL, KPOINTS, INCAR and PROCAR-files exist.)
The obtained data can be visualized with the FORTRAN programs
> drawband > drawdos .There are also some MATHEMATICA utilities to draw band-structure data (though they are not yet very user-friendly because many things have to be customized by hand for each individual case). For drawing band-structures of localized surface states there exists a tool called "sbands" to find out bands with a certain degree of localization at some atom(s) and generating an output file SBAND which can be used directly as input for the MATHEMATICA tool "sband.m". Furthermore there exists a tool called "bbands" which tries to find minima and maxima of the eigenvalues for all k-points with distinct x-/y-coordinates but different z-coordinates. It creates a file "BBAND" which can be used as input for the MATHEMATICA tool "bband.m" which draws "allowed energy regions" for the bulk band structure (by shading allowed ranges).