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.