epwwrite

Post here questions linked with issue while running the EPW code

Moderator: stiwari

Post Reply
licf

epwwrite

Post by licf »

Dear all,

While running the code in parallel, I got different phonon scattering rates depending on if I set epwrite to true or false (epwread is always set to false). Setting epwwrite = .true. seems to give phyically correct scattering rates. I looked at the source file ephwann_shuffle.f90 and found this IF block (starting at line #378 in the QE6.0 distro),

Code: Select all

     IF (ionode) THEN                                                                  
       IF (etf_mem) THEN                                                               
         CALL ephbloch2wanp &                                                         
           ( nbndsub, nmodes, xqc, nqc, irvec, nrr_k, nrr_q, epmatwe )                 
       ELSE                                                                           
          CALL ephbloch2wanp_mem &                                                     
           ( nbndsub, nmodes, xqc, nqc, irvec, nrr_k, nrr_q, epmatwe_mem )             
       ENDIF                                                                           
     ENDIF


To me, the

Code: Select all

IF (ionode) THEN 
line and its corresponding

Code: Select all

ENDIF 
line are not needed and if epwwrite is set to .false., the non-

Code: Select all

ionode
processors will not get the information from ephbloch2wanp(...) or ephbloch2wanp_mem(...).

Please, please someone help to take a look and let me know if I understand this correctly and if simly commenting out these two lines would remedy the problem. Or if there are more to this? Thanks!


Best,

licf
sponce
Site Admin
Posts: 616
Joined: Wed Jan 13, 2016 7:25 pm
Affiliation: EPFL

Re: epwwrite

Post by sponce »

Dear licf,

In principle you only have 3 options:

1)

Code: Select all

epwwrite = .true. 
epwread = .false.


This means you want to write to file the el-ph matrix elements.

2)

Code: Select all

epwwrite = .false. 
epwread = .true.


This means you already have written the el-ph matrix element to file (you have done 1) before) and you want to restart from there without having to redo that step.

3)

Code: Select all

epwwrite = .false. 
epwread = .false.


This means you want to do nothing related to electron-phonon. This is used for example to look at interpolated bandstructure.

So in principle you should not want to do 3.
If you do 1 or 2, you should get the same results.

Best,

Samuel
Prof. Samuel Poncé
Chercheur qualifié F.R.S.-FNRS / Professeur UCLouvain
Institute of Condensed Matter and Nanosciences
UCLouvain, Belgium
Web: https://www.samuelponce.com
licf

Re: epwwrite

Post by licf »

Hi sponce,

Thank you for the explanation. Now the code

Code: Select all

     IF ( epwwrite ) THEN                                                              
        CALL epw_write                                                                 
        CALL epw_read                                                                 
     ENDIF 

in the

Code: Select all

 IF ( epwread ) THEN ... ELSE 
else branch makes more sense to me.

Just so I understand this, when setting both epwread and epwwrite to false, I shouldn't really set elph = .true. and then expect any meaningful results for either the electron or phonon scattering rates, ie, data in the file linewidth.phself or linewidth.elself are meaningless.

Related to this, the reason I switched to epwwrite = .false. was that I was experiencing IO errors when going to denser fine k or q grids, some to MPI_FILE_OPEN error in ephwan2blochp. I think I've read similar problems on this forum. I will try out the solutions posted there. It would be much appreciated if you have updated suggestions on this.

Thanks again for your time.

Best,

licf
sponce
Site Admin
Posts: 616
Joined: Wed Jan 13, 2016 7:25 pm
Affiliation: EPFL

Re: epwwrite

Post by sponce »

Hello,

Well actually I should probably crash the code when both are false and elph = true.

For issue related to ephwan2blochp, most people have been able to solve them by
1) using the latest version of the code EPW 4.2 and QE 6.2
2) using etf_mem = .false.

Let me know if you still have IO issues.

Best,

Samuel
Prof. Samuel Poncé
Chercheur qualifié F.R.S.-FNRS / Professeur UCLouvain
Institute of Condensed Matter and Nanosciences
UCLouvain, Belgium
Web: https://www.samuelponce.com
Post Reply