Hamiltonian(t, p, q, A_UC, vec_group_matrix, k)[source]

The generalized Hofstadter Hamiltonian.

The generalized Hofstadter Hamiltonian is given by the \(N_b\times N_b\) block matrix

\[\begin{split}H = \begin{pmatrix} H^{00} & H^{01} & \dots \\ H^{10} & H^{11} & \dots \\ \vdots & \vdots & \ddots \end{pmatrix},\end{split}\]

where \(N_b\) is the number of sites in the basis. Each submatrix \(H^{\alpha\beta}\) has dimensions \(q\times q\) and represents the Harper equation for hoppings from the \(\alpha\) to the \(\beta\) sublatttice, such that

\[\begin{split}H = \begin{pmatrix} \Lambda_{0,0} & \Lambda_{0,1} & \dots \\ \Lambda_{1,0} & \Lambda_{1,1} & \dots \\ \vdots & \vdots & \ddots \end{pmatrix} + \begin{pmatrix} \ddots & \Lambda_{0, q-1}^* & \Lambda_{0, q}^* \\ \Lambda_{q-1, 0} & \ddots & \Lambda_{1, q}^* \\ \Lambda_{q, 0} & \Lambda_{q, 1} & \ddots \end{pmatrix},\end{split}\]

where \(\Lambda_{l, n}\) is the diagonal function, and we have dropped the sublattice superscripts for readability. Note that we only populate the first matrix with unique hoppings in the positive J direction. If there are inter-unit-cell hoppings that are related by Hermitian conjugation in the same Harper equation, then the lower triangular matrix will simply be the conjugate of the upper triangular matrix. The second matrix represents rolled over boundary terms.

  • t (list) – The list of hopping amplitudes in order of ascending NN.

  • p (int) – The numerator of the flux density.

  • q (int) – The denominator of the flux density.

  • A_UC (float) – The unit cell area in units of a2 (possibly scaled by a periodicity factor).

  • vec_group_matrix (ndarray) – The matrix of grouped nearest neighbor arrays.

  • k (ndarray) – The momentum vector.


Hamiltonian – The Hofstadter Hamiltonian matrix of dimension \(N_b q \times N_b q\).

Return type: