spin_moment

sisl.physics.electron.spin_moment(state, S=None, projection='diagonal')[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 σx, σy and σz:

Sαx=ψα|σxS|ψαSαy=ψα|σyS|ψαSαz=ψα|σzS|ψα

If projection is orbitals/basis/true, the above will be the orbitally resolved quantities.

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

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

  • projection (Union[ProjectionTypeTrace, ProjectionTypeDiag, ProjectionTypeHadamard, True, False]) – how the projection should be done

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 projection is orbitals/basis/true

Return type:

numpy.ndarray

Parameters:

projection (Union[ProjectionTypeTrace, ProjectionTypeDiag, ProjectionTypeHadamard, True, False])