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

Paolo Giannozzi p.giannozzi at gmail.com
Thu May 25 11:02:13 CEST 2017


By the way: variable U_projection_type is never tested anywhere. With
a test this wouldn't have happened (or wouldn't have gone unnoticed
for so long)

Paolo

On Thu, May 25, 2017 at 10:55 AM, Paolo Giannozzi
<paolo.giannozzi at uniud.it> wrote:
> 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



-- 
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