EPW is the short name for "Electron-phonon Wannier". EPW is an open-source F90/MPI code which calculates properties related to the electron-phonon interaction using Density-Functional Perturbation Theory and Maximally Localized Wannier Functions. EPW is developed and maintained by Samuel Poncé, Roxana Margine, Carla Verdi, and Feliciano Giustino.

The reference technical manuscript for the latest pubic release is:
EPW: Electron-phonon coupling, transport and superconducting properties using maximally localized Wannier functions
by S. Poncé, E. R. Margine, C. Verdi, and F. Giustino.

Since 26 April 2016 EPW is distributed as part of the Quantum ESPRESSO suite.

The code was written by Feliciano Giustino (EPW v1) and Jesse Noffsinger (EPW v2) while at the University of California, Berkeley. Brad Malone (Harvard) and Cheol-Hwan Park (Seoul National University) contributed with tests and benchmarks. Roxana Margine implemented the anisotropic Eliashberg theory while at the University of Oxford (EPW v3). Samuel Poncé (Oxford) made the code compatible with the latest version of Quantum Espresso v5 in the latest release EPW v4. Carla Verdi (Oxford) developed the electron-phonon interpolation for polar materials including Froehlich correction (released within EPW v4).

EPW is based on the method introduced in F. Giustino et al, Phys. Rev. B 76, 165108 (2007). An extended description of the first public release has been published in J. Noffsinger et al, Comput. Phys. Comm. 181, 2140 (2010). The extension of EPW to include the anisotropic Midgal-Eliashberg theory is based on the method described in E. R. Margine et al, Phys. Rev. B 87, 024505 (2013). The latest release of the code is described in S. Poncé et al, Comput. Phys. Commun. 209, 116 (2016).

EPW is developed under Subversion within the QEforge portal.

EPW main features

The EPW code can be used to compute:

  • The total electron-phonon coupling strenght\lambda
  • The anisotropic Eliashberg spectral function \alpha^2F
  • The transport spectral function \alpha^2 F_{\rm tr}
  • The anisotropic superconducting gap \Delta_{n{\bf k}} within the Eliashberg theory
  • The electron and phonon self-energies arising from electron-phonon interaction
  • The phonon linewidths and lifetimes arising from electron-phonon interaction
  • The electron linewidths and lifetimes arising from electron-phonon interaction
  • The temperature-dependence of the carrier lifetimes
  • The spectral functions needed for the calculation of ARPES spectra

Version: EPW v4.0

Below are some of the new features of EPW v4.0:

  • q parallelism
  • Speed optimization
  • Scalability to 120 cores
  • Various bug fixes
  • Creation of a test-farm to check compilation
  • Time-reversal symmetry support
  • Compatibility with the latest QE version and integration into QE trunk
  • Updated tutorials and creation of some Youtube tutorials
  • Creation of the EPW forum

Current version: EPW v4.1

Below is a list of new developments done between end of April 2016 and September 2016:

  • Speed optimization (more calls to BLAS routine, replacement of "exp" by a look-up table)
  • Various bug fixes
  • Correct Wannier localization with spinors
  • The test-farm now checks 5 representative examples and the associated EPW Accuracy
  • Code coverage
  • Automatic documentation using Ford
  • About 30% of the routines are documented for Ford.
  • Less files are produced to decrease IO (no more igk files for example)
  • Restart after epmatwp1 is written with arbitrary number of cores
  • 5 physical tests are run an checked using the QE/testfarm framework
  • An average over degenerate eigenstates is done in the code for Sigma
  • Addition of fine phonon frequency in phonon linewidths output linewidth.phself
  • Electron and Phonon bandstructure can now be computed using band_plot with etf_mem true or false.
  • Debugging for IEEE floating-point exception, underflow, overflow etc...
  • Removal of a lot of unused internal variables
  • Gamma only calculation is not supported (lgamma=.true.) by EPW
  • Removal of the following input variables:
    • filelph
    • fly
    • tphases
    • fildvscf0
    • tshuffle
    • tshuffle2
    • selfen_type
    • eminabs
    • emaxabs
    • deltaeabs
    • phinterp
    • elinterp
    • epstrict
    • twophoton
    • indabs
  • Addition of the following input variables:
    • shortrange
    • longrange
  • Removing most of the #ifdef __PARA to increase readability of the code. This should only be used in low level routines and replace by #ifdef __MPI
  • Replacement of CMPLX (A, B) by CMPLX (A, B, kind=DP) that was causing a loss of precision
  • Addition of links to the documentation of the input variables.
  • Correction of a bug with MPI_FILE_SEEK when etf_mem = .false. and the calculation is big.
  • Removal of the epf files written when etf_mem = .false. Should not be a memory bottleneck and can be scaled down by increasing the number of cores.

Next version: EPW v4.2

Below is a list of new developments done between end of September 2016 and January 2017:

  • Memory optimization to deal with very large systems (50+ atoms in the primitive cell)
  • Possibility to impose the phonon ASR in real space using the 'simple' or 'crystal' ASR
  • Removal of the following input variables:
    • spinors
  • New input variables:
    • lifc
    • asr_typ
    • restart
    • restart_freq
  • New level of parallelization: band parallelism. This is activated using the -nimage keyword when launching an EPW calculation. It only works up to the creation of the .epb file. You then have to restart reading the .epb file an using only -npool parallelization.
  • Create restart point during the fine q-grid interpolation.

EPW Presentation video

Presentation of EPW during the Quantum Espresso developer meeting 2017, Trieste, Italy.

This video can also be found here: https://www.youtube.com/watch?v=pwZpYOmz940&index=3&list=PLNc8Q4bBh5oiS2FuEucck-EvgexLmrb7G

Presentation of EPW during the Quantum Espresso Linear Response workshop 2016, Trieste, Italy. The video was recorded with WebEx.

This video can also be found here: https://www.youtube.com/watch?v=c1VzE3PInhc