spin_moment

sisl.physics.electron.spin_moment(state, S=None)[source]

Calculate the spin magnetic moment (also known as spin texture)

This calculation only makes sense for non-collinear 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}_i^x &= \langle \psi_i | \boldsymbol\sigma_x \mathbf S | \psi_i \rangle \\ \mathbf{S}_i^y &= \langle \psi_i | \boldsymbol\sigma_y \mathbf S | \psi_i \rangle \\ \mathbf{S}_i^z &= \langle \psi_i | \boldsymbol\sigma_z \mathbf S | \psi_i \rangle\end{split}\]
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 \(k\) point the eigenvectors have been evaluated at.

Returns:
numpy.ndarray

spin moments per state with final dimension (state.shape[0], 3).

See also

DOS
total DOS
PDOS
projected DOS

Notes

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