[Pw_forum] Normalization of the atomic wave functions
Matteo Cococcioni
matteo at umn.edu
Fri Jul 20 17:13:21 CEST 2007
Dear Henning,
the problem you report is probably due to the fact that some pseudo
potentials contain non-normalized atomic
wave functions. while this doesn't have any effect on "normal" (non
LDA+U) because the normalization
of the Kohn-Sham orbitals is always imposed, in the case of LDA+U
calculation this may lead to meaningless
occupations like the ones you find. The problem is disappearing with the
generation of pseudo potentials with
normalized atomic wfcs. But few unnormalized ones are still around.
For the moment a quick fix would be to impose the normalization of
atomic wfc inside orthoatwfc.f90. Attached to this message
please find a modified version of this routine that is able to do this.
Be ware this has been obtained modifying the routin in the cvs code so
may be different from the one you are using now. To activate the
normalization of at wfc in the input file you should use:
U_projection=="norm-atomic". Please keep in mind this is a quick fix to
your problem. This normalization
probably introduces a dependence of the energy on the lattice parameters
that is not accounted for in the calculation of stresses.
If in "normal" (non problematic) LDA+U calculations give occupations
slightly bigger than 1 (e.g. 1.002) this is due to lack of
orthogonalization of the atomic wfc of one atomic sites with those
belonging to neighbor sites. It's probably not terribly important untill
it gets to bigger values (e.g. 1.5) as it may happen with extended
orbitals as Stefano de Gironcoli wrote.
Hope this helps,
Matteo
Henning Glawe wrote:
> On Wed, Jul 18, 2007 at 11:01:20AM +0200, degironc wrote:
>
>> The projection in LDA+U is however defined on the individual atoms (even
>> if technically bloch states are involved) and these
>> wfc are normalized.
>> hope this helps,
>>
>
> ok, in the pen-and-paper check this seems ok.
> The reason for my original question was: In my system (CaCuO2 in an
> 2D-AFM sqrt(2)*sqrt(2)*1 unit cell), when using atomic states as the
> projectors for the projectors, I am getting a lot of matrix elements of the
> occupation matrix significantly larger than 1 (between 4 and 5(!)).
>
> The Hubbard term in the total energy, as I understand from Matteo
> Cococcioni's thesis (and the meaning of the word 'occupation'), seems only
> well-defined as long as these matrix elements are between 0 and 1.
>
> Now I am trying to investigate where these occupation values are coming
> from and started by looking at the single scalar products <evc|satwfc> used
> in the calculation of the n. Finding out that already these values are too
> big (i.e. larger than 1) in my system, I tried to investigate the
> normalization of the atomic wave functions and checked also the
> known-working example of FeO.
>
> In the FeO example, the occupation matrix elements are also slightly bigger
> than 1 (1.002 in feo_standard.out), but I was thinking that this was related
> to numerical errors. Now I am asking myself (and the forum ;) ): is there any
> part in the formalism and/or code which restricts the occupation to the
> right regime i.e. 0..1 ?
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: orthoatwfc.f90
Type: text/x-fortran
Size: 6493 bytes
Desc: not available
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20070720/91663b75/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matteo.vcf
Type: text/x-vcard
Size: 294 bytes
Desc: not available
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20070720/91663b75/attachment.vcf>
More information about the users
mailing list