vaspspn

To interpolate the spin operator expectation value, the matrix \(s_{mn}({\bf q})=\langle u_{m{\bf q}}\vert\hat{\sigma}\vert u_{n{\bf q}}\rangle\) is needed. To facilitate study of spin-dependent properties within VASP code, a submodule wannierberri.utils.vaspspn is included, which computes \(S_{mn{\bf q}}\) based on the normalized pseudo-wavefunction read from the WAVECAR file. Note that the use of pseudo-wavefunction instead of the full PAW (Blöchl 1994) wavefunction is an approximation, which however in practice gives a rather accurate interpolation of spin.

An utility to calculate the .spn file for wannier90 from WAVECAR file generated by VASP.

Computes \(s_{mn}({\bf q})=\langle u_{m{\bf q}}\vert\hat{\sigma}\vert u_{n{\bf q}}\rangle\) based on the normalized pseudo-wavefunction read from the WAVECAR file.

WARNING : vaspspn uses pseudo-wavefunction instead of the full PAW (Blöchl 1994) wavefunction This approximation usually gives reasonable results for interpolation of spin in non-spin-degenerate materials, but is known to give wrong results for spin hall conductivity in spin-degenerate (preserving P*T symmetry) bandstructures (see Issue #274)

A better alternative is provided by Chengcheng Xiao

usage :

python3 -m wannierberri.utils.vaspspn   option=value
Options
-h
print this help message
fin
inputfile name.
default: WAVECAR
fout
outputfile name
default: wannier90.spn
IBstart
the first band to be considered (counting starts from 1).
default: 1
NB
number of bands in the output. If NB<=0 all bands are used.
default: 0
norm
how to normalize the eigenstates, if they are not perfectly orthonormal
norm=norm (D) - normalize each state individually
norm=none - do not normalize WFs, take as they are.