degenerate_decouple

sisl.physics.degenerate_decouple(state, M)

Return vec decoupled via matrix M

The decoupling algorithm is this recursive algorithm starting from \(i=0\):

\[\begin{split}\mathbf p &= \mathbf V^\dagger \mathbf M_i \mathbf V \\ \mathbf p \mathbf u &= \boldsymbol \lambda \mathbf u \\ \mathbf V &= \mathbf u^T \mathbf V\end{split}\]
Parameters:
  • state (numpy.ndarray or State) – states to be decoupled on matrices M The states must have C-ordering, i.e. [0, ...] is the first state.

  • M (numpy.ndarray) – matrix to project to before disentangling the states