One of the major drawbacks of the conventional DFT methods like LDA & GGA is the underestimation of band-gap.
This occurs because of the error in self-interaction energy.
This self-interaction can be described as the spurious interaction of an electron with itself. It has two main consequences:
- Electrons are over-delocalized;
- Band gaps in semiconductors and insulators are predicted to be much lower than their real counterpart.
As a result the occupied states are pushed upwards in energy due to over delocalization.
Hartree-Fock has the same problem but for the unoccupied states, so they are over-delocalised and forced up in energy, which increases the band-gap.
So how do you improve your calculations to approximate the experimental band-gap more closely?
The answer is to use the Hubbard correction.
The mean-field Hubbard correction, popularly called DFT+U, is a semi-empirical correction which tries to improve on the above mentioned deficiencies.
This is particularly useful for d and f-block elements, with localised atomic-like states.
The Hubbard U introduces a potential which favours localising the states to which it is applied, thus re-localising them (compared to standard Kohn-Sham DFT) and lowering their energy. Interestingly, the Hubbard U term actually has a derivative discontinuity. Determining the appropriate U can be tricky, but once you’ve done that it is a simple calculation to perform and computationally straightforward.
Note: There exist other better ways to approximate the band-gap (ex: Hybrid functionals, GW approximation, etc.) But these are relatively computationally expensive with respect to the DFT+U.
Now that we know what Hubbard correction (DFT+U) is, we need to know how do we use it.
In this post I will be discussing on how to implement DFT+U in Quantum ESPRESSO.
Quantum Espresso, let’s you define a Hubbard parameter, U.
First of all you need to set
This will enable DFT+U calculations.
Now there are two types of DFT+U calculations that Quantum Espresso supports.
One requires just one parameter U, the other requires two parameters: U and J.
You can choose between the two using
Finally you just need to specify the value of the correction(Hubbard parameter) using
where i stands for the ith atomic species.
Make sure that this needs to be specified in eV in contrast to most other settings.
For example if you have two atomic species Ti and O necessarily in this order, then you specify the Hubbard parameter for Ti by
Hubbard_U(1)=8, and for Oxygen by
If using the
lda_plus_u_kind=0 (simplified version), then the above is enough.
If using the lda_plus_u_kind=1 (rotationally invariant version), then you also need to specify
J0 parameter (eV) for species i used in DFT+U+J calculations.
Now that we know how to provide the Hubbard parameter, we need to know how to determine this parameter.
This gets a little tricky.
There are some ways, like the linear response method, etc. which could be used for systems with single type of atoms. It is explained in detail here: http://hjkgrp.mit.edu/content/calculating-hubbard-u.
However, this is not what most of the people in the field do.
Let’s say your study involves the study of change in band-gap of a system with different amount of vacancies created.
Since your study only concerns with the band-gap, so what you can do is, that you can try different Hubbard parameters for your system until you get the desired value of your band-gap for the pure system and then continue your study.
However, you should make sure that this value doesn’t get too high. Why?
Well, as you change the Hubbard parameter, various other results get affected. Maybe the lattice parameters will now no longer be close to experimental value, or maybe you would change the phonon frequencies, and so on.
So you can choose a Hubbard parameter depending on the kind of property you wish to study, but only as long as it doesn’t drastically change some other property.
What I’ve said till now is evident from the following research papers.
Moreover, you should always search for the available literature on your system and see what Hubbard value are they using. Although it differs from software to software, but still it would give you some idea. Besides many people have already studied a lot of basic materials and provided the Hubbard parameters in order to perfectly simulate the experimental values.
You could also make an account on materialsproject.org and see, what settings they used. They use VASP for computations.
I hope this answers your queries, and doubts.
If there are any more doubts, leave them in the comments section down below.