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)
Mani (talk | contribs)
m Fix 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 build from projections onto some localized-orbital basis.
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.


== One-shot singular-value decomposition (SVD)==
== One-shot singular-value decomposition (SVD)==

Revision as of 11:47, 17 May 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 build from Amn𝐤. The latter can be built from projections onto some localized-orbital basis.

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 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