Difference between revisions of "Tutorial:Wires and slabs"

From OctopusWiki
Jump to navigation Jump to search
(No difference)

Revision as of 16:33, 6 August 2018

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

Convergence of the band gap with respect to the spacing for an h-BN monolayer.

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 criterion 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/ band structure. 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.


Back to Tutorials