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
[email protected]
http://pwscf.org/mailman/listinfo/pw_forum
_______________________________________________
Pw_forum mailing list
[email protected]
http://pwscf.org/mailman/listinfo/pw_forum