Tools for handling Wannier models with a spin operator, calculating the Wannier model quality and spin-texture plotting. See the documentation website.
pip install spinWannier
If you find this package useful, please cite L. Vojáček*, J. M. Dueñas* et al., Nano Letters (2024). The underlying physics is summarized in Sec. S1.1 of the paper's Supplementary.
Example plot of Fermi-surface spin textures of CrXY (X,Y=S,Se,Te) monolayers:
An example of use is given in ./examples/spinWannier_use_example.ipynb
. It uses input files of a CrSeTe monolayer given in ./examples/CrSeTe/
.
from spinWannier.WannierTBmodel import WannierTBmodel
model = WannierTBmodel(sc_dir='./sc', nsc_dir='./nsc', wann_dir='./wann', bands_dir='./bands')
kpoint_matrix=[[(0.33,0.33,0.00), (0.00,0.00,0.00)],
[(0.00,0.00,0.00), (0.50,0.00,0.00)],
[(0.50,0.00,0.00), (0.33,0.33,0.00)]]
model.interpolate_bands_and_spin(kpoint_matrix, kpath_ticks=['K','G','M','K'], kmesh_2D=False)
model.plot1D_bands(yaxis_lim=[-6.6, 7.5], savefig=True, showfig=True)
model.interpolate_bands_and_spin(kpoint_matrix, kmesh_2D=True)
model.plot2D_spin_texture()
(In-plane spin projection as arrows, out-of-plane spin color-coded.)
model.wannier_quality(yaxis_lim=[-6.5, 7.5], savefig=True, showfig=True)
(The same information is also plotted as a function of energy, integrated over k-space.)
(Spin magnitudes, integrated over k-space.)
(Their histogram, with most values close to 1, as expected.)