Page 1 of 1

How to gather gamma_qv(k) that distributed among pools

Posted: Tue Mar 21, 2017 3:03 am
by AgentZero
Dear all,

In subroutine selfen_phon_q(iq), the k-dependent phonon linewidth gamma_qv(k) is calculated. In each pool, gamma_qv(k)s
corresponding to different k-points that belonging to this pool are added together. The k-points are also distributed among
different pools. Thus subroutine mp_sum is called to finish the integral over the BZ, i.e. line-329 to line-335 in selfen_phon_q(iq).
My question is how to gather gamma_qv(k) without the summation on intrapool and interpool k-points.
And what is the sequence of these k-points in the code?

Should I call the subroutine poolgather or poolgather2? Could you plese give me some guidances? Thank you very much!

The reason for doing this is that I want to integrate gamma_qv(k) on q-mesh and phonon branch v to obtain gamma(k). With
gamma(k), we can figure out which Bloch state Psi_k has the largest contribution to lambda.

Thanks in advance!

Best wishes,
Miao Gao

-------------------329-335 lines in selfen_phon_q(iq)-----------------------
! collect contributions from all pools (sum over k-points)
! this finishes the integral over the BZ (k)
!
CALL mp_sum(gamma,inter_pool_comm)
CALL mp_sum(gamma_v,inter_pool_comm)
CALL mp_sum(fermicount, inter_pool_comm)
CALL mp_barrier(inter_pool_comm)
----------------------------------------------------------------------------------