# eph input variables¶

This document lists and provides the description of the name (keywords) of the eph input variables to be used in the input file for the abinit executable.

**asr**¶

*Mnemonics:* Acoustic Sum Rule

*Mentioned in topic(s):* topic_DFPT

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [6/1094] in all abinit tests, [0/150] in abinit tutorials

Govern the imposition of the Acoustic Sum Rule (ASR) in phonon calculations. Same meaning as the corresponding anaddb variable.

**brav**¶

*Mnemonics:* BRAVais

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* 9.1.4

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t61.abi

See brav@anaddb

**chneut**¶

*Mnemonics:* CHarge NEUTrality treatment

*Mentioned in topic(s):* topic_Phonons

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

Set the treatment of the Charge Neutrality requirement for the effective charges. Same meaning as the corresponding anaddb variable. Note the different default value in abinit and anaddb

**ddb_ngqpt**¶

*Mnemonics:* Derivative DataBase: Number of Grid points for Q-PoinTs

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* (3)

*Default value:* [0, 0, 0]

*Added in version:* before_v9

## Test list (click to open). Moderately used, [22/1094] in all abinit tests, [10/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi …
- v7: t88.abi, t89.abi …
- v8: t44.abi, t57.abi, t65.abi …
- v9: t53.abi, t54.abi, t55.abi …

This variable is mandatory when optdriver == 7. It defines the number of divisions in the (homogeneous) q-mesh used to generate the DDB file. See also the description of the getddb, getddb_filepath input variables.

**ddb_shiftq**¶

*Mnemonics:* Derivative DataBase: SHIFT of the Q-points

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* (3)

*Default value:* [0.0, 0.0, 0.0]

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

Only relevant when optdriver == 7. It defines the shift in the q-mesh used to generate the DDB file, which is defined by the ddb_ngqpt input variable. See shiftk for more information on the definition.

**dipdip**¶

*Mnemonics:* DIPole-DIPole interaction

*Mentioned in topic(s):* topic_Phonons

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [2/150] in abinit tutorials

- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi
- v7: t88.abi

This variable defines the treatment of the dipole-dipole interaction. Same meaning as the corresponding anaddb variable dipdip@anaddb

**dvdb_add_lr**¶

*Mnemonics:* DVDB ADD Long-Range part when interpolating DFPT potentials.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t60.abi

This flag is used in the Fourier interpolation in q-space of the DFPT potentials. In polar materials there is a long range (LR) component in the first-order variation of the KS potential that can be modeled in terms of the Born effective charges and the macroscopic dielectric tensor [Verdi2015], [Giustino2017]. Possible values are [0, -1, 1].

Setting this flag to 0 deactivates the treatment of the LR contribution (not recommended in polar materials).

If *dvdb_add_lr* is set to 1, the LR part is removed when computing the real-space representation
of the DFPT potentials so that the potential in real space is short-ranged and amenable to Fourier interpolation.
The long-range contribution is then added back when interpolating the DFPT potentials at arbitrary q-points

If *dvdb_add_lr* is set to -1, the LR part is removed before computing the real-space representation
but the LR term is **not** reintroduced during the interpolation in \qq-space.
This option is mainly used for debugging purposes.

By default, the code will always treat the LR term if the DDB file contains the Born effective charges and the macroscopic dielectric tensor. This option is similar to dipdip but it acts on the DFPT potentials instead of the dynamical matrix.

**dvdb_qcache_mb**¶

*Mnemonics:* DVDB Q-CACHE size in Megabytes

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v8: t44.abi

This variable activates a caching mechanism for the DFPT potentials used in the EPH part. The code will store in memory multiple q-points up to this size in Megabytes in order to reduce the number of IO operations required to read the potentials from the DVDB file.

This option leads to a **significant speedup** of calculations requiring integrations
in q-space (eph_task == 4) at the price of an increase of the memory requirements.
The speedup is important especially if the QP corrections are computed for several k-points.

A negative value signals to the code that all the q-points in the DVDB should be stored in memory. Use zero value disables the cache.

Note

This variable is still under development as many things changed in the treatment of the interpolation of the DFPT potential. For the time being, avoid using this option unless you know what you are doing.

**dvdb_qdamp**¶

*Mnemonics:* DVDB Q-DAMPing

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.1

*Added in version:* 9.1.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t56.abi

This **advanced** variable defines the \alpha parameter in the Gaussian filter e^{-\frac{|\qG|^2}{4\alpha}}
that multiplies the Fourier components of the model potential in the long wavelength limit (Eq 24 of [Brunin2020b]
see also [Sjakste2015] and [Giustino2017]).

The \alpha parameter determines the separation between the long-range and the short-range parts of the interaction and is used to express Ewald sums [Gonze1997]. in terms of a sum in \GG-space (long-range part) and a sum in real space that, being short ranged, is not relevant for the definition of the LR model.

**dvdb_rspace_cell**¶

*Mnemonics:* DVDB R-SPACE CELL

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* 9.1.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t56.abi

This **advanced** variable sets the list of supercell \RR-points used to construct the scattering potential
in the real-space representation with the associated weights for the Fourier transform
to go from W(\rr,\RR) to v1scf(\rr,\qq).

Possible values are:

0 --> Use unit super cell for $\RR$ space. All weights set to 1. 1 --> Use Wigner-Seitz super cell and atom-dependent weights (same algorithm as for the dynamical matrix). Note that this option leads to more $\RR$-points with a non-negligible increase of the memory allocated.

Tip

Reducing the value of boxcutmin to e.g. 1.1 allows one to reduce the number, %nfft, of \rr-points with a considerable memory saving for W(\rr,\RR).

**eph_doping**¶

*Mnemonics:* EPH doping

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.0

*Added in version:* 9.2.0

## Test list (click to open). Rarely used, [4/1094] in all abinit tests, [3/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi
- v9: t53.abi

Gives the doping charge in units of |e_charge| / cm^3. Negative for n-doping, positive for p-doping. Alternative to eph_extrael for simulating doping within the rigid band approximation. Require metallic occupation scheme occopt e.g. Fermi-Dirac.

**eph_ecutosc**¶

*Mnemonics:* Electron-Phonon: Energy CUToff for OSCillator matrix elements

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.0 Hartree

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [0/1094] in all abinit tests, [0/150] in abinit tutorials

This variable defines the energy cutoff defining the number of G-vectors in the oscillator matrix elements:

These quantities are used to compute the long-range part of the e-ph matrix elements that are then used to integrate the Frohlich divergence.

Possible values:

- = 0 --> Approximate oscillators with $ \delta_{b_1 b_2} $ - > 0 --> Use full expression with G-dependence - < 0 --> Deactivate computation of oscillators.

Important

eph_ecutosc cannot be greater than ecut

This variable is still under development!

**eph_extrael**¶

*Mnemonics:* Electron-PHonon: EXTRA ELectrons

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [4/1094] in all abinit tests, [0/150] in abinit tutorials

Number of electrons per unit cell to be added/subtracted to the initial value computed from the pseudopotentials and the unit cell. Can be used to simulate doping within the rigid band approximation. Require metallic occupation scheme occopt e.g. Fermi-Dirac. See also eph_doping to specify the same quantity in terms of charge/cm^3

**eph_fermie**¶

*Mnemonics:* Electron-PHonon: FERMI Energy

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

This variable can be used to change artificially the value of the Fermi level when
performing e-ph calculations.
The variable has effect only if set to a non-zero value.
This option is mutually exclusive with eph_extrael and eph_doping.
When **eph_fermie** is used the number of temperatures specified by tmesh cannot be greater than one.

**eph_frohlichm**¶

*Mnemonics:* Electron-PHonon: FROHLICH Model

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v8: t57.abi

Only relevant for optdriver=7 and eph_task=6. If set to 1, use the dynamical matrix at Gamma, the Born effective charges, the dielectric tensor, as well as the effective masses (must give a _EFMAS file as input, see prtefmas and getefmas or irdefmas), as the parameters of a Frohlich Hamiltonian. Then use these to compute the change of electronic eigenvalues due to electron-phonon interaction, using second-order time-dependent perturbation theory. Can deliver (approximate) zero-point renormalisation as well as temperature dependence.

**eph_fsewin**¶

*Mnemonics:* Electron-Phonon: Fermi Surface Energy WINdow

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.04 Hartree

*Added in version:* before_v9

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [2/150] in abinit tutorials

- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi
- v7: t88.abi

This variable defines the energy window around the Fermi level used for e-ph calculations (optdriver = 7). Only states located in the energy range [efermi - eph_fsewin, efermi + eph_fsewin] are included in the e-ph calculation.

Related input variables: eph_intmeth, eph_fsmear, eph_extrael and eph_fermie.

**eph_fsmear**¶

*Mnemonics:* Electron-PHonon: Fermi surface SMEARing

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.01 Hartree

*Only relevant if:* eph_intmeth == 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [2/150] in abinit tutorials

- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi
- v7: t88.abi

This variable defines the gaussian broadening used for the integration over the double delta over the Fermi surface when eph_intmeth == 1. A negative value, activates the adaptive gaussian broadening proposed in [Li2015] in which the broadening is automatically computed from the group velocities.

**eph_intmeth**¶

*Mnemonics:* Electron-Phonon: INTegration METHod

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 2 (tetra) except when eph_task = 4 and when (eph_task = -4 and symsigma == 0), where 1 is used as default.

*Added in version:* before_v9

## Test list (click to open). Moderately used, [12/1094] in all abinit tests, [4/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4isotc_2.abi, teph4isotc_5.abi
- v7: t88.abi
- v8: t44.abi
- v9: t53.abi, t54.abi, t55.abi, t56.abi, t60.abi, t61.abi

This variable defines the technique for the integration over the Brillouin zone in the EPH code.

- 1 → Gaussian technique with broadening factor
- 2 → Tetrahedron method.

Note that the default value depends on the value of eph_task i.e. on the physical properties we are computing.

- Phonon linewidths in metals (
**eph_task**= 1): -
The default approach for the integration of the double-delta over the Fermi surface is 2 (optimized tetrahedron by [Kawamura2014]). When the gaussian method is used, the broadening is given by eph_fsmear. A negative value activates the adaptive Gaussian broadening. See also eph_fsewin.

- Electron-phonon self-energy (also spectral function) with
**eph_task**= 4): -
The default is

**eph_intmeth**== 1, Lorentzian method with broadening specified by zcut. Note that**eph_intmeth**== 2 is**still in development**for this case (ABINITv9.2). - Imaginary part of the electron-phonon self-energy (
**eph_task**= -4): -
The default is

**eph_intmeth**== 2, Tetrahedron method by [Blochl1994] except when symsigma == 0, where it is**eph_intmeth**== 1.

**eph_mustar**¶

*Mnemonics:* Electron-PHonon: MU STAR (electron-electron interaction strength)

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v7: t88.abi

Average electron-electron interaction strength, for the computation of the superconducting Tc using Mc-Millan’s formula.

**eph_ngqpt_fine**¶

*Mnemonics:* Electron-PHonon: Number of Grid Q-PoinTs in FINE grid.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* (3)

*Default value:* [0, 0, 0]

*Added in version:* before_v9

## Test list (click to open). Moderately used, [14/1094] in all abinit tests, [7/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v7: t88.abi
- v8: t44.abi, t65.abi
- v9: t54.abi, t60.abi, t61.abi, t65.abi

This variable activates the **interpolation** of the first-order variation of the
self-consistent potential in the electron-phonon code (optdriver == 7).

If eph_nqgpt_fine differs from [0, 0, 0], the code will use the Fourier transform to interpolate
the DFPT potentials on this fine q-mesh starting from the irreducible set of
q-points read from the DVDB file. This approach is similar to the one used to
interpolate the interatomic force constants in q-space. If **eph_ngqpt_fine** is
not given, the EPH code uses the list of irreducible q-points reported in the
DDB file i.e. ddb_ngqpt (default behavior).

Important

The computation of the e-ph matrix elements requires the knowledge of \psi_{\bf k}
and \psi_{\bf k + q}. This means that the k-mesh for electrons found in the WFK must be
compatible with the one given in *eph_ngqpt_fine*.
The code can interpolate DFPT potentials but won’t try to interpolate KS wavefunctions.
and will stop if {\bf k + q} is not found in the WFK file.

**eph_np_pqbks**¶

*Mnemonics:* EPH Number of Processors for Perturbations, Q-points, Bands, K-points, Spin.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* (5)

*Default value:* 0

*Added in version:* 9.1.0

## Test list (click to open). Rarely used, [0/1094] in all abinit tests, [0/150] in abinit tutorials

This variable defines the Cartesian grid of MPI processors used for EPH calculations. If not specified in the input, the code will generate this grid automatically using the total number of processors and the basic dimensions of the job computed at runtime. At present March 22, 2021), this variable is supported only in the calculation of the phonon linewidths (eph_task 1) and in the computation of the e-ph self-energy (eph_task 4 or -4). In all the other tasks, this variable is ignored.

Preliminary considerations:

EPH calculations require very dense samplings of the BZ to converge and the memory requirements increase quickly with the number of k-points, q-points and natom. The EPH code can MPI-distribute the most important data structures but non all the MPI-levels present the same scalability and the same parallel efficiency. Besides the maximum number of MPI processes that can be used for the different MPI-levels is related to the basic dimensions of the calculation.

In what follows, we briefly explain the pros and cons of the different MPI-levels, then we specialize the discussion to the different calculations activated by eph_task.

The parallelization over perturbations (**np**) is network intensive but it allows one to decrease the memory
needed for the DFPT potentials especially when computing the e-ph self-energy.
The maximum value for **np** is 3 * natom and the workload is equally distributed provided **np**
divides 3 * natom equally.
Using **np** == natom usually gives good parallel efficiency.

The parallelization over bands (**nb**) has limited scalability that depends on the number of bands included
in the self-energy but it allows one to reduce the memory
allocated for the wavefunctions, especially when we have to sum over empty states in the e-ph self-energy.

eph_task = +1 By default, the code uses all the processes for the (k-point, spin) parallelism. Since the number of k-points around the FS is usually large, this parallelization scheme is OK in most of the cases. When the number of processes becomes comparable to the number of k-points around the FS, it makes sense to activate the q-point parallelism. The parallelism over perturbations should be used to reduce the memory allocated for the interpolation of the DFPT potentials. The band parallelism is not supported in this part.

eph_task = +4
Parallelization over bands allows one to reduce the memory needed for the wavefunctions but
this level is less efficient than the parallelization over q-points and perturbations.
To avoid load and memory imbalance, **nb** should divide nband.
We suggest to increase the number of procs for bands until the memory allocated for the wavefunctions
decreases to a reasonable level and then use the remaining procs for **nq** and **np** in this order
until these levels start to saturate.
The MPI parallelism over k-points and spins is efficient at the level of the wall-time
but it requires HDF5 + MPI-IO support and memory does not scale. Use these additional levels if the memory requirements
are under control and you need to boost the calculation. Note also that in this case the output results are written to
different text files, only the SIGEPH.nc file will contains all the k-points and spins.

eph_task = -4
The number of bands in the self-energy sum is usually small so it does not make sense to
parallelize along this dimension. The parallelization over q-points seem to be more efficient than
the one over perturbations although it introduces some load imbalance because, due to memory reasons,
the code distributes the q-points in the IBZ (nqibz) instead of the q-points in the full BZ (nqbz).
Moreover non all the q-points in the IBZ contribute to the imaginary part of \Sigma_nk.
The MPI parallelism over k-points and spins is supported with similar behaviour as in **eph_task** +4.

Important

The total number of MPI processes must be equal to the product of the different entries.

Note also that the EPH code implements its own MPI-algorithm and this **eph_np_pqbks** is
the **only variable** that should be used to change the default behaviour.
Other variables such as nppert, npband, npfft, npkpt and paral_kgb
are **not used** in the EPH subdriver.

**eph_phrange**¶

*Mnemonics:* EPH PHonon mode RANGE.

*Mentioned in topic(s):* topic_SelfEnergy

*Variable type:* real

*Dimensions:* (2)

*Default value:* [0, 0]

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t61.abi

This variable is used to select the range of phonon modes included in the computation of the electron-phonon self-energy. By default all phonon modes are included ([0, 0]), otherwise only the phonon modes with index between the first and second entry are included.

**eph_phwinfact**¶

*Mnemonics:* EPH PHonon FACTor for energy WINdow

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* scalar

*Default value:* 1.1

*Added in version:* 9.2.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t60.abi

This variable defines the effective energy window for the \kq KS states in the computation of electron lifetimes (eph_task -4) and is used to predict the list of \qq-points in the BZ that will be needeed during the calculation.

The code uses e.g. the input sigma_erange to select the \nk states in \tau_\nk but then this initial energy window must be increased a bit to accommodate for phonon absorption/emission (from \kk to \kq). This is important for \nk states that are close to edge of the initial energy window as this states may be needed for the linear interpolation used in tetrahedron method.

In a nutshell, the code increases the initial window using the max phonon frequency multiplied by **eph_phwinfact** .
The default value is a compromise between numerical stability and efficiency.
Reducing **eph_phwinfact** to a value closer to one (still > 1) can lead to a substantial decrease in the number of
\kq KS states that must be read from file with a subsequent decrease in the memory requirements for the wavefunctions.
We recommended to perform initial tests to decide whether a value smaller than four can be used.

**eph_restart**¶

*Mnemonics:* EPH RESTART.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t60.abi

This variable can be used to restart an EPH calculation.
At present, this feature is supported only when computing the electron-phonon self-energy (eph_task = 4, -4).
In this case, the code will look for a **pre-existing** SIGEPH.nc file and will compute the remaining k-points
provided that the metadata found in the netcdf file is compatible with the input variables specified in the input file.
The code aborts if the metadata reported in the SIGEPH.nc file is not compatible with the input file.
Note that the restart in done **in-place** that is the output SIGEPH.nc is used as input of the calculation so there is no
need to specify getsigeph or irdsigeph input variables.

**eph_stern**¶

*Mnemonics:* Electron-PHonon: use STERNheimer approach to replace sum over empty states.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Only relevant if:* tolwfr > 0

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [4/1094] in all abinit tests, [3/150] in abinit tutorials

- tutorespfn: teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v8: t44.abi

This variable activates the Sternheimer method in the calculation of the e-ph self-energy (eph_task == 4)
This technique replaces the explicit sum over empty states **above** nband
with the NSCF computation of the first order derivative of the KS wavefunctions (actually
the projection in the subspace orthogonal to the nband states).

The Sternheimer approach requires an external file with the KS potential produced by setting prtpot = 1 during the GS run. The path to the external POT file used in the EPH calculation is specified via getpot_filepath. The number of line minimisations for the Sternheimer solver is defined by nline. The solver stops when the solution is converged within tolwfr.

Important

The Sternheimer approach approximates the e-ph self-energy with the adiabatic expression
in which phonon frequencies are neglected and the frequency dependence of \Sigma_{n\kk}(\omega) is
replaced by \Sigma_{n\kk}(\ee_{n\kk}).
This approximation is valid provided that **enough** bands above the states of interest are explicitly included.
The calculation should therefore be converged with respect to the value of nband.
Note however that the memory requirements and the computational cost of the Sternheimer solver increases with **nband**
as this part is not yet parallelized.

**eph_task**¶

*Mnemonics:* Electron-PHonon: Task

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Only relevant if:* optdriver == 7

*Added in version:* before_v9

## Test list (click to open). Moderately used, [22/1094] in all abinit tests, [10/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi …
- v7: t88.abi, t89.abi …
- v8: t44.abi, t57.abi, t65.abi …
- v9: t53.abi, t54.abi, t55.abi …

Select the electron-phonon task to be performed when optdriver == 7. The choice is among:

- 0 → No computation (mainly used to access the post-processing tools)
- 1 → Compute phonon linewidths in metals and superconducting properties (isotropic formalism).
- 2 → Compute e-ph matrix elements. Save results in GKK.nc file.
- -2 → Compute e-ph matrix elements. Save results in GKQ.nc file that can be post-processed with AbiPy.
- 3 → Compute phonon self-energy.
- 4 → Compute electron self-energy (Fan-Migdal + Debye-Waller) and QP corrections, also possibly the spectral function. Generate SIGEPH.nc file.
- -4 → Compute electron lifetimes due to e-ph interaction (imaginary part of Fan-Migdal self-energy). Generate SIGEPH.nc file.
- 5 → Interpolate DFPT potentials to produce a new DVDB file on the eph_ngqpt_fine q-mesh that can be read with getdvdb
- -5 → Interpolate DFPT potentials on the q-path specified by ph_qpath and ph_nqpath. Note that, in this case, the user has to provide the full list of q-points in the input, ph_ndivsm is not used to generate the q-path.
- 6 → Estimate correction to the ZPR in polar materials using the generalized Frohlich model. Requires EFMAS.nc file. See [Miglio2020].
- 7 → Compute phonon limited transport in semiconductors using lifetimes taken from SIGEPH.nc file. See [Brunin2020b].
- 15, -15 → Write the average in r-space of the DFPT potentials to the V1QAVG.nc file. In the first case (+15) the q-points are specified via ph_nqpath and ph_qpath. The code assumes the input DVDB contains q-points in the IBZ and the potentials along the path are interpolated with Fourier transform. An array D(R) with the decay of the W(R,r) as a function of R is computed and saved to file In the second case (-15) the q-points are taken directly from the DVDB file.

Important

At the time of writing (March 22, 2021 ), PAW or norm-conserving pseudos with SOC are not supported by the EPH code. Also useylm must be set to 0 (default for NC pseudos).

**eph_tols_idelta**¶

*Mnemonics:* EPH TOLeranceS on Integral of DELTA.

*Mentioned in topic(s):* topic_SelfEnergy

*Variable type:* real

*Dimensions:* (2)

*Default value:* [1e-12, 1e-12]

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t60.abi

This variable can be used to introduce a cutoff on the q-points when computing the imaginary part of the electron-phonon self-energy (eph_task = -4) with the tetrahedron method (eph_intmeth = 2). The first entry refers to phonon absorption while the second one is associated to phonon emission. A q-point is included in the sum of the tetrahedron weights for phonon absorption/emission are larger that these values.

**eph_transport**¶

*Mnemonics:* Electron-PHonon: TRANSPORT flag

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v7: t88.abi

NB - this does not work yet. This variable can be used to turn on the calculation of transport quantities in the eph module of abinit. Value of 1 corresponds to elastic LOVA as in [Savrasov1996].

**eph_use_ftinterp**¶

*Mnemonics:* EPH FORCE Fourier Transform Interpolation of DFPT potentials.

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [0/1094] in all abinit tests, [0/150] in abinit tutorials

This is an *advanced option* used for testing/debugging the interpolation of the DFPT potentials when eph_task in (2, -2).
By default, the code seeks for the q-point in the input DVDB file when *eph_use_ftinterp* is set to zero (default)
and stops is the q-point in not found in the file.
When *eph_use_ftinterp* is set to 1, the input DVDB file (assumed to contain the ddb_ngqpt q-mesh)
will be used to generate the real-space representation of the DFPT potentials and interpolate the potential
at the input qpt.

**getkerange_filepath**¶

*Mnemonics:* KERANGE PATH

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* string

*Dimensions:* scalar

*Default value:* None

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [1/150] in abinit tutorials

- tutorespfn: teph4isotc_4.abi
- v9: t61.abi, t65.abi

This variable defines the path of the external KERANGE.nc file with the list of k-points in the electron/hole pockets for semiconductors or the k-points withing an energy window around the Fermi level as specified by sigma_erange.

The tables stored in the netcdf file are used for the calculation of the imaginary part of the e-ph self-energy (eph_task == -4). This file is generated by running a preliminary step with wfk_task = “wfk_kpts_erange”. For an example, see v9[57]

**ph_intmeth**¶

*Mnemonics:* PHonons: INTegration METHod

*Mentioned in topic(s):* topic_q-points

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 2

*Added in version:* before_v9

## Test list (click to open). Moderately used, [13/1094] in all abinit tests, [5/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4zpr_4.abi
- v7: t88.abi
- v8: t44.abi
- v9: t53.abi, t54.abi, t55.abi, t56.abi, t60.abi, t61.abi

Select the integration technique for computing the phonon DOS and the Eliashberg function \alpha^2F(\omega).

- 1 → Gaussian scheme (see also ph_smear for the broadening).
- 2 → Tetrahedron method (no other input is needed but at least 4 q-points in the BZ are required).

**ph_ndivsm**¶

*Mnemonics:* PHonons: Number of DIVisions for sampling the SMallest segment

*Mentioned in topic(s):* topic_q-points

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 20

*Added in version:* before_v9

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [1/150] in abinit tutorials

- tutorespfn: teph4zpr_4.abi
- v7: t88.abi
- v8: t44.abi

This variable is used in conjunction with ph_nqpath and ph_qpath to define the q-path used for phonon band structures and phonon linewidths. It gives the number of points used to sample the smallest segment in the q-path specified by ph_qpath.

**ph_ngqpt**¶

*Mnemonics:* PHonons: Number of Grid points for Q-PoinT mesh.

*Mentioned in topic(s):* topic_q-points

*Variable type:* integer

*Dimensions:* (3)

*Default value:* [20, 20, 20]

*Added in version:* before_v9

## Test list (click to open). Moderately used, [15/1094] in all abinit tests, [8/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4zpr_4.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v7: t88.abi
- v8: t44.abi, t65.abi
- v9: t54.abi, t60.abi, t61.abi, t65.abi

This variable defines the q-mesh used to compute the phonon DOS and the Eliashberg function via Fourier interpolation. Related input variables: ph_qshift and ph_nqshift.

**ph_nqpath**¶

*Mnemonics:* PHonons: Number of Q-points defining the PATH

*Mentioned in topic(s):* topic_q-points

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [7/1094] in all abinit tests, [3/150] in abinit tutorials

- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4zpr_4.abi
- v7: t88.abi
- v8: t44.abi
- v9: t60.abi, t61.abi

This integer defines the number of points in the ph_qpath array.

**ph_nqshift**¶

*Mnemonics:* PHonons: Number of Q-SHIFTs

*Mentioned in topic(s):* topic_q-points

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

This variable defines the number of shifts in the q-mesh used for the phonon DOS and for the Eliashberg functions (see ph_ngqpt). If not given, the code assumes a Gamma-centered mesh. The shifts are specified by ph_qshift.

**ph_qpath**¶

*Mnemonics:* Phonons: Q-PATH

*Mentioned in topic(s):* topic_q-points

*Variable type:* real

*Dimensions:* (3,ph_nqpath)

*Default value:* None

*Only relevant if:* specified(ph_nqpath)

*Added in version:* before_v9

## Test list (click to open). Rarely used, [7/1094] in all abinit tests, [3/150] in abinit tutorials

- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4zpr_4.abi
- v7: t88.abi
- v8: t44.abi
- v9: t60.abi, t61.abi

This array contains the list of special q-points used to construct the q-path used to (Fourier) interpolate phonon band structures and phonon linewidths. See also ph_nqpath and ph_ndivsm.

**ph_qshift**¶

*Mnemonics:* PHonons: Q-SHIFTs for mesh.

*Mentioned in topic(s):* topic_q-points

*Variable type:* real

*Dimensions:* (3,ph_nqshift)

*Default value:* [0, 0, 0]

*Only relevant if:* ph_nqshift

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

This array gives the shifts to be used to construct the q-mesh for computing the phonon DOS and the Eliashberg functions (see also ph_nqshift). If not given, a Gamma-centered mesh is used.

**ph_smear**¶

*Mnemonics:* PHonons: SMEARing factor

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_q-points

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.00002 Hartree

*Only relevant if:* ph_intmeth == 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

The Gaussian broadening used for the integration of the phonon DOS and the Eliashberg function. See also ph_intmeth and ph_ngqpt.

**ph_wstep**¶

*Mnemonics:* PHonons: frequency(W) STEP.

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_q-points

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0.1 meV

*Added in version:* before_v9

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [1/150] in abinit tutorials

- tutorespfn: teph4zpr_4.abi
- v7: t88.abi
- v8: t44.abi

The step used to generate the (linear) frequency mesh for the phonon DOS and the Eliashberg function. The extrema of the mesh are automatically computed by the code.

**prteliash**¶

*Mnemonics:* PRINT ELIASHberg function.

*Mentioned in topic(s):* topic_SelfEnergy

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Only relevant if:* optdriver in [7]

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [3/1094] in all abinit tests, [0/150] in abinit tutorials

This variable controls the output of the generalized Eliashberg function when eph_task is +4 or -4. If set 1, the EPH code will compute the generalized Eliashberg function and will save the results in the SIGEPH.nc file.

**prtphbands**¶

*Mnemonics:* PRinT PHonon BANDS

*Mentioned in topic(s):* topic_printing

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v7: t88.abi

This option activates the output of the phonon frequencies in the EPH code. Possible values:

- 0 Disable the output of the phonon frequencies.
- 1 Write frequencies in xmgrace format. A file with extension
`PHBANDS.agr`

is produced. Use`xmgrace file_PHBANDS.agr`

to visualize the data - 2 Write frequencies in gnuplot format. The code produces a
`PHBANDS.dat`

file with the eigenvalues and a`PHBANDS.gnuplot`

script. Use`gnuplot file_PHBANDS.gnuplot`

to visualize the phonon band structure.

**prtphdos**¶

*Mnemonics:* PRinT the PHonon Density Of States

*Characteristics:* DEVELOP

*Mentioned in topic(s):* topic_printing, topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Moderately used, [13/1094] in all abinit tests, [3/150] in abinit tutorials

- tutorespfn: teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v7: t89.abi
- v8: t57.abi, t65.abi
- v9: t53.abi, t54.abi, t55.abi, t56.abi, t57.abi, t60.abi, t61.abi

Print the phonon density of states. It is activated by default when optdriver == 7.

Note also that this variable activates the computation of the generalized Eliashberg function associated to the electron-phonon self-energy when eph_task in [-4, 4].

**prtphsurf**¶

*Mnemonics:* PRinT PHonon iso-SURFace

*Mentioned in topic(s):* topic_printing, topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* before_v9

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v7: t88.abi

Print a bxsf file (Xcrysden format) with the (interpolated) phonon frequencies computed of the q-mesh determined by ph_ngqpt. The file can be use to visualize iso-surfaces with Xcrysden or other similar tools supporting the bxsf format. Note that the (dense) q-mesh must be Gamma-centered, shifted meshes are not supported by Xcrysden. This variable requires optdriver == 7.

**rifcsph**¶

*Mnemonics:* Radius of the Interatomic Force Constant SPHere

*Mentioned in topic(s):* topic_Phonons

*Variable type:* real

*Dimensions:* scalar

*Default value:* 0

*Added in version:* 9.2.0

## Test list (click to open). Rarely used, [2/1094] in all abinit tests, [0/150] in abinit tutorials

Same meaning as rifcsph@anaddb.

**sigma_erange**¶

*Mnemonics:* SIGMA Energy-range.

*Characteristics:* ENERGY

*Mentioned in topic(s):* topic_SelfEnergy

*Variable type:* real

*Dimensions:* (2)

*Default value:* [0.0, 0.0]

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [9/1094] in all abinit tests, [4/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_3.abi
- v9: t57.abi, t60.abi, t61.abi, t62.abi, t65.abi

This variable consists of two entries that allow one to select the k-points and the bands in the e-ph self-energy \Sigma_\nk on the basis of their KS energy \ee_\nk. This variable is used in [eph_task]] = -4 to compute phonon-limited mobilities in the energy region relevant for transport.

If both entries in **sigma_erange** are negative, the code assumes a metal and only states within the energy
window [efermi - abs(sigma_erange(1)), efermi + abs(sigma_erange(2)] are included in the calculation.

Positive (or zero) values are used in semiconductors
to define an energy range with respect to the band edges
In this case, the first entry given the position of the holes with respect to the CBM while the second entry
gives the position of electrons with respect to the VBM (energy differences are **always positive**, even for holes).
A zero entry can be used to exclude either holes or electrons from the calculation.

If both entries are zero, the variable is ignored.
Note that **sigma_erange** is not compatible with nkptgw and sigma_ngkpt.

Important

By default, this variable is given in Hartree. Use e.g.

sigma_erange 0.0 0.5 eV

to specify the energy intervals in eV units.

**symdynmat**¶

*Mnemonics:* SYMmetrize the DYNamical MATrix

*Mentioned in topic(s):* topic_Phonons

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 1

*Added in version:* before_v9

## Test list (click to open). Rarely used, [0/1094] in all abinit tests, [0/150] in abinit tutorials

If symdynmat is equal to 1, the dynamical matrix is symmetrized before the
diagonalization (same meaning as the corresponding anaddb variable). Note that
**symdynmat** == 1 will automatically enable the symmetrization of the electron-
phonon linewidths.

**symv1scf**¶

*Mnemonics:* SYMmetrize V1 DFPT SCF potentials

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* integer

*Dimensions:* scalar

*Default value:* 0

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [0/150] in abinit tutorials

- v9: t60.abi

If *symv1scf* is equal to 1, the spatial-symmetry on the first-order DFPT potentials
is enforced every time a set of potentials in the BZ is reconstructed by symmetry
starting from the initial values in the IBZ.
This option is similar to symdynmat but it acts on the DFPT potentials instead of
the dynamical matrix.

**tmesh**¶

*Mnemonics:* Temperature MESH

*Mentioned in topic(s):* topic_ElPhonInt

*Variable type:* real

*Dimensions:* (3)

*Default value:* [5.0, 59.0, 6.0]

*Added in version:* 8.7.3

## Test list (click to open). Moderately used, [17/1094] in all abinit tests, [8/150] in abinit tutorials

- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4zpr_4.abi, teph4zpr_5.abi, teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v5: t66.abi
- v8: t44.abi
- v9: t53.abi, t54.abi, t55.abi, t56.abi, t60.abi, t61.abi, t65.abi

This variable defines the linear mesh of temperatures used in the EPH code (optdriver = 7).
The first entry gives the **initial** temperature in Kelvin,
the second entry the **linear step** in Kelvin,
the third entry is the **number of points** in the mesh.
The default value corresponds to 6 points between 5 K and 300 K.

**transport_ngkpt**¶

*Mnemonics:* TRANSPORT: Number of Grid points for K PoinTs integration in transport computations

*Mentioned in topic(s):* topic_SelfEnergy

*Variable type:* integer

*Dimensions:* (3)

*Default value:* [0, 0, 0]

*Only relevant if:* optdriver == 7 and eph_task in [-4,7]

*Added in version:* 9.0.0

## Test list (click to open). Rarely used, [1/1094] in all abinit tests, [1/150] in abinit tutorials

- tutorespfn: teph4mob_7.abi

This in an advanced option that is mainly used to downsample the k-points used to compute the carrier mobility obtained with (eph_task = -4 or eph_task = 7).

If this variable is not specified, the code uses the k-mesh specified by ngkpt (i.e. the k-mesh corresponding to the WFK file) for computing the mobility integral in the BZ. In some cases, however, one may want to employ a submesh of k-points to analyze the convergence behaviour. For instance one may have performed a calculation with a 100x100x100 k-mesh and may be interested in the values obtained with a 50x50x50 without having to perform a full lifetime calculation on a 50x50x50 from scratch.