Final Project: Si band structure using Quantum Espresso

Downloading, unpacking and running

In order to run the files you must have a user on Tamnun computer server. This guide refers only to QE on Tamnun and uses Linux commands. Please download the file package mk_project.tar and unpack it using the following command. This creates the following directories called TMP, PSEUDO and RUN. Login into your Tamnun account and unpack the tar file:

tar xvf mk_project.tar


Detailed setup and running (columns in italic are for description)

Please run all the following from the "RUN" directory extracted before.

1)    We start with the input script file for the self-consistent electronic structure calculation. It contains the following structure:



Check that the pseudo_dir and outdir directories have write permissions. Check the pseudopotential file si.UPF lays on pseudo_dir directory. Different pseudopotentials can be found on QE website for different atomic species and different calculation modes.

Now we can run the self-consistent calculation:

/usr/local/espresso/bin/pw.x < > si.scf.out

This calls the pw.x program sub-package with an input file between < > and a specified output file that we choose. Examine the output file and for example, we can see how convergence proceeds:



2)    Band structure is produced by solving the KS equations for a collection of k-vector points that follow a path along the border of the BZ1. The input file used for the band calculation is shown in the following table. It has the same format like the previous input file and I explain on what it differs:


Now we can run the band calculation using the following command:

/usr/local/espresso/bin/pw.x < > si.bands.out

This performs non-self-consistent calculations that are used to obtain band structure.

Let`s have a look on a piece of the output file si.bands.out:

Band Structure Calculation

Davidson diagonalization with overlap

ethr = 1.25E-10,avg # of iterations = 17.3

total cpu time spent up to now is 2.3 secs


We can see the potential used in the diagonalization (Davidson), the number of iterations that have been performed. The output file is a large file you can use the GREP command in linux or just editing it with any text editor.

3)    Now we need to collect band results for plotting. We will use bands.x package in order to run this file. It rewrite the bands ordering them using the overlap of the wave-functions on neighbor k points and calculate properties of each eigen-function.

For this we use the file that looks like this:


Verify the content of output files si_bands.out and si_bands.dat, notice for example the value of the valence band maximum at Γ at the origin.

4)    The next step is to run interactively band_plot.x in order to create the file used in gnuplot si_bands.dat:




And enter the following when it asks (number of bands, Efermi, file names in/out):







5)    Now let's get the data in a format to plot. We will use Gnuplot (more flexible) in order to plot the band structure. It is also possible to plot the band structure using "plotband.x" post-processing package that is included in QE. I wrote a gnu file prepared to be plotted using gnuplot (attached in the files there is a gnuplot quick reference):




Feel free to change the above file in order to plot different band structures, labels or axis limits (like I did in some results explained later).

Now we can plot using gnuplot:


gnuplot si_bands.gnu


The last command yields the eps file si_bands.eps and the next step is transform the eps file (post-script) to pdf:


epstopdf si_bands.eps


or open the eps file using for example:

ghostscript si_bands.eps


Go to the top