Hubbard Input
Hubbard Input
Contents
1 History 1
5 Pseudopotentials 16
6 Noncollinear DFT+Hubbard 16
1 History
Density-functional theory (DFT) with the on-site Hubbard U correction (DFT+U ) was im-
plemented in Quantum ESPRESSO since the early days of the Quantum ESPRESSO
project (early 2000’s). In the literature, this method used to be called (and still often is)
as “LDA+U ”, since in the original paper that first introduced this method the local density
approximation (LDA) for the exchange-correlation functional was used [1]. However, other
functionals other than LDA can be used with the Hubbard correction, and hence we obtain
e.g. GGA+U , SCAN+U , etc. Therefore, it might be confusing to continue using the old name
“LDA+U ”. Instead, for the sake of generality it is better to use a generic name “DFT+U ” and
then specify which functional is used.
In 1995 Liechtenstein and coworkers introduced a formulation of the Hubbard-corrected
DFT that includes not only the Hubbard U correction but also the Hund J correction [2].
Sometimes in is called in the literature as DFT+U +J. Within this formulation it is possible
to set J = 0 and thus obtain DFT+U .
1
In 1998 Dudarev and coworkers introduced the rotationally invariant (“simplified”) formu-
lation of DFT+U [3]. In this formulation, instead of having U and J individually we have just
one effective parameter: Ueff = U − J (and often the subscript eff is dropped).
In 2011 Himmetoglu and coworkers introduced an extension of the Dudarev’s DFT+U
to take into account J in a simplified manner [4]. In order to distinguish from J in the
Liechtenstein’s DFT+U +J, here we use the name “J0 ”. This DFT+U +J0 formulation is not
yet a well-established method and it is an active field of research (see e.g. Refs. [5, 6]).
One year earlier, in 2010 Campto Jr and Cococcioni extended Dudarev’s formulation of
DFT+U to include inter-site Hubbard V interactions [12]. This is known as the DFT+U +V
approach.
All the aforementioned methods are implemented in the official Quantum ESPRESSO
7.3.1.
lda plus u
Hubbard U
Hubbard J
Hubbard J0
Hubbard V
U projection type
Moreover, the Hubbard manifold and the initial atomic occupations were hard-coded in
Modules/set hubbard l.f90 and PW/src/tabd.f90. The data in these routines was far from
being complete. So the user had to modify these routines each time when there were missing
chemical elements and recompile the code. Of course, this was not user friendly especially
when Quantum ESPRESSO was already compiled on some clusters and the user had to ask
system administrators to recompile the code to adapt it to user’s needs.
In addition, the name lda plus u refers to the old name “LDA+U ”, which is mentioned in
Sec. 1. So this was confusing if e.g. the user want to use GGA (so actually doing GGA+U and
not LDA+U ). The name U projection type again refers to U , but what if we use also J or
V ? So it makes sense to get rid of “U” in the naming and use a generic term “Hubbard” that
covers all cases (DFT+U , DFT+U +J, DFT+U +V , etc.).
A subgroup of Quantum ESPRESSO developers came up with the idea to try and im-
prove the input syntax in the DFT+Hubbard codes to make it more user-friendly. This new
DFT+Hubbard input syntax replaces the old one starting from Quantum ESPRESSO 7.3.1.
2
3 New DFT+Hubbard input
In this section we present the new DFT+Hubbard input syntax that replaces the old one
starting from Quantum ESPRESSO 7.3.1. Let us give examples for different flavors of
DFT+Hubbard.
In the past, to use this case the user had to specify in the pw.x input file e.g. the following:
&system
...
lda_plus_u = .true.
lda_plus_u_kind = 0
U_projection_type = ’ortho-atomic’
Hubbard_U(1) = 5.0
Hubbard_U(2) = 6.0
/
Below is the example of the new input syntax of DFT+U (Dudarev’s formulation) for Ni2MnGa:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
3
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
U Ni-3d 6.0
Note that in the example above we do not specify any parameters related to DFT+U in the
system namelist (contrary to what was done in the past). All Hubbard-related parameters are
now specified in the new card called “HUBBARD”. The user has to specify the type of the
Hubbard projectors that will be used in DFT+U . This is done by writing the type of projectors
on the same line where the HUBBARD card name appears. In the past the type of Hubbard
projectors was specified using the input keyword U projection type, which is no longer used.
And now it is not needed to specify lda plus u=.true.
The possible options for Hubbard projectors are: atomic, ortho-atomic, norm-atomic, wf,
and pseudo. There is no default for Hubbard projectors, i.e. the user must specify it. Please
see /Doc/INPUT PW.txt for the description of these options. The most frequently used types
of projectors are atomic and ortho-atomic. It is recommended use ortho-atomic whenever
possible. The advantage of ortho-atomic over atomic is that the Hubbard corrections are
applied only once in the former case, while in the latter case they are applied twice in the
orbital overlap regions. So generally ortho-atomic Hubbard projectors give more accurate
results (e.g. atomic occupations) that those obtained using the atomic Hubbard projectors. If
you are interested to learn more about the Hubbard projectors you are invited to check e.g.
Refs. [13, 14].
In the example above, we specified the Hubbard U values of 5.0 and 6.0 eV for Mn-3d and
Ni-3d states, respectively. Here, 3d are the Hubbard manifolds. Previously these manifolds were
tabulated and hard-coded in the routines Modules/set hubbard l.f90. Now these manifolds
must be specified in the HUBBARD card for each chemical element. The initial occupations of
these manifolds were previously tabulated and hard-coded in PW/src/tabd.f90, but now the
initial occupations are read from the pseudopotentials. If the user is not happy with this default
behavior of the code, then it is possible to overwrite these initial occupations by specifying them
in the input file in the system namelist using a new keyword Hubbard occ(ityp,i), where ityp
is the atomic type number (see ATOMIC SPECIES), and i runs from 1 to 3 (because there can
be up to 3 Hubbard manifolds per one atomic type - see more below). The example is given
below:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
4
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5,
Hubbard_occ(1,1) = 5.00
Hubbard_occ(2,1) = 8.00
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
U Ni-3d 6.0
Some pseudopotentials are generated in the ionized state (this is not the case here), and the
occupations of e.g. 3d shell in these pseudopotentials can be different from what is expected
in a neutral atom. In this case it might be useful to use the keyword Hubbard occ(ityp,i)
as shown above. Note that in magnetic systems there are many local minima and the DFT+U
calculation can converge to different ground states depending on the initial occupation of the
Hubbard manifold.
It is possible to specify 2 Hubbard channels/manifolds per atomic type, as shown in the
example below:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5
5
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
U Mn-3p 3.0
U Ni-3d 6.0
U Ni-4s 2.0
In this example we apply U = 5.0 eV to Mn-3d states and U = 3.0 eV to Mn-3p states, where
3d appears first in the list and hence this is the first Hubbard channel/manifold for Mn while
3p appears second and hence this is the second Hubbard channel/manifold for Mn. Similarly,
we apply U = 6.0 eV to Ni-3d states and U = 2.0 eV to Ni-4s states. It is important to remark
that when the user specifies the Hubbard manifolds he/she must make sure that these states
are present in the pseudopotentials that are used.
Moreover, it is possible to specify even 3 Hubbard channels/manifolds per atomic type.
However, in this case the 2nd and the 3rd Hubbard manifolds will be considered as one effective
manifold, and the same Hubbard U will be applied to this effective manifold. Please see the
example below:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5
/
&electrons
6
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
U Mn-3p-3s 3.0
U Ni-3d 6.0
U Ni-4s 2.0
In this example we apply U = 5.0 eV to Mn-3d states (1st Hubbard manifold) and U = 3.0 eV
to Mn-3p and Mn-3s states (2nd and 3rd Hubbard manifolds that are considered as one effective
manifold). For Ni it is the same as in the previous example.
It is possible to specify the initial occupations of all Hubbard manifolds of each atomic type
from the input. This will overwrite the occupations that are read by default from the pseu-
dopotentials. The example is shown below:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5,
Hubbard_occ(1,1) = 5.00
Hubbard_occ(1,2) = 6.00
Hubbard_occ(1,3) = 2.00
Hubbard_occ(2,1) = 8.00
Hubbard_occ(2,2) = 2.00
/
&electrons
7
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
U Mn-3p-3s 3.0
U Ni-3d 6.0
U Ni-4s 2.0
In this example, Hubbard occ(1,1) corresponds to the occupations of Mn-3d states,
Hubbard occ(1,2) corresponds to the occupations of Mn-3p states, and
Hubbard occ(1,3) corresponds to the occupations of Mn-3s states. Similarly,
Hubbard occ(2,1) corresponds to the occupations of Ni-3d states, and
Hubbard occ(2,2) corresponds to the occupations of Ni-4s states.
8
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
J0 Mn-3d 1.0
U Ni-3d 6.0
J0 Ni-3d 1.2
In the example above we apply Hubbard U = 5.0 eV and Hund J0 = 1.0 eV to Mn-3d states,
and Hubbard U = 6.0 eV and Hund J0 = 1.2 eV to Ni-3d states. In the past, J0 was specifed
using the parameter Hubbard J0 in the system namelist. Note that J0 currently can be used
only for one Hubbard channel.
The code reads all lines in the HUBBARD card until the end of file is reached or until the next
card is found in the input.
Finally, note that currently the Dudarev’s DFT+U is not implemented for the noncollinear
spin-polarized case. However, Liechtenstein’s DFT+U supports the noncollinear spin-polarized
case, and so if you use this case then the code will automatically switch to the Liechtenstein’s
DFT+U .
In the past, to use this case the user had to specify in the pw.x input file e.g. the following:
&system
...
lda_plus_u = .true.
lda_plus_u_kind = 1
U_projection_type = ’ortho-atomic’
Hubbard_U(1) = 5.0
Hubbard_J(1,1) = 1.0
Hubbard_J(2,1) = 1.1
Hubbard_U(2) = 6.0
Hubbard_J(1,2) = 1.2
Hubbard_J(2,2) = 1.3
/
9
The meaning of Hubbard J(i,ityp) was the following (i runs from 1 to 3, and ityp is the
atomic type):
For p orbitals: J = Hubbard J(1,ityp);
Where these name conventions come from? There are many possible choices how to parametrize
Hubbard interactions: i) Slater integrals F 0 , F 2 , F 4 , ..., ii) standard Racah parameters A, B,
C, D, ..., iii) another set of Racah parameters E 0 , ..., E 3 , iv) more physical choice U and J plus
other missing like B for the d shell or E 2 and E 3 for the f shell. In Quantum ESPRESSO
the latter notation is used. Check the following references for further reading [2, 7, 8, 9, 10, 11].
Below is the example of the new input syntax of DFT+U +J (Liechtenstein’s formulation) for
Ni2MnGa:
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’Ni2MnGa’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 7, celldm(1) = 7.80, celldm(3) = 1.4142136,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0, nspin = 2,
occupations =’smearing’, smearing =’mv’, degauss = 0.01,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = 0.5
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Mn 54.938 Mn.pbesol-spn-rrkjus_psl.0.3.1.UPF
Ni 58.693 Ni.pbesol-n-rrkjus_psl.0.1.UPF
Ga 69.723 Ga.pbesol-dn-rrkjus_psl.0.2.UPF
ATOMIC_POSITIONS (crystal)
Mn 0.0000000000 0.0000000000 0.0000000000
Ni 0.5000000000 0.7500000000 0.2500000000
Ni 0.5000000000 0.2500000000 0.7500000000
Ga 0.0000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
10
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Mn-3d 5.0
J Mn-3d 1.0
B Mn-3d 1.1
U Ni-3d 6.0
J Ni-3d 1.2
B Ni-3d 1.3
If you want to use DFT+U in the Liechtenstein’s formulation (without J) then you still need
to specify some very small value of J (e.g. 1.d-12) so that the automatic algorithm decides
that this is the Liechtenstein’s formulation. If J is not present in the HUBBARD card then the
code will automatically assume that this is DFT+U in the Dudarev’s formulation.
In the past, to use this case the user had to specify in the pw.x input file e.g. the following:
&system
...
lda_plus_u = .true.
lda_plus_u_kind = 2
U_projection_type = ’ortho-atomic’
Hubbard_V(1,1,1) = 7.70
Hubbard_V(1,19,1) = 0.75
Hubbard_V(1,46,1) = 0.75
Hubbard_V(1,43,1) = 0.75
Hubbard_V(1,54,1) = 0.75
Hubbard_V(1,11,1) = 0.75
Hubbard_V(1,22,1) = 0.75
/
The meaning of Hubbard V(na,nb,k), where na and nb label atoms as they are specified in
the ATOMIC POSITIONS card (not in the ATOMIC SPECIES card!), and k controls the “interac-
tion type”. When na=nb, Hubbard V(na,na,k) corresponds to Hubbard U(ityp(na)), where
ityp(na) is the atomic type of atom na. The index k could take the following values:
k=2: interaction between standard (on na) and background (on nb) orbitals;
k=4: interaction between background (on na) and standard (on nb) orbitals.
11
Standard orbitals correspond to the main Hubbard channel (e.g. d electrons in transition met-
als) and background orbitals correspond to the secondary Hubbard channel (e.g. p electrons in
transition metals).
The second index of Hubbard V(na,nb,k) (i.e. the index nb) corresponds to atoms that are
neighbors to atom na. You can notice that nb can take quite large values (even larger than
the total number of atoms in the simulation cell). This is so because we are using periodic
boundary conditions and hence some neighbors fall outside of our simulation cell. For this rea-
son, the code generates virtual cells around our real cells. This way we can find all neighbors.
In practice, this is achieved by constructing a virtual 3 × 3 × 3 supercell and by replicating
atoms. This is why the indices of neighboring atoms are so strange. If you are interested how
these indices are generated, please check the subroutine PW/src/intersiteV.f90. A priori, it
is not obvious how to find the indices of neighbors. For this reason you can use the hp.x code
of Quantum ESPRESSO that will determine the values of U and V and the indices of couples.
In the new input, the same logic holds but the input syntax has changed. Below is the example
of the new input syntax of DFT+U +V (Dudarev’s formulation) for LiCoO2 :
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’LiCoO2’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 5, celldm(1) = 9.3705, celldm(4) = 0.83874,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Co 59.0 Co.pbesol-spn-rrkjus_psl.0.3.1.UPF
O 16.0 O.pbesol-n-rrkjus_psl.0.1.UPF
Li 7.0 Li.pbesol-s-rrkjus_psl.0.2.1.UPF
ATOMIC_POSITIONS (crystal)
Co 0.0000000000 0.0000000000 0.0000000000
O 0.2604885000 0.2604885000 0.2604885000
O 0.7395115000 0.7395115000 0.7395115000
Li 0.5000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
U Co-3d 7.70
V Co-3d O-2p 1 19 0.75
12
V Co-3d O-2p 1 46 0.75
V Co-3d O-2p 1 43 0.75
V Co-3d O-2p 1 54 0.75
V Co-3d O-2p 1 11 0.75
V Co-3d O-2p 1 22 0.75
In this case, the code will detect U and V parameters in the HUBBARD card, and so the code
will consider this as being a DFT+U +V calculation. The first line in the HUBBARD card corre-
sponds to the on-site Hubbard U parameter that is used for Co-3d states, and the value of this
parameter is 7.70 eV. Note that the equivalent allowed syntax for this first line is the following:
V Co-3d Co-3d 1 1 7.70
All the other lines in the HUBBARD card above correspond to the inter-site Hubbard V param-
eters between Co-3d and O-2p states. Why do we have 6 of them? Because in LiCoO2 each
Co atom has 6 nearest neighbors (octahedral coordination geometry for Co atoms). In this
example, all 6 O atoms are at the same distance from Co, so the value of V parameters are all
equal to 0.75 eV. but in general, there might be complex distortion of the structure, and hence
there might be different Co-O distances and hence the values of V parameters will be somewhat
different. The indices that appear in the 4th and 5th columns of the V entries correspond to
the na and nb indices of the arrays Hubbard V(na,nb,k) that are still used internally in the
pw.x code. If we have just one occurrence of V for a given couple of indices na and nb, then this
will be attributed to k=1, i.e. the so-called “standard-standard” interaction. In this example,
the “standard-standard” interaction means that we take into account the interaction between
Co-3d and O-2p states.
Below we give a more advanced example that shows how to take into account also other types
of inter-site interactions.
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’LiCoO2’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 5, celldm(1) = 9.3705, celldm(4) = 0.83874,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0
/
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Co 59.0 Co.pbesol-spn-rrkjus_psl.0.3.1.UPF
O 16.0 O.pbesol-n-rrkjus_psl.0.1.UPF
Li 7.0 Li.pbesol-s-rrkjus_psl.0.2.1.UPF
ATOMIC_POSITIONS (crystal)
13
Co 0.0000000000 0.0000000000 0.0000000000
O 0.2604885000 0.2604885000 0.2604885000
O 0.7395115000 0.7395115000 0.7395115000
Li 0.5000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
V Co-3d Co-3d 1 1 7.70
V Co-3d Co-3p 1 1 1.00
V Co-3p Co-3p 1 1 2.00
V Co-3p Co-3d 1 1 1.00
V Co-3d O-2p 1 19 0.75
V Co-3d O-2s 1 19 0.60
V Co-3p O-2s 1 19 0.50
V Co-3p O-2p 1 19 0.60
...
In this example, we have specified 4 types of interactions per couple. Note that in this exam-
ple we replaced U for Co-3d states using V, as was discussed above (“standard-standard”, i.e.
k=1). In red and blue we highlight two groups of couples. In red we show the first group that
describes 4 types of interactions for the Co atoms. The first line in the red block corresponds
to the on-site U value for Co-3d states. The second line in the red block corresponds to the on-
site interaction between Co-3d and Co-3p states (“standard-background”, i.e. k=2), the third
line in the red block corresponds to the on-site interaction between Co-3p and Co-3p states
(“background-background”, i.e. k=3), and the fourth line in the red block corresponds to the
on-site interaction between Co-3p and Co-3d states (“background-standard”, i.e. k=4). Note
that second and the fourth lines in the red block describe the same thing, so it is ok to drop the
fourth line. Important notice: It is obligatory to keep the order of entries as shown in the
example above: 1) standard-standard, 2) standard-background, 3) background-background, 4)
background-standard. If you do not respect this order then the code will complain and stop.
The second block above (shown in blue) has the same logic as the one we presented above
for the red block. The only difference is that in the blue block we describe various types of
interactions centered on different atoms (thus inter-site, not on-site).
To make things even more complicated, it is possible to specify two Hubbard manifolds in the
“background” channel. The example is shown below.
&control
calculation=’scf’
restart_mode=’from_scratch’,
prefix=’LiCoO2’
pseudo_dir = ’../pseudo’
outdir=’./tmp’
/
&system
ibrav = 5, celldm(1) = 9.3705, celldm(4) = 0.83874,
nat = 4, ntyp = 3, ecutwfc = 50.0, ecutrho = 400.0
/
14
&electrons
conv_thr = 1.d-10
mixing_beta = 0.7
/
ATOMIC_SPECIES
Co 59.0 Co.pbesol-spn-rrkjus_psl.0.3.1.UPF
O 16.0 O.pbesol-n-rrkjus_psl.0.1.UPF
Li 7.0 Li.pbesol-s-rrkjus_psl.0.2.1.UPF
ATOMIC_POSITIONS (crystal)
Co 0.0000000000 0.0000000000 0.0000000000
O 0.2604885000 0.2604885000 0.2604885000
O 0.7395115000 0.7395115000 0.7395115000
Li 0.5000000000 0.5000000000 0.5000000000
K_POINTS (automatic)
4 4 4 0 0 0
HUBBARD (ortho-atomic)
V Co-3d Co-3d 1 1 7.70
V Co-3d Co-3p-3s 1 1 1.00
V Co-3p-3s Co-3p-3s 1 1 2.00
V Co-3p-3s Co-3d 1 1 1.00
V Co-3d O-2p 1 19 0.75
V Co-3d O-2s-1s 1 19 0.60
V Co-3p-3s O-2s-1s 1 19 0.50
V Co-3p-3s O-2p 1 19 0.60
...
Note that pseudopotentials for O do not include 1s states. So the example above is just to
show that if you have other elements instead of O and there are more deeper-lying states you
may include them in the “background” channel. As before, it is possible to control the initial
occupations of all these Hubbard manifolds using the keyword Hubbard occ (i.e. if you are not
happy with the initial occupations that are read from pseudopotentials).
Hubbard parameters U and V can be computed using the hp.x code of Quantum ESPRESSO.
However, the hp.x currently supports the calculations of U and V for one Hubbard channel
per atomic type. In other words, the advanced features presented above (i.e. cross-manifold
interactions) are currently not implemented in hp.x.
15
relative U parameters, are not transferable and one should not consider U as a universal number
for a given element or material (see the appendix in Ref. [15]). There are other types of Hubbard
projector functions (e.g. truncated atomic orbitals (Abinit), PAW projectors (VASP), etc.),
and the value of U depends on which type of projector functions are used. Therefore, in general
it is not correct to take U from the literature and use it for your DFT+U calculations without
paying attention to what pseudopotentials were used, which Hubbard projector functions, etc.
During the past 30 years there has been a large effort to develop methods for the first-
principles calculation of U . Among these, the constrained DFT (cDFT) approach, the Hartree-
Fock-based approaches, and the constrained random phase approximation (cRPA) approach
are the most popular. A linear-response formulation of cDFT (LR-cDFT) was introduced in
Ref. [16] and generalized to the calculation of the inter-site Hubbard parameters V in Ref. [12].
Calculation of U and V using LR-cDFT can be done using the pw.x code (see Hubbard alpha
in the pw.x documentation). However, this method requires using supercells which makes
LR-cDFT computationally expensive. Moreover, the postprocessing of the data requires writ-
ing some small programs and/or scripts. Recently, LR-cDFT has been recast via density-
functional perturbation theory (DFPT) [17, 18], allowing us to overcome several challenges of
the supercell approach of Ref. [16]. In fact, by constructing the response of the system to
a localized perturbation through a series of independent monochromatic perturbations to the
primitive unit cell (rather than from finite-differences between calculations in supercells as in
LR-cDFT), it improves significantly the computational efficiency, accuracy, user-friendliness,
and automation. Key to this is indeed the capability to express perturbation theory in reciprocal
space [19, 20, 21]. It is important to mention that the present formulation (be it in a LR-cDFT
or DFPT implementation) aims to correct the over-delocalization and over-hybridization of the
electrons in the localized Hubbard manifold; for this reason it is not appropriate to deal with
closed-shell systems, where the electrons are fully contained in the localized manifold [22].
The DFPT method for computing Hubbard parameters is implemented in the hp.x code
which is part of the Quantum ESPRESSO distribution. Check the examples in the HP
directory to get started. If you have any questions or problems, please read carefully the
posting guidelines [23] and ask your questions on the QE users forum ([email protected]
espresso.org).
5 Pseudopotentials
Since Quantum ESPRESSO 7.3.1, the DFT+U codes and its extensions require that pseu-
dopotentials not only contain the atomic orbitals but also the “label” for these orbitals. Most
of the pseudopotential libraries contain “labels” however some do not have them (e.g. pseu-
dopotentials genrated using the ATOMPAW code with versions older than 4.2.0.2):
http://users.wfu.edu/natalie/papers/pwpaw/man.html
It is possible to fix the pseudopotentials that do not contain the atomic “labels”. To do so,
one has to open the pseudopotential file and look for “PP CHI”. Then simply add the atomic
“label” at the end of the string, e.g. for Gd.GGA-PBESOL-paw.UPF we have
The orbital quantum number and the occupation of the corresponding level are reported (l=“0”
and occupation=“ 2.0000”) so it is easy to guess that this is the “S” orbital. In order to guess
what is the principal quantum number (n=”6” in this example) one has to check what is
16
the electronic structure for a given atom in the Periodic table and what atomic orbitals were
included in the valence region.
6 Noncollinear DFT+Hubbard
The Dudarev’s formulation of DFT+U and DFT+U +V has been extended to the noncollinear
framework [24] starting from Quantum ESPRESSO v7.3. This includes also the calculation
of Hubbard forces and Hubbard stresses by pw.x. Moreover, the calculation of Hubbard U
and V parameters using the HP code has been also extended to the noncollinear Dudarev’s
framework.
Therefore, now in Quantum ESPRESSO there are two noncollinear implementations of
DFT+U :
Dudarev’s framework (lda plus u kind=0)
References
[1] V.I. Anisimov, J. Zaanen, and O.K. Andersen, Band theory and Mott insulators: Hubbard
U instead of Stoner I, Phys. Rev. B. 44, 943 (1991).
[2] A.I. Liechtenstein, V.I. Anisimov, J. Zaanen, Density-functional theory and strong inter-
actions: Orbital ordering in Mott-Hubbard insulators, Phys. Rev. B 52, R5467 (1995).
[3] S.L. Dudarev, G.A. Botton, S.Y. Savrasov, C.J. Humphreys, A.P. Sutton, Electron-
energy-loss spectra and the structural stability of nickel oxide: An LSDA+U study, Phys.
Rev. B 57, 1505 (1998).
[5] A. Bajaj, J.P. Janet, and H.J. Kulik, Communication: Recovering the flat-plane condition
in electronic structure theory at semi-local DFT cost, J. Chem. Phys. 147, 191101 (2017).
[6] E.B. Linscott, D.J. Cole, M.C. Payne, and D.D. O’Regan, Role of spin in the calculation
of Hubbard U and Hund’s J parameters from first principles, Phys. Rev. B 98, 235157
(2018).
[7] G. Racah, Theory of Complex Spectra. I, Phys. Rev. 61, 186 (1942).
[8] G. Racah, Theory of Complex Spectra. II, Phys. Rev. 62, 438 (1942).
[9] G. Racah, Theory of Complex Spectra. III, Phys. Rev. 63, 367 (1943).
17
[10] G. Racah, Theory of Complex Spectra. IV, Phys. Rev. 76, 1352 (1949).
[11] J. Griffith, Book “The Theory of Transition Metal Ions”, Cambridge University Press
(1961).
[12] V.L. Campo Jr and M. Cococcioni, Extended DFT+U +V method with on-site and inter-
site electronic interactions, J. Phys.: Condens. Matter 22, 055602 (2010).
[13] Y.-C. Wang, Z.-H. Chen, and H. Jiang, The local projection in the density functional
theory plus U approach: A critical assessment, J. Chem. Phys. 144, 144106 (2016).
[15] H.J. Kulik and N. Marzari, A self-consistent Hubbard U density-functional theory ap-
proach to the addition-elemination reactions of hydrocarbons on bare FeO+ , J. Chem.
Phys. 129, 134314 (2008).
[21] S. Baroni, S. de Gironcoli, A. Dal Corso, and P. Giannozzi, Phonons and related crystal
properties from density-functional perturbation theory, Rev. Mod. Phys. 73, 515 (2001).
[22] K. Yu and E.A. Carter, Communication: Comparing ab initio methods of obtaining ef-
fective U parameters for closed-shell materials, J. Chem. Phys. 140, 121105 (2014).
[23] https://www.quantum-espresso.org/users-forum/
[24] L. Binci and N. Marzari, Noncollinear DFT+U and Hubbard parameters with fully rela-
tivistic ultrasoft pseudopotentials, Phys. Rev. B 108, 115157 (2023).
18