Page 1 of 1

Does EPW work well with the PBE functional?

Posted: Fri Apr 19, 2019 2:05 am
by AgentZero
Dear EPW developers,

Does EPW (qe-6.4.1) work well with the PBE functional? When I solve the anisotropic Eliashberg equations for MgB2 and other compounds with PBE norm-conserving PPs, several strange problems are encoutered. And I need your help.
For PZ-vbc-PPs, these problems are rarely encountered and the results for MgB2 seems right, so I believe that the code is properly compiled. Here are the problems.

1. For MgB2, the gap associated with sigma bands is split into two gaps at a relatively high temperature, e.g. 38 K.
Is this a normal case? How to understand this behavior?
Image

2. When PBE is used, crash of the code is continual at the Pade continuation step. For example at 30 K, I notice that pade_aniso_gap0_030.00 file is successfully generated, but the qdos_030.00 file is not given.

Typical errors are as follows.

---------------------------tail of the output file of epw.x------------------------------

iter = 69 relerr = 2.2832899128E-04 abserr = 3.5704293835E-07 Znormi(1) = 2.1435405695E+00 Deltai(1) = 7.4248849307E-03
iter = 70 relerr = 1.9834546135E-04 abserr = 3.1021858029E-07 Znormi(1) = 2.1435269856E+00 Deltai(1) = 7.4262663069E-03
iter = 71 relerr = 4.2377705389E-04 abserr = 6.6251996642E-07 Znormi(1) = 2.1435594451E+00 Deltai(1) = 7.4231730147E-03
iter = 72 relerr = 7.7563511064E-05 abserr = 1.2125099459E-07 Znormi(1) = 2.1435641308E+00 Deltai(1) = 7.4226429720E-03
Convergence was reached in nsiter = 72

iaxis_imag : 5508.83s CPU 5630.82s WALL ( 9 calls)

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

pade = 26 error = 2.4469808354E+00 Re[Znorm(1)] = 2.2368031542E+00 Re[Delta(1)] = 5.5776084906E-03

-----------------------------error message-----------------------------------------

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
epw.x 0000000000E3BAC6 Unknown Unknown Unknown
libpthread-2.12.s 000000392220F710 Unknown Unknown Unknown
libmpi.so.12.1.0 00002B88AFE2BF32 _int_free Unknown Unknown
libmpi.so.12.1.0 00002B88AFE2AEDA free Unknown Unknown
epw.x 0000000000E7C4C3 Unknown Unknown Unknown
epw.x 00000000005395A8 io_eliashberg_mp_ 2142 io_eliashberg.f90
epw.x 0000000000539CAD io_eliashberg_mp_ 330 io_eliashberg.f90
epw.x 00000000005176EB superconductivity 934 superconductivity_aniso.f90
epw.x 000000000050F111 superconductivity 142 superconductivity_aniso.f90
epw.x 000000000044514F eliashberg_eqs_ 68 eliashberg.f90
epw.x 0000000000440B37 MAIN__ 170 epw.f90
epw.x 000000000043FFDE Unknown Unknown Unknown
libc-2.12.so 0000003921A1ED1D __libc_start_main Unknown Unknown
epw.x 000000000043FEE9 Unknown Unknown Unknown


3. When I increase the mu* to 0.21 for MgB2, the code does nothing when the convergence is achieved at the first temperature (e.g. 30 K).
Here is the tail for the output file of epw.x.

---------------------------tail of the output file of epw.x------------------------------

iter = 76 relerr = 4.2297488522E-04 abserr = 4.5806546062E-07 Znormi(1) = 1.6637843476E+00 Deltai(1) = 2.9060303329E-03
iter = 77 relerr = 5.8792876309E-04 abserr = 6.3707869487E-07 Znormi(1) = 1.6637763992E+00 Deltai(1) = 2.9077880463E-03
iter = 78 relerr = 7.7655326982E-04 abserr = 8.4212587310E-07 Znormi(1) = 1.6637644665E+00 Deltai(1) = 2.9099270456E-03
iter = 79 relerr = 8.4205214787E-04 abserr = 9.1392508655E-07 Znormi(1) = 1.6637538512E+00 Deltai(1) = 2.9120158863E-03
iter = 80 relerr = 4.6293907364E-05 abserr = 5.0247037292E-08 Znormi(1) = 1.6637516945E+00 Deltai(1) = 2.9123917895E-03

-----------------------------error message-----------------------------------------

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
epw.x 0000000000E3BAC6 Unknown Unknown Unknown
libpthread-2.12.s 000000392220F710 Unknown Unknown Unknown
libmpi.so.12.1.0 00002AC3D5270E4B free Unknown Unknown
epw.x 0000000000E7C4C3 Unknown Unknown Unknown
epw.x 00000000005395A8 io_eliashberg_mp_ 2142 io_eliashberg.f90
epw.x 0000000000538456 io_eliashberg_mp_ 221 io_eliashberg.f90
epw.x 0000000000512CE8 superconductivity 452 superconductivity_aniso.f90
epw.x 000000000050E83C superconductivity 89 superconductivity_aniso.f90
epw.x 000000000044514F eliashberg_eqs_ 68 eliashberg.f90
epw.x 0000000000440B37 MAIN__ 170 epw.f90
epw.x 000000000043FFDE Unknown Unknown Unknown
libc-2.12.so 0000003921A1ED1D __libc_start_main Unknown Unknown
epw.x 000000000043FEE9 Unknown Unknown Unknown


-------------------------------------------------------------------------------------------
Are the last two problems closely related to the Pade continuation? Is it helpful by seting lacon to .true.?

Look forward to your reply and thanks for your kind help!

Best wishes

Miao Gao
Ningbo University

Re: Does EPW work well with the PBE functional?

Posted: Fri Apr 19, 2019 1:36 pm
by roxana
Hi Miao,

I have not tested PBE for MgB2 but when I used it for other systems I personally encountered no problems.

The problem you see with the splitting of the gap at high-T is probably related to convergence issues with respect to the number of Matsubara frequencies. You can check if the results improve if you use nswi flag instead of wscut in epw.in. You should set this number to the number of frequency points at the lowest temperature you are calculating. In the epw.out file you should search for the lines shown below and set nswi to the appropriate value (in this example nswi would be 48):

Total number of frequency points nsiw ( 1 ) = 48
Cutoff frequency wscut = 0.5252

If the Pade algorithm fails, you can plot instead the gap from MgB2.imag_aniso_gap0_XXX file. The results should be very similar.

Performing an analytic continuation with lacon=true is very expensive and requires a lot of memory, and the final results for the gap should not differ by much.

Best,
Roxana

Re: Does EPW work well with the PBE functional?

Posted: Fri Apr 19, 2019 3:21 pm
by AgentZero
Dear Roxana,

Thanks for your quick reply! I will try your suggestion and let you know my result.

Btw, if I only want to determine the Tc, plotting MgB2.imag_aniso_gap0_XXX is enough. And performing Pade continuation is only needed
to obtain the quasiparticle density of states. Am I right?

Best wishes,

Miao Gao
Ningbo University

Re: Does EPW work well with the PBE functional?

Posted: Fri Apr 19, 2019 11:09 pm
by roxana
Hi Miao,

Yes, you are correct. You only need the Pade approximation to get the quasi-particle density of states.

Best,
Roxana

Re: Does EPW work well with the PBE functional?

Posted: Mon Apr 29, 2019 7:28 am
by AgentZero
Dear Roxana,

According to your suggestion, I have calculated the superconducting gap of MgB2 by using nswi instead of wscut.
I have tried two values of nswi, i.e. 70 and 140.

Image
Image

From these figures, it is found that separation of superconducting gap at 38 K is impeded. But, the separation
still occurs above 39 K. Moreover, the amplitudes of superconducting gaps are different for nswi being 70 and 140,
respectively. For sigma-bands-associated gaps at 38 K, gaps are equal to 3.8 meV and 4.6 meV. This indicates
the convergence of gap versus the number of frequency grid points is hard to achieve.
Do we need to systematically check the influence of nswi, when predicting Tc for new compounds?

The crash of epw code often occurs when using mu* > 0.2. Based on my observation, this phenomenon is closely related to the subroutine gap_FS ( itemp ) in io_eliashberg.f90. Do you have any comments?


I look forward to your reply! Thank you very much!

Best wishes,
Miao Gao
Ningbo University

Re: Does EPW work well with the PBE functional?

Posted: Tue Apr 30, 2019 12:10 am
by roxana
Hi,

I cannot see your images, but the difference you are seeing with nswi 70 and 140 is because in the second case you are using a wscut which is twice larger. I don't know what nswi 70 and 140 means in terms of wscut in eV in your case. In general, as you increase nswi the decrease of the gap with temperature will be slower, and the Tc slightly larger. Now, it depends how well you want to converge the Tc. However, you also need to keep in mind that you are also using another parameter that affect the Tc which is mu*. In general, I am more interested in understanding the nature of the superconducting gap than estimating an "exact" value for Tc.

I don't think I ever used values for mu* > 0.2 and seen the crash you mentioned, but I would think that if the code crashes in subroutine gap_FS is because something has gone wrong with the calculation of the superconducting gap. The subroutine gap_FS only prints the superconducting gap to file.

Best,
Roxana