EDIT: Please see my first comment on this question first.

In this paper, Fukui and Hatsugai present a numerical scheme for the calculation of the $\mathbb{Z}_2$ index that uses the following definition: $$\tag{1} \mathbb{Z}_2 = \frac{1}{2\pi}\left[ \oint_{\partial HBZ} A dk - \int_{HBZ} \Omega_z d^2k \right] (\text{mod } 2). $$ In Figure 1 of the paper (screenshot below), they identify three types of $k$-points in a discretized Brillouin zone lattice. These three sets are denoted by $\mathcal{B}_s^\pm$ and $\mathcal{B}_s^0$. They define what each of these points are:

  • $\mathcal{B}_s^0$ are time-reversal $\mathcal{T}$-invariant sites: $\mathcal{T}H(k_l)\mathcal{T}^{-1}=H(k_l)$.
  • As a $\mathcal{T}$ constraint, states at $-k_l\in\mathcal{B}_s^+$ are Kramers doublets of states at $k_l \in \mathcal{B}_s^-$.
  • If the spectrum at each $k_l$ is arranged as $\epsilon_n (k_l)\leq\epsilon_{n+1}(k_l)$, the states at $-k_l$ can be constrained as: $|n(-k_l)\rangle=\mathcal{T}|n(k_l)\rangle,$ for $k_l\in\mathcal{B}_s^-$.
  • Both Kramers doublets are included in $\mathcal{B}_s^0$. Arranging the spectrum here as $\epsilon_{2n-1}(k)= \epsilon_{2n}(k)\leq \epsilon_{2n+1}(k)$, they impose a final constraint: $|2n(k_l)\rangle=\mathcal{T}|n(k_l)\rangle$, for $k_l\in\mathcal{B}_s^-$.

They use these constrained states to define a link variable per the usual Fukui-Hatsugai-Susuki scheme (I think). I have implemented this common scheme in Python and MATLAB with no issue, but I am having trouble imposing the required constraints and properly choosing one half-Brillouin-zone for eq. $(1)$ above. I can see it being easy to do with some hard-coding in a low-resolution lattice, but I was wondering whether someone give me insight on translating the above constraints to code, and properly choosing the three different types of $k$-points ($\mathcal{B}_s^i$) automatically without hard-coding. Thanks.

enter image description here

  • 1
    $\begingroup$ Actually, after typing all this out, I realized that this might be very easy. Do I just have to pick the required area by eliminating certain points from the area of integration, using the points $(i,j)$ with $i,j \in \{\pm \pi, 0\}$ as reference? I don't think I have to care about 'imposing' those conditions as long as I know my eigenvalues are ordered. Is this correct? $\endgroup$ Jul 2 at 16:38
  • 1
    $\begingroup$ They seem to exemplify this in pg 14 of t-ozaki.issp.u-tokyo.ac.jp/meeting16/OMX-Sawahata-2016Nov.pdf $\endgroup$ Jul 5 at 18:36

I think I figured this out. For most practical purposes, I think it is fine to just choose $-\pi\leq k_x\leq \pi$ and $0\leq k_y\leq \pi$ (half-BZ, with exact ranges depending on the model). I think I over-complicated the authors' work. It is unlikely that the vortices/singularities will occur near the boundary of the chosen region. So, I can just take the difference between the Berry connection and curvature integrals. If the singularities do occur near the boundary, I think it is okay to offset the region of integration in a consistent manner to avoid having to choose the region of integration so carefully as in Figure 1. Someone please correct me if I am wrong. Thanks.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.