# kpoint keywords

K-sampling/smearing parameters

## kpoint.gridn

kpoint.gridn is a \[1x3\] array determining the k-sampling grid. For
example, if kpoint.gridn = \[4 4 4\], a 4x4x4 uniform grid is used for
k-sampling. The default grid type is kpoint.type = \'MonkhorstPack\'. In
band structure calculations, kpoint.type = \'line\', kpoint.gridn is a
scalar determining the total number of points along the k-point line.
The k-points are distributed as uniformly as possible.

**type**: `array`

**default**: `[1,1,1]`

**size**: `[1,3]`

**example**: `kpoint.gridn = [4 4 4]`

## kpoint.kcartesian

kpoint.kcartesian may contain a list of row-vectors representing the
Cartesian coordinates of k-points. has precedence over Monkhors-Pack
mesh generation and default k-point lines. It can also be a path
pointing to a file containing the reduced coordinates of k-points in the
form of row vectors.

**type**: `array`

**size**: `[inf,3]`

**example**: `kpoint.kcartesian = [1.5 0.5 2.5; -0.5 -1.5 2.5]`

## kpoint.kdirect

kpoint.kdirect contains a list of row-vectors representing the reduced
coordinates of k-points. kpoint.kdirect has precedence over
Monkhors-Pack mesh generation and default k-point lines. It can also be
a path pointing to a file containing the reduced coordinates of k-points
in the form of row vectors.

**type**: `array`

**size**: `[inf,3]`

**example**: `kpoint.kdirect = [0.25 0.25 0.25; 0.25 0.25 -0.25]`

## kpoint.mpord

Sets the order of the Methfessel-Paxton smearing.

**type**: `scalar`

**default**: `0`

**example**: `kpoint.mpord = 2`

## kpoint.nocc

kpoint.nocc must be used together with kpoint.sampling = \'fixed\'. It
gives the occupancy of each band across the entire Brillouin zone. For
instance, kpoint.nocc = \[1,1,1,1,0.5,0.5,0,0\] fully populates the
first four bands, set the next two bands to half filling and depopulates
the rest.

**type**: `array`

**size**: `[inf,1]`

**example**: `kpoint.nocc = [1,1,1,1,0.5,0.5,0,0]`

## kpoint.sampling

Method used to sample the Brillouin zone. Treating the eigenvalues
constituting the eigenspectrum as delta functions generally leads to
adverse effects (e.g. bad k-sampling convergence). The contribution of
each eigenvalue to the band structure can be smoothed by a combination
of smearing and interpolation. The \'fermi-dirac\' method populates the
states according to the Fermi-Dirac distribution. The temperature or
smearing width can be set by kpoint.sigma. Individual eigenvalues are
broaden by adopting the shape of the derivative of the Fermi-Dirac
distribution. The \'gauss\' method smears the eigenvalues using Gaussian
functions. The states occupation numbers are then attributed using a
complementary error function. The \'methfessel-paxton\' combines Hermite
polynomials with Gaussian functions to smear the energy levels. The
\'tetrahedron\' method linearly interpolates the bands between the
calculated eigenvalues. The obtained piecewise linear bands are then
treated analytically. The \'tetrahedron+blochl\' method adds a quadratic
correction to the calculation of the Fermi level.

**type**: `string`

**default**: `'fermi-dirac'`

**allowed**:
`'fermi-dirac','fixed','gauss','methfessel-paxton','marzari-vanderbilt','tetrahedron','tetrahedron+blochl'`

**example**: `kpoint.sampling = 'gauss'`

## kpoint.shift

Shift the k-point grid uniformly. Monkhorst-Pack grids are
gamma-centered for odd grids and shifted by \[0.5,0.5,0.5\] for even
grids. An even grid can be gamma-centered by setting kpoint.shift =
\[0.5,0.5,0.5\], for instance.

**type**: `array`

**default**: `[0,0,0]`

**size**: `[1,3]`

**example**: `kpoint.shift = [0.5,0.5,0.5]`

## kpoint.sigma

Use Fermi-Dirac smearing if option.sigma \> 0; sigma in Hartree by
default.

**type**: `scalar`

**default**: `0`

**example**: `kpoint.sigma = 0.003`

## kpoint.sympoints

List of points defining the k-point line in a band structure
calculation. The points can be string labels or k-points in direct
coordinates. If sympoints is not defined, a line going along the
different edges of the irreducible Brillouin zone is automatically
generated.

**type**: `cell array`

**example**: `kpoint.sympoints = {'L','G','X','W','K'}`

## kpoint.type

\'MonkhorstPack\' is used to perform integrals over the Brillouin zone;
\'line\' is used to plot band structures.

**type**: `string`

**default**: `'MonkhorstPack'`

**allowed**: `'MonkhorstPack','line'`

**example**: `kpoint.type = 'MonkhorstPack'`

## kpoint.weight

Weight of each k-point.

**type**: `array`

**default**: `ones(nkpt,1)`

**size**: `[inf,1]`

**example**: `kpoint.weight = [6;2]`
