Minimum Background:
The implementation arXiv article MUST be read (including the appendix). In brief:
- The Hamiltonian in Eliashberg theory allows a phonon with momentum \(\textbf{q}\) to scatter an electron with momentum \(\textbf{k}\) to \(\textbf{k}+\textbf{q}\) with some strength \(g_{k,k+q}^q\). Everything else in the theory can be worked out from these electron-phonon matrix elements g.
$$ H=\sum\limits_{kq} g_{k,k+q}^q c_{k+q}^\dagger c_{k} b_{q} +h.c.$$
Workflow:
- Do an scf over (at least) all the k and k+q points
- Do an scf over all the k points. This defines the k grid.
- Calculate el-ph lambdas. This defines the q grid.
Gotcha:
- Image parallelization is NOT implement for calculation the electron-phonon matrix elements. It is only implemented for pure phonon calculations, which might be used to estimate zero point energy for example.
- kpoint.x knows about symmetries of the lattice, but not the lattice with basis. When the unit cell has more than one atom, it is safer to run pw.x with verbosity=’high’ to extract the k points necessary for lambda.x.