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]