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: Matteo Giantomassi <gmatteo@pcpm.ucl.ac.be>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?
  • Date: Fri, 23 Mar 2007 13:28:49 +0100

On Fri, 2007-03-23 at 10:19 +0100, Fabien Bruneval wrote:

> 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...

Dear all,

I agree with Fabien: it is true that in case of an update of the
wavefunctions in \Chi_0, the treatment is not perfectly consistent since
the code uses quasiparticle energies but without taking into account the
commutator of \Sigma with the position operator x (strictly speacking
one should consider also \Sigma^*, if I'm not wrong).
Anyway using the commutator of the KS hamiltonian should be a good
approximation if the quasiparticle amplitudes are almost equal to the KS
wavefunctions.
Maybe in more problematic systems where the self-energy operator is not
diagonal in the KS basis set, one should use the commutator of \Sigma
with x, but the implementation is not so straightforward. What do you
think?

Best regards
Matteo

> 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