Dear All,
In an EPW restart calculation in order to calculate the electronic mobility of a two-dimensional system I faced the following error-
Error in routine tau_read (1):
Error: The current total number of q-point is not the same as the read one.
Your help to find out the reason behind this error is highly solicited.
Please note that the wannierization part worked out smoothly without any error and the wannier interpolated band structure, both electronic and phononic, matches well with the dft and dfpt results.
Thank you
q-point error in mobility calculation
Moderator: stiwari
Re: q-point error in mobility calculation
Hi,
From your description, it seems that the problem is a change of the size of the q-point grid when restart calculation is performed. Could you double check if the q-grid has been kept consistent?
An example is say you started the calculation with a 20*20*20 q-grid, but increased the grid to 30*30*30 when doing a restart with e.g. prefix.tau_restart file present in the same folder. If that is the case, please delete these restart files then try to run the calculation again.
Thanks!
Best!
Xiao Zhang
From your description, it seems that the problem is a change of the size of the q-point grid when restart calculation is performed. Could you double check if the q-grid has been kept consistent?
An example is say you started the calculation with a 20*20*20 q-grid, but increased the grid to 30*30*30 when doing a restart with e.g. prefix.tau_restart file present in the same folder. If that is the case, please delete these restart files then try to run the calculation again.
Thanks!
Best!
Xiao Zhang
Re: q-point error in mobility calculation
Thank you very much. It worked.
Re: q-point error in mobility calculation
Hi,
Although the initial error has been overcome following your suggestion, a new error has emerged now. The error is the following-
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
epw.x 00000000012EB099 Unknown Unknown Unknown
epw.x 00000000012E996E Unknown Unknown Unknown
epw.x 0000000001279E92 Unknown Unknown Unknown
epw.x 00000000012077B3 Unknown Unknown Unknown
epw.x 000000000120F97B Unknown Unknown Unknown
libpthread.so.0 000000344A80F7E0 Unknown Unknown Unknown
epw.x 000000000057711B transport_mp_scat 348 transport.f90
epw.x 000000000044A716 ephwann_shuffle_ 1556 ephwann_shuffle.f90
epw.x 000000000042E5EE elphon_shuffle_wr 994 elphon_shuffle_wrap.f90
epw.x 000000000040732E MAIN__ 145 epw.f90
epw.x 0000000000406536 Unknown Unknown Unknown
libc.so.6 000000344A01ED20 Unknown Unknown Unknown
epw.x 0000000000406409 Unknown Unknown Unknown
And the code stops abruptly. The last few lines written in the epw.out file is the following-
Fermi Surface thickness = 1.000000 eV
This is computed with respect to the fine Fermi level -1.411836 eV
Only states between -2.411836 eV and -0.411836 eV will be included
Please note that, no error message has been printed in the epw.ot file. Also, available memory is probably not the issue here, since the node that I am allocating for this job has sufficient memory to run this job.
Looking forward to our help.
Thanks.
Although the initial error has been overcome following your suggestion, a new error has emerged now. The error is the following-
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
epw.x 00000000012EB099 Unknown Unknown Unknown
epw.x 00000000012E996E Unknown Unknown Unknown
epw.x 0000000001279E92 Unknown Unknown Unknown
epw.x 00000000012077B3 Unknown Unknown Unknown
epw.x 000000000120F97B Unknown Unknown Unknown
libpthread.so.0 000000344A80F7E0 Unknown Unknown Unknown
epw.x 000000000057711B transport_mp_scat 348 transport.f90
epw.x 000000000044A716 ephwann_shuffle_ 1556 ephwann_shuffle.f90
epw.x 000000000042E5EE elphon_shuffle_wr 994 elphon_shuffle_wrap.f90
epw.x 000000000040732E MAIN__ 145 epw.f90
epw.x 0000000000406536 Unknown Unknown Unknown
libc.so.6 000000344A01ED20 Unknown Unknown Unknown
epw.x 0000000000406409 Unknown Unknown Unknown
And the code stops abruptly. The last few lines written in the epw.out file is the following-
Fermi Surface thickness = 1.000000 eV
This is computed with respect to the fine Fermi level -1.411836 eV
Only states between -2.411836 eV and -0.411836 eV will be included
Please note that, no error message has been printed in the epw.ot file. Also, available memory is probably not the issue here, since the node that I am allocating for this job has sufficient memory to run this job.
Looking forward to our help.
Thanks.
Re: q-point error in mobility calculation
Hi,
Could you please provide the input of this calculation, and maybe a more complete epw.out to see if everything looks OK? Meanwhile, it looks like you are using SERTA? Could you also give it a try using IBTE and see it that will work?
Best!
Xiao
Could you please provide the input of this calculation, and maybe a more complete epw.out to see if everything looks OK? Meanwhile, it looks like you are using SERTA? Could you also give it a try using IBTE and see it that will work?
Best!
Xiao
Re: q-point error in mobility calculation
Hi,
The epw.in file is in the following. Please note that this input file is for a restart run to calculate the mobility values. The first epw run for wannierization ran well and the interpolated band structures are satisfactory.
&inputepw
prefix = 'MoS2'
outdir = './'
elph = .true.
epbwrite = .false.
epbread = .false.
epwwrite = .false.
epwread = .true.
etf_mem = 1
scattering = .true.
scattering_serta = .true.
int_mob = .false.
carrier = .true.
ncarrier = 1E19
! scissor = 1.6
nstemp = 17
temps = 100 900
! tempsmax = 900
restart = .true.
restart_step = 500
nbndsub = 17
! bands_skipped = 'exclude_bands = 1:4'
lifc = .true.
asr_typ = 'crystal'
wannierize = .false.
num_iter = 1500
iprint = 2
! dis_win_max = 18
! dis_froz_max= 8.5
proj(1) = 'Mo : d,p,s'
proj(2) = 'S : p,s'
wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.00 0.00 0.00 M 0.5 0.00 0.00'
wdata(4) = 'M 0.50 0.00 0.00 K 0.33 0.33 0.00'
wdata(5) = 'K 0.33 0.33 0.00 G 0.00 0.00 0.00'
wdata(6) = 'end kpoint_path'
wdata(7) = 'bands_plot_format = gnuplot'
wdata(8) = 'guiding_centres = .true.'
wdata(9) = 'dis_num_iter = 500'
wdata(10) = 'num_print_cycles = 10'
! wdata(11) = 'dis_mix_ratio = 1.0'
wdata(12) = 'use_ws_distance = T'
wdata(12) = 'kmesh_tol = 0.000001'
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 1.0 ! eV
degaussw = 0.005 ! eV
dvscf_dir = './save'
! filkf = './kpt.txt'
nkf1 = 101
nkf2 = 101
nkf3 = 1
nqf1 = 51
nqf2 = 51
nqf3 = 1
nk1 = 21
nk2 = 21
nk3 = 1
nq1 = 3
nq2 = 3
nq3 = 1
/
5 cartesian
0.000000000 0.000000000 0.000000000
0.000000000 0.384900179 0.000000000
0.333333333 0.192450090 0.000000000
0.333333333 0.577350269 0.000000000
0.333333333 -0.192450090 0.000000000
The last few lines printed in the epw.out file is in the following
===================================================================
Scattering rate
===================================================================
Fermi Surface thickness = 1.000000 eV
This is computed with respect to the fine Fermi level -1.411836 eV
Only states between -2.411836 eV and -0.411836 eV will be included
After this line the job stops and note again that no error is printed in the epw.out file.
The epw.in file is in the following. Please note that this input file is for a restart run to calculate the mobility values. The first epw run for wannierization ran well and the interpolated band structures are satisfactory.
&inputepw
prefix = 'MoS2'
outdir = './'
elph = .true.
epbwrite = .false.
epbread = .false.
epwwrite = .false.
epwread = .true.
etf_mem = 1
scattering = .true.
scattering_serta = .true.
int_mob = .false.
carrier = .true.
ncarrier = 1E19
! scissor = 1.6
nstemp = 17
temps = 100 900
! tempsmax = 900
restart = .true.
restart_step = 500
nbndsub = 17
! bands_skipped = 'exclude_bands = 1:4'
lifc = .true.
asr_typ = 'crystal'
wannierize = .false.
num_iter = 1500
iprint = 2
! dis_win_max = 18
! dis_froz_max= 8.5
proj(1) = 'Mo : d,p,s'
proj(2) = 'S : p,s'
wdata(1) = 'bands_plot = .true.'
wdata(2) = 'begin kpoint_path'
wdata(3) = 'G 0.00 0.00 0.00 M 0.5 0.00 0.00'
wdata(4) = 'M 0.50 0.00 0.00 K 0.33 0.33 0.00'
wdata(5) = 'K 0.33 0.33 0.00 G 0.00 0.00 0.00'
wdata(6) = 'end kpoint_path'
wdata(7) = 'bands_plot_format = gnuplot'
wdata(8) = 'guiding_centres = .true.'
wdata(9) = 'dis_num_iter = 500'
wdata(10) = 'num_print_cycles = 10'
! wdata(11) = 'dis_mix_ratio = 1.0'
wdata(12) = 'use_ws_distance = T'
wdata(12) = 'kmesh_tol = 0.000001'
elecselfen = .false.
phonselfen = .false.
a2f = .false.
fsthick = 1.0 ! eV
degaussw = 0.005 ! eV
dvscf_dir = './save'
! filkf = './kpt.txt'
nkf1 = 101
nkf2 = 101
nkf3 = 1
nqf1 = 51
nqf2 = 51
nqf3 = 1
nk1 = 21
nk2 = 21
nk3 = 1
nq1 = 3
nq2 = 3
nq3 = 1
/
5 cartesian
0.000000000 0.000000000 0.000000000
0.000000000 0.384900179 0.000000000
0.333333333 0.192450090 0.000000000
0.333333333 0.577350269 0.000000000
0.333333333 -0.192450090 0.000000000
The last few lines printed in the epw.out file is in the following
===================================================================
Scattering rate
===================================================================
Fermi Surface thickness = 1.000000 eV
This is computed with respect to the fine Fermi level -1.411836 eV
Only states between -2.411836 eV and -0.411836 eV will be included
After this line the job stops and note again that no error is printed in the epw.out file.
Re: q-point error in mobility calculation
Hi,
While I don't see an obvious error in your input, there are a few things I'd suggest to try:
1. Could you please check the Fermi level the code print out, and whether the energy window you see at the tail of your output does cover the conduction band states you want (looks like you are looking at electron mobility)? If not, you may want to considering setting efermi_read to true and set the Fermi level to e.g. the CBM just to ensure that all the states you needs will be included. Note that the when evaluating the mobility, the code will decide the Fermi level based on the carrier density so this input will not be a problem.
2. After making sure of the above, I'd probably also give it a try with using the IBTE option instead of SERTA.
3. Which version of EPW are you using? Unless you are using very old versions, these lines are not anymore necessary:
5 cartesian
0.000000000 0.000000000 0.000000000
0.000000000 0.384900179 0.000000000
0.333333333 0.192450090 0.000000000
0.333333333 0.577350269 0.000000000
0.333333333 -0.192450090 0.000000000
Please see if these help.
Thanks!
Xiao
While I don't see an obvious error in your input, there are a few things I'd suggest to try:
1. Could you please check the Fermi level the code print out, and whether the energy window you see at the tail of your output does cover the conduction band states you want (looks like you are looking at electron mobility)? If not, you may want to considering setting efermi_read to true and set the Fermi level to e.g. the CBM just to ensure that all the states you needs will be included. Note that the when evaluating the mobility, the code will decide the Fermi level based on the carrier density so this input will not be a problem.
2. After making sure of the above, I'd probably also give it a try with using the IBTE option instead of SERTA.
3. Which version of EPW are you using? Unless you are using very old versions, these lines are not anymore necessary:
5 cartesian
0.000000000 0.000000000 0.000000000
0.000000000 0.384900179 0.000000000
0.333333333 0.192450090 0.000000000
0.333333333 0.577350269 0.000000000
0.333333333 -0.192450090 0.000000000
Please see if these help.
Thanks!
Xiao