I want to conduct GGA+U
calculations using Duradev's
approach in VASP
code on a ferromagnetic material
without any prior knowledge of experimental data. Could you please guide me to how to arrive to the exact (U-J)
value? What are the detailed steps to do that?
3 Answers
In short, the $U$ values can be calculated with fully $\textit{ab}$ $\textit{initio}$ constrained random phase approximation (cRPA method).
About the theory of the constrained random phase approximation, you can refer the following paper: section II (B).
About the computational details, you can refer to this vaspwiki example:
-
$\begingroup$ Is this method available on vasp.5.4.4 ? if not is there any other alternative method ? I just want to conduct GGA+U calculation, not obliged with using Duradev's approach. $\endgroup$– Chi KouJan 27, 2021 at 13:19
Your question isn't quite clear. The Hubbard U/J strictly speaking, depends on a lot of factors - the Hubbard manifold, lattice parameters etc. The values are typically non-transferrable. For example, material A could have a Hubbard 'U' of 4.7 eV whereas material B could have a Hubbard 'U' of 8 eV. There are rigorous way to calculate the value of U/J from first-principles methods, either using a linear-response approach (DFPT), CRPA (constrained-Random phase approximation), LMFTO (Linear muffin tin orbitals) etc.
But you need to ask yourself the question, do you want to rigorously calculate the Hubbard U? In some instances, you can do a literature review and find out the range of Hubbard U being used for your material. You can adopt that value and see how your results compare (band-structure, lattice parameters etc).
If you chose to just implement a value in your calculation, it is straight-forward. The scheme that you mention is the rotationally invariant scheme - the basis set that describes the occupation matrix has only diagonal elements. This means that you need to specify only one value called $U_{eff} = U - J $. So, the input will basically take in $U_{eff}$. You don't need to worry about 'J' values. If a DFT paper on the same system reports that they used a value of U=3 eV, you could just adopt the same value and see how your results compare.
In the non-rotationally invariant scheme however, you need to mention both U and J explicitly. J, which is inter-site exchange, is typically taken to be 0-20% of U, as a thumb rule in first-principles calculations (Don't quote me on this one, but this is what my P.I. used to say, and what I observed in most calculations)
I will present yet another approach. You know what properties you care about, all you need is to somehow calculate your system without a U value in a correct way. For example, you may be able to do hybrid functional calculations with HSE06 or HSEsol(HSE06 with PBEsol instead of PBE) that give good agreement with experiments in general. This can then be used as a starting point to fit the PBE+U or PBEsol+U calculations.
For example, if you can expect HSE06 to provide good results you can run an HSE06 calculation to determine band gap/lattice constants etc. You can then run PBE+U calculations with a range of U values for relevant states(transition metal d states / oxygen p states). Then it is simply a matter of finding the best fit for your bandgap etc.
-
1$\begingroup$ I think fitting 'U' to band-gap is a bad practice in general. A better standard is to fit 'U' to the magnetic moment, but we need neutron diffraction data on the material to be able to do that. Look at this answer by Nicola Marzari (mail-archive.com/[email protected]/msg38052.html). $\endgroup$– Xivi76Jan 27, 2021 at 19:44
-
1$\begingroup$ I actually do agree that fitting to just band-gap is a bad practice. I think that in general you want to fit to at least 2 parameters since you can produce the same band gap with a range of U values on two elements typically. Reproducing both band gap and lattice constant seems to work alright. $\endgroup$ Jan 27, 2021 at 19:55
-
-
1$\begingroup$ It can and it can be done fairly easily for small structures $\endgroup$ Jan 30, 2021 at 20:14
-
$\begingroup$ Could you please provide me with an example how to implement it for relaxation ? $\endgroup$– Chi KouJan 31, 2021 at 7:31