spin_moment

sisl.physics.electron.spin_moment(state, S=None, project: bool = False)[source]

Spin magnetic moment (spin texture) and optionally orbitally resolved moments

This calculation only makes sense for non-colinear calculations.

The returned quantities are given in this order:

  • Spin magnetic moment along \(x\) direction

  • Spin magnetic moment along \(y\) direction

  • Spin magnetic moment along \(z\) direction

These are calculated using the Pauli matrices \(\boldsymbol\sigma_x\), \(\boldsymbol\sigma_y\) and \(\boldsymbol\sigma_z\):

\[\begin{split}\mathbf{S}_\alpha^x &= \langle \psi_\alpha | \boldsymbol\sigma_x \mathbf S | \psi_\alpha \rangle \\ \mathbf{S}_\alpha^y &= \langle \psi_\alpha | \boldsymbol\sigma_y \mathbf S | \psi_\alpha \rangle \\ \mathbf{S}_\alpha^z &= \langle \psi_\alpha | \boldsymbol\sigma_z \mathbf S | \psi_\alpha \rangle\end{split}\]

If project is true, the above will be the orbitally resolved quantities.

Parameters:
  • state (array_like) – vectors describing the electronic states, 2nd dimension contains the states

  • S (array_like, optional) – overlap matrix used in the \(\langle\psi|\mathbf S|\psi\rangle\) calculation. If None the identity matrix is assumed. The overlap matrix should correspond to the system and \(\mathbf k\) point the eigenvectors has been evaluated at.

  • project (bool, optional) – whether the spin-moments will be orbitally resolved or not

Notes

This routine cannot check whether the input eigenvectors originate from a non-colinear calculation. If a non-polarized eigenvector is passed to this routine, the output will have no physical meaning.

See also

DOS

total DOS

PDOS

projected DOS

COP

calculate COOP or COHP curves

Returns:

numpy.ndarray – spin moments per state with final dimension (3, state.shape[0]), or (3, state.shape[0], state.shape[1]//2) if project is true