The flux on the small plaquette can be computed as
What is nice about this product is that it is gauge invariant as can be checked by multiplying each wave-function ∣u(kn,p)⟩→eiφ(kn,p)∣u(kn,p)⟩.
The nice thing about this expression is that one can also generalize this to multiband systems to calculate the total Chern number so that the contribution from each plaquette
where s labels the band index.
What Vanderbilt and coworkers pointed out is that this expression can be written as
is related to determinants of a bunch of matrices ⟨us(kn,p)∣us′(kn,p+1)⟩, which in the diagonal basis of eigenstates is nearly diagonal, which takes us back to the previous expression.
The main advantage of this expression is that it is actually U(N) invariant for any unitary transformation of the N occupied eigenstates.
So the final recipe to compute the Chern number is as follows:
grid up the BZ into small plaquettes labelled by n
Compute the flux through each plaquette Φn=Arg[p∏Det[⟨us(kn,p)∣us′(kn,p+1)⟩]],
where kn,p are momenta on the corners of the lattice.