PAOFLOW.topology.do_spin_texture#
Functions#
|
Compute the spin texture for Fermi-surface bands and write output files. |
Module Contents#
- PAOFLOW.topology.do_spin_texture.do_spin_texture(data_controller)[source]#
Compute the spin texture for Fermi-surface bands and write output files.
- Parameters:
data_controller (DataController) – Object providing
data_arraysanddata_attributes. Required arrays:E_k(shape(nkpnts, nawf, 1)),v_k(shape(snktot, nawf, nawf, 1)),Sj(shape(3, nawf, nawf)). Required attributes:nawf,nk1,nk2,nk3,npool,fermi_up,fermi_dw,opath.- Returns:
Adds the following key to
data_controller.data_arrays:ind_plot: list of int — indices of the bands that cross the Fermi window[fermi_dw, fermi_up].
Writes one of the following output files on rank 0:
{opath}/spin-texture-bands.dat: ifkqis present (k-path mode), a text file with columnsik,E,Sx,Sy,Szfor each band inind_plot.{opath}/spin_text_band_{ib}.npz: one NPZ archive per Fermi band (keyspinband, shape(nk1, nk2, nk3, 3)) for full k-grid mode.
- Return type:
None
Notes
The spin expectation value for band \(n\) at k-point \(\mathbf{k}\) is computed as
\[\langle S_l \rangle_{n\mathbf{k}} = \langle n\mathbf{k} | S_l | n\mathbf{k} \rangle = \mathbf{v}^\dagger_{n\mathbf{k}} S_l \mathbf{v}_{n\mathbf{k}}\]where \(S_l\) (
Sj[l]) is the \(l\)-th Cartesian spin matrix and \(\mathbf{v}_{n\mathbf{k}}\) are the Bloch eigenvectors. Only the diagonal elements (band index \(n\)) of the full matrix product are retained. The computation is valid only for non-collinear or spin–orbit coupled calculations (nspin = 1).