G0W0 @ HSE

Concerns issues with computing quasiparticle corrections to the DFT eigenvalues - i.e., the self-energy within the GW approximation (-g n), or considering the Hartree-Fock exchange only (-x)

Moderators: Daniele Varsano, andrea.ferretti, andrea marini, myrta gruning

G0W0 @ HSE

Postby mferri » Thu Mar 22, 2018 4:24 pm

Dear developers,

I would like to perform a G0W0 calculation on top of HSE06 eigenvalues and eigenfunctions.

I've checked some old topics in this forum (e.g.viewtopic.php?f=14&t=421), in which it was written that the DFT contribution has to be removed manually.
What I understood is that only the local part of the DFT exchange-correlation potential is calculated in < nk | Vxc | nk > and the non-local one shouid be subtracted by hand. Is it still so in the latest version of Yambo?

In a more recent topic, viewtopic.php?f=10&t=1090&start=10, it is stated that the missing [x,V_xc(HSE)] term could induce a small but negligible error in the screening at q=0.
Therefore, if the error in the Σx and Σc due the [x,V_xc(HSE)] is negligible, the only possible source of error is eventually the non-local < nk | Vxc | nk > ?

I've already performed some tests and the effect of G0W0 is to overestimate a gap that is already close to the experiment at the DFT-HSE level.

Thank you in advance.
Best,

Matteo
Matteo Ferri
PhD student in Condensed Matter at SISSA

Previously:
Master at Università degli Studi di Milano &
CNR, Istituto per la Microelettronica e Microsistemi - Sezione di Agrate Brianza
mferri
 
Posts: 17
Joined: Thu Nov 12, 2015 10:18 am

Re: G0W0 @ HSE

Postby Daniele Varsano » Thu Mar 22, 2018 6:33 pm

Dear Matteo,
yes the situation is what you say.
It is possible that for HSE the <Vxc> it is calcuataed by the libxc, you can have a try.
For sure it is something that at the best of my knowledge has not been tested so far, me personally I never tried.
You should recognize from the report if the wfs are correctly seen as HSE wfs and if the Vxc is calculated.

The [x,V_xc(HSE)] non local term for GW it is possible it is not so important, while for absorption it should be.
Code: Select all
the only possible source of error is eventually the non-local < nk | Vxc | nk > ?
...the effect of G0W0 is to overestimate a gap that is already close to the experiment at the DFT-HSE level

I would not say eventually, if you do not subtract it you end up with nonsense results as you are somehow double counting exchnage and correlation contribution,
so your gap it is highly overestimated beside of not being a consistent calculation.

Sorry, but to not be more useful than that.

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
Daniele Varsano
 
Posts: 1948
Joined: Tue Mar 17, 2009 2:23 pm

Re: G0W0 @ HSE

Postby mferri » Fri Mar 23, 2018 12:48 am

Dear Daniele,

thank you for your reply.
I checked the report of one calculation, attached to this post, and the wavefunctions and the energies are actually seen as HSE06.
Then the xc functional is calculated by LIBXC as you said.

Code: Select all
  Functional HSE06(XC)
  LIBXC used to calculate xc functional


So, in any case, I have to subtract the non-local contribution in order to have a reasonable result.
Thank you again.

Best,

Matteo
Matteo Ferri
PhD student in Condensed Matter at SISSA

Previously:
Master at Università degli Studi di Milano &
CNR, Istituto per la Microelettronica e Microsistemi - Sezione di Agrate Brianza
mferri
 
Posts: 17
Joined: Thu Nov 12, 2015 10:18 am

Re: G0W0 @ HSE

Postby Daniele Varsano » Fri Mar 23, 2018 9:51 am

Dear Matteo,
it seems that the libxc calculate the <Vxc> contribution, in this case yambo perform the subtraction.
Code: Select all
Eqp=Eks+Z(<sigma>-<Vxc>)

where sigma=
Code: Select all
Sigma_x+Sigma_c

This is reported in the report, something like:
Code: Select all
QP [eV] @ K [1] (iku): 0.00      0.00      0.00
   B=72 Eo= -0.67 E= -1.14 E-Eo= -0.46 Re(Z)=0.75 Im(Z)=-.1661E-2 nlXC=-25.60 lXC=-21.15 So= 3.836
   B=73 Eo=  1.51 E=  1.61 E-Eo=  0.10 Re(Z)=0.75 Im(Z)=-.1469E-2 nlXC=-19.64 lXC=-22.68 So=-2.894


Here:
Code: Select all
nlXC=Sigma_x
So=Sigma_c

and
Code: Select all
lXC=<Vxc>

Here it is called as local as it is thought for local functional.
Now as I wrote you above this has never been tested, so I do not know if it gives you reasonable results.

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
Daniele Varsano
 
Posts: 1948
Joined: Tue Mar 17, 2009 2:23 pm

Re: G0W0 @ HSE

Postby Davide Sangalli » Fri Mar 30, 2018 5:32 pm

Ciao Matteo,
we found the bug.

To fix it you should replace in io_DB1
Code: Select all
   variable_exist(ID,"EXX_FRACTION")

with
Code: Select all
(variable_exist(ID,"EXX_FRACTION").or.write_is_on(ID))


Same for the
Code: Select all
   variable_exist(ID,"EXX_SCREENING")


Also the
Code: Select all
else if (ver_is_gt_or_eq(ID,revision=3997)) then


should be replaced with
Code: Select all
endif
if (ver_is_gt_or_eq(ID,revision=3997)) then




Then you need to recompile p2y and reconvert the ndb from QE.

We will release the fix in the next patchlevel.

Best,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
http://www.ism.cnr.it/en/davide-sangalli-cv/
http://www.max-centre.eu/
User avatar
Davide Sangalli
 
Posts: 314
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy


Return to Self-Energy

Who is online

Users browsing this forum: No registered users and 1 guest

cron