3.19 Hubbard corrected DFT (DFT+U)

Standard semi-local DFT functionals like LDA or GGA suffer from improper self-interaction error (SIE) cancellation. As a results this functional utterly fail when it comes to the description of systems which are characterized by localized electron states. One specific approach cure for this drawback is to use hubbard corrected DFT also known as DFT+U or LDA+U. In this approach one adds a correction to the LDA or GGA Hamiltonian which is inspired by the Hubbard Model [147]. The correction allows to reduce the self-interaction error in systems, which are characterized by correlated states, significantly [13]. Its great strength lies in the simplicity of its corrective term and in the fact that its computational cost is only marginally higher compared to LDA or GGA. Thus, the ability to localize electrons and its computational efficiency make DFT+U to a suitable tool for studying systems in PBC supercell calculations [143].

In the following some of the main features of DFT+U, which are specific to the implementation in FHI-aims, are addressed.

Incorporation of the Hubbard model into the normal approximate DFT description leads to the following DFT+U energy functional:

EDFT+U[ρ(𝐫)]=EDFT[ρ(𝐫)]+EU0[nIm]Edc[nIm]. (3.59)

Here, EDFT is the standard DFT energy functional on a LDA or GGA level of theory. EU0 depends on the orbital occupancy nIm of the correlated states at site I and represents the energy correction according to the Hubbard Hamiltonian. However, by simply adding EU0 to EDFT, one runs into a double-counting issue of the coulomb interaction, because all the electron-electron interactions are already taken into account in LDA or GGA. Furthermore, the DFT Hamiltonian explicitly depends on the charge density, while the Hubbard Hamiltonian is written in the orbital representation. Therefore, one can not build a direct link between both descriptions and a simple subtraction of the double-counting is not possible. As a consequence, the dc functional Edc is not uniquely defined and different formulations of Edc can lead to different results of the calculation [320]. Within FHI-aims we offer three different double-counting correction strategies (see plus_u_petukhov_mixing), the fully-localized limit (FLL), the around mean field (AMF) approximation and a interpolation scheme where the double counting correction is calculated in a self-consistent manner [248]. We strongly recommend to choose the FLL as double-counting correction, as it is the most common one used in literature.

The last two terms on the r.h.s. of eq. 3.59 are usually combined to one energy correction, EU. One arrives at following expression,

EDFT+U[ρ(𝐫)]=EDFT[ρ(𝐫)]+EU[nIm]. (3.60)

As briefly mentioned, the orbital occupancies nIm are the occupation numbers of localized orbitals, where m is the state index which usually runs over the eigenstates of Lz for a certain angular momentum l. With other words, nIm are the occupation numbers of a specific shell of orbitals, located at a certain atom. The definition of a shell is best explained by using an example. If a DFT+U treatment is requested for the 3d electrons of a single first row transition metal, then a shell represents the five 3d-orbitals for each spin type.

3.19.1 DFT+U correction as it is implemented in FHI-aims

So far this was just a brief sketch of the DFT+U approach in general. In the following we present the precise definition of DFT+U how it is implemented in FHI-aims. Without loss of generality we only show the equations with FLL as double-counting correction.

EUFLL[{nImmσ}] =EU0[{nImmσ}]Edc[{nImmσ}]
=12σ,IUeffITr[𝐧Iσ(1𝐧Iσ)]
=12σ,IUeffI[Tr(𝐧Iσ)Tr(𝐧Iσ𝐧Iσ)]. (3.61)

These functional is known as the spherically averaged form of DFT+U. It was first proposed by Dudarev et al.[79] and it is also rotational invariant. In this formulation, the effective on-site interactions enter via their spherical atomic averages. This is justified by the fact, that localized states still have atomic character and hence, spherical symmetry. In fact, for most materials this definition gives good results.

It should be pointed out, that Ueff can be seen as an effective value of the coulomb interaction that also includes exchange corrections. This parameter has to be specified by hand, so far, no possibility is implemented to calculate this parameter self-consistently. Common to all approaches is that all the calculated results sensitively depend on the applied Ueff value. This value not only depends on the atom for which DFT+U is applied. It also depends on the surroundings of the atom, the lattice parameters and physical conditions. Furthermore, it also depends on the localized basis set of the underlying quantum DFT code. This limits the comparability of different values in a strong way. In general, for each DFT+U implementation and system, one should recalculate Ueff.

The most important quantity in equation 3.19.1 is the so called DFT+U occupation matrix 𝐧. This matrix simply tells us how many electrons are in a certain shell on a certain atom. The problem here is the inability to break down the total charge density into atom specific contributions. Or in other words, there is no proper operator for counting the number of electrons on an atom. Hence, the choice of the occupation matrix will affect the outcome of a calculation. Within FHI-aims we offer two specific choices: the on-site representation of the occupation matrix

nImmσ(onsite)=DIm,Imσ (3.62)

and

nImmσ(dual)=12Jk[DIm,JkσSJk,Im+SIm,JkDJk,Imσ]. (3.63)

The latter is known as the dual representation [126]. Within the dual representation the occupation numbers are calculated in a similar way as in the Mulliken analysis. The main difference between both is that the on-site version only accounts for overlaps within a specific sub shell on an certain atom. The dual representation also accounts for the overlap with the surrounding atoms. It is emphasized that all general aspects of DFT+U are met by all matrix representations. Furthermore, more detailed studies regarding the performance of the occupation matrix for various transition metal oxides revealed that in principle there is no definition which is clearly the best [290]. Unfortunately, we only offer forces for the on-site representation. The on-site version is also the default occupation matrix in FHI-aims and we strongly recommend to use it.

By now, one might have noticed that DFT+U is by far not a black box method and it gets even worse if one considers in detail how the occupation matrix is constructed. In general, each occupation matrix can be expressed in terms of a local projector operator, P^Immσ. The (m,m)-th element of a occupation matrix at site I is then given by

nImmσ=γfγΨγσ|P^Immσ|Ψγσ. (3.64)

For example for the on-site projection operator this would lead to

P^Immσ(on-site)=|ϕ~Imσϕ~Imσ|. (3.65)

Here, ϕ~Im denotes the dual basis functions which are defined in terms of the inverse overlap matrix 𝐒1,

|ϕ~mσ=ImSIm,Im1|ϕ~mσ. (3.66)

The question now is which basis functions should be used in the projection? As default we are using the atomic type basis functions of the minimal basis set in FHI-aims. Here we automatically assume, as they are atomic like basis functions, that they will contribute most to the localized states. However, in general it is not known if other basis functions should also be included in the DFT+U projection e.g. tier1 3d if one deals with first row transition metals. Usually one can notice that by a strange behavior of the occupation matrix during the scf-cycle (occupation numbers drop to zero as the electrons occupy other basis functions). For that purpose we offer to include also other basis functions in the description of DFT+U (see plus_u_use_hydors). We also like to highlight the corresponding paper related to our implementation where we address fundamental issues of DFT+U in a LCAO electronic structure code. However, do not panic, for most of the systems the default settings should be sufficient enough.

So far, we presented DFT+U in quite some detail. However, we just wanted to highlight that DFT+U is far from being a black box method. However, the handling of a actual DFT+U calculation in FHI-aims is quite easy. One just have to specify the double-counting correction first via the plus_u_petukhov_mixing. Afterwards one can specify the U value and the angular momentum shell to which DFT+U should be applied for each species. Of course one can specify different U values for different species in a simulation. Only for hard cases where convergence can not be reached easily, it is quite useful to checkout the other keywords. Some of them can be quite useful such as the plus_u_matrix_control. Here, one first converges the density with help of a fixed occupation matrix which can be edited by hand. Afterwards one can use the restart information to calculate everything self-consistently. This can be quite useful as it turns out that DFT+U is quite sensitive to the initial guess of a calculation. Furthermore, it is quite useful also to start from a LDA or GGA ground state density.

 

Tag: plus_u_petukhov_mixing(control.in)

Usage: plus_u_petukhov_mixing mixing_factor
Purpose: only for DFT+U. Allows to fix the mixing factor between AMF and FLL contribution of the double counting correction [248].
mixing_factor is a floating point value, specifying the mixing ratio between 0.0 and 1.0. A value of 0.0 selects the Around Mean Field (AMF) contribution. A value of 1.0 selects the Fully Localized Limit (FLL). If unspecified, the value is determined self-consistently according to Ref. [248].
We strongly recommend to use the FLL.

There are two common schemes for dealing with the double counting problem in DFT+U: The AMF method assumes that the effect of the DFT+U term on the actual occupations remains small, so that the occupations can be assumed to be equal within each shell for the purpose of the double counting correction. The FLL method, on the other hand, assumes a maximal effect of the DFT+U term on the occupation numbers, handling double counting correctly in the case that all orbitals with in the shell are either fully occupied or empty. The self consistent mixing of both limits improves the handling of the intermediate range (see Ref. [248]).

 

Tag: plus_u_use_mulliken(control.in)

Usage: plus_u_use_mulliken
Purpose: only for DFT+U. Allows to switch from on-site representation to the dual representation of the occupation matrix.
Default is the on-site representation. Forces are not provided for the dual representation.

 

Tag: plus_u_out_eigenvalues(control.in)

Usage: plus_u_out_eigenvalues
Purpose: only for DFT+U. Allows to calculate the eigenvalues of the self-consistent DFT+U occupation matrix at the end of a run.

 

Tag: plus_u_matrix_control(control.in)

Usage: plus_u_matrix_control
Purpose: only for DFT+U. Allows to write the self-consistent occupation matrix to a file occupation_matrix_control.txt. If the file is already present in the calculation folder, the occupation matrix is not calculated during the run. It will be read out from that file instead. The occupation matrix is then fixed during the complete run.

This is extremely useful because one can simply edit the file and manipulate the matrix according to some specific spin configuration. Consider to use it with restart options.

 

Tag: plus_u_matrix_release(control.in)

Usage: plus_u_matrix_release convergence_accuracy
Purpose: only for DFT+U. If this keyword is present in combination with plus_u_matrix_control the occupation matrix is first fixed to the matrix from the occupation_matrix_control.txt file until some certain convergence criteria of the total energy is fulfilled. Afterwards the occupation matrix is calculated self-consistently again.
convergence_accuracy this threshold specifies the convergence in total energy from which point on the occupation matrix should be calculated self-consistently. The value is a floating point number.

 

Tag: plus_u_use_hydros(control.in)

Usage: plus_u_use_hydros
Purpose: experimental — only for DFT+U. If this keyword is present also hydrogen like basis functions are included in the DFT+U correction.
The code builds up a simple linear combination of all basis functions which contribute to the angular momentum channel to which DFT+U is applied. All basis functions will contribute equally (see also hubbard_coefficient).

 

Tag: plus_u_matrix_error(control.in)

Usage: plus_u_matrix_error
Purpose: experimental — only for DFT+U. Calculates the idempotence error of the occupation matrix Tr(𝐧𝐧𝐧)

 

Tag: plus_u_ramping_accuracy(control.in)

Usage: plus_u_ramping_accuracy convergence_accuracy
Purpose: experimental — only for DFT+U. If this keyword is present the calculation starts at U = 0 eV. If the specified convergence accuracy of the total energy is reached, the U value is slightly increased. This is will be done until the final U value is reached.
convergence_accuracy Floating point number. Defines the convergence accuracy from which on the U value is increased stepwise by a certain increment. The increment can be specified with the plus_u_ramping keyword.

Subtags for species tag in control.in:

 

species sub-tag: plus_u(control.in)

Usage: plus_u n l U
Purpose: only for DFT+U. Adds a +U term to one specific shell of this species.
n the (integer) principal quantum number of the selected shell.
l is a character, specifying the angular momentum ( s, p, d, f, …) of the selected shell.
U the value of the U parameter, specified in eV.
The U here defined equals Ueff in eq. 3.19.1.

 

species sub-tag: hubbard_coefficient(control.in)

Usage: hubbard_coefficient c1 c2 c3 c4
Purpose: experimental — only for DFT+U. Only works in combination with the plus_u_use_hydros keyword. Allows the user to specify his one projector function for DFT+U as long as this function can be represented by basis functions contributing to a specific angular momentum which is given by the plus_u keyword. Only four basis functions are allowed in the expansion and the order corresponds to their appearance in the control in.
c1 expansion coefficient of the first basis function
c2 expansion coefficient of the second basis function
c3 expansion coefficient of the third basis function
c4 expansion coefficient of the 4th basis function
If a basis function should not be part of the linear combination the corresponding coefficient should be set to 0. Keep in mind that aims performs an on-site orthogonalization of all basis function located at a certain atom. This means that the radial shape of a basis function might be different from that, one would expect from the control.in definition. Within DFT+U all basis functions are orthogonalized w.r.t. the atomic basis functions.

 

species sub-tag: plus_u_ramping(control.in)

Usage: plus_u_ramping increment
Purpose: experimental — only for DFT+U. Specifies the the step by which the U value should be increased. Works only in combination with plus_u_ramping_accuracy
increment specified in eV.