Page 1 of 1

After a sucessful runing with iverbosity=2, some files were not output?

Posted: Tue Jun 30, 2020 1:43 am
by jgsi
Dear all,
I am using EPW for some calculations about the superconductivity of two-dimensional materials. I encountered some problems, and checked the input and repeated the sample of MgB2, but the problems is still not solved.I want to calculate the superconducting gap along the imaginary-axis and real axis, the quasiparticle density of states in the superconducting state at several temperture points, but only the imaginary-relatd file were created.
The related input tags as follows:
laniso = .true.
limag = .true.
lpade = .true.
nstemp = 9
tempsmin = 0.5
tempsmax = 5
.
In order to print the results all, I set the iverbosity=2 (according to the note of MgB2.pade_aniso_XX in https://docs.epw-code.org/doc/MgB2.html ), but it doesn't work.

The related part in log file like this:
Image.

Although I found a similar post named Cannot find "prefix.pade_aniso_gap0_T" at some temperature (viewtopic.php?f=3&t=587&p=1891&hilit=pade#p1891), but the wcut of mine is big enough and I don't find anything else helped me .

I want to know that why the EPW output the file "prefix.pade_aniso_gap0_xxx" and "prefix.qdos_xxx" were missing, since the job was "successfully" executed. How can I get it? Can anyone help me?

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Wed Jul 01, 2020 2:24 am
by hlee
Dear jgsi:

Could you post the full EPW input and output and let me know which version of EPW you are using?

Sincerely,

H. Lee

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Wed Jul 01, 2020 9:01 am
by jgsi
Dear Lee,
Thank you for your attention.The version i used is EPW v.5.1.0. the related part in input and output file as follows. I really can't find the problem,I hope you can give me a hand.

The input file:
ep_coupling = .true.
elph = .true.
kmaps = .false.
epbwrite = .true.
epbread = .false.
epwwrite = .true.
epwread = .false.

etf_mem = 0 !faster
max_memlt = 36

efermi_read = .true.
fermi_energy = -1.2702

wannierize = .true.
!wannierize_related part


iverbosity = 2
! iverbosity = 3 is also tested

fsthick = 0.8 ! eV
eptemp = 300 ! default, in K

! Smearing Part
degaussw = 0.16 ! eV
delta_smear = 0.01 ! eV
degaussq = 0.05 ! meV
delta_qsmear= 0.05 ! meV

eps_acustic = 2.0 ! Lowest boundary for the EPC and a2f calculations
ephwrite = .true.
eliashberg = .true.

! elecselfen = .false.
! phonselfen = .true.
! a2f = .false.
! delta_approx =.true.

laniso = .true.
limag = .true.
lpade = .true.


nsiter = 500
conv_thr_iaxis = 5.0d-5


wscut = 1.0 ! eV

nstemp = 2
tempsmin = 2
tempsmax = 2.5


muc = 0.16


dvscf_dir = '../ph/save'

nk1 = 16
nk2 = 16
nk3 = 1

nq1 = 8
nq2 = 8
nq3 = 1

system_2d = .true.

mp_mesh_k = .true.
nkf1 = 40
nkf2 = 40
nkf3 = 1

nqf1 = 40
nqf2 = 40
nqf3 = 1
/
10
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
0.000000000000000E+00 0.144385903276226E+00 0.000000000000000E+00
0.000000000000000E+00 0.288771806552452E+00 0.000000000000000E+00
0.000000000000000E+00 0.433157709828678E+00 0.000000000000000E+00
0.000000000000000E+00 -0.577543613104904E+00 0.000000000000000E+00
0.125041860138483E+00 0.216578854842122E+00 0.000000000000000E+00
0.125041860138483E+00 0.360964758118348E+00 0.000000000000000E+00
0.125041860138483E+00 0.505350661394574E+00 0.000000000000000E+00
0.250083720276967E+00 0.433157709684244E+00 0.000000000000000E+00
0.250083720276967E+00 0.577543612960470E+00 0.000000000000000E+00

The log file:(Ignored some irrelevant information)
Finish reading .ephmat files

lambda_max = 72.0133301 lambda_k_max = 5.2218653

Electron-phonon coupling strength = 1.1262121

Estimated Allen-Dynes Tc = 3.5126257 K for muc = 0.16000

Estimated BCS superconducting gap = 0.0005327 eV

temp( 1) = 2.0000 K

Solve anisotropic Eliashberg equations on imaginary-axis

Total number of frequency points nsiw ( 1 ) = 923
Cutoff frequency wscut = 1.0000


Size of allocated memory per pool : ~= 3.5657 Gb
iter = 1 relerr = 2.5778726804E+00 abserr = 8.5042279499E-04 Znormi(1) = 2.0882606268E+00 Deltai(1) = 6.4327416276E-04
iter = 2 relerr = 8.6238341723E-01 abserr = 1.5435630269E-04 Znormi(1) = 2.0754085012E+00 Deltai(1) = 7.6893593341E-04
iter = 3 relerr = 8.8389076321E-02 abserr = 1.7315771626E-05 Znormi(1) = 2.0641482946E+00 Deltai(1) = 8.3735300821E-04
iter = 4 relerr = 5.8677521589E-02 abserr = 1.2205264837E-05 Znormi(1) = 2.0526332655E+00 Deltai(1) = 9.0787497193E-04
iter = 5 relerr = 3.0821442500E-02 abserr = 6.6147097527E-06 Znormi(1) = 2.0470959624E+00 Deltai(1) = 9.4144227159E-04
iter = 6 relerr = 2.3245456638E-02 abserr = 5.1075246795E-06 Znormi(1) = 2.0395024245E+00 Deltai(1) = 9.7857802805E-04
iter = 7 relerr = 3.2276071202E-02 abserr = 7.3282633061E-06 Znormi(1) = 2.0360730502E+00 Deltai(1) = 1.0046642163E-03
iter = 8 relerr = 3.3506422493E-02 abserr = 7.8713054057E-06 Znormi(1) = 2.0335938971E+00 Deltai(1) = 1.0273010396E-03
iter = 9 relerr = 3.0584042563E-03 abserr = 7.2067973681E-07 Znormi(1) = 2.0328099172E+00 Deltai(1) = 1.0318360131E-03
Convergence was reached in nsiter = 9

iaxis_imag : 74611.69s CPU 76442.38s WALL ( 1 calls)

Pade approximant of anisotropic Eliashberg equations from imaginary-axis to real-axis
Cutoff frequency wscut = 1.0000

itemp = 1 total cpu time : 76453.41 secs

temp( 2) = 2.5000 K

Solve anisotropic Eliashberg equations on imaginary-axis

Total number of frequency points nsiw ( 2 ) = 739
Cutoff frequency wscut = 1.0010


Size of allocated memory per pool : ~= 2.8587 Gb
iter = 1 relerr = 2.7796352872E+00 abserr = 1.5785008164E-03 Znormi(1) = 2.0337796201E+00 Deltai(1) = 9.8899530073E-04
iter = 2 relerr = 1.2295213695E+00 abserr = 3.1522931778E-04 Znormi(1) = 2.0305786215E+00 Deltai(1) = 1.0721408292E-03
iter = 3 relerr = 1.7038137741E-02 abserr = 4.4183859743E-06 Znormi(1) = 2.0255897993E+00 Deltai(1) = 1.0812476576E-03
iter = 4 relerr = 3.6084095459E-02 abserr = 9.0852166567E-06 Znormi(1) = 2.0210396410E+00 Deltai(1) = 1.0909063072E-03
iter = 5 relerr = 7.8874307752E-03 abserr = 1.9722991987E-06 Znormi(1) = 2.0202283882E+00 Deltai(1) = 1.0919447967E-03
iter = 6 relerr = 1.6292293714E-03 abserr = 4.0674859459E-07 Znormi(1) = 2.0202654871E+00 Deltai(1) = 1.0912874057E-03
Convergence was reached in nsiter = 6

iaxis_imag : 99544.31s CPU 101722.05s WALL ( 2 calls)

Pade approximant of anisotropic Eliashberg equations from imaginary-axis to real-axis
Cutoff frequency wscut = 1.0000

itemp = 2 total cpu time : 101744.40 secs

Unfolding on the coarse grid
elphon_wrap : 29648.67s CPU 30035.43s WALL ( 1 calls)

INITIALIZATION:

set_drhoc : 466.57s CPU 466.63s WALL ( 65 calls)
init_vloc : 0.48s CPU 0.48s WALL ( 1 calls)
init_us_1 : 0.10s CPU 0.10s WALL ( 1 calls)

Thank you for three thousand times!
Sincerely,
J.G. Si

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Thu Jul 02, 2020 2:44 am
by hlee
Dear jgsi:

prefix.pade_aniso_0_T and prefix.pade_aniso_gap0_T are written in the subroutine of eliashberg_write_raxis in io_eliashberg.f90 .
From your output, it seems that this subroutine is not called in your case; this means that the conditional statement "IF ( errdelta .gt. zero )" is not satisfied (see below):

Excerpt from the subroutine of pade_cont_aniso_iaxis_to_raxis in superconductivity_aniso.f90 .

Code: Select all

    IF (mpime .eq. ionode_id) THEN
      DO iw = 1, nsw ! loop over omega                                                                                                                                                                      
         DO ik = 1, nkfs
            DO ibnd = 1, nbndfs
               IF ( abs( ekfs(ibnd,ik) - ef0 ) .lt. fsthick ) THEN
                  weight = 0.5d0 * wkfs(ik) * w0g(ibnd,ik) / dosef
                  Znorm(iw) = Znorm(iw) + weight * AZnorm(ibnd,ik,iw)
                  Delta(iw) = Delta(iw) + weight * ADelta(ibnd,ik,iw)
               ENDIF
            ENDDO ! ibnd                                                                                                                                                                                    
         ENDDO ! ik                                                                                                                                                                                         
         reldelta = reldelta + abs( Delta(iw) - Deltaold(iw) )
         absdelta = absdelta + abs( Delta(iw) )
      ENDDO ! iw                                                                                                                                                                                            
      errdelta = reldelta / absdelta
      !                                                                                                                                                                                                     
      IF ( errdelta .gt. zero ) THEN
         conv = .true.
         WRITE(stdout,'(5x,a,i6,a,ES20.10,a,ES20.10,a,ES20.10)') 'pade = ', N, &
                '   error = ', errdelta, '   Re[Znorm(1)] = ', real(Znorm(1)), &
                '   Re[Delta(1)] = ', real(Delta(1))
         cname = 'pade'
         CALL eliashberg_write_raxis( itemp, cname )
      ENDIF
    ENDIF
I found that in EPW v5.2 this conditional statement is removed (see below); that is, additional convergence check is not done any more inside the subroutine of pade_cont_aniso_iaxis_to_raxis .

Excerpt from the subroutine of pade_cont_aniso_iaxis_to_raxis in supercond_aniso.f90 in EPW v5.2 .

Code: Select all

    IF (mpime == ionode_id) THEN
      DO iw = 1, nsw ! loop over omega                                                                                                                                                                      
        DO ik = 1, nkfs
          DO ibnd = 1, nbndfs
            IF (ABS(ekfs(ibnd, ik) - ef0) < fsthick) THEN
              weight = 0.5d0 * wkfs(ik) * w0g(ibnd, ik) / dosef
              znorm(iw) = znorm(iw) + weight * aznorm(ibnd, ik, iw)
              delta(iw) = delta(iw) + weight * adelta(ibnd, ik, iw)
            ENDIF
          ENDDO ! ibnd                                                                                                                                                                                      
        ENDDO ! ik                                                                                                                                                                                          
      ENDDO ! iw                                                                                                                                                                                            
      !                                                                                                                                                                                                     
      WRITE(stdout, '(5x, a)') '   pade Re[znorm] [eV] Re[delta] [eV]'
      WRITE(stdout, '(5x, i6, 2ES15.6)') N, REAL(znorm(1)), REAL(delta(1))
!      WRITE(stdout, '(5x, a, i6, a, ES15.6, a, ES15.6)') 'pade = ', N, &                                                                                                                                   
!                    '   Re[znorm(1)] = ', REAL(znorm(1)), &                                                                                                                                                
!                    '   Re[delta(1)] = ', REAL(delta(1))                                                                                                                                                   
      WRITE(stdout, '(a)') ' '
      !                                                                                                                                                                                                     
      WRITE(stdout, '(5x, a, i6, a)') 'Convergence was reached for N = ', N, ' Pade approximants'
      WRITE(stdout, '(a)') ' '
      !                                                                                                                                                                                                     
      cname = 'pade'
      CALL eliashberg_write_raxis(itemp, cname)
    ENDIF
I am not sure whether it helps in solving your problem, but I would suggest you to check the corresponding part in EPW v5.2 or the recent development version of EPW.

Given information you provided, I can't give you more clear answer.

Sincerely,

H. Lee

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Sun Jul 05, 2020 11:23 am
by jgsi
Dear Lee,
Thanks for your response, I tested my job using EPW.5.2, and I found that the log file is end with following lines. We can see that sevel values are equal to 'NaN', that may cause the Pade related results not output. I will check the resoure code to find the related reasons. If you have any advice, please you can kindly give me a hand.

Estimated Allen-Dynes Tc = 3.512627 K for muc = 0.16000

Estimated BCS superconducting gap = 0.000533 eV


temp( 1) = 3.00000 K

Solve anisotropic Eliashberg equations on imaginary-axis

Total number of frequency points nsiw( 1) = 616
Cutoff frequency wscut = 1.0014


Size of allocated memory per pool: ~= 4.7531 Gb
iter ethr znormi [eV] deltai [eV]
1 2.618117E+00 2.091158E+00 6.016178E-04
2 9.290855E-01 2.080315E+00 7.131157E-04
3 8.840368E-02 2.069982E+00 7.762967E-04
4 8.421692E-02 2.053364E+00 8.763117E-04
5 1.056989E-01 2.037240E+00 9.787462E-04
6 1.087643E-01 2.054710E+00 8.450812E-04
7 9.359534E-02 2.035990E+00 9.825227E-04
8 3.494409E-04 2.037064E+00 9.786578E-04
9 1.434774E-02 2.034747E+00 9.923749E-04
10 1.830896E-02 2.031249E+00 1.011878E-03
11 9.850598E-03 2.029920E+00 1.021049E-03
12 6.682940E-03 2.028574E+00 1.028357E-03
13 1.013767E-02 2.027059E+00 1.037528E-03
14 2.255605E-03 2.026516E+00 1.040942E-03
15 7.194234E-04 2.026690E+00 1.040565E-03
16 1.112181E-02 2.025040E+00 1.051230E-03
17 2.703782E-03 2.025730E+00 1.046927E-03
18 4.161794E-03 2.024954E+00 1.051450E-03
19 3.471999E-03 2.024256E+00 1.055235E-03
20 1.700133E-03 2.023855E+00 1.057261E-03
21 1.696851E-03 2.023564E+00 1.058947E-03
22 1.155202E-03 2.023451E+00 1.059845E-03
23 6.630872E-04 2.023379E+00 1.060421E-03
24 2.130409E-05 2.023377E+00 1.060429E-03
Convergence was reached in nsiter = 24

iaxis_imag : 87544.78s CPU 96191.13s WALL ( 1 calls)


Pade approximant of anisotropic Eliashberg equations from imaginary-axis to real-axis
Cutoff frequency wscut = 1.0000

pade Re[znorm] [eV] Re[delta] [eV]
554 NaN NaN

Convergence was reached for N = 554 Pade approximants

Thanks a lot.
Sincerely,
J.G. Si

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Wed Aug 19, 2020 1:36 am
by Meiling
Dear J.G. Si,
I have a problem same as that you have met when I tested my job using EPW.5.2. Sevel values are equal to 'NaN', such as Re[znorm] and Re[delta].
The output is "pade Re[znorm] [eV] Re[delta] [eV]
2494 NaN NaN
Convergence was reached for N = 2494 Pade approximants".
If you have any advice, please give me a hand. Thanks very much.


Sincerely,
Meiling Xu

Re: After a sucessful runing with iverbosity=2, some files were not output?

Posted: Wed Aug 19, 2020 5:46 pm
by roxana
Hi,

One way to resolve the issue is to use a different number of imaginary points when performing the continuations from the imaginary to real axis with .Pade approximants At this point the number of points is hard coded to be 90% of the Matsubare frequency points in both the supercond_aniso.f90 subroutine for anisotropic gap and supercond_iso.f90 subroutine for isotropic gap.

Check for the line below in supercond_aniso.f90 and supercond_iso.f90

N = 90 * nsiw(itemp) / 100

This value works in most cases but you can try to change 90 to 80 or 85 and see if the issue can be resolved. You will need to recompile the code once you change the value for N.

Best,
Roxana