spin_orbital_moment

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

Calculate the spin magnetic moment per orbital site (equivalent to spin-moment per orbital)

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,o}^x &= \psi_{i,o}^* | \boldsymbol\sigma_x \mathbf S | \psi_i \rangle \\ \mathbf{S}_{i,o}^y &= \psi_{i,o}^* | \boldsymbol\sigma_y \mathbf S | \psi_i \rangle \\ \mathbf{S}_{i,o}^z &= \psi_{i,o}^* | \boldsymbol\sigma_z \mathbf S | \psi_i \rangle\end{split}\]

Note that this is equivalent to PDOS without the distribution function and energy grid.

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

  • S (array_like, optional) – overlap matrix used in the \(\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.

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

spin_moment

spin moment for states (equivalent to the spin_orbital_moment.sum(1))

Returns

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

Return type

numpy.ndarray