radtools.solve_via_colpa#
- radtools.solve_via_colpa(D)[source]#
Diagonalize grand-dynamical matrix following the method of Colpa [1].
Algorithm itself is described in section 3, Remark 1 of [1].
- Parameters:
- D(2N, 2N) array-like
Grand dynamical matrix. Must be Hermitian and positive-defined.
- Returns:
- E(2N,) numpy.ndarray
The eigenvalues, each repeated according to its multiplicity. First N eigenvalues are sorted in descending order. Last N eigenvalues are sorted in ascending order. In the case of diagonalization of the magnon Hamiltonian first N eigenvalues are the same as last N eigenvalues, but in reversed order.
- G(2N, 2N) numpy.ndarray
Transformation matrix, which change the basis from the original set of bosonic operators \(\boldsymbol{a}_{\boldsymbol{k}}`to the set of new bosonic operators :math:\)boldsymbol{c}_{boldsymbol{k}}` which diagonalize the Hamiltonian which corresponds to the grand-dynamical matrix
D:\[\boldsymbol{c}_{\boldsymbol{k}} = \boldsymbol{G} \boldsymbol{a}_{\boldsymbol{k}}\]where (same for \(\boldsymbol{c}_{\boldsymbol{k}}\))
\[\begin{split}\boldsymbol{a}_{\boldsymbol{k}} = \begin{pmatrix} \boldsymbol{\alpha}_{\boldsymbol{k}} \\ \boldsymbol{\alpha}_{-\boldsymbol{k}}^{\dagger} \end{pmatrix}\end{split}\]
Notes
Let \(\boldsymbol{E}\) be the diagonal matrix of eigenvalues
E.\[\boldsymbol{E} = (\boldsymbol{G}^{\dagger})^{-1} \boldsymbol{D} \boldsymbol{G}^{-1}\]References