Jump to content

Requests for technical support from the VASP team should be posted in the VASP Forum.

Category:Wannier functions: Difference between revisions

From VASP Wiki
Mani (talk | contribs)
m Typo
Line 10: Line 10:


Here, <math>U_{mn\mathbf{k}}</math> is a unitary matrix which can be generated using different approaches discussed below, <math>m</math> is an index enumerating Wannier functions with position <math>\mathbf{R}</math>, <math>n</math> is the band index, and <math>\mathbf{k}</math> is the Bloch vector.
Here, <math>U_{mn\mathbf{k}}</math> is a unitary matrix which can be generated using different approaches discussed below, <math>m</math> is an index enumerating Wannier functions with position <math>\mathbf{R}</math>, <math>n</math> is the band index, and <math>\mathbf{k}</math> is the Bloch vector.
Generally, one starts with an initial guess for <math>U_{mn\mathbf{k}}</math> that is build from <math>A_{mn\mathbf{k}}</math>. The latter can be built from projections onto some localized-orbital basis.
Generally, one starts with an initial guess for <math>U_{mn\mathbf{k}}</math> that is built from <math>A_{mn\mathbf{k}}</math>. The latter can be built from projections onto some localized-orbital basis.


Comprehensive instructions on how to construct Wannier orbitals in VASP can be found [[Constructing_Wannier_orbitals|here]].
Comprehensive instructions on how to construct Wannier orbitals in VASP can be found [[Constructing_Wannier_orbitals|here]].

Revision as of 08:48, 20 August 2024

Wannier functions |wm𝐑 are constructed by a linear combination of Bloch states |ψn𝐤, i.e., the computed Kohn-Sham (KS) orbitals, as follows:

|wm𝐑=n𝐤ei𝐤𝐑Umn𝐤|ψn𝐤.

Here, Umn𝐤 is a unitary matrix which can be generated using different approaches discussed below, m is an index enumerating Wannier functions with position 𝐑, n is the band index, and 𝐤 is the Bloch vector. Generally, one starts with an initial guess for Umn𝐤 that is built from Amn𝐤. The latter can be built from projections onto some localized-orbital basis.

Comprehensive instructions on how to construct Wannier orbitals in VASP can be found here.

One-shot singular-value decomposition (SVD)

In one-shot SVD, Amn𝐤 is computed by projecting the KS orbitals onto localized orbitals basis ϕm𝐤 that is specified by the LOCPROJ tag:

Amn𝐤=ψn𝐤|S|ϕm𝐤,

where

ϕi𝐤(𝐫)=ei𝐤𝐫Ylm(r^)Rn(r).

Note that i encodes the quantum numbers n, l, and m. Thus, in Amn𝐤, m is not the magnetic quantum number.

Then, VASP performs one-shot SVD for each k point

Amn𝐤=[DΣV*]mn𝐤

to obtain the unitary matrix

Umn𝐤=[DV*]mn𝐤.

Selected columns of the density matrix (SCDM)

The SCDM method [1] is switched on using LSCDM. It has the advantage that the specification of a local basis in terms of atomic quantum numbers is omitted.

Maximally localized Wannier functions using Wannier90

The interface of VASP with the Wannier90 code[2][3] is mainly controlled by LWANNIER90 and LWANNIER90_RUN. First, the initial guess for Amn𝐤 can be created by providing the projections block in the wannier90.win file (also see WANNIER90_WIN) and setting LWANNIER90=True.

In order to obtain maximally localized Wannier functions, Umn𝐤 is constructed in a second step. For this, Amn𝐤 could be created using any projection method in the first step, i.e., single-shot SVD method (LOCPROJ), SCDM method (LSCDM), or Wannier90 (LWANNIER90). Then, Wannier90 can be executed directly or through VASP with the LWANNIER90_RUN tag.

References