next up previous contents
Next: 5.6 IBZKPT file Up: 5.5 KPOINTS file Previous: 5.5.1 Entering all k-points

5.5.2 Automatic k-mesh generation


The second method generates k-meshes automatically requiring only the input of a division of the Brillouin zone in each direction and the origin (some 'shift') for the k-mesh to be produced. There are two possible input formats. We recommend the following one:

Automatic mesh
0              ! number of k-points = 0 ->automatic generation scheme 
Monkhorst-Pack ! select Monkhorst-Pack (first letter is significant)
4  4  4        ! size of mesh (4x4x4 points along b1, b2, b3)
0. 0. 0.       ! shift of the k-mesh

As before the first line is treated as a comment line. On the second line a number smaller or equal 0 must be given. In the previous section 'Entering all k-points explicitly' this value supplied the number of k-points -- zero k-points make no sense so this is the switch for activating the automatic generation scheme. On the third line (again only the first character is significant) you can set the type of the input mode or the type of the mesh you want to create. The only recognized key characters are 'M' or 'm' for switching on the original Monkhorst-Pack and 'G' or 'g' for generating Monkhorst-Pack type meshes with the origin being at the tex2html_wrap_inline4383 point (in the original Monkhorst-Pack scheme switched on with 'M' or 'm' the k-mesh will be shifted off tex2html_wrap_inline4383 for even divisions to get a mesh which is centered symmetrically around tex2html_wrap_inline4383 ). On the fourth line the number of divisions in each direction of the reciprocal unit cell must be given. The fifth line supplies an additional shift of the k-mesh. Usually these values are zero: the only important shifts are those which center the mesh around tex2html_wrap_inline4383 or shift the origin to tex2html_wrap_inline4383 . These cases are already covered with the flags 'M' or 'm', 'G' or 'g'. The shift must be given in multiples of the length of the reciprocal lattice vectors.

If the third line does not start with 'M', 'm', 'G' or 'g' an alternative input mode is switched on: This mode is mainly for playing around. Here you can provide directly the generating basis vectors of the k-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 tex2html_wrap_inline4383 , default is to take the origin at tex2html_wrap_inline4383 , the shift is given in multiples of the generating basis vectors, only (0,0,0) or (1/2,1/2,1/2) makes sense). 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 10.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 tex2html_wrap_inline4383 (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 tex2html_wrap_inline4383 (switch 'G' or 'g' on third line or odd divisions) if the tetrahedron method is used.

next up previous contents
Next: 5.6 IBZKPT file Up: 5.5 KPOINTS file Previous: 5.5.1 Entering all k-points

Mon Mar 29 10:38:29 MEST 1999