BSE starting from GW

Deals with issues related to computation of optical spectra in reciprocal space: RPA, TDDFT, local field effects.

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

Post Reply
Laura Caputo
Posts: 88
Joined: Sun Apr 11, 2021 3:02 pm

BSE starting from GW

Post by Laura Caputo » Tue Apr 05, 2022 5:39 pm

Hello,

I am doing some BSE calculations starting from previous computed GW corrections and I am trying to generate the input for this. I firstly tried to use 'yambo -o b -k sex -y d -V qp -r' but the calculation stops for ' <05s> [WARNING]Missing all or part of PP/Em1s DB
<05s> [WARNING]Bethe Salpter section skipped. Impossible to build the kernel.'
For this reason, I tried with 'yambo -o b -X s k sex -y d -r -V qp'. I changed the 'em1s' to 'ppa' (I tried with pp as suggested in this forum, but it still doesn't work with the same error), 'NGsBlkXs', 'BndsRnXs' and 'LongDrXs' to 'NGsBlkXp', 'BndsRnXp', 'LongDrXp'. For the Xp inputs, I've used the converged values used withing the GW calculation for the Xs part (is it ok?). For the rest of the inputs, like KfnQP_E, KfnQP_Z etc I haven't changed anything from the automated generated input.
Lastly, I have used the KfnQPdb input to read the GW part. In attachment, I've put the input.

I have some questions:

1. I have found the input 'KfnQP_DbGd_INTERP_mode' which I haven't found in the Yambo manual. I guess it's related to the way the code it's interpolating the bands, should it be modified from how it is in the input?
2. If BSENGBlk variable is set to -1 it should use the maximum number of G-vectors. Should it be converged or it's safer to always use -1?
3. Also for the value BSEQptR I couldn't find much in the manual. Should it be changed?
4. Should XfnQPdb and KfnQPdb both be used? If so, with the same syntax (using always the ndb.QP file)?
5. In the automated input generator, it selects the resonant approximation for bse. Shouldn't it be better to use the retarded option?
6. In the input file, there is also the XTermKind defined at the end of the X part. In the GW part, I've used a certain amount of bands converged with the BG terminator. Should I select the same here by using XTermKind BG?
7. I manually put the parallelization part. Is it okay or should I remove the self-energy part?
8. I noticed no inputs regarding the frequency points considered, am I missing something? Shouldn't it be a parameter to converge?
9. I noticed that the FFTGvecs value is not specified in the automatic generated input, so I tried to include -V RL to see it. Does it automatically select the maximum value? Since my system is quite big, it could be useful to converge it to smaller values (ok even if I used the maximum in GW?). Can I do it after all the other BSE convergences? Is it still safe or it's better to keep it to the maximum?
It's a little confusing to me how to generate automatically the bse input file when having just the GW database with ppa, since I manually modifies some inputs... is there an automatic command to do it?
10. For some systems, I have done in the part some GW calculations but I don't have the database anymore so I need to re-calculate the screening from scratch. In that case, if I want to do the whole BSE calculation without starting from GW, can I stiff use the values converged with the GW calculation, then generate the whole BSE file using 'yambo -o b -X s k sex -y d -r -V qp' and not changing Xs to Xp and not changing em1d to ppa, and use the Xs input found with the GW convergence? And in the final BSE calculation, I guess the parameter converged in GW EXXRLvcs does not play a role.

Basically I'm using this input to do the convergence for the BSE calculation: is it okay to left -1 to BSENGBlk for now, converge the BSENGexx while keeping the number of bands for the BSE part fixed (not high values) and lastly converge the bands? Or the BSENGexx and bands should be cross-converged?
I noticed that in the calculation, even if the GW is correctly loaded:
<39s> P1-lm3-w003.cluster: [06] External/Internal QP corrections
<39s> P1-lm3-w003.cluster: E<gw_ppa_11_300/ndb.QP[ PPA@E 27.21138 = XG 5229 = Xb 1-300 = Scb 1-300]
<39s> P1-lm3-w003.cluster: [dE_from_DB-Nearest K] Exact matches : 100.0000 [o/o]
<39s> P1-lm3-w003.cluster: [06.01] FIT on E < gw_ppa_11_300/ndb.QP
<39s> P1-lm3-w003.cluster: [QP_apply] Action to be applied: E<gw_ppa_11_300/ndb.QP[ PPA@E 27.21138 = XG 5229 = Xb 1-300 = Scb 1-300]
<39s> P1-lm3-w003.cluster: [07.01] QP corrections report
<39s> P1-lm3-w003.cluster: [01] Dipoles
after the calculations of the dipoles, there is still the calculation of X:
<39s> P1-lm3-w003.cluster: [06] External/Internal QP corrections
<39s> P1-lm3-w003.cluster: E<gw_ppa_11_300/ndb.QP[ PPA@E 27.21138 = XG 5229 = Xb 1-300 = Scb 1-300]
<39s> P1-lm3-w003.cluster: [dE_from_DB-Nearest K] Exact matches : 100.0000 [o/o]
<39s> P1-lm3-w003.cluster: [06.01] FIT on E < gw_ppa_11_300/ndb.QP
<39s> P1-lm3-w003.cluster: [QP_apply] Action to be applied: E<gw_ppa_11_300/ndb.QP[ PPA@E 27.21138 = XG 5229 = Xb 1-300 = Scb 1-300]
<39s> P1-lm3-w003.cluster: [07.01] QP corrections report
<39s> P1-lm3-w003.cluster: [01] Dipoles
....
is it normal?


Lastly, I've seen that an output for the interpolation of the band is generated (in attachment). How can I read this file to be able to tell if everything is going ok?

Sorry for the long post. Sincerely,
You do not have the required permissions to view the files attached to this post.
Laura Caputo
Ph.D. Student
Université Catholique de Louvain
https://uclouvain.be/fr/repertoires/laura.caputo

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

Re: BSE starting from GW

Post by Daniele Varsano » Fri Apr 08, 2022 10:08 am

Dear Laura,

1) It is a variable related to the double grid method, you can leave it as it is as you are not using it
2) The BSENGBlk should be converged. The blk you used for the GW is generally enough, so you can use the same screening database and use the same dimension
3) BSEQptR is the momentum of the exciton, if you are looking at optic it should 1, i.e. Q=0
4) the same syntax, KfnQPdb is for the BSE, XfnQPdb is for the response function (screening), it is usually used for eigenvalue self-consistency in GW, in BSE you do not want to use it.
5) Yes, you can use the retarded option, the imaginary part anyway it would be the same unless you have excitations at very low energy
6) XTermKind is very discouraged, you do not gain much and it is memory intensive
7) If you are doing BSE, self-energy part is not taken into account at all and you need to see the parallelization relative to BSE
8) The variable BEnSteps provides the frequency step, no it just means the number of steps you want in the output in the range of energies you have considered
9) You can reduce it, always checking that you do not lose much in accuracy
10) You can recalculate the static screening only, BSE uses a static screening. EXXRLvcs does not play a role and it is not present in a BSE input file
11) Or the BSENGexx and bands should be cross-converged? No, they are independent
12) External/Internal QP corrections: This insert the GW energies in the diagonal part of BSE; next if you do not have the screening already calculated yambo needs it to build the direct part of the kernel.
13) From the output of the interpolation you can see the fitted value and the calculated value so you can judge the accuracy.

Finally, I strongly suggest you follow a tutorial in BSE, you can find it here.
http://www.yambo-code.org/wiki/index.ph ... 21_version
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/

Laura Caputo
Posts: 88
Joined: Sun Apr 11, 2021 3:02 pm

Re: BSE starting from GW

Post by Laura Caputo » Fri Apr 08, 2022 11:03 am

Dear Daniele,

Thanks, yesterday I followed the same tutorial as you suggested and it was very helpful. I just have a few last questions:

1. I don't know if my system has exciton properties and if so, I don't know at which energy I can find them (that's why I'm doing this study). Is the resonant mode much more costly than the retarded one? Is it worth a try?
2. In the kernel calculation, I have the message '[WARNING] Only commutator with non-local pseudopotential contribution included in position and velocity dipol', which I find it's normal to have and it should be checked hiding the database file when the system is big. How big? When it should be done more precisely and when the warning is harmless?
3. Thanks for the BEnSteps input info, I missed that. I've seen that in the tutorial 200 is used, is it a reasonable value or normally one should go to higher numbers?
4. In the tutorial, there isn't the convergence study and the tutorial on the convergence skips the part on NGsBlkXs and BndsRnXs because it's the same as GW. So, to converge these values, should I ran a GW convergence test on the band gap considering NGsBlkXp and BndsRnXp and then use these converged values as NGsBlkXs and BndsRnXs in the static screening calculation for the BSE (if I don't have the screening in the database)?
4. Lastly, as I said, I have one case where the GW calculation has already been done with the pp approximation and thus the 'Xp' inputs. To use that screening, should I generate the input including the -X s, change e1ms to ppa and the 'Xs' inputs to 'Xp' ones with the converged parameters from the GW calculations or should I generate the input not including the screening part but just KfnQPdb /as the input attached)?

Thanks,
You do not have the required permissions to view the files attached to this post.
Laura Caputo
Ph.D. Student
Université Catholique de Louvain
https://uclouvain.be/fr/repertoires/laura.caputo

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

Re: BSE starting from GW

Post by Daniele Varsano » Sat Apr 09, 2022 9:58 pm

Dear Laura,
1) Resonant and retarted have exactly the same cost, and unless you have very low energy excitation they will provide the same spectrum.
2) If you are doing a calculation using local or semilocal DFT wfs you need only this term (non local pseudo). If you do not have computational issue you do not need to hide databases
3) Totally up to you! it depends on how many points you want in your spectrum, and it does not add any computational cost.
4) Yes, you can use the value you find converged for GW (and also use the same database ndb.pp for the screening).
5)if you use -X p you have the correct variables and runlevel (ppa) to use the databases

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