Page 1 of 1

Possible bug when running DFT+U calculations

PostPosted: Tue Jul 02, 2019 7:09 pm
by kalkm1
Dear developers,

I am trying to make some calculations with CdTe. The DFT+U method is commonly used in the literature to correct for the localised Cd d-electrons. Therefore, I have attempted to do the same thing within Abinit by adding a Hubbard potential U to the Cd 4d electrons. I am using the latest PAW datasets for Cd (12 valence electrons: 4d, 5s) and Te (6 valence electrons: 5s, 5p) found in the JTH PAW atomic datasets table (

However, whenever running a calculation, I receive the following warning in the logged output every time:
Code: Select all
src_file: m_invars1.F90
src_line: 1904
message: |
    usedmft and usepawu are both activated
    This is not an usual calculation:
    usepawu will be put to a value >= 10:
    LDA+U potential and energy will be put to zero

and this despite a DMFT calculation not being activated. In fact, I explicitly set usedmft to 0 to insure that it is not activated. See my .in input file below:
Code: Select all
# Crystalline cadmium-telluride: computation of the total energy(Hartee or eV)

# 1. Define physical system

#Definition of the unit cell (Bohr)
acell 3*12.139074253
rprim  0.0  0.5  0.5   # The primitive vectors for an FCC lattic
       0.5  0.0  0.5   
       0.5  0.5  0.0   

#Definition of the atom types
ntypat 2          # There is only one type of atom
znucl 48 52       # The keyword "znucl" refers to the atomic number of the
                  # possible type(s) of atom. The pseudopotential(s)
                  # mentioned in the "files" file must correspond
                  # to the type(s) of atom.                         

#Definition of the atoms
natom 2           # There are two atoms in the unit cell
typat 1 2         # 1 Cd and 1 Te
xred              # CdTe is also a Zinc-blende diamond structure
0 0 0
0.25 0.25 0.25

# 2. Calculation parameters: cut-off energy, nbands and k-grid
nband 19          # Take twice the number of filled bands i.e. 2 e's per band

kptopt 1          # Option for the automatic generation of k points, taking
                  # into account the symmetry       
nsym 0
occopt 1 
nshiftk 4         # of the reciprocal space (that form a BCC lattice !),
                  # repeated four times, with different shifts:
shiftk 0.5 0.5 0.5
       0.5 0.0 0.0
       0.0 0.5 0.0
       0.0 0.0 0.5
                  # In cartesian coordinates, this grid is simple cubic, and
                  # actually corresponds to the
                  # so-called 4x4x4 Monkhorst-Pack grid

# Converged parameters
ngkpt 8 8 8
pawecutdg 25
ecutsm 0.5
ecut 15

# DFT-U term
usedmft 0
usepawu   1
lpawu   2 -1
upawu 5.0 0.0 eV
jpawu  0.1 0.0 eV

# 3. Calculation parameters: self-consistent field loop

#Definition of the SCF procedure
nstep 30          # Maximal number of SCF cycles
tolvrs 1.0d-10    # tolerance used in PAW1 tutorial; for potential residual
#diemac 12.0       # Although this is not mandatory, it is often advantageous
                  # to precondition the SCF cycle. Here we follow the 
                  # prescription for bulk silicon.

# 4. output
prteig 0
prtwf 0
prtden 1

I should mention, I only began getting this warning when I upgraded my version of Abinit from 8.0.8 to 8.10.2.

Nevertheless, curiously, although the warning claims that the U potential will be set to 0 and that usepawu is set to >=10 (no idea what a value of >=10 means or does as the variable description for usepawu only describes the values 0, 1 and 2), in reality the U potential does not seem to be set to 0 (nor usepawu to >=10) as different U values still have an effect on the lattice parameter, band gap and bulk modulus. That is, when the Full localised limit (FLL) double-counting correction term is used. On the other hand, when using the Around mean field (AMF) double-counting correction term, there is indeed no significant effect of the U potential on the investigated parameters - lattice parameter, band gap, bulk modulus. See the attached figure below for a comparison of when using FLL versus AMF on the parameters as a function of U.
FLL vs AMF: as a function of U

Furthermore, when looking at the DOS - in the case of when using FLL, the Cd 4d electron states shift as is expected. However, when using AMF, the DOS are not effected regardless of which U potential is being used.

Therefore, it seems to me that the warning message is sent regardless of if the FLL or AMF double-counting correction term is used, but that in the case of FLL nothing actually changes. However, in the case of AMF, it seems that the U potential is in fact set to 0.

I should mention that I was getting exactly the same results when using Abinit version 8.0.8, the only difference when switching to version 8.10.2 was that the warning message started appearing. Furthermore, I have done the same test with ZnO and it showed the same results in that when using FLL the U potential made a difference, but with AMF U does nothing.

Is this possibly a bug or am I missing something?



Re: Possible bug when running DFT+U calculations

PostPosted: Fri Jul 12, 2019 4:34 pm
by ebousquet
Dear kalkm1,
The error message with dmft is indeed a bug, and this should have been corrected in the latest version...
For the problem of AMF, I've asked the developer to respond to that, lets see. Otherwise, U of FLL with J=0 should be very similar to AMF.
Best wishes,

Re: Possible bug when running DFT+U calculations

PostPosted: Mon Jul 15, 2019 3:45 pm
by amadon
Dear kalkm1,

Thank you for your message. Indeed the warning is a bug and will not appear in the next version of ABINIT.

Concerning the calculation with FLL wrt to AMF:
To check that U is not zero in the AMF, you should look to the log file and look for DFT+U energies.

I am not used to DFT+U for such systems.
However, it might be that as the d shell is filled (in CdTe and ZnO), all occupations are equal and thus DFT+U/AMF potential, in this case, is very weak (it is what the formulas of AMF suggest, see e.g. Phys. Rev. B 77, 155104 ), whereas FLL DFT+U potential is large. You should have a different behavior for systems in which the d shell is not completely filled (such as NiO). Did you check any other systems than CdTe and ZnO ?

Best regards