Page 1 of 1
A missing factor of 4pi in NEQ_GW of Yambo
Posted: Thu Jan 09, 2025 4:04 am
by clin
Dear developers,
I want to obtain the screened Coulomb interaction matrix elements like the ones in BSE kernel with the generalization to all bands, not limited to electron-hole states. I used the so-called non-equilibrium (NEQ) GW implemented in real-time Yambo as explained in Dr. Andrea Marini's paper. However, I found the output matrix elements are too small (around one magnitude smaller) compared to those from BSE kernel calculations. By comparing these two calculations and looking into the codes:
https://github.com/yambo-code/yambo/blo ... W_static.F
https://github.com/yambo-code/yambo/blo ... rnel_std.F
I realize a missing factor of 4pi in NEQ GW calculations, while there is an additional factor of 4pi at the line of 90 in the file
which seems to be the factor of Fourier transform of Coulomb potential.
After adding this 4pi into NEQ GW calculations and removing the line 172 of the file
Code: Select all
if (iqibz==1) EM1s(1,1)=X_mat(1,1,1)*sqrt(isc%gamp(1,1)/DL_vol/real(q%nbz,SP))
I can obtain the exact same values for certain matrix elements that can be found in both NEQ GW and BSE calculations. This should confirm that there is a missing factor of 4pi in NEQ GW calculations, but perhaps this factor is introduced in another place of real-time Yambo that I didn't notice.
My question is: what is the role of the line 172?
Code: Select all
if (iqibz==1) EM1s(1,1)=X_mat(1,1,1)*sqrt(isc%gamp(1,1)/DL_vol/real(q%nbz,SP))
It seems to set the long-wavelength limit (q=0) of screened Coulomb potential to certain limit value, however there is no such action in BSE code. Could you explain the difference and why it is needed in NEQ GW calculations?
Thanks a lot,
Changpeng
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Fri Feb 07, 2025 12:07 am
by Davide Sangalli
Dear Changpeng,
the NEQ_GW collisions are not used very much. I'm not sure about the factors you mention.
I'd suggest to instead use the HXC_collisions with the approximation H_potential=SEX (subroutine compute_MBPT_XC_collisions)
https://github.com/yambo-code/yambo/blo ... IONS_HXC.F
In this branch I coded the possibility of reading the BS_kernel to be used for the collisions (subroutine map_BSE_to_HXC_collisions)
https://github.com/sangallidavide/yambo ... IONS_HXC.F
Best,
D.
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Wed Feb 12, 2025 6:48 pm
by clin
Dear Davide,
Many thanks for your help. Since I have spent lots of time to interface and map the matrix elements from NEQ_GW calculations of Yambo to our in-house code, at present I think I won't perform the calculations using the another module you pointed out. After adding 4pi into NEQ_GW calculation and removing the line of code I mentioned in last post, I have obtained the exact same matrix element values for those electron-hole transitions compared to the BSE kernel calculations. I feel this should validate the obtained matrix elements are correct.
Since the long-wavelength behavior is important in our simulation, I still want understand what's the role of this line:
Code: Select all
if (iqibz==1) EM1s(1,1)=X_mat(1,1,1)*sqrt(isc%gamp(1,1)/DL_vol/real(q%nbz,SP))
If I understand correctly, it translates into the following math equation and it sets the long-wavelength limit value. Unfortunately, it doesn't look same as the expression I know for screened interaction.
eq.png
I wonder if you know what this line of code does?
PS: do you have any example input for HXC_collisions and how to generate such input directly using Yambo, so that I can adapt it to my case? If it is easy to use also the matrix elements from HXC_collisions, I will try.
Best,
Changpeng
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Thu Feb 13, 2025 7:17 am
by clin
Dear Davide,
I had a look into the subroutine
compute_MBPT_XC_collisions you mentioned. To me, the whole procedure looks quite similar to the NEQ_GW calculations. I have one question: why is there no the following line in the subroutine
compute_MBPT_XC_collisions?
Code: Select all
forall(i1=1:X%ng) X_mat(i1,i1,1)=X_mat(i1,i1,1)+1._SP
This line does exist in NEQ_GW calculations. The dielectric matrix elements stored in ndb.em1s_* database only contain the v * \chi part, right? If so, a one should be added to the diagonal dielectric matrix elements.
Also I find the line in NEQ_GW that I have doubt does not exist in
compute_MBPT_XC_collisions. It seems to make sense to remove that line in NEQ_GW calculations.
Thanks a lot,
Changpeng
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Mon Mar 24, 2025 3:36 pm
by Davide Sangalli
This line does exist in NEQ_GW calculations. The dielectric matrix elements stored in ndb.em1s_* database only contain the v * \chi part, right? If so, a one should be added to the diagonal dielectric matrix elements.
Correct.
Also I find the line in NEQ_GW that I have doubt does not exist in compute_MBPT_XC_collisions. It seems to make sense to remove that line in NEQ_GW calculations.
Indeed I also checked this line:
https://github.com/yambo-code/yambo/blo ... tic.F#L172
and I'm not sure why it is there. As I wrote, NEQ_GW is not used much, so I would not advise to rely on it.
Instead for the generation of W matrix elements with "H_potential=SEX" you can follow this tutorial (just remove the "HARTREE" keyword from H_potential):
https://wiki.yambo-code.eu/wiki/index.p ... Collisions
Best,
D.
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Mon Mar 24, 2025 5:03 pm
by clin
Dear Davide,
Thanks a lot for your help. I have a further question related to the settings in the tutorial you pointed out.
Since I don't need the HARTREE part, I should remove HARRLvcs. What are the roles of EXXRLvcs and CORRLvcs? Are they both related to NGsBlkXs for controlling the dielectric matrix components?
According to the tutorial, it seems EXXRLvcs controls the screening component of dielectric matrix. Am I right? How about CORRLvcs?
Best,
Changpeng
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Tue Mar 25, 2025 3:17 pm
by Davide Sangalli
In BSE we have eh-exchange (v) and eh-screened-direct (W=eps^-1*v) interaction which are controlled by
The corresponding cut-off parameters in the HXC_collisions are
Code: Select all
HARRLvcs=10 Ry
EXXRLvcs= 1 Ry
CORRLvcs= 1 Ry
The first cut-off is for the Hartree potential (whose derivative gives the eh-exchange interaction)
The second and third cut-off are for the screened exchange interaction (whose derivative gives the eh-screened direct interaction).
This can be split into a "bare" and "screened part", e.g.
W= eps^-1*v = (1+v*chi)*v= v + v*chi*v
and the two cut-off apply to "v" (EXX) and "v*chi*v" (CORR)
Also, if you use H_potential="SEX" (and not H_potential="HARTREE+SEX"), the HARRLvcs variable is not needed.
Re: A missing factor of 4pi in NEQ_GW of Yambo
Posted: Wed Mar 26, 2025 5:40 am
by clin
Thanks Davide. This is clear to me now.
Best,
Changpeng