[Pw_forum] elphonon.f90, question about q=0 case, wavefunction evc not used

stefano de gironcoli degironc at sissa.it
Mon Nov 23 01:59:10 CET 2015


Dear Fan,

On 22/11/2015 23:59, Fan Zheng wrote:
> Dear all,
>
> I have a question about the electron phonon coupling calculation in 
> the subroutine "elphel" (in the file elphonon.f90).
>
> This subroutine computes <n,k|dV|m,k+q>. |n,k> is the wavefunction for 
> band "m" with wavevector "k".
>
> First, the program computes <n,k|dV.  Then, it is multiplied by |m,k+q>
>
> If q=0, it only needs to read to evc as:
> ...
>         IF (lgamma) THEN
>            CALL get_buffer(evc, lrwfc, iuwfc, ikk)
>         ELSE
>            CALL get_buffer (evc, lrwfc, iuwfc, ikk)
>            CALL get_buffer (evq, lrwfc, iuwfc, ikq)
>         ENDIF
> ...
> My question is in the q=0 case, array "evq" is used to multiply the 
> computed <n,k|dV instead of evc. (line 401-406 in version 5.2.1)
>
> Can anyone explain  why "evc" array is not used in q=0 case for these 
> line (401-406)?
>

because in allocate_phq there is the following bit
  if (lgamma) then
      !
      !  q=0  : evq and igkq are pointers to evc and igk
      !
      evq  => evc
      igkq => igk
   else
      !
      !  q!=0 : evq, igkq are allocated and calculated at point k+q
      !
      allocate (evq ( npwx*npol , nbnd))
      allocate (igkq ( npwx))
   endif

therefore in the lgamma case evc and evq (and igkq and igk) are the same.

best
  stefano


> Thanks,
> Fan
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20151123/27bbee3b/attachment.html>


More information about the users mailing list