next up previous contents
Next: Strings of k-points for Up: KPOINTS file Previous: KPOINTS file   Contents

Entering all k-points explicitly

In this format an explicit listing of all coordinates and of the connection tables for the tetrahedra -- if one wants to use the tetrahedron integration methods -- is supplied (the latter part can be omitted for finite temperature-smearing methods, see section 7.4). The most general format is:


Example file
4
Cartesian
0.0  0.0  0.0   1.
0.0  0.0  0.5   1.
0.0  0.5  0.5   2.
0.5  0.5  0.5   4.
Tetrahedra
1  0.183333333333333
6    1 2 3 4
The first line is treated as a comment line. In the second line you must provide the number of k-points and in the third line you have to specify whether the coordinates are given in cartesian or reciprocal coordinates. Only the first character of the third line is significant. The only key characters recognized by VASP are 'C', 'c', 'K' or 'k' for switching to cartesian coordinates, any other character will switch to reciprocal coordinates. Anyway, write 'reciprocal' to switch to reciprocal coordinates to make clear what you want to use. Next, the three coordinates and the (symmetry degeneration) weight for each k-points follow (one line for each k-point). The sum of all weights must not be one - VASP will renormalize them internally, only the relative ratios of all weights have to be correct. In the reciprocal mode the k-points are given by
\begin{displaymath}
{\vec k} = x_1 {\vec b}_1 + x_2 {\vec b}_2 + x_3 {\vec b}_3
\end{displaymath} (3)

where ${\vec b}_{1...3}$ are the three reciprocal basis vectors, and $x_{1...3}$ are the supplied values. In the cartesian input format the k-points are given by
\begin{displaymath}
{\vec k} =\frac{2 \pi}{a} (x_1, x_2 , x_3)
\end{displaymath} (4)

The following example illustrates how to specify the kpoints. The unit cell of the fcc lattice is spanned by the following basis vectors:

\begin{displaymath}
A = \left( \begin{array}{ccc}
0 & a/2 & a/2 \\
a/2 & 0 & a/2 \\
a/2 & a/2 & 0 \\
\end{array} \right)
\end{displaymath}

the reciprocal lattice is defined as :

\begin{displaymath}
2pi
B = \frac{2 \pi}{a} \left( \begin{array}{ccc}
-1 & 1 & 1 \\
1 & -1 & 1 \\
1 & 1 & -1 \\
\end{array} \right)
\end{displaymath}

The following input is required in order to specify the high symmetry k-points.

Point   Cartesian coordinates   Reciprocal coordinates
        (units of 2pi/a)        (units of b1,b2,b3)
------------------------------------------------------
G          (  0   0   0  )          (  0   0   0   )
X          (  0   0   1  )          ( 1/2 1/2  0   )
W          ( 1/2  0   1  )          ( 1/2 3/4 1/4  )
K          ( 3/4 3/4  0  )          ( 3/8 3/8 3/4  )
L          ( 1/2 1/2 1/2 )          ( 1/2 1/2 1/2  )

If the tetrahedron method is not used the KPOINTS file may end after the list of coordinates. The tetrahedron method requires an additional connection list for the tetrahedra: In this case, the next line must start with 'T' or 't' signaling that this connection list is supplied. On the next line after this 'control line' one must enter the number of tetrahedra and the volume weight for a single tetrahedron (all tetrahedra must have the same volume). The volume weight is simply the ratio between the tetrahedron volume and the volume of the (total) Brillouin zone. Then a list with the (symmetry degeneration) weight and the four corner points of each tetrahedron follows (four integers which represent the indices to the points in the k-point list given above, 1 corresponds to the first entry in the list). Warning: In contrast to the weighting factors for each k-point you must provide the correct 'volume weight' and (symmetry degeneration) weight for each tetrahedron - no internal renormalization will be done by VASP!

This method is normally used if one has only a small number of k-points or if one wants to select some specific k-points which do not form a regular mesh (e.g. for calculating the bandstructure along some special lines within the Brillouin zone, section 9.3). Tetrahedron connection tables will rarely be given 'by hand'. Nevertheless this method for providing all k-point coordinates and weights (and possibly the connection lists) is also important if the mesh contains a very large number of k-points: VASP (or an external tool called 'k-points') can calculate regular k-meshes automatically (see next section) generating an output file IBZKPT which has a valid KPOINTS-format. For very large meshes it takes a lot of CPU-time to generate the mesh. Therefore, if you want to use the same k-mesh very frequently, do the automatic generation only once and copy the file IBZKPT to the file KPOINTS. In subsequent runs, VASP can avoid a new generation by reading the explicit list given in this file.

If the tetrahedron method is not used the KPOINTS file may end after the list of coordinates. The tetrahedron method requires an additional connection list for the tetrahedra: In this case, the next line must start with 'T' or 't' signaling that this connection list is supplied. On the next line after this 'control line' one must enter the number of tetrahedra and the volume weight for a single tetrahedron (all tetrahedra must have the same volume). The volume weight is simply the ratio between the tetrahedron volume and the volume of the (total) Brillouin zone. Then a list with the (symmetry degeneration) weight and the four corner points of each tetrahedron follows (four integers which represent the indices to the points in the k-point list given above, 1 corresponds to the first entry in the list). Warning: In contrast to the weighting factors for each k-point you must provide the correct 'volume weight' and (symmetry degeneration) weight for each tetrahedron - no internal renormalization will be done by VASP!

This method is normally used if one has only a few number of k-points or if one wants to select some specific k-points which do not form a regular mesh (e.g. for calculating the bandstructure along some special lines within the Brillouin zone, section 9.3). Tetrahedron connection tables will rarely be given 'by hand'. Nevertheless this method for providing all k-point coordinates and weights (and possibly the connection lists) as also important if the mesh contains a very large number of k-points: VASP (or an external tool called 'k-points') can calculate regular k-meshes automatically (see next section) generating an output file IBZKPT which has a valid KPOINTS-format. For very large meshes it takes a lot of CPU-time to generate the mesh. Therefore, if you want to use the same k-mesh very


next up previous contents
Next: Strings of k-points for Up: KPOINTS file Previous: KPOINTS file   Contents
Georg Kresse
2007-03-01