In the following, we use silicon as an example to demonstrate the features of PERTURBO (see the directory “example02-silicon-perturbo/perturbo”). To run perturbo.x one first needs to generate the file ‘perfix’_epwan.h5 (in this case, si_epwan.h5), which is prepared using qe2pert.x as we discuss in this section. The file si_epwan.h5 is inside the directory “example02-silicon-perturbo/qe2pert”. We also provide reference output results in the directory “References”.

Calculation modes

Each PERTURBO feature corresponds to a separate run of perturbo.x, called a calculation mode. For each calculation mode, at least two files must be always presented in the run folder: 1) ‘perfix’_epwan.h5 and 2) input file (usually called pert.in). Different calculation modes require some additional input files. The parameters specified in the input file pert.in depend on the calculation mode. The main input parameter controlling the calculation mode is calc_mode. Here is a brief summary of the calc_mode options, and the corresponding tasks carried out by PERTURBO:

  • 'bands': interpolate electronic band structures using Wannier functions.
  • 'phdisp': interpolate phonon dispersion by Fourier transforming real-space interatomic force constants.
  • 'ephmat': interpolate e-ph matrix elements using Wannier functions.
  • 'setup': setup for transport calculations or carrier dynamics simulations.
  • 'imsigma': compute the e-ph self-energy for electronic crystal momenta read from a list.
  • 'meanfp': compute the e-ph mean free path, also output the corresponding band velocity and relaxation time.
  • 'trans': compute electrical conductivity for metals, semiconductors, and insulators, or carrier mobility for semiconductors, using either the state-dependent RTA approach or the iterative approach of the BTE.
  • 'trans-pp': postprocessing of the ‘trans’ calculation, compute the Seebeck coefficient.
  • 'dynamics-run': ultrafast hot carrier dynamics via the time-dependent Boltzmann transport equation.
  • 'dynamics-pp': postprocessing of the ‘dynamics-run’ calculation, compute the BZ-averaged energy-dependent carrier population.

The next sections of the tutorial are dedicated to the detailed description of each calculation mode. For a brief overview, a list of the required input files, and an example input file for each calculation mode, please refer to the Interactive workflow page.