Skip to content

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [0/151] in abinit tutorials

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, [3/1101] in all abinit tests, [0/151] 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, [23/1101] in all abinit tests, [10/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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, [4/1101] in all abinit tests, [2/151] in abinit tutorials

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

dipquad

Mnemonics: DIPole-QUADdrupole interaction
Characteristics: DEVELOP
Mentioned in topic(s): topic_longwave
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: v9.5.2

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

Same meaning as dipquad@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/1101] in all abinit tests, [0/151] in abinit tutorials

This flag is used in the Fourier interpolation in q-space of the DFPT potentials. This option is similar to dipdip but it acts on the DFPT potentials instead of the dynamical matrix.

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] (dipolar part) and two additional terms of quadrupolar character related to the dynamical quadrupoles and the response to the electric field ([Brunin2020], [Brunin2020b].

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 This is the default behaviour that relies on a DDB file with all the entries required to build the LR mode.

Setting this flag to 0 deactivates the treatment of the LR contribution. This is just for testing purposes and it is not recommended in polar materials.

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.

Other options (again for testing purposes):

0: --> No treatment
1: --> Remove LR model when building W(R,r). Add it back after W(R,r) --> v(q) Fourier interpolation
       This is the standard approach for polar materials.
-1:  --> Remove LR model when building W(R,r). DO NOT reintroduce it after the Fourier interpolation.
4, 5, 6: --> Use model for the LR part only:

       4: --> Use dipole + quadrupole part
       5: --> Use dipole part only.
       6: --> Use quadrupole part only.

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [3/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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

\langle \mathbf{k+q},b_1 | e^{+i (\mathbf{q+G)} \mathbf{r}} | \mathbf{k}, b_2 \rangle

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [0/151] 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, [2/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [2/151] in abinit tutorials

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/1101] in all abinit tests, [2/151] in abinit tutorials

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/1101] in all abinit tests, [4/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [7/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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 October 07, 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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [3/151] in abinit tutorials

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, [23/1101] in all abinit tests, [10/151] in abinit tutorials

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].
  • 8 → Compute phonon limited transport by solving the (linearized) IBTE using collision terms taken from SIGEPH.nc file. Requires ibte_prep = 1 when computing the imaginary part of the e-ph self-energy with eph_task == -4.
  • 10 → Compute polaron effective mass, using the generalized Frohlich model, in the triply-degenerate VB or CB cubic case. Polaron effective masses are computed along the 3 crystallographic directions: (100), (110) and (111). Same requirement than for eph_task =6. Reference B. Guster et al to be published (2021) or (2022).
  • 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 (October 07, 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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [1/151] in abinit tutorials

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]

ibte_abs_tol

Mnemonics: Iterative Boltzmann Equation: ALPHA TOLerance for convergence
Mentioned in topic(s): topic_ElPhonInt
Variable type: real
Dimensions: scalar
Default value: 1e-4
Added in version: 9.3.0

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

This variable is still under development.

ibte_alpha_mix

Mnemonics: Iterative Boltzmann Equation: ALPHA Mixing factor
Mentioned in topic(s): topic_ElPhonInt
Variable type: real
Dimensions: scalar
Default value: 0.7
Added in version: 9.3.0

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

This variable defines the coefficient for the linear mixing used in the IBTE solver. If the algorithm has problems to converge try to decrease ibte_alpha_mix and increase ibte_niter.

ibte_niter

Mnemonics: Iterative Boltzmann Equation: max Number of ITERations
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 100
Added in version: 9.3.0

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

This variable defines the maximum number of iterations of the IBTE solver.

ibte_prep

Mnemonics: Iterative Boltzmann Equation PREPare
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: 9.3.0

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

This variable is used when computing the imaginary part of the e-ph self-energy (eph_task = - 4) to save the collision term to the SIGEPH file. This step is required for solving the iterative BTE.

Note that, once you have a SIGEPH file with the collision terms, it is possible to run the IBTE solver in standalone mode by using eph_task = 8 with getsigeph_filepath.

Important

IBTE calculations cannot use sigma_ngkpt to donwsample the k-mesh. The k-mesh (ngkpt and the q-mesh eph_ngqpt_fine must be equal.

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/1101] in all abinit tests, [5/151] in abinit tutorials

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/1101] in all abinit tests, [1/151] in abinit tutorials

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/1101] in all abinit tests, [8/151] in abinit tutorials

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/1101] in all abinit tests, [3/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [3/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [1/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [0/151] in abinit tutorials

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, [14/1101] in all abinit tests, [3/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] in abinit tutorials

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.

quadquad

Mnemonics: QUADdrupole-QUADdrupole interaction
Characteristics: DEVELOP
Mentioned in topic(s): topic_longwave
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: v9.5.2

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

Same meaning as quadquad@anaddb

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [4/151] in abinit tutorials

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/1101] in all abinit tests, [0/151] 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/1101] in all abinit tests, [0/151] in abinit tutorials

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/1101] in all abinit tests, [8/151] in abinit tutorials

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/1101] in all abinit tests, [1/151] in abinit tutorials

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.