[QE-users] Phonon dispersion - bad results around K point
Blair, Erik
Enrique_Blair at baylor.edu
Fri Mar 24 00:26:14 CET 2023
I’m requesting help from all you QE wizards out there.
I’m trying to learn PHonon dispersion calculations, starting simply with diamond. My results look pretty good except for approaching the K point, were I get a bit of a cusp. I’ve tried lots of things: tightening convergences; increasing sampling in the BZ; using asr=’simple’ or asr=’crystal’, etc., but I can’t get rid of the cusping around K. It also makes the X-K path look bad. I’ve tried xc=’lda’ as well as xc=’pbe’.
I have optimized the structure using a PBE ultrasoft pseudo
I point out that I’m using ibrav=2, and I’m using letter notation to specify the high-symmetry points in the path through k-space, so I use q_in_band_form = .true..
Computer/QE version details: I’m using the QE 7.0 package on a Linux HPC cluster.
Relatively low-threshold calculations complete with a bash script and pseudopotentials are available here. I also have my *.out files, and a Python3 script that can generate the plots.
Thanks in advance for your insights.
Enrique (Erik) Blair, Ph.D.
Associate Professor
Electrical and Computer Engineering
Baylor University
Website: http://web.ecs.baylor.edu/faculty/blair/
For your convenience, here’s the LDA work-flow:
# ===== diamond.in =====
&control
calculation = 'scf',
restart_mode = 'from_scratch',
tstress = .true.,
tprnfor = .true.,
prefix = 'diamond',
outdir = 'data',
pseudo_dir = './',
/
&system
ibrav = 2,
nat = 2,
ntyp = 1,
a = 3.5689000000000006,
ecutwfc = 90.0,
ecutrho = 810.0,
input_dft = 'lda',
nbnd = 15,
/
&electrons
conv_thr = 1.000000d-8,
mixing_beta = 0.7,
/
ATOMIC_SPECIES
C 12.011000 C.pz-n-rrkjus_psl.0.1.UPF
ATOMIC_POSITIONS {alat}
C 0.00000000 0.00000000 0.00000000
C 0.25000000 0.25000000 0.25000000
K_POINTS {automatic}
9 9 9 0 0 0
# ===== diamond.ph.in =====
This is a PHonons (ph.x) input file.
&inputph
tr2_ph = 1.000000d-14,
ldisp = .true.,
nq1 = 3,
nq2 = 3,
nq3 = 3,
fildyn = 'diamond.dyn',
outdir = 'data',
prefix = 'diamond',
/
# ==== diamond.q2r.in =====
&input
flfrc = 'diamond.fc',
zasr = 'crystal',
fildyn = 'diamond.dyn',
/
# ==== diamond.matdyn.in =====
&input
asr = 'simple',
q_in_band_form = .true.,
flfrc = 'diamond.fc',
flfrq = 'diamond.frq',
flvec = 'diamond.modes',
/
5
gG 40
X 20
K 30
gG 20
L 1
# ===== plot_phonon_dispersion.py =====
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt( 'diamond.frq.gp', unpack=True)
fdata = np.delete(data, 0, 0) # delete first row - not needed
markerpos = [0, 40, 60, 90, 110, ]
marker_label = ['$\\Gamma$', 'X', 'K', '$\\Gamma$', 'L']
n_ph, n_qpts = fdata.shape
int_idx = range(0, n_qpts)
for freq in fdata:
plt.plot(int_idx, freq)
plt.xticks(markerpos, marker_label)
plt.xlim((markerpos[0], markerpos[-1]))
plt.grid(True)
plt.xlabel('$q$')
plt.ylabel('Frequency (cm$^{-1}$)')
plt.tight_layout()
plt.savefig('phonon_dispersion.png')
plt.close('all')
# ===== run.sh =====
#!/bin/bash
mpiexec -n 8 pw.x < diamond.in > diamond.out
mpiexec -n 8 ph.x < diamond.ph.in > diamond.ph.out
mpiexec -n 8 q2r.x < diamond.q2r.in > diamond.q2r.out
mpiexec -n 8 matdyn.x < diamond.matdyn.in > diamond.matdyn.out
python3 < plot_phonon_dispersion.py
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20230323/8beef408/attachment.html>
More information about the users
mailing list