I have the following 6x6 matrix (taken from Google Books p. 129):
For background info: All the entries depend on the momentum $k$. Getting the eigenvalues of this matrix for each $k$ corresponds to the electronic energies of electrons for 6 different electronic bands and the eigenvectors are coefficients (lets call them $a$) to compute the electrons wave function.
I could also write this eigenvalue problem as:
$\sum_{j'}H^{LK}_{j,j'}a_{j'} = E_ja_j$
and I know which j is which electronic band. But: when I introduce a numerical grid and solve this eigenvalue problem (using c++ and ComplexEigenSolver from the Eigen library) and I look at the very first eigenvalue, it does not correspond to $j=1$ (whose value is known). It rather corresponds to another j. This is due to that the eigensolver does not give the eigenvalues in a particular order. But I need this order to not confuse eigenvalues or eigenvectors of different $j$. Both eigenvalues and vectors can in principle be complex. Is there a way to get the eigenvalues and vectors so that their order corresponds to my matrix definition?