Seeking Assistance with Imaginary Frequency Issues in EPW Calculations
Posted: Sat Oct 25, 2025 2:24 pm
Dear
When I use EPW to read force constants, the generated phonon spectrum consistently exhibits imaginary frequencies, regardless of whether I set asr_typ to "simple" or "crystal." However, when EPW directly reads the dynamical matrix file (dyn file), the phonon spectrum does not show any imaginary frequencies.
I would greatly appreciate your advice on how to resolve this issue with imaginary frequencies when reading force constants. Could you please suggest any potential solutions or adjustments to the input parameters that might help mitigate this problem?
--
&inputepw
prefix = 'SnSe'
amass(1) = 118.7
amass(2) = 78.96
outdir = './output'
elph = .true.
epbwrite = .true.
epbread = .false.
epwwrite = .true.
epwread = .false.
wannierize = .true.
etf_mem = 0
mp_mesh_k = .false.
lpolar = .true.
vme = 'wannier'
epw_memdist = .true.
use_ws = .false.
lifc = .true.
nbndsub = 32
!bands_skipped = 'exclude_bands = 1:10'
num_iter = 500000
iprint = 2
dis_win_max = 30
dis_win_min = -30
dis_froz_max = 6
dis_froz_min = -10
! proj(1) = 'random'
proj(1) = 'Sn:s;p'
proj(2) = 'Se:s;p'
wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000'
wdata(4) = 'X 0.50000000 0.00000000 0.00000000 S 0.50000000 0.50000000 0.00000000'
wdata(5) = 'S 0.50000000 0.50000000 0.00000000 Y 0.00000000 0.50000000 0.00000000'
wdata(6) = 'Y 0.00000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000'
wdata(7) = 'G 0.00000000 0.00000000 0.00000000 Z 0.00000000 0.00000000 0.50000000'
wdata(8) = 'Z 0.00000000 0.00000000 0.50000000 U 0.50000000 0.00000000 0.50000000'
wdata(9) = 'U 0.50000000 0.00000000 0.50000000 R 0.50000000 0.50000000 0.50000000'
wdata(10) = 'R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000'
wdata(11) = 'end kpoint_path'
wdata(12) = 'bands_plot_format = gnuplot'
wdata(13) = 'dis_num_iter = 5000'
wdata(14) = 'num_print_cycles = 10'
wdata(15) = 'dis_mix_ratio = 1.0'
wdata(16) = 'conv_tol = 1E-12'
wdata(17) = 'conv_window = 4'
wdata(18) = 'guiding_centres = .true.'
wdata(19) = 'dis_conv_tol = 1e-12'
iverbosity = 3 ! epw.out
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 20 ! eV
nstemp = 1
temps = 300
degaussw = 0.01 ! eV
dvscf_dir = './save'
band_plot = .true.
prtgkk = .false.
filkf = './GMKG.txt'
filqf = './GMKG.txt'
nk1 = 6
nk2 = 6
nk3 = 6
nq1 = 3
nq2 = 3
nq3 = 3
/
When I use EPW to read force constants, the generated phonon spectrum consistently exhibits imaginary frequencies, regardless of whether I set asr_typ to "simple" or "crystal." However, when EPW directly reads the dynamical matrix file (dyn file), the phonon spectrum does not show any imaginary frequencies.
I would greatly appreciate your advice on how to resolve this issue with imaginary frequencies when reading force constants. Could you please suggest any potential solutions or adjustments to the input parameters that might help mitigate this problem?
--
&inputepw
prefix = 'SnSe'
amass(1) = 118.7
amass(2) = 78.96
outdir = './output'
elph = .true.
epbwrite = .true.
epbread = .false.
epwwrite = .true.
epwread = .false.
wannierize = .true.
etf_mem = 0
mp_mesh_k = .false.
lpolar = .true.
vme = 'wannier'
epw_memdist = .true.
use_ws = .false.
lifc = .true.
nbndsub = 32
!bands_skipped = 'exclude_bands = 1:10'
num_iter = 500000
iprint = 2
dis_win_max = 30
dis_win_min = -30
dis_froz_max = 6
dis_froz_min = -10
! proj(1) = 'random'
proj(1) = 'Sn:s;p'
proj(2) = 'Se:s;p'
wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.00000000 0.00000000 0.00000000 X 0.50000000 0.00000000 0.00000000'
wdata(4) = 'X 0.50000000 0.00000000 0.00000000 S 0.50000000 0.50000000 0.00000000'
wdata(5) = 'S 0.50000000 0.50000000 0.00000000 Y 0.00000000 0.50000000 0.00000000'
wdata(6) = 'Y 0.00000000 0.50000000 0.00000000 G 0.00000000 0.00000000 0.00000000'
wdata(7) = 'G 0.00000000 0.00000000 0.00000000 Z 0.00000000 0.00000000 0.50000000'
wdata(8) = 'Z 0.00000000 0.00000000 0.50000000 U 0.50000000 0.00000000 0.50000000'
wdata(9) = 'U 0.50000000 0.00000000 0.50000000 R 0.50000000 0.50000000 0.50000000'
wdata(10) = 'R 0.50000000 0.50000000 0.50000000 G 0.00000000 0.00000000 0.00000000'
wdata(11) = 'end kpoint_path'
wdata(12) = 'bands_plot_format = gnuplot'
wdata(13) = 'dis_num_iter = 5000'
wdata(14) = 'num_print_cycles = 10'
wdata(15) = 'dis_mix_ratio = 1.0'
wdata(16) = 'conv_tol = 1E-12'
wdata(17) = 'conv_window = 4'
wdata(18) = 'guiding_centres = .true.'
wdata(19) = 'dis_conv_tol = 1e-12'
iverbosity = 3 ! epw.out
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 20 ! eV
nstemp = 1
temps = 300
degaussw = 0.01 ! eV
dvscf_dir = './save'
band_plot = .true.
prtgkk = .false.
filkf = './GMKG.txt'
filqf = './GMKG.txt'
nk1 = 6
nk2 = 6
nk3 = 6
nq1 = 3
nq2 = 3
nq3 = 3
/