[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