[Q-e-developers] problem with PAW + stess + Hubbard U
Davide Ceresoli
davide.ceresoli at istm.cnr.it
Mon Jan 20 14:38:02 CET 2014
Dear all,
I've got a problem with PAW + stress + Hubbard U. The problem
is in routine gen_at_dj:
iatw = 40 natw = 20
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error in routine gen_at_dj (1):
unexpected error
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I'm using Natalie Holzwarth PAW for Co, which has two l=2 projectors:
# grep "<PP_CHI" Co.GGA-PBE-paw.UPF
<PP_CHI.1 type="real" size=" 1041" l="0" occupation=" 2.0000" columns="3">
<PP_CHI.2 type="real" size=" 1041" l="0" occupation=" 2.0000" columns="3">
<PP_CHI.3 type="real" size=" 1041" l="1" occupation=" 6.0000" columns="3">
<PP_CHI.4 type="real" size=" 1041" l="1" occupation=" 0.0000" columns="3">
<PP_CHI.5 type="real" size=" 1041" l="2" occupation=" 7.0000" columns="3">
<PP_CHI.6 type="real" size=" 1041" l="2" occupation=" 0.0000" columns="3">
(I have 4 Co in the unit cell).
The problem is the following comparison in gen_at_dj:
if ( upf(nt)%oc(nb) >= 0.d0 .and. l == hubbard_l(nt) ) then
Is there a reason for using ">=" rather than ">"? This comparison can be
found in many other place. As far as I understand, if the occupation
of an atomic orbital is < 0.0, that orbital is ignored in: 1) atomic wfc
initialization 2) Lowdin projection 3) Hubbard U.
How about if the occupation is = 0.0? what should be the behavior of the
code?
In any case I can modify the UPF file and enter a negative occupation for
PP_CHI.6.
Best regards,
Davide
More information about the developers
mailing list