Page 1 of 1

ndim<=0

Posted: Tue Sep 07, 2021 8:57 am
by harishpvv
Sir, I got this error while solving Eliashberg equations on imaginary axis:
Error in routine mix_broyden (1):
ndim <= 0

I tried reducing broyden mixing parameter, but same result, file are attached

Code: Select all

    &inputepw
    prefix = 'V2' 
outdir = '/home/harish/Desktop/vsc/scf/' 
asr_typ = 'simple' 
dvscf_dir = '/home/harish/Desktop/vsc/epw/save' 
eliashberg = .true. 
elph = .true. 
fsthick = 0.5 
kmaps = .false. 
epbwrite = .false. 
wannierize = .true. 
proj(1) = 'random' 
ephwrite = .false. 
iverbosity = 2 
laniso = .true. 
limag = .true. 
lpade = .true. 
nstemp = 1 
temps = 4 
muc = 0.16 
nk1 = 6 
nk2 = 6 
nk3 = 6 
nq1 = 6 
nq2 = 6 
nq3 = 6 
mp_mesh_k = .true. 
nkf1 = 20 
nkf2 = 20 
nkf3 = 20 
nqf1 = 20 
nqf2 = 20 
nqf3 = 20 
efermi_read = .true. 
fermi_energy = 16.6138 
bands_skipped = 'exclude_bands=1-9,15-17' 
nbndsub = 5 
num_iter = 500 
broyden_beta = 0.3 
broyden_ndim = 8 
epbread = .true. 

    wdata(1) = 'kmesh_tol = 1e-5'
    /
    

Code: Select all

     ===================================================================
     Solve anisotropic Eliashberg equations
     ===================================================================


     Finish reading freq file

                  Fermi level (eV) =     1.6613800000E+01
     DOS(states/spin/eV/Unit Cell) =     1.5942314338E+00
            Electron smearing (eV) =     2.5000000000E-02
                 Fermi window (eV) =     5.0000000000E-01
     Nr irreducible k-points within the Fermi shell =       219 out of       286

           3 bands within the Fermi window


     Finish reading egnv file 


     Max nr of q-points =      6441


     Finish reading ikmap files


     Start reading .ephmat files


     Finish reading .ephmat files

     Electron-phonon coupling strength =    0.8741405
 
     Estimated Allen-Dynes Tc =     9.441780 K for muc =    0.16000
  
     Estimated w_log in Allen-Dynes Tc =    21.814707 meV
  
     Estimated BCS superconducting gap =     1.431988 meV
  
    
     temp(  1) =      4.00000 K
    
     Solve anisotropic Eliashberg equations on imaginary-axis
    
     Total number of frequency points nsiw(     1) =      0
     Cutoff frequency wscut =     0.0011
    

     Size of allocated memory per pool: ~=    0.0850 Gb
        iter      ethr          znormi      deltai [meV]
          1            NaN   4.655388-310   6.933544-307

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     Error in routine mix_broyden (1):
     ndim <= 0
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

     stopping ...

Re: ndim<=0

Posted: Tue Sep 07, 2021 3:54 pm
by hpaudya1
Hi Harish,

The problem may be because you have nsiw(1) = 0, as shown below;

Code: Select all

  Total number of frequency points nsiw(     1) =      0
  Cutoff frequency wscut =     0.0011
You can re-start your calculation using "wscut = 4 to 10 times your maximum phonon frequency " (in your input).

Best,
Hari Paudyal

Re: ndim<=0

Posted: Tue Sep 07, 2021 4:18 pm
by harishpvv
Thank you sir, that solved the problem, but another error (not an error)(required memory of 5.6 Gb) appeared

Code: Select all

Solve anisotropic Eliashberg equations on imaginary-axis
    
     Total number of frequency points nsiw(     1) =    231
     Cutoff frequency wscut =     0.5014
    

     Size of required memory per pool: ~=    5.6472 Gb

     akeri is calculated on the fly since its size exceedes max_memlt
In the example of mgb2 the requirement was just 0.2 Gb , inputs are same with additional parameter

Code: Select all

wscut = 0.5
Is there anyway to get over this?, I don't have that much RAM.
Thanks.

Re: ndim<=0

Posted: Wed Sep 08, 2021 1:30 pm
by hpaudya1
Hi Harish,

You can reduce the required memory by three ways; 1) using smaller nkf/nqf 2) lower wscut, and 3) using large number of cores. And yes, you need to test convergence w.r.t these parameters. I am not sure what is your maximum phonon frequency, for example, in MgB2 it is ~100 meV, 5 times of it will be 0.5 eV, which is the wscut used in the MgB2 example. Similarly you can try for your system, even you can try 4 times at first.

Best,
Hari

Re: ndim<=0

Posted: Wed Sep 08, 2021 6:04 pm
by hlee
Dear harishpvv:

I would like to add a few things to Hari's answer below:
You can reduce the required memory by three ways; 1) using smaller nkf/nqf 2) lower wscut, and 3) using large number of cores.
The main origin of the large memory footprint you encounter is the size of array akeri:

Code: Select all

akeri(lower_bnd:upper_bnd, MAXVAL(nqfs(:)), nbndfs, nbndfs, 2 * nsiw(itemp)
By the method 1), you can reduce the size of first (k) or second (q) dimension.
By the method 2), you can reduce the size of last dimension.
By the method 3), you can reduce the size of first dimension up to some upper bound determined by nkfs.

Alternatively, you can reduce the first or second or third or fourth dimension(s) by changing fsthick.
Importantly, as Hari mentioned, you need to check the convergence w.r.t these parameters.

Lastly, without changing parameters, you can decrease the number of MPI tasks per node, leading to the larger size of memory per MPI task; in this case, you might need to change max_memlt in order to avoid on-the-fly evaluation of akeri.

Sincerely,

H. Lee