PAOFLOW.elphon.qe_matdyn#
Fourier (matdyn-style) interpolation of phonons and the electron-phonon
coupling from Quantum ESPRESSO real-space force constants (Phase 1A).
This is the PAOFLOW analogue of the QE q2r.x -> matdyn.x (la2F=.true.)
step: it takes the real-space interatomic force constants (flfrc, e.g.
Pb333.fc) and the real-space electron-phonon coupling “force constants”
(a2Fmatdyn.NN) on a coarse commensurate q-grid and Fourier-interpolates both
onto an arbitrarily dense q-grid. At each dense q the dynamical matrix is
diagonalised to give the mode frequencies / eigenvectors, and the coupling
matrix is projected onto the modes to give the mode-resolved lambda_{q nu}.
The dense (lambda_qv, omega_qv) are then fed to
PAOFLOW.elphon.eph_kq.eliashberg_from_modes() to build the smooth
Eliashberg a2F(omega).
This “generalised Fourier interpolation” is the step EPW performs with maximally-localised Wannier functions; here it is done directly with the PAO / QE real-space representation, so the coupling is interpolated from a handful of coarse q-points to a dense grid at negligible cost.
The force-constant files use the standard QE flfrc block layout:
<crystal header> # only in flfrc (nr line onwards is shared)
nr1 nr2 nr3
i j na nb # 3*3*nat*nat blocks
m1 m2 m3 Phi(i,j,na,nb; m) # nr1*nr2*nr3 lines each
...
Attributes#
Functions#
|
Parse a QE |
|
Parse a QE |
|
Wigner-Seitz real-space images per atom pair for |
|
Interpolate phonons + el-ph coupling onto a dense |
Module Contents#
- PAOFLOW.elphon.qe_matdyn.read_qe_ifc(path)[source]#
Parse a QE
flfrcinteratomic force-constant file (e.g.Pb333.fc).- Returns:
{'nat', 'ntyp', 'ibrav', 'celldm', 'masses_amu', 'tau', 'nr', 'frc', 'has_zeu'}.frchas shape(3, 3, nat, nat, nr1, nr2, nr3)in Ry / Bohr^2;masses_amuis(nat,)in amu.- Return type:
- PAOFLOW.elphon.qe_matdyn.read_a2f_ifc(path, nat=1)[source]#
Parse a QE
a2Fmatdyn.NNreal-space electron-phonon coupling file.The layout matches
read_qe_ifc()from the grid line on, prefixed by a single header linesigma_Ry Ef_Ry N(E_F).- Parameters:
- Returns:
{'sigma_ry', 'ef_ry', 'dos_ef', 'nr', 'frc'}.frchas shape(3, 3, nat, nat, nr1, nr2, nr3);dos_efis in states / spin / Ry.- Return type:
- PAOFLOW.elphon.qe_matdyn.build_ws_images(nr, at, tau)[source]#
Wigner-Seitz real-space images per atom pair for
matdyninterpolation.For every atom pair
(na, nb)the routine scans real-space cellsR = sum_i n_i a_iovern_i in [-2 nr_i, 2 nr_i], keeps those whose bond vectorR + tau_na - tau_nblies in (or on the boundary of) the Wigner-Seitz cell of thenr-supercell, and records the grid indexm_i = n_i mod nr_itogether with the integer celln(for the Bloch phase) and the WS weight. This reproduces QEmatdyn(wsinit+frc_blk), giving a far better dense-grid interpolation than a plain per-axis fold.- Returns:
(na, nb) -> list of (m (3,), n (3,), weight).- Return type:
- PAOFLOW.elphon.qe_matdyn.interpolate_coupling(ifc_ph, ifc_a2f, nk, freq_scale=None, asr=True, ws=True)[source]#
Interpolate phonons + el-ph coupling onto a dense
nk^3q-grid.- Parameters:
ifc_ph (dict) – Output of
read_qe_ifc()(phonon force constants).ifc_a2f (dict) – Output of
read_a2f_ifc()(el-ph coupling force constants).freq_scale (float, optional) – Overrides the Ry-dynamical-matrix -> THz frequency scale (otherwise the physical constant is used). Use to calibrate against a QE phonon DOS.
asr (bool, optional) – Apply the
simpleacoustic sum rule to both force-constant tensors (defaultTrue, matching QEasr='simple').ws (bool, optional) – Use the full Wigner-Seitz interpolation (default
True, matching QEmatdyn);Falsefalls back to the cheaper per-axis fold.Truerequires a supportedibrav(see_lattice_vectors()).
- Returns:
{'omega_thz', 'lambda_qv', 'proj', 'dos_ef', 'q_cryst'}.omega_thz/lambda_qv/projare(nq, nmode);projis the raw mode projection<z|A(q)|z>(before thelambdaconversion).- Return type: