As an example, we show in Fig. 74 the Berry curvature of graphene. Since the absolute magnitude of Berry curvature is approximately proportional to the square of inverse of bandgap, the large Berry curvature can be seen around K and K' points, where the massive Dirac point appears if we include spin-orbit interaction.

Let us illustrate how the calculation can be performed by using an input file 'Graphene-Chern.dat' stored in the directory 'work'.

**SCF calculation**

When you perform the SCF calculation for graphene using an input file 'Graphene-Chern.dat' stored
in the directory 'work', you need to switch on the keyword 'HS.fileout' as

HS.fileout on #on|off, default=offAfter finishing the SCF calculation normally, we may obtain an out file 'Graphene-Chern.scfout'.

**Calculation of Chern number and Berry curvature**

Then, you can proceed for the calculation of the Chern number of Berry curvature using
a post-processing code 'calB.c'. The compilation of the code can be done in the director 'source' as

% make calBAfter the compilation is successfuly, you obtain the executable file 'calB'. Then, please copy it to the directory 'work', and execute it as follows:

% ./calB graphene.scfout or % ./calB graphene.scfout < calB.in > calB.out or % mpirun -np 4 ./calB graphene.scfout < calB.in > calB.out

**Parameters for calB**

The input file 'calB.in' needs to be prepared as follows:

1 0 0 0 1 100 100In the following we explain parameters for the calculation.

- In the first line, you need to specify whether the sum of the Berry curvature
of all the bands is calculated, or the Berry curvature is calculated for a disentangled bands.
If the former is selected, please set '1', while for the latter please set '0'.
The latter setting is valid only if a set of bands are fully disentangled.
- In the second line, you need to specify how many bands are taken into account for the
calculations, which are counted from the lowest band. If you specify '0', all the valence
bands will be taken into account.
- In the third line, we specify planes to be calculated in the reciprocal space.
For example, '0 0 1' corresponds to the specification of the plane.
- In the fourth line, you need to specify the number of mesh. In the example of graphene,
the plane specified by the third line is discretized by a mesh of 100100.

**Output files**

After the calculation by 'calB', the following files are generated.

- BerryC*.dat
The file stores the calculated Berry curvature and Chern number, where the '*' behind 'BerryC' in the file name is the number of bands to be included. In the example of graphene, '*' is 8. The unit of Berry curvature is Å. The part of 'BerryC8.dat' for the graphene case is shown below:

#Mesh Number:100*100 #Band Number:8 #ChernNumber = 0.000000 #k1 k2 F (ang-2) 0.005000 0.005000 -1.59799534e-05 0.015000 0.005000 1.94455630e-05 0.025000 0.005000 3.58476883e-05 .... ..

Using gnuplot, one can visualize the data as

% splot "BerryC8.dat" w l

Figure 74 shows the Berry curvature on the plane at .

- temporal_12345.input
This is a copy of input file, which was used for the SCF calculation, reconstructed from the scfout file.