How do I calculate/approximate chern number from band structure? I know this is a similar post to Calculate Chern number from band structure but it has not been answered for 3 years so I want to make a repost, sorry. I did not make the original post so please don't crucify me.
I am new to chern number, Berry curvature, Berry phase, Berry connection, and all that so please treat me like a baby in this region.
What (I think) I understand about chern number is that it is a calculation based on the Berry curvature, which basically means I need the wavefunction. However I do not have the wavefunction, I only have a Bogoliubov de Gennes hamiltonian which I diagonalize to plot the band structure with (many) specific momentum values.
How do I go about, step-by-step, to find the chern number of the bands?
 A: 
I am new to Chern number

Personally, I prefer to call it the Chern twisting number as Chern numbers measure intrinsic twisting, in the same way as the Riemann tensor measures intrinsic curvature. However, there is a real and complex version. The real version is called Stiefel-Whitney twisting numbers and the complex version is called Chern twisting numbers.
It's useful to have a simple example: take a ribbon and glue the ends with no twists and so we have a circular band with no twists. Then it's Steifel-Whitney number is zero as it has zero twists.
Now if we add a half-twist before gluing, then it's Stifel-Whitney number is one as there is one half-twist.
Thus it appears that if we add a full twist before gluing then its Stifel-Whitney number ought to be two as a full twist is made up of two half-twists. But in fact, the Stiefel-Whitney number is actually zero! So why is this?
This is because we are measuring intrinsic twisting and not extrinsic twisting. Intrinsically an ant crawling on a band with a full twist won't fimd any difference between this band and a band with no twists.
Thus in this case the Stifel-Whitney number can only take values one and zero.
Mathematicians says that the Stifel-Whitney twisting number is counting the number of twists of a line bundle over a circle. Hopefully this terminology explains itself given the example above. More generally, we see that a circle is a manifold, and the Stifel-Whitney twisting number measures the twisting of a line bundle over a manifolds. If two different line bundles over the same manifold have the same Stifel-Whitney twisting number then they are the same. Even more generally, seeing that a line is an example of a vector space, so Stiefel-Whitney twisting numbers measure the twisting of real 1d vector bundles over manifolds.
This generalises in two ways. We can have complex 1d vector bundles and we can have higher rank vector bundles. And of course we can have both.
Chern numbers measure the twists of a 1d complex vector bundle over any manifold. Whilst Stiefel-Whitney classes measure the twists of higher rank real vector bundles. Here we have more than one class and in fact we have as many as the rank of the bundle. Unfortunately, even if all the Stiefel-Whitney classes here are all the same, we need not have the same vector bundle. However, we do know that if they are different, then the vector bundles are different.
Finally, we see that Chern twisting classes measure the twisting of complex vector bundles over a manifold of any rank.
