Extract BS kernel information

Concerns issues with computing quasiparticle corrections to the DFT eigenvalues - i.e., the self-energy within the GW approximation (-g n), or considering the Hartree-Fock exchange only (-x)

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano

Post Reply
pangrt
Posts: 27
Joined: Thu Jun 18, 2020 1:38 pm

Extract BS kernel information

Post by pangrt » Mon Jun 19, 2023 3:52 am

Dear all,
I'm trying to get BS kernel information in BS calculation. K=2V-W. From the article 'Computer Physics Communications 180 (2009) 1392–1403' I can know the expressions of V and W. But what the meaning of O_x(:,i_Tk) , O_c_d(:,iO2) and bare_qpg(iq,:BS_n_g_exch) are?
And where the input information <type(BS_T_group), target, intent(in) :: BS_T_grp_ip,BS_T_grp_ik> come from?
Thanks!
Pangrt
RongTianPang, Inner Mongolia University, Hohhot, China :)

User avatar
Daniele Varsano
Posts: 3816
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Extract BS kernel information

Post by Daniele Varsano » Mon Jun 19, 2023 9:33 am

Dear Pangrt,
please have a look at the Yambo cheatsheet for references of the equation (e.g. slide 10b for the exchange part).

https://www.yambo-code.eu/wiki/images/c ... et-5.0.pdf

If you look at the exchange kernel build K_exchange_kernel.F
you can recognize the
BS_T_grp_ip%O_x = <ck|e^iG.r|vk>
bare_qpg = |q+G|
so that:
1/bare_qpg**2 is the Coulomb potential.

Please note that the suffix _d is used only in CUDA compilation (ie when using GPU).

The BS_T_grp(i_T_grp)%O_x are assigned in
./src/bse/K_exchange_collisions.F

Best,

Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

pangrt
Posts: 27
Joined: Thu Jun 18, 2020 1:38 pm

Re: Extract BS kernel information

Post by pangrt » Tue Jun 20, 2023 4:56 am

Dear Daniele,
Thank you very much for your help.
In the correlation kernel, does BS_W = ε^(-1)(G,G',q) * v(q+G) corresponds to the following terms
BS_W(i_g2,1,iq_W)=real(X_mat_d(i_g2_mat,i_g2_mat,1),SP)*gamp_d(i_g2,1) ?

Thanks!
Pangrt
RongTianPang, Inner Mongolia University, Hohhot, China :)

User avatar
Daniele Varsano
Posts: 3816
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Extract BS kernel information

Post by Daniele Varsano » Tue Jun 20, 2023 1:12 pm

Dear RongTianPang,

the line of the code you indicated is applied in the diagonal approximation:
W = ε^(-1)(G,G,q) * v(q+G)

in general, when the full matrix is taken in account you have (few lines above):

BS_W(i_g2,i_g3,iq_W)=X_mat(i_g2_mat,i_g3_mat,1)*isc%gamp(i_g2,i_g3)

that is the expression you reported.

Please note that the lines you indicated (_d suffix) are used the CUDA implementation, you can recognize them as they come after:
#if defined _CUDA

Best,
Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

Post Reply