Page 1 of 1

How to do an Eliashberg calculation with more cpu?

Posted: Thu Apr 12, 2018 1:35 am
by AgentZero
Dear Prof. E. R. Margine,

The number of cpu that we can used is constrained by the total number of k-points in the coarse mesh.
How can we do Eliashberg calculation with large number of cpu? For example, for coarse k-mesh being 6x6x6 (totally 216 points),
I want to use 1000 cpu to speed up my calculation.

I searched in the forum, and found you have posted a reply about how to restart an Eliashberg calculation by setting:
ep_coupling=.false.
elph=.false.

kmaps = .true.
epbwrite = .false.
epbread = .true.
epwwrite = .false.
epwread = .true.
wannierize = .false.

ephwrite=.false.
eliashberg = .true.

But in this manner, the number of cpu is also the same with previous calculation before restarting.

As I know, in an interpolated calculation, we can use more cpus by restarting the calculation as follows.

elph = .true.
kmaps = .true.
epbwrite = .false.
epbread = .false.
epwwrite = .false.
epwread = .true.
wannierize = .false.

Your help will be highly appreciated!

Best wishes,
Miao Gao

Re: How to do an Eliashberg calculation with more cpu?

Posted: Thu Apr 12, 2018 6:18 pm
by roxana
Hi,

ep_coupling=.false. and elph=.false. are only meant to be used for performing directly an Eliashberg calculation (eliashberg=.true.) when *.ephmat, *.freq, *.egnv, and*.ikmap files were generated in a previous run. At the moment, for such a calculation, the number of CPUs is restricted by the number of *.ephmat files.

You can do a restart interpolation calculation using more CPUs and generate the *.ephmat files

elph = .true.
kmaps = .true.
epbwrite = .false.
epbread = .false.
epwwrite = .false.
epwread = .true.
wannierize = .false.

ephwrite = .true.

and after do an Eliashberg calculation using

ep_coupling=.false.
elph=.false.

kmaps = .true.
epbwrite = .false.
epbread = .true.
epwwrite = .false.
epwread = .true.
wannierize = .false.

ephwrite=.false.
eliashberg = .true.

These two calculations will have to use the same number of CPUs.

Best,
Roxana

Re: How to do an Eliashberg calculation with more cpu?

Posted: Fri Apr 13, 2018 3:08 pm
by AgentZero
Dear Prof. E. R. Margine,

Thank you very much for your quick reply! I have tried your method as follows. The first run is done by 96 CPUs, and
then I restart the calculation with previously obtained epmatwp1 file using 216 CPUs, but an error of 'forrtl: severe (174): SIGSEGV, segmentation fault occurred'
is encountered. The output is stuck at 'Fermi energy coarse grid = 7.568419 eV'. But if 96 CPUs are used in the restarted run, evergthing is ok.
Does this error relate to the version of QE or the variable 'mp_mesh_k'? I use qe-6.0 for above mentioned calculations. And I will try your method with the up-to-date version as soon as possible.

May I ask the value of 'conv_thr_iaxis' that you used in your MgB2 paper [PRB 87 (2013), and CPC 209 (2016)]?
I set 'conv_thr_iaxis' to 1.0D^-4, and 'broyden_beta' to 0.3 in my MgB2 calculation, but the convergence is very hard to achieve.

Btw, It seems to me that the variable 'eptemp' doesn't affect the result of anisotropic Eliashberg calculation, am I right?

Thanks for your time!

Best wishes,
Miao Gao

Re: How to do an Eliashberg calculation with more cpu?

Posted: Fri Apr 13, 2018 4:22 pm
by roxana
Dear Miao,

I personally never tried to restart an anisotropic Eliashberg calculation with a different number of CPUs, but I am assuming that the procedure suggested in my previous email should work. Could you try the latest version of the code to see if you get the same error?

In most cases I use conv_thr_iaxis=1.d^-4 and broyden_beta=0.7. The convergence is harder to reach close to the critical temperature. For this, I usually take smaller steps for the temperature at which the Eliashberg equations are evaluated.

Indeed, eptemp does not enter in the anisotropic Eliashberg calculation.

Best,
Roxana