spin_moment

sisl.physics.electron.spin_moment(state, S=None, project=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}_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}\]

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 \(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

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

Return type

numpy.ndarray