For a 1D system, there is a way to calculate the Zak phase in the discrete form. Suppose C is some closed path in k-space (a 1D BZ). If we suppose the path is discretized into (not necessarily equidistant) ki steps with i=1,…,N and kN+1≡k1, the end result is:
(the formula exists in the appendix)
You can view this as the product (i.e. phase summation) of N small rotations of the eigenvector's phase as it's transported along C; the Im(log)-part merely picks out the phase.
If C is a non-contractible path in the BZ along a reciprocal lattice vector G, it is desirable to enforce a periodic gauge, in which case one would take:
(the formula exists in the appendix)
How we can implement the periodic gauge in numerical calculations? We know it is necessary when we talk about the berry phase. I mean how I can do a numerical calculation for considering periodic gauge mentioned above.