Page 1 of 1

questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 6:53 am
by HaozheLi
Dear all,

I want to use yambo to do GW+BSE calculations for a material.
Firstly, I used the command "yambo -gw0 p -g n -F GW.in" to generate the input file GW.in for GW calculation. And I got the quasi-particle band gap. Because this material is a direct semiconductor, so i want to use scissor operator to shift the bands in both KfnQP_E and XfnQP_E for the following BSE calculation.
Secondly, I used the command "yambo -X s -o b -k sex -V qp -y d -r -F BSE.in" to generate the input file BSE.in for BSE calculation.
My questions are:
1. If the steps I've taken above are correct?
2. In the version 5.1.0, my second step generated a input file (oldone.in) without modules 'em1d' and 'ppa', but in the new Version 5.2.3, the input file (newone.in) generated by the same command contained these two modules in the head of the input file. Why would this happen? Actually, i think modules 'em1d' and 'ppa' have be considered in the GW calculation, should we consider it again in the BSE part? Are these two input files identical? Or i have did something wrong?

Could anyone please provide me with some guidance or advice? The input files are attached.
Best wishes,
Haozhe
input files.zip

Re: questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 8:27 am
by Daniele Varsano
Dear HaozheLi ,

1) KfnQP_E is meant to consider a scissor shift in the kernel of the BSE, while XfnQP_E is meant for the response function (screening). You can apply it to both, but the usual procedure is to use QP energies for the BSE and KS energies for the screening (RPA), so only KfnQP_E is needed. This is because such a procedure usually provides more accurate results.

2) In the BSE you need the static screening in the kernel. This can be either calculated (em1s) or read from a previous generated database as the ndb.pp (em1d/ppa) used in GW calculation. As the database contains also the screening for w=0 you can avoid recalculating and read it from the file.

Note that -X s in the input file generation generates an input for static screening (em1s), while -X p is the one for the plasmon-pole (em1d/ppa).
I do not know what exactly changed in the new release about that, probably em1d/ppa is added as yambo checked that a ndb.pp is present in your SAVE directory. Anyway, what it is important is that you have one of the two keywords in the input file, otherwise the kernel cannot be generated. Having both of them is a waste of resources.

Best,

Daniele

Re: questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 10:23 am
by HaozheLi
Dear Daniele,

Thanks for your helpful reply!

So, the input file newone.in (with em1d/ppa) did the same thing with oldone.in (with em1s), but it calculated the static response function again in the basis of the dynamic response function obtained in the GW calculation before. That means I did the same thing twice?! :shock: So, in practice, I can firstly do GW calculation, then use the input file newone.in (with em1d/ppa) to do BSE calculation, which will save my time for the extra static response function calculation, am I right?

By the way, for scissor shift, we are suggested to just set the KfnQP_E, right?

Best wishes,
Haozhe

Re: questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 12:18 pm
by Daniele Varsano
Dear Haozhe,

1)
I can firstly do GW calculation, then use the input file newone.in (with em1d/ppa) to do BSE calculation, which will save my time for the extra static response function calculation, am I right?

Yes, the ndb.pp used for GW contains the static response and yambo can read it. In the newone.in the keyword em1s is also present and should be removed if you do not want to calculate a quantity you already have stored in the ndb.pp. Also, the related static variables (BndsRnXs, NGsBlkXs, LongDrXs) can be removed.


2)
By the way, for scissor shift, we are suggested to just set the KfnQP_E, right?
Correct.

Best,
Daniele

Re: questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 12:34 pm
by HaozheLi
Dear Daniele,

Thanks for your helpful reply! You help me a lot!!!

I have another question about the BSE calculation.
In the first step Step 1: Static screening of tutorial Calculating optical spectra including excitonic effects: a step-by-step guide (https://www.yambo-code.eu/wiki/index.ph ... step_guide), there is just a standard static screening calculation (yambo -X s), which is different from a RPA calculation (yambo -o c -k hartree), right?

According to your suggestion:
You can apply it to both, but the usual procedure is to use QP energies for the BSE and KS energies for the screening (RPA), so only KfnQP_E is needed.
to get a more accurate result with a scissor shift in BSE calculation, should I better do a RPA calculation to get the static screening function? Or the results of em1d/ppa calculation is accurate enough?

Best wishes,
Haozhe

Re: questions about GW+BSE calculations with scissor operation

Posted: Fri Jun 28, 2024 2:47 pm
by HaozheLi
Dear Daniele,

After GW calculation, I have tested two methods to separately calculate the BSE: the static one (em1s, although we have calculated the dynamic screening function in GW) and the dynamic one (em1d/ppa, which will be fast because we have calculated in GW part). It should be same in principle, however, I find the results(o.exc_qpt1_E_sorted, o.alpha_q1_diago_bse) are totally different!!!

I don't know why? :cry:
Could anyone please provide me with some guidance or advice? The input files and output files are attached.

Best wishes,
Haozhe
GWBSE.zip

Re: questions about GW+BSE calculations with scissor operation

Posted: Wed Jul 03, 2024 4:59 pm
by Daniele Varsano
Dear Haozhe,

the difference you observe is most probably due to the fact that in the dynamical screening, calculated in the GW step, the truncated coulomb potential was not considered, while it is present in the static calculation (slab z). This can be recognized carefully looking at the dynamical report file, where you have the following warning which is emitted when a discrepancy between read database and input file are found:

Code: Select all

[RD./SAVE//ndb.pp]--------------------------------------------------------------
  Brillouin Zone Q/K grids (IBZ/BZ)                :    8   49    8   49
  RL vectors                                       :  15883 [WF]
  *WRN* Coulomb cutoff potential                   : none
Best,
Daniele