K-point integration

From VASP Wiki

In this section we discuss partial occupancies. A must for all readers.

First there is the question why to use partial occupancies at all. The answer is: partial occupancies help to decrease the number of k-points necessary to calculate an accurate band-structure energy. This answer might be strange at first sight. What we want to calculate is, the integral over the filled parts of the bands

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sum _{n}{\frac {1}{\Omega _{{{\mathrm {BZ}}}}}}\int _{{\Omega _{{{\mathrm {BZ}}}}}}\epsilon _{{n{\mathbf {k}}}}\,\Theta (\epsilon _{{n{\mathbf {k}}}}-\mu )\,d{\mathbf {k}},

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \Theta (x) is the Dirac step function. Due to our finite computer resources this integral has to be evaluated using a discrete set of k-points[1][2][3]:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\frac {1}{\Omega _{{{\mathrm {BZ}}}}}}\int _{{\Omega _{{{\mathrm {BZ}}}}}}\to \sum _{{{\mathbf {k}}}}w_{{{\mathbf {k}}}}.

Keeping the step function we get a sum

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sum _{{{\mathbf {k}}}}w_{{{\mathbf {k}}}}\epsilon _{{n{\mathbf {k}}}}\,\Theta (\epsilon _{{n{\mathbf {k}}}}-\mu ),

which converges exceedingly slow with the number of k-points included. This slow convergence speed arises only from the fact that the occupancies jump form 1 to 0 at the Fermi-level. If a band is completely filled the integral can be calculated accurately using a low number of k-points (this is the case for semiconductors and insulators).

For metals the trick is now to replace the step function Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \Theta (\epsilon _{{n{\mathbf {k}}}}-\mu ) by a (smooth) function Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): f(\{\epsilon _{{n{\mathbf {k}}}}\}) resulting in a much faster convergence speed without destroying the accuracy of the sum. Several methods have been proposed to solve this dazzling problem.

Linear tetrahedron methods

Within the linear tetrahedron method, the term Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \epsilon _{{n{\mathbf {k}}}} is interpolated linearly between two k-points. Bloechl[4] has recently revised the tetrahedron method to give effective weights Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): f(\{\epsilon _{{n{\mathbf {k}}}}\}) for each band and k-point. In addition Bloechel was able to derive a correction formula which removes the quadratic error inherent in the linear tetrahedron method (linear tetrahedron method with Bloechel corrections). The linear tetrahedron is more or less fool proof and requires a minimal interference by the user.

The main drawback is that the Bloechels method is not variational with respect to the partial occupancies if the correction terms are included, therefore the calculated forces might be wrong by a few percent. If accurate forces are required we recommend a finite temperature method.

Finite temperature approaches - smearing methods

In this case the step function is simply replaced by a smooth function, for example the Fermi-Dirac function[5]

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): f({\frac {\epsilon -\mu }{\sigma }})={\frac {1}{\exp({\frac {\epsilon -\mu }{\sigma }})+1}}.

or a Gauss like function[6]

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): f({\frac {\epsilon -\mu }{\sigma }})={\frac {1}{2}}\left(1-{{\mathrm {erf}}}\left[{\frac {\epsilon -\mu }{\sigma }}\right]\right).

is one used quite frequently in the context of solid state calculations. Nevertheless, it turns out that the total energy is no longer variational (or minimal) in this case. It is necessary to replace the total energy by some generalized free energy

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): F=E-\sum _{{n{\mathbf {k}}}}w_{{{\mathbf {k}}}}\sigma S(f_{{n{\mathbf {k}}}}). The calculated forces are now the derivatives of this free energy Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): F (see Forces). In conjunction with Fermi-Dirac statistics the free energy might be interpreted as the free energy of the electrons at some finite temperature Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma =k_{{{\mathrm {B}}}}T , but the physical significance remains unclear in the case of Gaussian smearing. Despite this problem, it is possible to obtain an accurate extrapolation for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma \to 0 from results at finite Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma using the formula

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): E(\sigma \to 0)=E_{0}={\frac {1}{2}}(F+E).

In this way we get a "physical" quantity from a finite temperature calculation, and the Gaussian smearing method serves as an mathematical tool to obtain faster convergence with respect to the number of k-points. For Al this method converges even faster than the linear tetrahedron method with Bloechel corrections.

Improved functional form by Methfessel and Paxton

Typical convenient settings for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma for different metals: Aluminium possesses an extremely simple DOS, Lithium and Tellurium are also simple nearly free electron metals, therefore Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma might be large. For Copper Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma is restricted by the fact that the d-band lies approximately 0.5 eV beneath the Fermi-level. Rhodium and Vanadium posses a fairly complex structure in the DOS at the Fermi-level, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma must be small.


The method described previously has two shortcomings:

  • The forces calculated by VASP are a derivative of the free electronic

energy F (see Forces). Therefore the forces can not be used to obtain the equilibrium groundstate, which corresponds to an energy-minimum of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): E(\sigma \to 0) . Nonetheless the error in the forces is generally small and acceptable.

  • The parameter Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma must be chosen with great care. If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma

is too large the energy Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): E(\sigma \to 0) will converge to the wrong value even for an infinite k-point mesh. If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma is too small the convergence speed with the number of k-points will deteriorate. An optimal choice for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma for several cases is given in table 1. The only way to get a good Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma is by performing several calculations with different k-point meshes and different parameters for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma .

Sigma(eV)
Aluminium 1.0
Lithium 0.4
Tellurium 0.8
Copper, Palladium 0.4
Vanadium 0.2
Rhodium 0.2
Potassium 0.3
The table's caption
Sigma(eV)
Aluminium 1.0
Lithium 0.4


These problems can be solved by adopting a slightly different functional form for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): f(\{\epsilon _{{n{\mathbf {k}}}}\}) . This is possible by expanding the step function in a complete orthonormal set of functions (method of Methfessel and Paxton [7]). The Gaussian function is only the first approximation (Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): N =0) to the step function, further successive approximations (Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): N =1,2,...) are easily obtained. In similarity to the Gaussian method, the energy has to be replaced by a generalized free energy functional

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): F=E-\sum _{{n{\mathbf {k}}}}w_{{{\mathbf {k}}}}\sigma S(f_{{n{\mathbf {k}}}}).

In contrast to the Gaussian method the entropy term Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sum _{{n{\mathbf {k}}}}w_{{{\mathbf {k}}}}\sigma S(f_{{n{\mathbf {k}}}}) will be very small for reasonable values of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma (for instance for the values given in table 1). The Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sum _{{n{\mathbf {k}}}}w_{{{\mathbf {k}}}}\sigma S(f_{{n{\mathbf {k}}}}) is a simple error estimation for the difference between the free energy Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): F and the "physical" energy Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): E(\sigma \to 0) . $\sigma$ can be increased till this error estimation gets too large.

References