This repository contains the source code and data associated with the paper:
- Jan Berges, Nina Girotto, Tim Wehling, Nicola Marzari, and Samuel Poncé, Phonon Self-Energy Corrections: To Screen, or Not to Screen, arXiv:2212.11806
The data shown in our paper have been calculated with a modified version of the PHonon and EPW codes of Quantum ESPRESSO. In particular, we have introduced the inputs and outputs listed below.
Attached we provide a patch with the relevant modifications that can be applied to version 6.8 of Quantum ESPRESSO. This can either be done with Git:
git clone https://gitlab.com/QEF/q-e.git
cd q-e
git checkout qe-6.8
git apply path/to/qe2screen.patch
Or without Git:
wget https://github.com/QEF/q-e/releases/download/qe-6.8/qe-6.8-ReleasePack.tgz
tar -xzf qe-6.8-ReleasePack.tgz
cd qe-6.8
patch -p1 < path/to/qe2screen.patch
Afterward, Quantum ESPRESSO can be installed as usual.
We have introduced the following inputs in ph.x
:
cdfpt_min
: Lower bound of cDFPT active energy window in eVcdfpt_max
: Upper bound of cDFPT active energy window in eV- If not set, a standard DFPT calculation is done
- Default
dis_froz_min
anddis_froz_max
in EPW - The energy is not measured from the Fermi level
bare
: Suppress electronic response to atomic displacements? [false
]ibndprt
: Band index for which k = 0 vertex shall be printed
A cDFPT calculation creates an additional output file:
outdir/_ph0/prefix.phsave/cdfpt_subspace.xml
: Information passed on to EPW
We have introduced the following inputs in epw.x
:
cdfpt_dir
: Equivalent ofdvscf_dir
for cDFPT dataxdfpt_dir
: Equivalent ofdvscf_dir
for extra DFPT data (low smearing)unscreen_fine
: Perform unscreening on fine mesh? [false
]geff
: Drop negative eigenvalue of outer product of vertices? [false
]bare
: Is the data incdfpt_dir
bare (relevant for unscreening)? [false
]types
: Smearing types corresponding totemps
[-99
]0
: Gaussian1
: Methfessel-Paxton-1
: Marzari-Vanderbilt-99
: Fermi-Dirac
temp_inf
: High smearing at which phonons are interpolated in Ktype_inf
: Smearing type corresponding totemp_inf
[-99
]corr
: Method to correct screened vertex [0
]0
: No correction1
: cRPA correction I2
: Linear correction II- Negative band index: Correction II applied to single band
phlabel
: Filename stem for band plots [phband
]prtgkkc
: Equivalent ofprtgkk
for cDFPT data [false
]prtgkkx
: Equivalent ofprtgkk
for extra DFPT data [false
]lpolarc
: Equivalent oflpolar
for cDFPT data [true
]lpolarx
: Equivalent oflpolar
for extra DFPT data [false
]L
: Range-separation parameter [0
]perp
: Take out-of-plane polarizability into account (forL > 0
)? [false
]
Some inputs are used differently in the cDFPT case:
asr_typ
: The new option'none'
disables the ASR correction ['simple'
]temps
: Low smearings for which the phonon frequencies are estimated in Kdegaussw
: Self-energy smearing for phonon spectral function in eV [0.025
]degaussq
: Overall smearing for phonon spectral function in meV [0.05
]
EPW also watches for new optional input files:
dipole.fmt
: Alternative DFPT Born effective chargesdipolec.fmt
: Alternative cDFPT Born effective chargesdipolex.fmt
: Alternative extra DFPT Born effective chargesquadrupolec.fmt
: Equivalent ofquadrupole.fmt
for cDFPT dataquadrupolex.fmt
: Equivalent ofquadrupole.fmt
for extra DFPT data
In a cDFPT calculation, band_plot
produces several output files:
phlabel.freq
: DFPT phonon frequencies- Custom filename stem defined via the input
phlabel
- Custom filename stem defined via the input
phlabelc.freq
: cDFPT phonon frequenciesphlabelx.freq
: Extra DFPT phonon frequenciesphlabelr.freq
: Renormalized DFPT phonon frequencies- Phonon frequencies at
temp_inf
if given - Otherwise unscreened DFPT phonon frequencies
- Phonon frequencies at
phlabelcr.freq
: Renormalized cDFPT phonon frequencies- Phonon frequencies at
temp_inf
if given - Otherwise equal to DFPT phonon frequencies (sanity check)
- Phonon frequencies at
phlabelrn.freq
: DFPT-DFPT phonon frequencies forn
th smearingphlabelcrn.freq
: cDFPT-DFPT phonon frequencies forn
th smearing
specfun_ph
additionally produces:
phlabelrwn.freq
: DFPT-DFPT phonon spectral function forn
th smearingphlabelcrwn.freq
: cDFPT-DFPT phonon spectral function forn
th smearing
eig_plot
additionally produces:
phlabelren.freq
: DFPT-DFPT phonon eigenvectors forn
th smearingphlabelcren.freq
: cDFPT-DFPT phonon eigenvectors forn
th smearing
The directories figXY
contain the Python scripts and data necessary to create
all figures shown in our paper. This can be done in a virtual environment:
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -r requirements.txt
A LaTeX installation, preferably TeX Live, is required to typeset the figures.
The directory fitQ
contains a minimal working example of the optimization of
quadrupole tensors as done in our paper. If both the patched version of Quantum
ESPRESSO and the above Python environment are installed, simply do ./run.sh
.
More precisely, we first calculate (bare) dynamical matrices and electron-phonon matrix elements both on a coarse q mesh and for selected q points along a path. Then we Fourier interpolate the former, minimizing deviations from the latter. Here, the free parameters are the independent elements of the quadrupole tensors Q and the range-separation parameter L entering the formulas for the long-range components that are subtracted and added before and after interpolation. First, we optimize L for Q = 0, minimizing the short-range part of the force constants. Second, we optimize Q for constant L. A simultaneous optimization would also be possible, but it is only important that L is in the correct range.
Note that the results obtained in this example are not converged. The parameters have been chosen such that the calculations can be done on a personal computer.
The directory input
contains the Quantum ESPRESSO input files we have used.
Rather than a separate file for each set of parameters considered, we provide
one generic example and indicate possible variants by comments.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (https://www.gnu.org/licenses), either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Copyright (C) 2023 J. Berges, N. Girotto, T. Wehling, N. Marzari, S. Poncé