functions.band_structure.U
- U(var_num, _eigenvectors, _band, _idx_x, _idx_y, _group_size)[source]
- Compute the link variable. - The normalized link variables are defined as \[\tilde{\mathcal{U}}_\gamma(\mathbf{k}_\alpha) = \frac{\det U_\gamma(\mathbf{k}_\alpha)}{|\det U_\gamma(\mathbf{k}_\alpha)|}, \;\;\; \gamma = \{1, 2\},\]- with link matrices \[\begin{split}U_\gamma(\mathbf{k}_\alpha) = \begin{pmatrix} \braket{u_1(\mathbf{k}_\alpha)|u_1(\mathbf{k}_\alpha+\hat{\mathbf{e}_\gamma})} & \dots & \braket{u_1(\mathbf{k}_\alpha)|u_M(\mathbf{k}_\alpha+\hat{\mathbf{e}_\gamma})} \\ \vdots & \ddots & \vdots \\ \braket{u_M(\mathbf{k}_\alpha)|u_1(\mathbf{k}_\alpha+\hat{\mathbf{e}_\gamma})} & \dots & \braket{u_M(\mathbf{k}_\alpha)|u_M(\mathbf{k}_\alpha+\hat{\mathbf{e}_\gamma})} \end{pmatrix}.\end{split}\]- Here, \(\mathbf{k}_\alpha\) is the discretized momentum vector, \(\{\hat{\mathbf{e}}_1, \hat{\mathbf{e}}_2\}\) are linearly independent unit vectors in the momentum grid, and \(\ket{u(\mathbf{k}_\alpha)}\) is the eigenvector at momentum \(\mathbf{k}_\alpha\). The link variables are constructed for \(M\) touching bands. [Fukui05] - Note - Input eigenvectors are already normalized from - numpy.linalg.eig.- Parameters:
- var_num ([1, 2]) – The link variable number. 
- _eigenvectors (ndarray) – The array of eigenvectors with dimension (num_bands, num_bands, num_samples, num_samples). 
- _band (int) – The band number. If part of a band group, this must refer to the lowest band of the group. 
- _idx_x (int) – The x-momentum, with respect to the discretized grid. 
- _idx_y (int) – The y-momentum, with respect to the discretized grid. 
- _group_size (int) – The number of bands in the band group. 
 
- Returns:
- link_var – The U(1) link variable. 
- Return type: