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.
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/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t61.abi
See brav@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, [26/1245] in all abinit tests, [12/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi …
- v7: t88.abi, t89.abi …
- v8: t44.abi, t57.abi, t60.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/1245] in all abinit tests, [0/159] 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, [6/1245] in all abinit tests, [4/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.abi
- v7: t88.abi
- v9: t92.abi
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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t60.abi
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.
2: --> Similar to 1 but include only the dipole part. Q* are set to zero even if the DDB file contains them.
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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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_ahc_type¶
Mnemonics: Electron-PHonon: Allen-Heine-Cardona type
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 1
Added in version: 9.11.6
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v8: t44.abi
Only relevant for optdriver=7 and eph_task=4. If set to 0, use the adiabatic version of the Allen-Heine-Cardona equation to compute the zero-point renormalisation as well as temperature dependence. If set to 1 (default), use the non-adiabatic version of the Allen-Heine-Cardona equation to compute the zero-point renormalisation as well as temperature dependence. Note: The use of eph_ahc_type =0 is not recommended in IR-active materials.
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, [5/1245] in all abinit tests, [3/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi
- v9: t53.abi, t60.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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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_frohl_ntheta¶
Mnemonics: Electron-PHonon: FROHLIich Number of THETA points
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: 9.8.0
Test list (click to open). Rarely used, [6/1245] in all abinit tests, [5/159] in abinit tutorials
- tutorespfn: teph4zpr_4.abi, teph4zpr_5.abi, teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v9: t60.abi
Only relevant for optdriver = 7 and eph_task = 4 i.e. computation of the e-ph self-energy. This variable defines the angular mesh for the spherical integration of the Frohlich divergence in the microzone around the Gamma point to accelerate the convergence with the number of q-points.
Set it to zero to disable the correction for testing purposes.
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, [3/1245] in all abinit tests, [0/159] in abinit tutorials
Only relevant for optdriver=7 and eph_task=6, 10. 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, [5/1245] in all abinit tests, [4/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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, [5/1245] in all abinit tests, [4/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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, [14/1245] in all abinit tests, [6/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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 [Bloechl1994] 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/1245] in all abinit tests, [0/159] 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, [16/1245] in all abinit tests, [9/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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/1245] in all abinit tests, [0/159] 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 November 28, 2024), 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 eph_np_pqbks is the only variable that should be used to change the default behaviour. Other variables such as nppert, npband, npfft, np_spkpt 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: integer
Dimensions: (2)
Default value: [0, 0]
Added in version: 9.0.0
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is used to select the range of phonon indices included in the computation of the electron-phonon self-energy. By default all phonon indices are included ([0, 0]), otherwise only the phonon indices between the first and second entry are included. Note that one can also use negative values to exclude a range of indices provided that abs(eph_phrange(1)) < abs(eph_phrange(2)).
To summarize: use e.g. eph_phrange 4 6 to include phonon indices 4, 5, 6 in the calculation or use eph_phrange -4 -6 to include ALL phonon indices except 4, 5, 6.
Important
The indices do not necessary correspond to phonon modes if there are crossings in the phonon band structure. At each q-point, indeed, phonons are ordered according to their energy. and this order does not necessarly reflect the connection of the energy branch in q-space.
eph_phrange_w¶
Mnemonics: EPH PHonon mode RANGE (Frequency)
Characteristics: ENERGY
Mentioned in topic(s): topic_SelfEnergy
Variable type: real
Dimensions: (2)
Default value: [0, 0]
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t60.abi
This variable is used to include/exclude phonon modes in the computation of the electron-phonon self-energy on the basis of the vibrational energy instead of the index as done in eph_phrange. The usage of eph_phrange_w is recommended especially if there are crossings in the phonon band structure.
By default all phonon frequencies are included ([0, 0]), otherwise only the phonons whose energy is between the first and second entry are included. Note that one can also use negative values to exclude energies inside a range provided that abs(eph_phrange_w(1)) < abs(eph_phrange_w(2)).
To summarize: use e.g. eph_phrange_w 40 60 meV to include phonon frequencies between 40 and 60 meV. Use eph_phrange_w -40 -60 meV to exclude phonon frequencies between 40 and 60 meV.
Important
This variable has the ENERGY characteristics so the code assume Hartree units by default.
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/1245] in all abinit tests, [0/159] 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_prtscratew¶
Mnemonics: EPH PRINT spectral decomposition of SCATTERING RATES as a function of omega phonon.
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: 9.6.7
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t60.abi
This variable can be used to compute the spectral decomposition of the SERTA/MRTA scattering rates in terms of an integral over phonon frequencies:
This option is available only when computing the imaginary part of the e-ph self-energy (eph_task = -4). The values of \(f_{n\kk}(\ww)\) are stored in the SIGEPH file (scratew netcdf variable).
The delta function \(\delta(\omega - \omega_{\qnu})\) is approximated with a gaussian of standard deviation ph_smear and the spectral decomposition is evaluated on a linear mesh of step ph_wstep covering the entire vibrational spectrum.
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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [3/159] 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, [26/1245] in all abinit tests, [12/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi …
- v7: t88.abi, t89.abi …
- v8: t44.abi, t57.abi, t60.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].
- 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.
- 9 → Compute cumulant from SIGEPH.nc file specifcy via getsigeph_filepath.
- 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 requirements as for eph_task = 6. Reference: [Guster2021]
- 11 → Compute e-ph matrix elements on homogeneous k- and q-meshes. Save results in GSTORE.nc file (requires netcdf library with MPI-IO support). The k-mesh must be equal to the one associated to the input WFK file, the q-mesh is specified by eph_ngqpt_fine (NB: the q-mesh must be a sub-mesh of the k-mesh or equal).
- 12 → Migdal-Eliashberg equations (isotropic case).
- -12 → Migdal-Eliashberg equations (anisotropic case). IN DEVELOPMENT.
- 13 → Variational polaron equations
- -13 → Compute polaron wavefunctions and atomic displacements in the supercell and write results to files
- 14 → Compute the molecular Berry curvature from GSTORE.nc. No support for metals or non-collinear magnetism yet. Reference: [Saparov2022], [Coh2023].
- 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.
- 16, -16 → test_phrotation TO BE DOCUMENTED.
- 17 → Compute e-ph matrix elements with the GWPT formalism IN DEVELOPMENT.
Important
At the time of writing (November 28, 2024 ), 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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.
getabiwan¶
Mnemonics: GET the ABIWAN.nc from dataset
Mentioned in topic(s): topic_ElPhonInt
Variable type: int
Dimensions: scalar
Default value: None
Added in version: 10.1.1
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is similar in spirit to getabiwan_filepath but uses the dataset index instead of the filepath.
getabiwan_filepath¶
Mnemonics: GET the ABIWAN.nc from FILEPATH
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: None
Added in version: 10.1.1
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable defines the path of the ABIWAN.nc file with the Wannier rotation matrices produced by ABINIT when wannier90 in invoked in library mode. See also getabiwan.
getgstore_filepath¶
Mnemonics: GET the GSTORE.nc from FILEPATH
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: None
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [2/1245] in all abinit tests, [2/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi, teph4isotc_7.abi
This variable defines the path of the GSTORE.nc file with the e-ph matrix elements that should be used as input for further analysis.
This variable can also be used when eph_task == 11 i.e. when we compute the GSTORE file. In this case, the code assumes we want to restart a GSTORE calculation and only the (k, q) entries that are missing in the nc file are computed. This option is very useful if the previous job has been killed due to timeout limit.
getgwan¶
Mnemonics: GET the GWAN.nc from dataset
Mentioned in topic(s): topic_ElPhonInt
Variable type: int
Dimensions: scalar
Default value: None
Added in version: 10.1.1
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is similar in spirit to getgwan_filepath but uses the dataset index instead of the filepath.
getgwan_filepath¶
Mnemonics: GET the GWAN.nc from FILEPATH
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: None
Added in version: 10.1.1
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable defines the path of the GWAN.nc file with the e-ph matrix elements in the Wannier representation See also getgwan.
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/1245] in all abinit tests, [1/159] 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]
getvarpeq¶
Mnemonics: GET the VARPEQ.nc from dataset
Mentioned in topic(s): topic_Polaron
Variable type: int
Dimensions: scalar
Default value: None
Only relevant if: eph_task in [13, -13]
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable is similar in spirit to getvarpeq_filepath but uses the dataset index instead of the filepath.
getvarpeq_filepath¶
Mnemonics: GET the VARPEQ.nc from FILEPATH
Mentioned in topic(s): topic_Polaron
Variable type: string
Dimensions: scalar
Default value: None
Only relevant if: eph_task in [13, -13]
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable defines the path of the VARPEQ.nc file with the variational polaron equations optimization results.
This variable can be used when eph_task == 13 i.e. when we solve the variational polaron equations. In this case, if eph_restart == 1, the code assumes we want to initialize the solution by restarting/interpolating from the solution available in the VARPEQ.nc file.
If eph_task == -13, the variable is required to produce *.xsf files containing polaronic wavefunction and induced displacements that can be visualized with VESTA or Xcrysden.
gstore_brange¶
Mnemonics: GSTORE Band RANGE
Mentioned in topic(s): topic_ElPhonInt
Variable type: int
Dimensions: (2,nsppol)
Default value: 0
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable can be used to specify the band range when computing the GSTORE.nc file with eph_task == 11. The first entry gives the first band to be included while the second index specifies the last band.
Note that the array depends on the value of nsppol thus one has to provide four integers for the two different spin channels when nsppol == 2.
If not specified in input, ABINIT will use all the bands from 1 up to the maximum number of bands unless additional filters are activated, see gstore_kfilter and gstore_erange.
gstore_cplex¶
Mnemonics: GSTORE ComPLEX dimension
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 2
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable specifies whether the EPH code should store \(|g|^2\) or \(g\) when computing the e-ph matrix elements (eph_task == 11) Possible values are:
1 --> compute and store $|g|^2$ in GSTORE.nc.
Use this option to reduce the size of the file but keep in mind
that the GSTORE can only be used to compute expression in which
only $|g|^2$ is needed.
2 --> compute and store complex $g$ in GSTORE.nc (default)
gstore_erange¶
Mnemonics: GSTORE Energy RANGE
Characteristics: ENERGY
Mentioned in topic(s): topic_ElPhonInt
Variable type: real
Dimensions: (2,nsppol)
Default value: None
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This variable is used when eph_task = 11 to define the k/q points that should be considered when producing the GSTORE.nc file This variable consists of two x nsppol entries that allow one to select the k-points and the bands on the basis of their KS energy \(\ee_\nk\).
If both entries in gstore_erange are negative, the code assumes a metal and only states within the energy window [efermi - abs(gstore_erange(1)), efermi + abs(gstore_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 gstore_erange is not compatible with gstore_brange.
Important
By default, this variable is given in Hartree. Use e.g.
gstore_erange 0.0 0.5 eV
to specify the energy intervals in eV units. meV is supported as well.
gstore_gmode¶
Mnemonics: GSTORE GMODE
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: phonon
Only relevant if: optdriver == 7
Added in version: 10.1.2
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This input variable specifies the representation used to store the e-ph matrix elements in the GSTORE.nc file
Possible values are:
"phonon" --> Store e-ph matrix elements in the phonon representation (collective displacement)
"atom" --> Store e-ph matrix elements in the atom representation (displacement of a single atom along one of the reduced directions)
gstore_kfilter¶
Mnemonics: GSTORE K-FILTER
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: none
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable can be used to introduce a filter in the electronic wavevectors (k and k+q) when computing the e-ph matrix elements with eph_task == 11. Possible values are:
"none" --> No filter is applied.
"fs_tetra" --> Use tetrahedron method to filter k/k+q states on the Fermi surface.
Note that it is possible to use another filter based on the position of the energy states wrt to either the CBM/VBM or the position wrt to the Fermi level via gstore_erange.
gstore_kzone¶
Mnemonics: GSTORE K-point ZONE
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: ibz
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable specifies whether the EPH code should compute the \(g(\kk, \qq)\) matrix elements for \(\kk\) in the IBZ or in the BZ.
Important
The combination gstore_kzone = “ibz” with gstore_qzone = “ibz” is not allowed. One usually restricts one wavevector to the IBZ while the other wavevector covers the full BZ. Using the BZ for both \(\kk\) and \(\qq\) is usually used for testing purposes.
gstore_qzone¶
Mnemonics: GSTORE Q-point ZONE
Mentioned in topic(s): topic_ElPhonInt
Variable type: string
Dimensions: scalar
Default value: bz
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable specifies whether the EPH code should compute the \(g(\kk, \qq)\) e-ph matrix elements for \(\qq\) in the IBZ or in the BZ.
Important
The combination gstore_kzone = “ibz” with gstore_qzone = “ibz” is not allowed. One usually restricts one wavevector to the IBZ while the other wavevector covers the full BZ. Using the BZ for both \(\kk\) and \(\qq\) is usually used for testing purposes.
gstore_with_vk¶
Mnemonics: GSTORE WITH Velocity_k
Mentioned in topic(s): topic_ElPhonInt
Variable type: integer
Dimensions: scalar
Default value: 1
Only relevant if: optdriver == 7
Added in version: 9.6.2
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi
This input variable specifies whether the EPH code should compute and store the matrix elements of the velocity operator when computing the e-ph matrix elements (eph_task == 11) Possible values are:
0 --> Do not compute velocity matrix elements
1 --> compute and store the diagonal matrix elements (default)
2 --> compute and store diagonal + off-diagonal terms.
ibte_abs_tol¶
Mnemonics: Iterative Boltzmann Equation: ABSolute TOLerance for convergence
Mentioned in topic(s): topic_ElPhonInt
Variable type: real
Dimensions: scalar
Default value: -1.0
Added in version: 9.3.0
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t65.abi
This variable defines the absolute tolerance used to stop the iterative solution of the Boltzmann equation. The code stops the iterations when $$ \max_\kk |{\bm F}\kk^i - {\bm F}\kk^{i-1}| $$ is less than ibte_abs_tol where \(\({\bm F}_\kk^i\)\) is the solution at iteration step i.
Note, however, that the absolute value of \(\({\bm F}\)\) strongly depends on the position of the Fermi level that in turns defines the free carrier density. As a consequence, the value of ibte_abs_tol should be adjusted according to the system under investigation.
Since this procedure is not very practical, it’s much easier to use a negative value for ibte_abs_tol (default behaviour) and let the code automatically define the convergence threshold from the free carrier density computed at runtime.
According to numerical tests, a reasonable value of ibte_abs_tol can be estimated using 1e-20 * carrier_density in cm^-3.
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/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t65.abi
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/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t65.abi
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/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t65.abi
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, [15/1245] in all abinit tests, [7/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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/1245] in all abinit tests, [1/159] 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, [17/1245] in all abinit tests, [10/159] in abinit tutorials
- tutorespfn: teph4mob_5.abi, teph4mob_6.abi, teph4mob_7.abi, teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.abi, teph4isotc_7.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, [8/1245] in all abinit tests, [4/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.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/1245] in all abinit tests, [0/159] 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, [8/1245] in all abinit tests, [4/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi, teph4isotc_5.abi, teph4isotc_6.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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [1/159] 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/1245] in all abinit tests, [0/159] 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.
prtnest¶
Mnemonics: PRinT NESTing function
Characteristics: DEVELOP
Mentioned in topic(s): topic_printing
Variable type: integer
Dimensions: scalar
Default value: 0
Added in version: before_v9
Test list (click to open). Rarely used, [5/1245] in all abinit tests, [1/159] in abinit tutorials
- tutorespfn: teph4isotc_2.abi
- v6: t72.abi, t90.abi
- v7: t88.abi, t90.abi
Same meaning as prtnest@anaddb. The only difference with respect to the anaddb version is that the path in q-space must be specified in terms of ph_qpath and ph_nqpath.
By default, the nesting factor is computed using the Fermi level obtained in the GS run. In order to shift the Fermi level, use fermie_nest. Note that, for the time being, the implementation is not compatible with nshiftk > 1.
prtnest can be used either in the GS part or in the EPH code optdriver == 7 (possibly with eph_task = 0).
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, [3/1245] in all abinit tests, [2/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi, teph4isotc_7.abi
- 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. Usexmgrace file_PHBANDS.agr
to visualize the data - 2 Write frequencies in gnuplot format. The code produces a
PHBANDS.dat
file with the eigenvalues and aPHBANDS.gnuplot
script. Usegnuplot 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, [17/1245] in all abinit tests, [5/159] in abinit tutorials
- tutorespfn: teph4isotc_6.abi, teph4isotc_7.abi, teph4zpr_6.abi, teph4zpr_7.abi, teph4zpr_8.abi
- v7: t89.abi
- v8: t57.abi, t60.abi, t65.abi
- v9: t53.abi, t54.abi, t55.abi, t56.abi, t57.abi, t60.abi, t61.abi, t66.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/1245] in all abinit tests, [0/159] 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.
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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [4/159] 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. meV is supported as well.
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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [0/159] 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/1245] in all abinit tests, [8/159] 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.
tolcum¶
Mnemonics: TOLerance on CUMulant
Mentioned in topic(s): topic_ElPhonInt
Variable type: real
Dimensions: scalar
Default value: 0.0
Added in version: 9.8.0
Test list (click to open). Rarely used, [1/1245] in all abinit tests, [0/159] in abinit tutorials
- v9: t60.abi
This variable is active when computing the cumulant with eph_task = 9.
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/1245] in all abinit tests, [1/159] 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.
varpeq_aseed¶
Mnemonics: VARiational Polaron EQuations: A_nk-coefficients SEED
Mentioned in topic(s): topic_Polaron
Variable type: string
Dimensions: scalar
Default value: gau_energy
Only relevant if: eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable specifies the type of initial seed for the electronic coefficients \(A_{n\mathbf{k}}\), defining the charge localization in the variational polaron equations.
Possible values:
-
“gaussian” → Gaussian bassed on the electronic eigenergies \(\varepsilon_{n\mathbf{k}}\):
\[A_{n\mathbf{k}} \sim e^{-\frac{(\varepsilon_{n\mathbf{k}} - \mu)^2}{2\sigma^2}}.\]
The mean value \(\mu\) and the standard deviation \(\sigma\) are defined by the varpeq_gau_params variable.
-
“random” → Random initialization.
-
“even” → Even contribution from each electronic state \(\psi_n{\mathbf{k}}\).
varpeq_erange¶
Mnemonics: VARiational Polaron EQuations: Energy Range
Mentioned in topic(s): topic_Polaron
Variable type: real
Dimensions: (2)
Default value: [0, 0]
Only relevant if: eph_task == 13 and varpeq_aseed == “gaussian”
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variables controls the energy window for the inital guess in the variational polaron equations optimizaiton. It is used for testing purpose only and likely will be removed in further releases.
varpeq_gau_params¶
Mnemonics: VARiational Polaron EQuations: Gaussian PaRameters
Mentioned in topic(s): topic_Polaron
Variable type: real
Dimensions: (2)
Default value: [0, 1]
Only relevant if: eph_task == 13 and varpeq_aseed == “gaussian”
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
If varpeq_aseed == “gaussian”, this variable defines the mean value and the standard deviation varpeq_gau_params (:) = \(\mu\), \(\sigma\) for the Gaussian function to be used as initial seed for the vector electronic coefficients. See varpeq_aseed for details.
varpeq_interpolate¶
Mnemonics: VARiational Polaron EQuations: INTERPolation
Mentioned in topic(s): topic_Polaron
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
If non-zero, this variable activates the interpolation of the initial guess for the electronic vector in the variational polaron equations. In this case, the code reads a pre-existing VARPEQ.nc file and performs a linear interpolation of \(A_{n\mathbf{k}}\) provided the metadata found in the netcdf file is compatible with the input file.
With this feature, if a polaronic solution is obtained for a certain \(\mathbf{k}\)-grid, it can then be read and interpolated to be used as a starting point for different grids. This option is expected to lead the optimization proccess to the same polaronic configuration and accelarate the convergence.
varpeq_nstep¶
Mnemonics: VARiational Polaron EQuations: Number of iteration STEPs
Mentioned in topic(s): topic_Polaron
Variable type: integer
Dimensions: scalar
Default value: 50
Only relevant if: optdriver == 7 and eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variables sets the maximum number of iterations in the optimization of variational polaron equations.
varpeq_orth¶
Mnemonics: VARiational Polaron EQuations: ORTHogonalization
Mentioned in topic(s): topic_Polaron
Variable type: integer
Dimensions: scalar
Default value: 0
Only relevant if: optdriver == 7 and eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variables controls orthogonalization to a previous solution. It is used for testing purpose only and likely will be removed in further releases.
varpeq_pc_factor¶
Mnemonics: VARiational Polaron EQuations: PreConditioner FACTOR
Mentioned in topic(s): topic_Polaron
Variable type: real
Dimensions: scalar
Default value: 0.125
Only relevant if: optdriver == 7 and eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variables controls the preconditioner in variational polaron equations optimization. It is used for testing purpose only and likely will be removed in further releases.
varpeq_pc_nupdate¶
Mnemonics: VARiational Polaron EQuations: PreConditioner N-th step UPDATE
Mentioned in topic(s): topic_Polaron
Variable type: integer
Dimensions: scalar
Default value: 30
Only relevant if: optdriver == 7 and eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variables controls update of the preconditioner in the variational polaron equation optimization. It is used for testing purpose only and likely will be removed in further releases.
varpeq_pkind¶
Mnemonics: VARiational Polaron EQuations: Polaron KIND
Mentioned in topic(s): topic_Polaron
Variable type: string
Dimensions: scalar
Default value: None
Only relevant if: eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable specifies the kind of polaron to be obtained within the variational polaron equations framework.
Possible values:
-
“electron” → electron polaron.
-
“hole” → hole polaron.
Important
The “electron”/”hole” option requires exclusively conduction/valence manifold provided in the GSTORE.nc file required to setup the variational polaron equations calculation. Intermixing conduction and valence states will lead to erroneous results.
Note
If the “hole” option is chosen, valence states are flipped, so one always deals with the minimization problem, regardless of the polaron kind.
Also, the polaron binding and localized state energy \(E_p\) and \(\varepsilon\) are positive in case of a hole polaron, and negatie in case of an electron polaron.
varpeq_tolgrs¶
Mnemonics: VARiational Polaron EQuations: TOLerance on the Gradient ReSidual
Mentioned in topic(s): topic_Polaron
Variable type: real
Dimensions: scalar
Default value: 1e-06
Only relevant if: eph_task == 13
Added in version: 10.1.4
Test list (click to open). Rarely used, [0/1245] in all abinit tests, [0/159] in abinit tutorials
This variable sets a tolerance for the electronic gradient residual in the optimization of the varitional polaron equations.