In this page, we will discuss the calculation modes of PERTURBO related to the interpolation. Here are the value of `calc_mode`

for the interpolation modes:

`'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.

## Electronic bands

*calc_mode = ‘bands’*

**Computes:**Interpolated electronic band structure given an electronic crystal momentum path.

Users specify three variables in the input file (*pert.in*)

- prefix: the same prefix used in
**‘prefix’_epwan.h5** - calc_mode: set to
`'bands'`

- fklist: the filename of a file containing the high-symmetry crystal momentum path or k list

Here is the input file or namelist (*pert.in*):

```
&perturbo
prefix = 'si'
calc_mode = 'bands'
fklist = 'si_band.kpt'
/
```

In this example, `fklist='si_band.kpt'`

, the file *si_band.kpt* containing the \(\mathbf{k}\) point list:

```
6
0.500 0.500 0.500 50
0.000 0.000 0.000 50
0.500 0.000 0.500 20
0.500 0.250 0.750 20
0.375 0.375 0.750 50
0.000 0.000 0.000 1
```

The first line specifies how many lines there are below the first line. Columns 1-3 give, respectively, the \(x\), \(y\), and \(z\) coordinates of a crystal momentum **in crystal coordinates**. The last column is the number of points from the current crystal momentum to the next crystal momentum. One can also provide an explicit \(\mathbf{k}\) point list, rather than specifying the path, by providing the number of \(\mathbf{k}\) points in the first line, the coordinates of each \(\mathbf{k}\) point, and setting the values in the last column to 1.

Before running `perturbo.x`

, remember to put *si_epwan.h5* in the current directory “pert-band” since `perturbo.x`

needs to read *si_epwan.h5*. You may choose to copy the HDF5 file using

`$ cp ../../qe2pert/si_epwan.h5 .`

But the size of the HDF5 file is usually quite large, creating a soft link that point to the original HDF5 file is strongly recommended:

`$ ln -sf ../../qe2pert/si_epwan.h5`

Run `perturbo.x`

:

```
$ mpirun -n 1 perturbo.x -npools 1 -i pert.in > pert.out
```

**Note:**The number of pools (-npools) has to be equal to the number of MPI processes (-np or -n), otherwise the code will stop.

It takes just a few seconds to obtain the interpolated band structure. We obtain an output file called *‘prefix’.bands* (in this case, *si.bands*) with the following format:

```
0.0000000 0.50000 0.50000 0.50000 -3.4658249872
......
3.7802390 0.00000 0.00000 0.00000 -5.8116812661
......
......
0.0000000 0.50000 0.50000 0.50000 13.6984850767
......
3.7802390 0.00000 0.00000 0.00000 9.4608102223
```

Note that there are 8 blocks in this example, one for each of the 8 bands, because we use 8 Wannier functions in the Wannierization procedure in this example. The 1^{st} column is an irrelevant coordinate used to plot the band structure. The 2^{nd} to 4^{th} columns are the \(x\), \(y\), and \(z\) coordinates of the crystal momenta **in crystal coordinates**. The 5^{th} column is the energy, in eV units, of each electronic state.

## Phonon dispersion

*calc_mode = ‘phdisp’*

**Computes:**Interpolated phonon dispersions along a given crystal momentum path.

Users specify three variables in the input file (*pert.in*):

- prefix: the same prefix used in
**‘prefix’_epwan.h5** - calc_mode: set to ‘phdisp’
- fqlist: the filename of a file containing the high-symmetry crystal momentum path or q list

Here is the input file (*pert.in*):

```
&perturbo
prefix = 'si'
calc_mode = 'phdisp'
fqlist = 'si_phdisp.qpt'
/
```

In this example, `fqlist='si_phdisp.qpt'`

, and the file *si_phdisp.qpt* contains a crystal momentum path or list with the same format as the file specified in `fklist`

(in the previous section).

Remember to link (or copy) *si_epwan.h5* in the current directory using

`ln -sf ../../qe2pert/si_epwan.h5`

.

Run `perturbo.x`

:

```
$ mpirun -n 1 perturbo.x -npools 1 -i pert.in > pert.out
```

It takes a few seconds to obtain the phonon dispersion. We obtain an output file called *‘prefix’.phdisp* (in this case, *si.phdisp*) with the following format:

```
0.0000000 0.50000 0.50000 0.50000 12.9198400723
......
3.7802390 0.00000 0.00000 0.00000 -0.0000024786
......
......
0.0000000 0.50000 0.50000 0.50000 45.6922098051
......
3.7802390 0.00000 0.00000 0.00000 0.0000014170
```

Note that there are 6 blocks, one for each of the to 6 phonon modes in silicon. The 1^{st} column an irrelevant coordinate used to plot the phonon dispersion. The 2^{nd} to 4^{th} columns are the \(x\), \(y\), and \(z\) coordinates of the crystal momenta, in crystal coordinate. The 5^{th} column is the phonon energy in meV units.

## E-ph matrix elements

*calc_mode = ‘ephmat’*

**Computes:**The absolute values of the e-ph matrix elements, summed over the number of electronic bands, given two lists of \(\mathbf{k}\) and \(\mathbf{q}\) points. In a typical scenario, one computes the e-ph matrix elements for a chosen \(\mathbf{k}\) point as a function of \(\mathbf{q}\) point.

Requires to specify at least 7 variables:

- prefix: the same prefix as in
*‘prefix’_epwan.h5* - calc_mode: set to ‘ephmat’
- fklist: the file containing a list of \(\mathbf{k}\) points (for the format of the list, please see the section on
`calc_mode='bands'`

) - fqlist: the file containing a list of \(\mathbf{q}\) points (for the format of the list, please see the section on
`calc_mode='bands'`

) - band_min, band_max: bands used for the band summation in computing e-ph matrix elements
- phfreq_cutoff: phonon energy (meV) smaller than the cutoff will be ignored

In a typical scenario, the user wants to check if the interpolated e-ph matrix elements match with the density functional perturbation theory (DFPT) result. **Here we assume that users know how to obtain the DFPT e-ph matrix elements from the PHONON package in QE.**

Here is the input file (*pert.in*):

```
&perturbo
prefix = 'si'
calc_mode = 'ephmat'
fklist = 'eph.kpt'
fqlist = 'eph.qpt'
band_min = 2
band_max = 4
phfreq_cutoff = 1 !meV
/
```

In this example, we compute the e-ph matrix elements summed over the bands from 2 to 4. The band index here refers to the band index of the Wannier functions, and it may not be the same as the band index in the DFT output from QE because sometimes bands are excluded in the Wannierization procedure. Make sure you know band range appropriate for your calculation, and provide accordingly band_min and band_max.

The variable phfreq_cutoff is used to avoid numerical instabilities in the phonon calculations, and we recommend using a value between 0.5 and 2 meV (unless you know that phonons in that energy range play a critical role). Do not set phfreq_cutoff to a large value, otherwise too many phonon modes will be excluded from the calculations.

For the format of fklist or fqlist files, please refer to the section on calc_mode=’bands’.

Before running `perturbo.x`

, ensure that three files exist in the current directory *“pert-ephmat”*:

*‘prefix’_epwan.h5*: here*si_epwan.h5**fklist*: here*eph.kpt**fqlist*: here*eph.qpt*

Run `perturbo.x`

:

```
$ mpirun -n 1 perturbo.x -npools 1 -i pert.in > pert.out
```

The calculation typically takes a few minutes. The output file, called *‘prefix’.ephmat*, contains the absolute values of the e-ph matrix elements summed over bands from band_min to band_max. In our example, we obtain the output file *si.ephmat*, which is shown next:

```
# ik xk iq xq imod omega(meV) deform. pot.(eV/A) |g|(meV)
1 0.00000 1 0.00000 001 12.919840 0.219927308382E+00 0.118026594146E+02
......
......
```

The 1^{st} column is a dummy index for the \(\mathbf{k}\) point. The 2^{nd} column is the \(\mathbf{k}\) point coordinate used for plotting. The 3^{rd} and 4^{th} columns are the dummy index and the \(\mathbf{q}\) point coordinate used for plotting, respectively. The 5th column is the phonon mode index. The 6^{th} column is the phonon energy (in meV). The 7^{th} column is the deformation potential (in eV/Å units), namely the expectation value of the phonon perturbation potential with respect to the initial and final electronic states. The 8^{th} column is the absolute values of the e-ph matrix elements (meV units) summed over the number of bands specified by the user.