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 15:00:16 +0100
Actually Matteo, the implementation of the correct commutator for self-consistent GW could be done in the following way:
First, calculate the commutator on the KS basis set (as usual)
and then, rotate them using the unitary matrix that transforms KS wavefunctions into GW wavefunctions.
By now, we are doing the opposite: we rotate first the wavefunctions KS->GW and then we calculate the commutator, which is approximately right for these wavefunctions.
But I did not feel the need to implement it for all the systems I studied so far.
fabien
Matteo Giantomassi wrote:
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/
***************************************************************************
- 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.