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

Automatic k-mesh generation

The second method generates k-meshes automatically, and requires only the input of subdivisions of the Brillouin zone in each direction and the origin ('shift') for the k-mesh. There are three possible input formats. The simplest one is only supported by VASP.4.5 and newer versions:

Automatic mesh
0              ! number of k-points = 0 ->automatic generation scheme 
Auto           ! fully automatic
  10           ! length (l)
As before, the first line is treated as a comment. On the second line a number smaller or equal 0 must be specified. In the previous section, this value supplied the number of k-points, a zero in this line activates the automatic generation scheme. The fully automatic scheme, selected by the first character in the third line ('a'), generates $ \Gamma $ centered Monkhorst-Pack grids, where the numbers of subdivisions along each reciprocal lattice vector are given by

$\displaystyle N_1 = {\rm max}(1,l*\vert{\vec b}_1\vert+0.5)

$\displaystyle N_2 = {\rm max}(1,l*\vert{\vec b}_2\vert+0.5)

$\displaystyle N_3 = {\rm max}(1,l*\vert{\vec b}_3\vert+0.5).

$ {\vec b}_i$ are the reciprocal lattice vectors, and $ \vert{\vec b}_i\vert$ is their norm. VASP generates a equally spaced k-point grid with the coordinates:

$\displaystyle {\vec k} = {\vec b}_1 \frac{n_1}{N_1} + {\vec b}_2 \frac{n_2}{N_2...
...rac{n_3}{N_3} ,\qquad n_1=0...,N_1-1 \quad n_2=0...,N_2-1 \quad n_3=0...,N_3-1

Symmetry is used to map equivalent k-points to each other, which can reduce the total number of k-points significantly. Useful values for the length vary between 10 (large gap insulators) and 100 (d-metals).

A slightly enhanced version, allows to supply the numbers for the subdivisions $ N_1$, $ N_2$ and $ N_3$ manually:

Automatic mesh
0              ! number of k-points = 0 ->automatic generation scheme 
Gamma          ! generate a Gamma centered grid
4  4  4        ! subdivisions N_1, N_2 and N_3 along recipr. l. vectors
0. 0. 0.       ! optional shift of the mesh (s_1, s_2, s_3)
In this case, the third line (again, only the first character is significant) might start with 'G' or 'g' --for generating meshes with their origin at the $ \Gamma $ point (as above)-- or 'M' or 'm', which selects the original Monkhorst-Pack scheme. In the latter case k-point grids, with even ( $ {\rm mod}(N_i,2)=0)$ subdivisions are shifted off $ \Gamma $:

$\displaystyle {\vec k} = {\vec b}_1 \frac{n_1+1/2}{N_1} + {\vec b}_2 \frac{n_2+1/2}{N_2} + {\vec b}_3 \frac{n_3+1/2}{N_3}

The fifth line is optional, and supplies an additional shift of the k-mesh (compared to the origin used in the Gamma centered or Monkhorst-Pack case). Usually the shift is zero, since the two most important cases are covered by the flags 'M' or 'm', 'G' or 'g'. The shift must be given in multiples of the length of the reciprocal lattice vectors, and the generated grids are then ('G' case):

$\displaystyle {\vec k} = {\vec b}_1 \frac{n_1+s_1}{N_1} + {\vec b}_2 \frac{n_2+s_2}{N_2} + {\vec b}_3 \frac{n_3+s_3}{N_3}.

and ('M' case):

$\displaystyle {\vec k} = {\vec b}_1 \frac{n_1+s_1+1/2}{N_1} + {\vec b}_2 \frac{n_2+s_2+1/2}{N_2} + {\vec b}_3 \frac{n_3+s_3+1/2}{N_3}.

The selection 'M' without shift, is obviously equivalent to 'G' with a shift of 0.5 0.5 0.5, and vice versa.

If the third line does not start with 'M', 'm', 'G' or 'g' an alternative input mode is selected. this mode is mainly for experts, and should not be used for casual VASP users. Here one can provide directly the generating basis vectors for the k-point mesh (in cartesian or reciprocal coordinates). The input file has the following format:

Automatic generation
0.25 0.00 0.00
0.00 0.25 0.00
0.00 0.00 0.25
0.00 0.00 0.00
The entry in the third line switches between cartesian and reciprocal coordinates (as in the explicit input format described first - key characters 'C', 'c', 'K' or 'k' switch to cartesian coordinates). On the fifth, sixth and seventh line the generating basis vectors must be given and the eighth line supplies the shift (if one likes to shift the k-mesh off $ \Gamma $, default is to take the origin at $ \Gamma $, the shift is given in multiples of the generating basis vectors, only (0,0,0) and (1/2,1/2,1/2) and arbitrary combinations are usually usefull). This method can always be replaced by an appropriate Monkhorst-Pack setting. For instance for a fcc lattice the setting
 0.25 0 0
 0 0.25 0
 0 0 0.25
 0.5 0.5 0.5
is equivalent to
 4 4 4
 0 0 0
This input scheme is especially interesting to build meshes, which are based on the conventional cell (for instance sc for fcc and bcc), or the primitive cell if a large super cell is used. In the example above the k-point mesh is based on the sc-cell. (for the second input file the tetrahedron method can not be used because the shift breaks the symmetry (see below), whereas the first input file can be used together with the tetrahedron method). For more hints please read section 8.6.

Mind: The division scheme (or the generating basis of the k-mesh) must lead to a k-mesh which belongs to the same class of Bravais lattice as the reciprocal unit cell (Brillouin zone). Any symmetry-breaking set-up of the mesh cannot be handled by VASP. Hence such set-ups are not allowed -- if you break this rule an error message will be displayed. Furthermore the symmetrisation of the k-mesh can lead to meshes which can not be divided into tetrahedrons (at least not by the tetrahedron division scheme implemented in VASP) -- if one uses meshes which do not have their origin at $ \Gamma $ (for certain lower symmetric types of Bravais lattices or certain non-symmetry conserving shifts). Therefore only very special shifts are allowed. If a shift is selected which can not be handled you get an error message. For reasons of safety it might be a good choice to use only meshes with their origin at $ \Gamma $ (switch 'G' or 'g' on third line or odd divisions) if the tetrahedron method is used.

next up previous contents index
Next: hexagonal lattices Up: KPOINTS file Previous: Strings of k-points for   Contents   Index
N.B. Requests for support are to be addressed to: