Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?


Chronological Thread 
  • From: Fabien Bruneval <fabien.bruneval@polytechnique.fr>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?
  • Date: Fri, 23 Mar 2007 10:19:03 +0100

Hi Deyu!

This is subtle a point, but abinit code is right (as always?!).
Let me explain what the code does:

You want to calculate terms such as < v | r | c >, where v stands for valence wavefunctions, c for conduction wfs and where r is the position operator.
The r operator is not periodic, but the bra and ket are. So the easiest way out is to use the trick:

< v | r | c > = < v | [ H , r ] | c > / (E_v - E_c).

Therefore, the energies in the denominator are the one corresponding to the Hamiltonian that you have introduced. So far, this Hamiltonian can be anything, it just needs to have the periodicity of the crystal.

In practice, we have chosen the Hamiltonian that corresponds to the wavefunctions in the bra and the ket and, as a consequence, the energies should be consistent with this choice.

To summarize, when you use KS wavefunctions, like in G0W0, scissor+G0W0, self-consistent GW on the energies-only, the code is perfectly consistent and you should not change the energies in the denominator!

I have to confess that there is a small inconsistency, when one performs self-consistent GW calculation on the wavefunctions, because we still use the commutator of the KS Hamiltonian and not the one of the GW Hamiltonian. This "approximation" is pretty harmless, since the effect of the commutator is really small in bulk systems. For nanostructures, this may require some fix...

If you want a reference on the commutator trick, you can find it in Baroni and Resta, Phys. Rev. B 33, 7017-7021 (1986).

Bye.

Fabien





deyulu@yahoo.com wrote:
Hello, abinit users:
I think there is a bug in the source code cchi0q0.F90.
When computing polarizability chi0 at long wave length limit (q->0), the code uses the quasi-particle energies instead of KS orbital energies.
The quasi-particle energies could be simply KS orbital energies plus a scissor operator or the output from a previous GW calculation.
In the calculation of the G=0 component using perturbation theory, however,
KS orbital energies are used. In order to fix this bug, one should change:

rhotwx(:)=-rhotwx(:)/ediff

to

rhotwx(:)=-rhotwx(:)/egwdiff


Best
Deyu

***************************************************************************
Deyu Lu (Ph.D)

190 Chemistry Building
University of California, Davis One Shields Avenue
Davis, CA 95616
Office phone: (530) 754-9663
Group Webpage: http://angstrom.ucdavis.edu/

***************************************************************************





Archive powered by MHonArc 2.6.16.

Top of Page