[gpaw-users] questions and issues regarding bandgap calculation using GLLBSC functional

Jens Jørgen Mortensen jjmo at dtu.dk
Wed Jan 9 09:50:21 CET 2019


On 1/7/19 8:43 AM, Kuisma, Mikael via gpaw-users wrote:
>
> Hi!
>
>
> >I didn't go over theory of the GLLBSC functional, so I am treating it 
> as a black-box.
> I recommend that you do, there are some pitfalls using GLLBSC as a 
> black-box (for example, it does not have well defined total energy 
> i.e. forces are not well defined).
>
>
> >While I have checked that (for nonzero gaps) these two numbers 
> usually match (/gap=Eks/), sometimes they don't (and when they don't 
> they differ too much).
>
>
> Let's see. GLLBSC gets the value of the Kohn-Sham band gap directly 
> from wfs.get_homo_lumo(). So the question is, why does GPAW's 
> get_homo_lumo differ from ASE.
>
>
> I see wfs.get_homo_lumo() assumes an even number of electrons
>
>
>     n = self.nvalence // 2,
>
>
> and also it assumes that there are only full bands below fermi level. 
> This also explains the negative band gaps on metallic systems, as the 
> band gap is calculated for example as
>
> min( eps_kn[LUMO, :] ) - max( eps_kn[HOMO, :]) which is negative on 
> some metals.
>
>
> On the other hand, ASE's dft.bandgap directly sets bandgap to zero if 
> a band crosses Fermi level.
>
>
> Thanks for bringing this up! I think one should move to using 
> ase.bandgap for GPAW also instead of the assumptions done by 
> wfs.get_homo_lumo. Ask, Jens, what do you think?
>

I think that's a good idea.


Jens Jørgen


>
> BR,
> Mikael Kuisma
>
> Academy of Finland Post Doc
>
> Nanoscience Center
> Department of Chemistry
> University of Jyväskylä
> P.O. Box 35
> FIN-40014 University of Jyväskylä
> Finland
>
> E-mail: mikael.j.kuisma (at) jyu.fi
> Phone: +358 40 077 4114
>
> https://scholar.google.se/citations?user=w0eP9esAAAAJ
>
> Visiting address: NSC, 3rd floor, YN320
>
>
> ------------------------------------------------------------------------
> *Lähettäjä:* gpaw-users-bounces at listserv.fysik.dtu.dk 
> <gpaw-users-bounces at listserv.fysik.dtu.dk> käyttäjän Amir Hajibabaei 
> via gpaw-users <gpaw-users at listserv.fysik.dtu.dk> puolesta
> *Lähetetty:* maanantai 7. tammikuuta 2019 7.04
> *Vastaanottaja:* gpaw-users at listserv.fysik.dtu.dk
> *Aihe:* [gpaw-users] questions and issues regarding bandgap 
> calculation using GLLBSC functional
> Dear all,
>
> I didn't go over theory of the GLLBSC functional, so I am treating it 
> as a black-box.
> I have done about ~1000 bandgap calculations using this functional in 
> GPAW and,
> now I am facing the problem of tossing the unreliable numbers .
>
> Consider this piece of code:/
> /
> /                    calc = GPAW(..., xc='GLLBSC',  ...)
> /
>                     atom.set_calculator(calc)
>                     atom.get_potential_energy()
> /                    gap, _, _ = ase.dft.bandgap.bandgap(calc)/
> /                    dir_gap, _, _ = 
> /ase.dft.bandgap.bandgap(calc,direct=True)//
> /                    response = calc.hamiltonian.xc.xcs['RESPONSE']
>                     response.calculate_delta_xc()
>                     EKs, Dxc = response.calculate_delta_xc_perturbation()
>
> /
> I have three questions:
>
> First, ideally the numbers /"gap"/ and/"Eks"/  should be equal, right?
> //
> While I have checked that (for nonzero gaps) these two numbers usually 
> match (/gap=Eks/), sometimes they don't (and when they don't they 
> differ too much).
> Should I treat such cases as convergence issue with GPAW or is it 
> allowed to happen?
>
> Second, if the /"gap"/ returned by the ase.dft.bandgap module is zero 
> does that mean that I can skip the rest of the lines and just set 
> /Eks=0 /and /Dxc=0/?
>
> Third, what is the recipe for calculation of the direct bandgap with 
> GLLBSC?
> Is the following correct (considering variable in the code)?
> /gllbsc_dir_gap = dir_gap + Dxc
> /
>
>
> I also have two issues which I think may be bugs in GPAW:
>
> First, why GPAW never returns EKs=0 ?!
> Clearly many crystals will have zero bandgap, but the GLLBSC 
> implemented in GPAW hates the number zero.
>
> Second, why does GPAW returns negative numbers (by no means small) for 
> EKS and Dxc so frequently?
>
> //
> Best,
> Amir Hajibabaei
> /
> /
>
>
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20190109/7e6719eb/attachment.html>


More information about the gpaw-users mailing list