Wannier Orbitals - Trebonius91/utils4VASP GitHub Wiki
The generation of Wannier orbitals is an important method to obtain spatially localized orbitals for periodic calculations with VASP, which can then by further interpreted or used for further evaluation calculations.
A detailed description can be found in the VASP Wiki, here a short overview of how to do the most common calculation types is given.
A generic INCAR file with commented out keywords to the three options can be generated with gen_incar.py -wannier
(see Wiki page).
LOCPORJ method
In this option, the user needs to specify a certain atomic (hydrogen-like) orbital on an ionic site, onto which then the projection from a chosen range of bands is done.
The following keywords should be used and added to a single point INCAR
file:
NBANDS = [number]
Number of used bands, depends on the system and unit cell!LOCPROJ = [ion number] : [ang. mom. quantum number] : [Wannier orbital]; (repeat...)
Which Wannier orbital shall be placed where. An example isLOCPROJ = 1 : sp3 : Hy 1 4
, where the mapping shall be done on sp3 hybrid orbitals on the first atom in the system. The orbitals shall be Hydrogen-like atomic orbitals (spherical harmonics), with a diffusivity of 4. Several atoms or different orbitals can be specified by adding several blocks, separated by ; signs.LWRITE_WANPROJ = .TRUE.
Write the Wannier orbital transformation matrix to disk.
Note that the number of bands and the number of mapped orbitals is always identical, such that, if, e.g., NBANDS = 4
is set, four orbitals of the kind specified in LOCPROJ
will be generated.
SCDM method
The Selected-Columns-of-the-Density-Matrix (SCDM) method does not require explicit specification of the desired Wannier centers, but tries to localize a selected number of bands automatically to orthogonal Wannier functions. This is easier to set up and requires no chemical intuition, but trends to struggle for electronically complicated/entangled systems and might not give atom-centered Wannier functions. The following keywords are appropriate:
NBANDS = [number]
Number of used bands, depends on the system and unit cell!NUM_WANN = [number]
Number of Wannier orbitals, can also be different fromNBANDS
LSCDM = .TRUE.
Activate the SCDM method
In cases, where the selected range of bands is not isolated from other bands, the SCDM Wannierization might become problematic. Then, a disentanglement can be done, by applying a weight function to the range of bands, by default a conjugated error function with a position and width to be determined:
CUTOFF_TYPE = erfc
Choose theerfc
function.CUTOFF_MU = [value]
Position of the weight function in eV, with respect to the Fermi levelCUTOFF_SIGMA = [value]
Width of the weight function, in eV (how sharp the band "cutoff" shall be).
Interface to Wannier90
To obtain Wannier functions of higher quality, the localization can be done by the separate Wannier90 program, which employs an iterative algorithm for obtaining maximally-localized Wannier functions (MLWF).
Wannier90 offers a Fortran interface to VASP. To be able to use this, the VASP compilation must be done with the -DVASP2WANNIER90
option.
To apply Wannier90 automatically after the LOCPORJ
or SCDM
methods, just add the following lines to the respective INCAR:
LWANNIER90 = true
Activates the communication with Wannier90WANNIER90_WIN = // " dis_num_iter = 100 // num_iter = 100 // "
Wannier90 input file settings to be set explicitly (all others are set by VASP). (Here // means a new line)
If the disentanglement option shall be done for SCDM, set dis_num_iter = 0
.
Now, Wannier90 should be called directly by VASP during the calculation. Look into the Wannier90 manual for details.