forum@abinit.org
Subject: The ABINIT Users Mailing List ( CLOSED )
List archive
- 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/
***************************************************************************
- a bug in GW code (cchi0q0.F90)?, deyulu, 03/22/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Fabien Bruneval, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Matteo Giantomassi, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Fabien Bruneval, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Matteo Giantomassi, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Fabien Bruneval, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Xavier Gonze, 03/24/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Matteo Giantomassi, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Fabien Bruneval, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Matteo Giantomassi, 03/23/2007
- Re: [abinit-forum] a bug in GW code (cchi0q0.F90)?, Fabien Bruneval, 03/23/2007
Archive powered by MHonArc 2.6.16.