Skip to main content

DOS and Bandstructure of Graphene

I am following this example from the ICTP online school 2021.

Graphene is single layer of carbon atoms. First perform the self consistent field calculation to obtain the Kohn-Sham orbitals. Please check the input files in GitHub repository. Run pw.x:

pw.x -i graphene_scf.in > graphene_scf.out

Next increase the k-grid, and perform the non-self-consistent field calculation.

pw.x -i graphene_nscf.in > graphene_nscf.out

DOS calculation

dos.x -i graphene_dos.in > graphene_dos.out
graphene-dos

Bandstructure calculation

First run the bands calculation for given k-path:

pw.x -i graphene_bands.in > graphene_bands.out

Followed by the postprocessing to collect the bands:

bands.x -i graphene_bands_pp.in > graphene_bands_pp.out

Make plots:

notebooks/graphene.ipynb
import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('../src/graphene/graphene_bands.dat.gnu')

k = np.unique(data[:, 0])
bands = np.reshape(data[:, 1], (-1, len(k)))

for band in range(len(bands)):
plt.plot(k, bands[band, :], linewidth=1, alpha=0.5, color='k')
plt.xlim(min(k), max(k))

# Fermi energy
plt.axhline(0.921, linestyle=(0, (8, 10)), linewidth=0.75, color='k', alpha=0.5)
# High symmetry k-points (check bands_pp.out)
plt.axvline(0.6667, linewidth=0.75, color='k', alpha=0.5)
plt.axvline(1, linewidth=0.75, color='k', alpha=0.5)
# text labels
plt.xticks(ticks= [0, 0.6667, 1, 1.5774], labels=['$\Gamma$', 'K', 'M', '$\Gamma$'])
plt.ylabel("Energy (eV)")
plt.show()
graphene-bands