Page 1 of 1

Inquiry about high k point mesh for interpolation and population SR

Posted: Wed Sep 01, 2021 2:36 am
by jhosamelly
Hello! I did an electron mobility calculation for MoS2 with the following input files:
scf calculation

Code: Select all

&CONTROL
    calculation = 'scf',
    prefix      = 'mos2',
    outdir      = './'
    pseudo_dir  = '/home/melsa.ducut/scratch2/nc-fr-04_pbe_standard'
    wf_collect = .true.,
    disk_io = 'low',
    verbosity = 'high',
/

&SYSTEM
    ibrav = 4, A = 3.1843674, C = 15.0000000,
    nat = 3, ntyp = 2,
    ecutwfc = 80,
    ecutrho = 320,
/

&ELECTRONS
    diagonalization = 'david'
    electron_maxstep = 100,
    conv_thr = 1.00000e-13,
/

ATOMIC_SPECIES
Mo	95.94000	Mo.upf
S	32.06600	S.upf

ATOMIC_POSITIONS (angstrom)
Mo	0.000000	0.000000	7.063556
S	1.592033	0.919161	8.627113
S	1.592033	0.919161	5.500000

K_POINTS (automatic)
   7 7 1 0 0 0
ph.x calculation

Code: Select all

phonon cal
&inputph
  amass(1)=95.94000,
  amass(2)=32.06600,
  outdir = './',
  prefix = 'mos2',
  fildvscf = 'dvscf',
  fildyn = 'mos2.dyn.xml',
  tr2_ph = 1.0e-17,
  ldisp =.true.,
  epsil=.true.,
  nq1 = 4,
  nq2 = 4,
  nq3 = 4,
/
nscf calculation

Code: Select all

&CONTROL
    calculation = 'bands',
    prefix      = 'mos2',
    outdir      = './'
    pseudo_dir  = '/home/melsa.ducut/scratch2/nc-fr-04_pbe_standard'
    wf_collect = .true.,
    disk_io = 'low',
    verbosity = 'high',
/

&SYSTEM
    ibrav = 4, A = 3.1843674, C = 15.0000000,
    nat = 3, ntyp = 2,
    ecutwfc = 80,
    ecutrho = 320,
    nbnd = 30,
!    nosym = .TRUE.
/

&ELECTRONS
    diagonalization = 'david'
    electron_maxstep = 100,
    conv_thr = 1.00000e-13,
/

ATOMIC_SPECIES
Mo	95.94000	Mo.upf
S	32.06600	S.upf

ATOMIC_POSITIONS (angstrom)
Mo	0.000000	0.000000	7.063556
S	1.592033	0.919161	8.627113
S	1.592033	0.919161	5.500000

K_POINTS crystal
64
  0.00000000  0.00000000  0.00000000  1.562500e-02
  0.00000000  0.00000000  0.25000000  1.562500e-02
  0.00000000  0.00000000  0.50000000  1.562500e-02
  0.00000000  0.00000000  0.75000000  1.562500e-02
  0.00000000  0.25000000  0.00000000  1.562500e-02
  0.00000000  0.25000000  0.25000000  1.562500e-02
  0.00000000  0.25000000  0.50000000  1.562500e-02
  0.00000000  0.25000000  0.75000000  1.562500e-02
  0.00000000  0.50000000  0.00000000  1.562500e-02
  0.00000000  0.50000000  0.25000000  1.562500e-02
  0.00000000  0.50000000  0.50000000  1.562500e-02
  0.00000000  0.50000000  0.75000000  1.562500e-02
  0.00000000  0.75000000  0.00000000  1.562500e-02
  0.00000000  0.75000000  0.25000000  1.562500e-02
  0.00000000  0.75000000  0.50000000  1.562500e-02
  0.00000000  0.75000000  0.75000000  1.562500e-02
  0.25000000  0.00000000  0.00000000  1.562500e-02
  0.25000000  0.00000000  0.25000000  1.562500e-02
  0.25000000  0.00000000  0.50000000  1.562500e-02
  0.25000000  0.00000000  0.75000000  1.562500e-02
  0.25000000  0.25000000  0.00000000  1.562500e-02
  0.25000000  0.25000000  0.25000000  1.562500e-02
  0.25000000  0.25000000  0.50000000  1.562500e-02
  0.25000000  0.25000000  0.75000000  1.562500e-02
  0.25000000  0.50000000  0.00000000  1.562500e-02
  0.25000000  0.50000000  0.25000000  1.562500e-02
  0.25000000  0.50000000  0.50000000  1.562500e-02
  0.25000000  0.50000000  0.75000000  1.562500e-02
  0.25000000  0.75000000  0.00000000  1.562500e-02
  0.25000000  0.75000000  0.25000000  1.562500e-02
  0.25000000  0.75000000  0.50000000  1.562500e-02
  0.25000000  0.75000000  0.75000000  1.562500e-02
  0.50000000  0.00000000  0.00000000  1.562500e-02
  0.50000000  0.00000000  0.25000000  1.562500e-02
  0.50000000  0.00000000  0.50000000  1.562500e-02
  0.50000000  0.00000000  0.75000000  1.562500e-02
  0.50000000  0.25000000  0.00000000  1.562500e-02
  0.50000000  0.25000000  0.25000000  1.562500e-02
  0.50000000  0.25000000  0.50000000  1.562500e-02
  0.50000000  0.25000000  0.75000000  1.562500e-02
  0.50000000  0.50000000  0.00000000  1.562500e-02
  0.50000000  0.50000000  0.25000000  1.562500e-02
  0.50000000  0.50000000  0.50000000  1.562500e-02
  0.50000000  0.50000000  0.75000000  1.562500e-02
  0.50000000  0.75000000  0.00000000  1.562500e-02
  0.50000000  0.75000000  0.25000000  1.562500e-02
  0.50000000  0.75000000  0.50000000  1.562500e-02
  0.50000000  0.75000000  0.75000000  1.562500e-02
  0.75000000  0.00000000  0.00000000  1.562500e-02
  0.75000000  0.00000000  0.25000000  1.562500e-02
  0.75000000  0.00000000  0.50000000  1.562500e-02
  0.75000000  0.00000000  0.75000000  1.562500e-02
  0.75000000  0.25000000  0.00000000  1.562500e-02
  0.75000000  0.25000000  0.25000000  1.562500e-02
  0.75000000  0.25000000  0.50000000  1.562500e-02
  0.75000000  0.25000000  0.75000000  1.562500e-02
  0.75000000  0.50000000  0.00000000  1.562500e-02
  0.75000000  0.50000000  0.25000000  1.562500e-02
  0.75000000  0.50000000  0.50000000  1.562500e-02
  0.75000000  0.50000000  0.75000000  1.562500e-02
  0.75000000  0.75000000  0.00000000  1.562500e-02
  0.75000000  0.75000000  0.25000000  1.562500e-02
  0.75000000  0.75000000  0.50000000  1.562500e-02
  0.75000000  0.75000000  0.75000000  1.562500e-02
  
epw1.in

Code: Select all

--
&inputepw
  prefix      = 'mos2'			  ! prefix used in pw.x calculations			
  amass(1)    = 95.94000,		  ! mass of Mo
  amass(2)    = 32.06600,		  ! mass of S
  outdir      = './'			  ! same outdir used in pw.x calculations

  elph        = .true.			  ! If .true. calculate e-ph coefficients. default .false.
  epbwrite    = .true.			  ! If epbwrite = .true., the electron-phonon matrix elements in the coarse Bloch 
					  ! representation and relevant data (dyn matrices) are written to disk. default .false.
  epbread     = .false.			  ! If epbread = .true. the above quantities are read from the ‘prefix.epb’ files. Pool dependent files.	
  epwwrite    = .true.			  ! If epwwrite = .true., the electron-phonon matrix elements in the coarse 
  					  ! Wannier representation and relevant data (dyn matrices) are written to disk. default .true.
  epwread     = .false.			  ! If epwread = .true., the electron-phonon matrix elements in the coarse
  					  ! Wannier representation are read from the ‘epwdata.fmt’ and ‘XX.epmatwpX’ files. default .false.
  etf_mem     =  1			  ! When etf_mem = 1, more IO (slower) but less memory is required. default 1
  lpolar      = .true.   		  ! polar material default .false.
  vme         = 'wannier'  		  ! If .true. then calculate the velocity matrix elements beyond the local approximation. default .false.
  use_ws      = .false.

  lifc        = .false.			  ! default .false. If .true. uses the real-space inter-atomic force constant generated by q2r.x.
  asr_typ     = 'simple'		  ! default 'simple'. Kind of acoustic sum rule that can be imposed in real space.
  					  ! Possible ASR are ‘simple’, ‘crystal’, ‘one-dim’ and ‘zero-dim’.
!  lphase      = .true.			  ! If .true. then fix the gauge for the interpolated dynamical matrix and electronic Hamiltonian. default .false.

  nbndsub     =  11			  ! Number of wannier functions to utilize.
!  bands_skipped = 0 
  bands_skipped = 'exclude_bands = 1-13, 25-30'     ! List of bands to exclude from the wannierization.

  wannierize  = .true.			  ! default .false. Calculate the Wannier functions using W90 library calls
 					  ! and write rotation matrix to file ‘filukk’. If .false., filukk is read from disk.
  num_iter    = 100			  ! number of iteration in the minimization of wavefunction??
  iprint      = 3			  ! Output verbosity level default 1
  dis_win_max = 13.0			  ! Top of the outer energy window
  dis_win_min = 2.0			  ! Bottom of the outer energy window
  dis_froz_max= 8.5			  ! Top of the inner (frozen) energy window
  proj(1)  = 'Mo:d'
  proj(2)  = 'S:p'
  wdata(1) = 'bands_plot = .true.'
  wdata(2) = 'begin kpoint_path'
  wdata(3) = 'G 0.00  0.00 0.00 M 0.50 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      = 200'	  ! Number of iterations for the minimisation of wavefunction??
  wdata(10) = 'num_print_cycles  = 1'	  ! Control frequency of printing 
  wdata(11) = 'dis_mix_ratio     = 0.5'   ! Mixing ratio during the minimisation of wavefunction??
  wdata(12) = 'conv_tol = 1E-10'		  ! The convergence tolerance for finding wavefunction
  wdata(13) = 'conv_window = 2'		  ! The number of iterations over which convergence of wavefunction?? is assessed
  wdata(14) = 'use_ws_distance = T'

  elecselfen  = .false.			  ! Calculate the electron self-energy from the el-ph interaction. default .false.
  phonselfen  = .false.			  ! Calculate the phonon self-energy from the el-ph interaction. default .false.
  a2f         = .false.			  ! Calculate Eliashberg spectral function, α2F(ω), transport Eliashberg spectral function α2Ftr(ω),
  					  ! and phonon density of states F(ω). Only allowed in the case of phonselfen = .true. default .false.

  fsthick     = 100 			  ! Width of the Fermi surface window to take into account states in the self-energy delta functions in [eV].
  					  ! Narrowing this value reduces the number of bands included in the selfenergy calculations. default 1.d10
  temps       = 1 ! K 			  ! Temperature values used in superconductivitiy, transport, indabs, etc..
  					  ! If no temps are provided, temps=300 and nstemp =1.
  nstemp      = 1
  degaussw    = 0.001 			  ! Smearing in the energy-conserving delta functions in [eV] default 0.025

  dvscf_dir   = './save/'		  ! Directory where ‘prefix.[dvscf|dyn]_q??’ files are located.

! efermi_read = .true.			  ! If .true. the Fermi energy is read from the input file.
  band_plot   = .true.			  ! Writes files for band structure and phonon dispersion plots.
  					  ! The k-path and q-path is provided using filkf and filqf. default .false.


  filkf       = './GMKG.txt'		  ! File which contains the fine k-mesh or the k-path of electronic states to be calculated for elinterp.
  filqf       = './GMKG.txt'		  ! File which contains the fine q-mesh or the q-path of phonon states to be calculated for phinterp.

   nk1        = 4		  ! Dimensions of the coarse electronic grid, corresponds to the nscf calculation and wfs in the outdir.
   nk2        = 4
   nk3        = 4
   nq1        = 4			  ! Dimensions of the coarse phonon grid, corresponds to the nqs list.
   nq2        = 4
   nq3        = 4
 /
epw2.in

Code: Select all

--
&inputepw
  prefix      = 'mos2'			  ! prefix used in pw.x calculations			
  amass(1)    = 95.94000,		  ! mass of Mo
  amass(2)    = 32.06600,		  ! mass of S
  outdir      = './'			  ! same outdir used in pw.x calculations

  elph        = .true.
!  kmaps       = .true.
!  epbwrite    = .false.
!  epbread     = .false.
  epwwrite    = .false.
  epwread     = .true.
  etf_mem     = 3
  lpolar = .true.
  vme =  'wannier'
  mp_mesh_k = .true.
  use_ws = .false.

  scattering  = .true.
  scattering_serta = .true.
  int_mob     = .false.
  carrier     = .true.
  ncarrier    = 1E13
  iterative_bte = .true.
  epmatkqread = .false.
  mob_maxiter = 300
  broyden_beta= 1.0
  bfieldx = 0.0d0
  bfieldy = 0.0d0
  bfieldz = 1.0d-10 ! Apply a magnetic field along Cart. z

  nstemp = 1
  temps = 300
  restart = .true.
  restart_step = 1000
  selecqread = .false.

  nbndsub     =  11			  ! Number of wannier functions to utilize.
!  bands_skipped = 0 
  bands_skipped = 'exclude_bands = 1-13, 25-30'     ! List of bands to exclude from the wannierization.


  wannierize  = .false.
  num_iter    = 100
  iprint      = 3
  dis_win_max = 13.0			  ! Top of the outer energy window
  dis_win_min = 2.0			  ! Bottom of the outer energy window
  proj(1)  = 'Mo:d'
  proj(2)  = 'S:p'
 
   num_iter    = 100                       ! number of iteration in the minimization of wavefunction??
  iprint      = 3                         ! Output verbosity level default 1
  dis_win_max = 13.0                      ! Top of the outer energy window
  dis_win_min = 2.0                       ! Bottom of the outer energy window
  dis_froz_max= 8.5                      ! Top of the inner (frozen) energy window
  proj(1)  = 'Mo:d'
  proj(2)  = 'S:p'
  wdata(1) = 'bands_plot = .true.'
  wdata(2) = 'begin kpoint_path'
  wdata(3) = 'G 0.00  0.00 0.00 M 0.50 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      = 200'    ! Number of iterations for the minimisation of wavefunction??
  wdata(10) = 'num_print_cycles  = 1'     ! Control frequency of printing
  wdata(11) = 'dis_mix_ratio     = 0.5'   ! Mixing ratio during the minimisation of wavefunction??
  wdata(12) = 'conv_tol = 1E-10'                  ! The convergence tolerance for finding wavefunction
  wdata(13) = 'conv_window = 2'           ! The number of iterations over which convergence of wavefunction?? is assessed
  wdata(14) = 'use_ws_distance = T'
 
  elecselfen  = .false.
  phonselfen  = .false.
  a2f         = .false.
 
  fsthick     = 1.8 ! eV
  degaussw    = 0.00 ! eV
  
  efermi_read  = .true.
  fermi_energy = 1.622763 

  dvscf_dir   = './save'
 
  nkf1        = 20
  nkf2        = 20
  nkf3        = 20
  nqf1        = 20
  nqf2        = 20
  nqf3        = 20
  
  nk1         = 4
  nk2         = 4
  nk3         = 4
  nq1         = 4
  nq2         = 4
  nq3         = 4
 /
I noticed from the epw2.out that the k point mesh for interpolation is higher than the number of k-points inside fsthick * 1.2 in the full BZ. This might be the reason for the slow calculation. Is this a problem? How can I fix this?
===================================================================

Number of k-points inside fsthick * 1.2 in the full BZ: 8000
Size of k point mesh for interpolation: 8400
Max number of k points per pool: 382

Fermi energy coarse grid = 0.681843 eV

===================================================================
I also noticed that the population SR is not as low as I would like. This should be zero right? The tutorial calculations I tried had population SR around E-25 so this was also odd to me.
Any help is much appreciated. Thanks.

Code: Select all

     =============================================================================================
       Temp     Fermi   Elec density  Population SR                  Elec mobility 
        [K]      [eV]     [cm^-3]      [e per cell]                    [cm^2/Vs]
     =============================================================================================

      300.000   1.3670   0.10000E+14  -0.99996E-03    0.188688E+04    0.334006E+03   -0.288046E+03
                                                      0.333964E+03    0.150125E+04   -0.166304E+03
                                                     -0.231892E+03   -0.133888E+03    0.538681E+04

                                                      0.000000E+00    Max error

     =============================================================================================

Re: Inquiry about high k point mesh for interpolation and population SR

Posted: Thu Sep 02, 2021 3:28 pm
by hlee
Dear jhosamelly:
I noticed from the epw2.out that the k point mesh for interpolation is higher than the number of k-points inside fsthick * 1.2 in the full BZ. This might be the reason for the slow calculation. Is this a problem? How can I fix this?
This is not a problem; the number printed in the line of "Size of k point mesh for interpolation" is two times # of irreducible k points since it includes both k and k+q points.

Regarding your 2nd question on transport, you need to wait for other developers' answer.

Sincerely,

H. Lee

Re: Inquiry about high k point mesh for interpolation and population SR

Posted: Tue Sep 14, 2021 8:03 am
by sponce
Hello,

Note that 2D materials are not officially supported yet in EPW. You can use the EPW input variable system_2d = .true. at your own risk (with the version QE 6.8). You will need to comment out the check in EPW/src/epw_readin.f90

In any case, your phonon should also be planar like your k-grid:

Code: Select all

  nq1 = 4,
  nq2 = 4,
  nq3 = 1,
and not 4x4x4.

And yes, you are correct that the integrated population should be 0 such that E-3 indicates a problem and the results should not be trusted.

Best,
Samuel