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)
.
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.