# K-Space¶

The K-Space sampling (i.e., the k-points used to sample the Brillouin Zone) is an important technical aspect of Band, as it influences heavily the accuracy, the CPU time and the memory usage of the calculation (see section Recommendations for k-space).

## KSpace input block¶

The K-Space can be controlled via the `KSpace`

input block. Two different k-space integration methods are available: the *Regular Grid* (**default**) and the *Symmetric Grid*.

```
KSpace
Type [Regular | Symmetric]
Quality [Auto | GammaOnly | Basic | Normal | Good | VeryGood | Excellent]
End
```

`KSpace`

Type: Block Description: Options for the k-space integration (i.e. the grid used to sample the Brillouin zone) `Type`

Type: Multiple Choice Default value: Regular Options: [Regular, Symmetric] Description: The type of k-space integration grid used to sample the Brillouin zone (BZ) used. ‘Regular’: simple regular grid. ‘Symmetric’: symmetric grid for the irreducible wedge of the first BZ (useful when high-symmetry points in the BZ are needed to capture the correct physics of the system, graphene being a notable example). `Quality`

Type: Multiple Choice Default value: Auto Options: [Auto, GammaOnly, Basic, Normal, Good, VeryGood, Excellent] Description: Select the quality of the K-space grid used to sample the Brillouin Zone. If ‘Auto’, the quality defined in the ‘NumericalQuality’ will be used. If ‘GammaOnly’, only one point (the gamma point) will be used. The actual number of K points generated depends on this option and on the size of the unit cell. The larger the real space cell, the fewer K points will be generated. The CPU-time and accuracy strongly depend on this option.

### Regular K-Space grid¶

By default, Band will look at the size of a lattice vectors and the KSpace quality to determine the number of k-points. The larger the lattice vector in real space, the smaller the reciprocal space vectors are, and as a result fewer k-points are needed. The following intervals will be distinguished: 0-5 Bohr, 5-10 Bohr, 10-20 Bohr, 20-50 Bohr, and beyond. Here is the table explaining how many k-points will be used along a lattice vector.

Lattice vector length | Basic | Normal | Good | VeryGood | Excellent |

0-5 Bohr | 5 | 9 | 13 | 17 | 21 |

5-10 Bohr | 3 | 5 | 9 | 13 | 17 |

10-20 Bohr | 1 | 3 | 5 | 9 | 13 |

20-50 Bohr | 1 | 1 | 3 | 5 | 9 |

50- Bohr... | 1 | 1 | 1 | 3 | 5 |

By preferring odd-numbered values we can use a quadratic interpolation method, and have the \(\Gamma\) point in the grid. It is then reasonable to assume a decaying error when going to a better quality setting.

It is also possible to manually specify the number of k-space points along each reciprocal lattice vector

```
KSpace
Regular
NumberOfPoints integer_list
End
End
```

`KSpace`

Type: Block Description: Options for the k-space integration (i.e. the grid used to sample the Brillouin zone) `Regular`

Type: Block Description: Options for the regular k-space integration grid. `NumberOfPoints`

Type: Integer List Description: Use a regular grid with the specified number of k-points along each reciprocal lattice vector. For 1D periodic systems you should specify only one number, for 2D systems two numbers, and for 3D systems three numbers.

### Symmetric K-Space grid (tetrahedron method)¶

The tetrahedron method can be useful when high symmetry points in the BZ are needed to capture the correct physics of the system, graphene being a notable example.

The number of k-points in the symmetric grid depends on the KSpace quality and on the length of the shortest lattice vector.

It is also possible to manually specify the symmetric k-space integration parameter:

```
KSpace
Symmetric
KInteg integer
End
End
```

`KSpace`

Type: Block Description: Options for the k-space integration (i.e. the grid used to sample the Brillouin zone) `Symmetric`

Type: Block Description: Options for the symmetric k-space integration grid. `KInteg`

Type: Integer Description: Specify the accuracy for the Symmetric method. 1: absolutely minimal (only the G-point is used) 2: linear tetrahedron method, coarsest spacing 3: quadratic tetrahedron method, coarsest spacing 4,6,... (even): linear tetrahedron method 5,7.... (odd): quadratic method The tetrahedron method is usually by far inferior.

**General Remark**: The tetrahedron method samples the irreducible wedge of the first BZ, whereas the regular grid samples the whole, first BZ. As a rule of thumb you need to choose roughly twice the value for the regular grid. For example kspace 2 compares to grid 4 4 4, kspace 3 to grid 5 5 5, etc.. Sticking to this rule the number of unique k-points will be roughly similar.

## Recommendations for k-space¶

Which K-Space quality to use depends very much a) the system you are studying and b) the property you are interested in. We strongly recommend you to test the effect of different K-Space qualities on your system and properties of interest.

As an example, in the following table we list the errors on formation energy and band gap for diamond using regular k-space grids of different qualities (using Excellent kSpace quality as reference).

KSpace quality | Energy error / atom [eV] | CPU time ratio |
---|---|---|

Gamma-Only | 3.3 | 1 |

Basic | 0.6 | 2 |

Normal | 0.03 | 6 |

Good | 0.002 | 16 |

VeryGood | 0.0001 | 35 |

Excellent | reference | 64 |

It is worthwhile noting that the errors due to finite k-space sampling in formation energies are to some extend systematic, and they partially cancel each other out when taking energy differences.

In general, metals (or narrow-gap semiconductor) require higher K-Space sampling than insulators. For insulators and wide-gap semiconductors, Normal K-Space quality often suffices. For Narrow-gap semiconductor and metals, Good K-Space quality is highly recommended. For geometry optimizations under pressure, Good K-Space quality is recommended.

Furthermore for certain properties, such as band gaps, Normal K-Space quality might not be enough to obtain reliable results. For example, in following figure we see how Normal K-Space quality is often not enough for computing band gaps (especially for the narrow-gap semiconductor of the top panel). For band gap prediction, it is recommended to use Good K-Space quality.