Tutorial:Wires and slabs

Hexagonal boron nitride (h-BN) is an insulator widely studied which has a similar structure to graphene. Here we will describe how to get the band structure of an h-BN monolayer.

Ground state calculation

A layer of h-BN is periodic in the x-y directions, but not in the z. Thus we will set `PeriodicDimensions` = 2 . Here we set the bond length to 1.445*angstrom. The box size in the z direction is 2*L with 'L' large enough to describe a monolayer in the vacuum. One should always converge the box length value. Here is the inp file for the GS calculation:

````CalculationMode` = gs

`FromScratch` = yes

`ExperimentalFeatures` = yes

`PeriodicDimensions` = 2

`Spacing` = 0.20*angstrom

`BoxShape` = parallelepiped

BNlength = 1.445*angstrom
a = sqrt(3)*BNlength
L=40

%`LatticeParameters`
a | a | L
%

%`LatticeVectors`
1    | 0         | 0.
-1/2 | sqrt(3)/2 | 0.
0.   | 0.        | 1.
%

%`ReducedCoordinates`
'B' | 0.0 | 0.0  | 0.00
'N' | 1/3 | 2/3  | 0.00
%

`PseudopotentialSet`=hgh_lda

`LCAOStart`=lcao_states

%`KPointsGrid`
12   | 12   | 1
%

`ExtraStates` = 2

`UnitsOutput` = ev_angstrom
```

Band Structure

After this GS calculation, we will perform an unocc run. This non-self consistent calculation which needs the density from the previous GS calculation.

````CalculationMode` = unocc

`ExtraStatesToConverge`  = 5
`ExtraStates`  = 10
```

Here the number of `ExtraStates` is the number of unoccupied bands in the final band structure. The highest occupied states are extremely complicated to converge. Therefore the variable `ExtraStatesToConverge` specifies how many unoccupied states are considered for stopping criterium of the non-self-consistent run.

In order to calculate the band structure along a certain path along the BZ, we will use the variable `KPointsPath` . Instead of using the `KPointsGrid` block of the GS calculation, we use during this unocc calculation:

```%`KPointsPath`
12  |  7  | 12                 # Number of k point to sample each path
0   |  0  | 0                  # Reduced coordinate of the 'Gamma' k point
1/3 | 1/3 | 0                  # Reduced coordinate of the 'K' k point
1/2 |  0  | 0                  # Reduced coordinate of the 'M' k point
0   |  0  | 0                  # Reduced coordinate of the 'Gamma' k point
%
```

The first row describes how many k points will be used to sample each segment. The next rows are the coordinate of k points from which each segment start and stop. In this particular example, we chose the path: Gamma-K, K-M, M-Gamma using 12-7-12 k points. The output band structure is written in static/ bandstructure. In Figure 1 is plotted the output band structure where blue lines represent the occupied states and the red ones the unoccupied ones.

```Info: The code will run in band structure mode.
No restart information will be printed.
```

Moreover, by using `KPointsPath`, the wave function obtained during the previous GS calculation (and stored in the restart/ directory) will not be affected by this calculation.

One should also make sure that the calculation is converged with respect to the spacing. Figure 2 shows the band gap for several spacing values. We find that a spacing of 0.14 Angstrom is needed in order to converge the band gap up to 0.01 eV.

Previous Tutorial:Periodic systems - Next Tutorial:Geometry optimization

Back to [[Tutorial Series:{{{series}}}|{{{series}}}]]