Electron-phonon accumulators
When running electron-phonon calculations, for example, to compute transport coefficients or the renormalization of the electronic bandstructure, VASP tries to be as efficient as possible. Typically, one of the most expensive parts to compute are the electron-phonon matrix elements. Accumulators provide a mechanism to efficiently reuse computed matrix elements in the electron–phonon module. This functionality allows one to perform a single VASP run while evaluating multiple derived quantities—such as transport coefficients under different scattering approximations or at varying chemical potentials—without recalculating the matrix elements. The accumulator technique circumvents the need to repeat these calculations for every set of parameters.
How it works
The basic idea behind accumulators is to separate the calculation of matrix elements from their subsequent use. Once computed, these elements are “accumulated” into different bins corresponding to various parameter sets. For example, in transport calculations, different accumulators may be defined for:
- Various scattering approximations set via ELPH_SCATTERING_APPROX.
- Multiple chemical potentials set via ELPH_SELFEN_MU.
Let us look at the following example. If one sets
ELPH_SCATTERING_APPROX = SERTA MRTA_TAU
ELPH_SELFEN_MU = -0.1 0.0 0.1
then it would take a total of 6 calculations to get all combinations of scattering approximations and chemical potentials. It would be very inefficient to recalculate all the electron-phonon matrix elements for each such combination. Instead, VASP internally creates an accumulator for each combination of ELPH_SCATTERING_APPROX and ELPH_SELFEN_MU, accumulating the results for all combinations without the need to recompute matrix elements. This is a much more efficient approach, often with negligible additional computational cost.
Mind: Different temperatures supplied via ELPH_SELFEN_TEMPS will not create additional accumulators. The temperatures are handled as an array inside each accumulator. |
Output
The output of each accumulator is provided in the OUTCAR file as well as in the vaspout.h5 file. In both cases, each accumulator is labeled by a unique ID that simple counts the number of accumulators. In this section, we explain the structure of the output in terms of accumulators. This should help you to quickly find the relevant data that was produced by the electron-phonon code.
In the OUTCAR file, each accumulator is first listed with its ID, N, and all the relevant information that defines this accumulator is written in a corresponding block. Here is an example output that defines two self-energy accumulators:
Electron self-energy accumulator N = 1 ---------------------------------- Band range: [ 2: 4] Number of bands to sum over: 8 Scattering approximation: constant relaxation-time approximation (CRTA) Static self-energy: F Complex imaginary shift (delta): 0.000 Chemical potentials mu(T): Temperature (K) mu (eV) 0.00000000 9.79452083 100.00000000 9.80301003 200.00000000 9.82655169 Transport energy range: [ 9.434: 10.474] wich corresponds to 1.040 eV Number of selected k-points at which to compute the self-energy: [ 3 / 29] Selected bands and k-points at which to compute the self-energy: 2 3 4 1 T T T 2 T T T 6 T T T Electron self-energy accumulator N = 2 ---------------------------------- Band range: [ 2: 4] Number of bands to sum over: 8 Scattering approximation: self-energy relaxation-time approximation (SERTA) Static self-energy: F Complex imaginary shift (delta): 0.000 Chemical potentials mu(T): Temperature (K) mu (eV) 0.00000000 9.79452083 100.00000000 9.80301003 200.00000000 9.82655169 Transport energy range: [ 9.434: 10.474] wich corresponds to 1.040 eV Number of selected k-points at which to compute the self-energy: [ 3 / 29] Selected bands and k-points at which to compute the self-energy: 2 3 4 1 T T T 2 T T T 6 T T T
The difference between the two accumulators is in the scattering approximation: one uses CRTA and one uses SERTA.
Mind: The difference between CRTA and SERTA is only relevant in the context of transport calculations. The computed self-energies do not depend on the scattering approximation. |
This way, you can quickly figure out which accumulator corresponds to which combination of computational parameters. The computed self-energies for each accumulator are then given below. Here is an example output for the first accumulator and the first temperature:
Electron self-energy accumulator N= 1 T= 0. K ispin ikpt iband KS eV re(Fan) eV im(Fan) eV DW eV Fan+DW eV 1 1 2 9.822840 0.000000 -0.001688 0.000000 0.000000 1 1 3 9.822840 0.000000 -0.001688 0.000000 0.000000 1 1 4 9.822841 0.000000 -0.001688 0.000000 0.000000 1 2 2 7.396326 0.000000 -0.110687 0.000000 0.000000 1 2 3 9.166331 0.000000 -0.013618 0.000000 0.000000 1 2 4 9.166332 0.000000 -0.013618 0.000000 0.000000 1 6 2 8.086060 0.000000 -0.073793 0.000000 0.000000 1 6 3 8.086060 0.000000 -0.073793 0.000000 0.000000 1 6 4 8.496795 0.000000 -0.067575 0.000000 0.000000
Mind: In this case, only the imaginary part of the self-energy is calculated (useful for transport calculations). |
For transport calculations, there are additional transport accumulators. The corresponding OUTCAR output has a structure that is similar to that of the self-energy. First, the transport accumulators are listed and defined:
Transport calculator N = 1 ---------------------------------- transport driver: 2 ! Gauss-Legendre integration Scattering approximation: constant relaxation-time approximation (CRTA) Static self-energy: F Transport number of points: 501 temperature: 0.000 K Transport energy range: [ 9.795: 9.795] wich corresponds to 0.000 eV Average relaxation time: NaN s Number of electrons: 0.0000E+00 Number of holes: 1.1297E-06 temperature: 100.000 K Transport energy range: [ 9.699: 9.907] wich corresponds to 0.208 eV Average relaxation time: 1.0000E-14 s Number of electrons: 0.0000E+00 Number of holes: 1.1296E-06 temperature: 200.000 K Transport energy range: [ 9.619: 10.035] wich corresponds to 0.416 eV Average relaxation time: 1.0000E-14 s Number of electrons: 0.0000E+00 Number of holes: 1.1298E-06 Transport calculator N = 2 ---------------------------------- transport driver: 2 ! Gauss-Legendre integration Scattering approximation: self-energy relaxation-time approximation (SERTA) Static self-energy: F Transport number of points: 501 temperature: 0.000 K Transport energy range: [ 9.795: 9.795] wich corresponds to 0.000 eV Average relaxation time: NaN s Number of electrons: 0.0000E+00 Number of holes: 1.1297E-06 temperature: 100.000 K Transport energy range: [ 9.699: 9.907] wich corresponds to 0.208 eV Average relaxation time: 2.1451E-13 s Number of electrons: 0.0000E+00 Number of holes: 1.1296E-06 temperature: 200.000 K Transport energy range: [ 9.619: 10.035] wich corresponds to 0.416 eV Average relaxation time: 4.3674E-13 s Number of electrons: 0.0000E+00 Number of holes: 1.1298E-06
This is then followed by the output of the transport coefficients for each accumulator and each temperature. The corresponding example output looks like this:
Transport for self-energy accumulator N= 1 T K mu eV sigma S/m mob cm^2/(V.s) seebeck μV/K peltier μV kappa_e W/(m.K) 0.00000000 9.79452083 87.62375412 54.69155048 0.00000000 0.00000000 0.00000000 Gauss-Legendre grids 100.00000000 9.80301003 87.61741132 54.69107335 228.06848886 22806.84888640 0.00023958 Gauss-Legendre grids 200.00000000 9.82655169 87.62716236 54.69106480 377.34594846 75469.18969136 0.00050233 Gauss-Legendre grids Transport for self-energy accumulator N= 2 T K mu eV sigma S/m mob cm^2/(V.s) seebeck μV/K peltier μV kappa_e W/(m.K) 0.00000000 9.79452083 153.09934046 95.55902268 0.00000000 0.00000000 0.00000000 Gauss-Legendre grids 100.00000000 9.80301003 149.76360902 93.48293224 228.06843439 22806.84343939 0.00040952 Gauss-Legendre grids 200.00000000 9.82655169 134.56767701 83.98822174 377.34590243 75469.18048584 0.00077142 Gauss-Legendre grids
This allows us to identify the first data set (N = 1) as the CRTA calculation and the second data set (N = 2) as the SERTA calculation.