In order to download the source code, contact us () and we will:

  • [Recommended] add you as a collaborator in our GitHub project
  • [If you do not have a GitHub account] send you a .tar.gz file.

To help us keep track of user number, we encourage each individual user to submit a separate request for code download. For example, research groups with multiple users should also have each user submit a request.

If the does not work, see here the intructions.

Clone from GitHub (or extract .tar.gz) into the QE directory. There are three subdirectories inside the directory “perturbo”:

  • “config” contains the system-dependent makefiles make.sys.XXX
  • “pert-src” contains the source code of perturbo.x to compute electron dynamics
  • “qe2pert-src” contains the source code of the interface program qe2pert.x

The source code is supplemented by the tutorial examples input and output files. More details about the examples can be found in the Organization section.


There are two files in the “perturbo” directory, Makefile and make.sys. PERTURBO uses the config file of QE for most of the compiler options. The config file make.sys inside the directory “perturbo” specifies additional options required by PERTURBO. Modify make.sys to make it suitable for your system, such as the OpenMP options and path to the HDF5 library (not needed if HDF5 library is already specified in of QE).

$ vim make.sys

Once the file make.sys has been modified, you are ready to compile PERTURBO.

$ make

After the compiling, a directory called “bin” is generated, which contains two executables, perturbo.x and qe2pert.x.

If the contact link does not work, in order to get access to the code, please write us an email to [perturbo AT] and provide the following information about you:

I am going to use PERTURBO for:
GitHub username: