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]