[Q-e-developers] problem in DFT+U: muted U_projection_type

Paolo Giannozzi paolo.giannozzi at uniud.it
Thu May 25 10:55:40 CEST 2017


Oops ... I think I forgot that piece of code when I deleted "npw" as
global variable almost everywhere. The patch is perfect. If you commit
please also add a line in Doc/release-notes.

Paolo

On Thu, May 25, 2017 at 10:30 AM, Andrea Ferretti
<andrea.ferretti at nano.cnr.it> wrote:
>
> Dear All,
>
> while looking at some tests using DFT+U, Mike and I found an issue related
> to the input variable U_projection_type:
>
> in a situation where the overlap of U-atomic orbitals is quite large, we
> find no difference in the pw output when setting
>
> U_projection_type = "atomic"        # no orthonormalization
> U_projection_type = "ortho-atomic"  # orthogonalization and normaliz
> U_projection_type = "norm-atomic"   # no orthogonalization, just normaliz
>
> except for an output message saying that the variable was read consistenly.
>
> One can also see that the occupations on the Hubbard manifold sum to a
> number of electrons larger that the actual N, suggesting that the basis is
> either not orthogonal or not normalized or both.
>
> The problem is present since qe-6.0 (espresso 5.3.0 works fine with me)
>
> After a bit of investigation, we found that the problem is in
> PW/src/orthoatwfc.f90, where, in ortho_swfc
>
> npw is used from a module but apparently is not initialized (or init to 0)
> resulting in zero overlap matrix (collinear case) and basically leaving
> unchanged the atomic vectors which were to be orthogonalized/normalized.
> (it is also funny that pw.x, compiled with intel 12, didn't complain about a
> zero ovp while taking ovp^-1/2)
>
> ----
>
> the problem should be of little impact for reasonably localized (and
> normalized) d/f states, which do not change too much upon lowding ortho
> procedure, while more evident on p and s states (though luckily less
> relevant physically)
>
> ----
>
> In order to fix the problem we have slightly changed the interface of
> ortho_swfc passing npw explicitly (similarly yo what is done for init_us_2
> or calbec)
>
> attached the fixed version and a patch showing the changes.
>
> ortho_swfc is also used in a couple of other places (Xspectra and GIPAW),
> which need to be changed accordingly (not a big deal apparently)
>
> If there are no strong opinions against, I'll commit (the only other option
> I see is to pass the info via modules, which I don't like too much, getting
> the code flow more implicit and entangled)
>
> Take care
> Andrea
>
>
>
> --
> Andrea Ferretti, PhD
> S3 Center, Istituto Nanoscienze, CNR
> via Campi 213/A, 41125, Modena, Italy
> Tel: +39 059 2055322;  Skype: andrea_ferretti
> URL: http://www.nano.cnr.it
>
> _______________________________________________
> Q-e-developers mailing list
> Q-e-developers at qe-forge.org
> http://qe-forge.org/mailman/listinfo/q-e-developers
>



-- 
Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche,
Univ. Udine, via delle Scienze 208, 33100 Udine, Italy
Phone +39-0432-558216, fax +39-0432-558222



More information about the developers mailing list