Page 1 of 1
Extract BS kernel information
Posted: Mon Jun 19, 2023 3:52 am
by pangrt
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
Re: Extract BS kernel information
Posted: Mon Jun 19, 2023 9:33 am
by Daniele Varsano
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
Re: Extract BS kernel information
Posted: Tue Jun 20, 2023 4:56 am
by pangrt
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
Re: Extract BS kernel information
Posted: Tue Jun 20, 2023 1:12 pm
by Daniele Varsano
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