Skip to main content

Density Functional Theory using Quantum Espresso

This tutorial is result of my personal notes while trying (which I still do) to learn Density Functional Theory calculations myself. I am no expert in this subject. I am sharing this notes here, just in case it helps you getting started. I will cite numerous other resources that I am following. Hope you will find this tutorial helpful.

The quantum espresso input files, jupyter notebooks (containing python code for visualizations), and other source files related to this tutorial can be found on GitHub: pranabdas/espresso. You may clone the repository to your local machine:

git clone

Or, if you do not have git installed, download zipped copy of the repository here.

Filename conventions

Lately, I decided to follow specific pattern for the filenames, but you can choose whatever works best for you. Note that all example files in this tutorial does not follow this convention yet.

{program}.{calculation}.{system}.{in, out}
{program}.{calculation}.{system_description}.{in, out}
{pw, pp, ...}.{scf, bands, ...}.{silicon, al_slab}.{in, out}

Example: pw.bands.silicon.ininput file for the bands calculation using PWscf program for silicon.

For PWTK scripts, we will use .pwtk extension (e.g., silicon_vc_relax.pwtk).

Unit conversions

  • 1 Bohr = 0.529177249 Å
  • 1 Rydberg (Ry) = 13.6056981 eV.

Angstrom to Bohr converter: lattice constants are often provided in angstrom, you can use following utility to convert to Bohr.

 Å = 1.8897259886 Bohr.