Screening for G0W0

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
User avatar
wachr
Posts: 32
Joined: Wed Sep 24, 2014 4:43 pm

Screening for G0W0

Post by wachr » Thu May 07, 2015 11:02 pm

Dear yambo devolopers,

I would like to find out a bit more about the screening entering into the GW part. By default, this is not printed out in the output files. Can one access the dielectric function, which enters into GW, by reading the em1d-file* written out by yambo? Or does one have to perform an extra RPA-calculation? If so, how should this calculation be set up - based on the given input file for the (8,0)-CNT ? (You may find a warning about 'metallic system' in the output - due to smearing. I could circumvent this for later calculations.)

What I want to find out: How does the cylindrical cutoff of my system affect the dielectric function? Finally, I want to perform a BSE-calculation. As I see, only static screening enters the BSE. Thus, I will have to choose the static screening based on the RPA-screening, including the effect of the cylindrical cufoff.

By the way, I have two technical questions:
  1. As noted in a long post about the Coulomb cutoff, the cutoff-technique may fail for the G-space approach for the the dielectric function using the Dyson-equation. Does this problem also affect the GW calculation itself? (see last page of the cited post)
  2. Do I need to specify NonPDirs="XY"? (The tube lies along the z-axis.). Does this option also affect my GW-calculations?
I appreciate yours answers! [Sorry, that's a lot of questions...]
Best regards, Christian

*A remark from the users perspective: It would be extremely helpful to find information about the output files that yambo will generate on a certain runlevel. It takes a lot of time to find this out - also the exact informations that I find therein [the columns in the output are sparsely documented...]. I know, that nobody likes to write documentation ;). It's a lot of work - but I think, many users like me would appreciate this. And it could save your time answering questions in the Forum - on a long-term ;).
You do not have the required permissions to view the files attached to this post.
Christian Wagner
Institute of Physics
Chemnitz University of Technology, Germany

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

Re: Screening for G0W0

Post by Daniele Varsano » Fri May 08, 2015 8:55 am

Dear Wachr,
By default, this is not printed out in the output files. Can one access the dielectric function, which enters into GW, by reading the em1d-file* written out by yambo? Or does one have to perform an extra RPA-calculation?
The dielectric screening is a matrix, \epsm1(G,G1)_q, according to your input parameters it is a 600x660 matrix for each q point (41 points), so in my opinion an output for that will be useless.
How does the cylindrical cutoff of my system affect the dielectric function?
Which components of the matrix you want to look at? In some publications, including our paper on the cutoff it is plotted just the head \epsm1_00(q), this can be done
either looking at the epsm1 database unsing ncdump if you are using the netcdf library, but the it can be not trivial to extract the right component, or as you say doing extra RPA calculations (yambo -o g).
(You may find a warning about 'metallic system' in the output - due to smearing. I could circumvent this for later calculations.)
The warning means that if a metallic system is found, interband contribution to the polarization can be added using Drude model, anway in your case, you should have a semi-metal and I do not think that these will be relevant.
Finally, I want to perform a BSE-calculation. As I see, only static screening enters the BSE. Thus, I will have to choose the static screening based on the RPA-screening, including the effect of the cylindrical cufoff.
Yes only static screening, this is the state of the art for BSE calculation, there is the possibility to consider dynamic screening but this part of the code it is not yet included in the GPL release
By the way, I have two technical questions:
As noted in a long post about the Coulomb cutoff, the cutoff-technique may fail for the G-space approach for the the dielectric function using the Dyson-equation. Does this problem also affect the GW calculation itself? (see last page of the cited post)
No, it does not, it is about the macroscopic dilectric functions.
Do I need to specify NonPDirs="XY"? (The tube lies along the z-axis.). Does this option also affect my GW-calculations?
No it is not needed, it just add the dynamic polarizability when doing linear response optics.

A remark from the users perspective: It would be extremely helpful to find information about the output files that yambo will generate on a certain runlevel. It takes a lot of time to find this out - also the exact informations that I find therein [the columns in the output are sparsely documented...]. I know, that nobody likes to write documentation ;). It's a lot of work - but I think, many users like me would appreciate this. And it could save your time answering questions in the Forum - on a long-term ;).
This is a common remark and as you know it requires a lot of time, and nobody of us is paid for that. We are trying to do our best: about the output there are the tutorials which are fundamental part of the documentations. We have in mind to do a huge improvements in the documentations with the new release but this is a long term task.

Finally two notes about the input you posted:
1) Please note that your input perform HF calculation only, you need to specify when building the input how you want to calculate the screening: Plasmon-pole (add -p p) or a full integration, add (-d)
2) Cutoff, it is better also to specify the variable CUTCylLen, and set it to zero (which means infinite cylinder). Most probably it is set at zero by default, I need to check, anyway if you put it it is safer.
3) %QPkrange , you are calculating corrections for 256 bands 21 kpoints. This is a huge number, and the GW calculations will be very time and memory consuming. Are you sure you need 256 bands corrections. Unless you really need them, you can reduce it to calculate only the bands you are interested in.

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/

User avatar
wachr
Posts: 32
Joined: Wed Sep 24, 2014 4:43 pm

Re: Screening for G0W0

Post by wachr » Fri May 08, 2015 8:17 pm

Dear Daniele,

thank you VERY much for this detailed and exhaustive answer!
The dielectric screening is a matrix, \epsm1(G,G1)_q, according to your input parameters it is a 600x660 matrix for each q point (41 points), so in my opinion an output for that will be useless. [...] Which components of the matrix you want to look at?
That's true. I thought to plot not only epsm1_00(q), but epsm1_00(omega, q) on a surface-plot - for curiosity. And this could be obtained by running yambo -o g -k hartree -V resp. Got it - and then, I have to specify the the non-periodic boundaries instead of the cylinder cutoff, because running this with the cutoff will lead to the breakdown of the spectrum, like described in the cutoff-discussion (that's why I asked about the em1d-file).
The warning means that if a metallic system is found, interband contribution to the polarization can be added using Drude model...
It looks as this warning has no effect, but we were not fully sure, if the code does sth. else because of this warning or not. Thanks for the clarification (To circumvent this, I recently specified OccTresh=0.2000E-4).
Yes only static screening, this is the state of the art for BSE calculation, there is the possibility to consider dynamic screening but this part of the code it is not yet included in the GPL release
I think, that's OK for us - dynamically screened interaction seems to be the cutting edge for BSE right now. To maybe figure out potential effects of this approximation, we want to have a look at the epsilon. We may have the possibility to include a model function of epsilon using a modification of another code, but if we see that the static approximation is fine, we don't even need to.

The answers for the technical questions are fine, thank you!
This is a common remark and as you know it requires a lot of time, and nobody of us is paid for that. We are trying to do our best: about the output there are the tutorials which are fundamental part of the documentations. We have in mind to do a huge improvements in the documentations with the new release but this is a long term task.
I wish you good luck for that! Your work on the code and the forum, here, is highly appreciated!
Finally two notes about the input you posted:
1) Please note that your input perform HF calculation only, you need to specify when building the input how you want to calculate the screening: Plasmon-pole (add -p p) or a full integration, add (-d)
2) Cutoff, it is better also to specify the variable CUTCylLen, and set it to zero (which means infinite cylinder). Most probably it is set at zero by default, I need to check, anyway if you put it it is safer.
3) %QPkrange , you are calculating corrections for 256 bands 21 kpoints. This is a huge number, and the GW calculations will be very time and memory consuming. Are you sure you need 256 bands corrections. Unless you really need them, you can reduce it to calculate only the bands you are interested in.
1) Oh, thank you very much for pointing this out! Puh, this makes me to repeat some of my calculations. That might be a reason for some strange issues I had... Yambo is a great tool, but it takes a long breath getting into it.
2) Got it. Thanks!
3) Well, I don't need so much bands, but the number of bands included still affects the gap. That's the reason why I converged up to that many... (which makes the calcs really annoying, e.g. when the calculations crash... and: I converged the number of bands for the screening at the same time - so should one converge these two individually? Many bands for the screening and less for the GW?) But combining this with 1), I should recheck the convergence of the GW band gap wrt. the number of bands. It would be great to speed this up.

Best regards!
Christian (which is my real name, btw. ;) )
Christian Wagner
Institute of Physics
Chemnitz University of Technology, Germany

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

Re: Screening for G0W0

Post by Daniele Varsano » Sun May 10, 2015 7:41 am

Dear Christian,
3) Well, I don't need so much bands, but the number of bands included still affects the gap. That's the reason why I converged up to that many... (which makes the calcs really annoying, e.g. when the calculations crash... and: I converged the number of bands for the screening at the same time - so should one converge these two individually? Many bands for the screening and less for the GW?) But combining this with 1), I should recheck the convergence of the GW band gap wrt. the number of bands. It would be great to speed this up.
Careful, %QPkrange it is *NOT* a convergence parameter, but it indicates the bands/kpoints (nk) you aim to calculate the corrections <nk|\Sigma|nk>.
The number of bands entering in the sum-over-states in the GW calculations is %GbndRnge.
So including them for bands you are not interested in is a waste of time, you can reduce that number to the one forming the gaps for instance.
That's true. I thought to plot not only epsm1_00(q), but epsm1_00(omega, q) on a surface-plot - for curiosity. And this could be obtained by running yambo -o g -k hartree -V resp. Got it - and then, I have to specify the the non-periodic boundaries instead of the cylinder cutoff, because running this with the cutoff will lead to the breakdown of the spectrum, like described in the cutoff-discussion (that's why I asked about the em1d-file).
I'm not sure about that, I think that the eels with cutoff should be still well behaved, but not totally sure. If you do not include it you will not see the difference induced by the cutoff, as the NonPerDirs does not affect the coulombian interaction.


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/

User avatar
wachr
Posts: 32
Joined: Wed Sep 24, 2014 4:43 pm

Re: Screening for G0W0

Post by wachr » Sun May 10, 2015 7:00 pm

Dear Daniele,
Daniele Varsano wrote:
Careful, %QPkrange it is *NOT* a convergence parameter, but it indicates the bands/kpoints (nk) you aim to calculate the corrections <nk|\Sigma|nk>.
The number of bands entering in the sum-over-states in the GW calculations is %GbndRnge.
So including them for bands you are not interested in is a waste of time, you can reduce that number to the one forming the gaps for instance.
Thank you for the clarification!! (OK, now am aware of the note under the huge equation.) This helps a lot, I basically need only +/- 10 bands from the band gap, basically even less.
Daniele Varsano wrote: I'm not sure about that, I think that the eels with cutoff should be still well behaved, but not totally sure. If you do not include it you will not see the difference induced by the cutoff, as the NonPerDirs does not affect the coulombian interaction.
Well, we don't know either, so we are curious. As described in PRL 92, 077402, eps00^{-1}(q) looks quite different. And as this enters the BSE, this may have an impact.

Best regards,
Christian
Christian Wagner
Institute of Physics
Chemnitz University of Technology, Germany

User avatar
wachr
Posts: 32
Joined: Wed Sep 24, 2014 4:43 pm

Re: Screening for G0W0

Post by wachr » Tue May 12, 2015 10:14 pm

P.S. I just saw that CUTCylLen= 0.000000 per default, from analyzing my report-files. It is printed at the appendix of the file, so this fact should be fine.
Christian Wagner
Institute of Physics
Chemnitz University of Technology, Germany

Post Reply