As many have mentioned in the comments, the problem may not just be me and it may not just be the TB09 / TB-mBJ meta-GGA (MGGA).
First, it seems that the main application and success of TB09 is in yielding band gaps of semiconductors and insulators with an accuracy reported to be close to that of HSE06 or even GW. One weakness that has been pointed out is that it while it improves on band gaps (compared to LDA, GGA), it underestimates bandwidths. For further reading on this, go here and here.
It seems like emphasis is made on using TB09 with caution and will be applicable to systems under very particular conditions. However, it seems that as far as the Meta-GGAs (MGGA) go, TB09 seems to be a very good option for modeling intrinsic semiconductors. For other systems, extensive parameter fitting may be required and at that point - value whether it is worth it for you and for that specific project. Two of many examples of the extension of TB09 are surfaces and hybrid halide perovskites.
In LIBXC, the TB09 functional is listed in the Meta-GGA Exchange section listed as "MGGA_X_TB09 (id=208): Tran & Blaha 09" and has been around for a while, in various LIBXC versions. As far as Quantum ESPRESSO, LIBXC itself should not be the root cause of any issues, especially for QE v.6.0 and newer.
As some have mentioned in the comments, converging MGGA in general is not an easy task and multiple factors need to be analyzed, such as the pseudopotentials and the kinetic energy density... one of my most recent errors was related precisely to this. Quantum ESPRESSO is no exception.
I asked this question here on May 5th, 2020. My 'war' with TB09-in-QE was around November 2019, and ultimately decided it would be easier and faster to get it done with Wien2K and that was done. However I didn't want to accept that defeat. Aside from TB09, I tried converging TPSS and I tried different sets of pseudopotentials, tried reading final GGA densities and wavefunctions as a starting point, among other things.
On May 7th, 2020 , two days after the question was posted here, another QE user encountered a similar challenge. The same challenge, to be exact.
I quote:
Hello, I know this was discussed here before, but I still haven’t
found a satisfactory solution. Can someone share a nontrivial working
example of an SCF calculation of a periodic solid with TB09? If I
start “from scratch”, SCF diverges. Previously it was suggested to
start from a density calculated with a different functional, but when
I try to read in PBE density, it complains that it cannot read the
kinetic energy file (which obviously cannot be there). Same problem
with TPSS. I was using pseudo-dojo NC pseudos for PBE - could this be
the source of the problem? Should TPSS or SCAN pseudos work better
(and where do I get them from)?
Thanks, Michal Krompiec Merck KGaA
We might have well been trying to model the same system! Same pseudos, same errors, same alternative MGGA probed. MGGA convergence issues are well known in QE and unfortunately, the (quoting Paolo Gianozzi) "nasty numerical
behavior of meta-GGAs" give us headaches. Paolo Gianozzi is one of the masterminds behind Quantum ESPRESSO, and even he had no more advice to give at one point during the thread.
I don't want to re-post the thread here, but I will summarize three possible solutions:
- Modify the source code! Didn't work for Michael, but maybe your luck will be different.
- Get in code mode and HACK the functional; i.e. gradually go from PBE to TB09 with some function.
- TB09 on top of SCAN on top of PBE. Literally, run a PBE scf, and use the data as starting point for SCAN. Once you get SCAN to converge, use that data for TB09. This was proposed by Reinaldo, who did this to study some semiconductors using QE v.6.5 and Michael found a happy ending, as it worked for them too.
Full thread is here.
Is TB-mBJ / TB09 problematic in Quantum ESPRESSO? YES, but so are other MGGAs.
Like everything, the TB09 seems to have its strengths and weaknesses, and at the end of the day one must evaluate whether it is in one's best interest to use TB09 in your project and if the answer is YES, then ask yourself if why and what for? In my honest opinion, this will determine whether it is worth-while to do extensive troubleshooting and coding. If I NEED to get SCAN working before I can get TB09, then maybe I no longer want TB09? Again, really depends on the project.
As many have mentioned in the comment section and in another post on the site related to TB09, it isn't the holy-grail of functionals and at the end of the day it won't beat (or look as good) as a result (or a line in the results section of your paper) as HSE06, GW, or maybe even other MGGAs. However, TB09 has had major success in the semiconductor physics community and that makes it very valuable.
My two cents on TB09: It's good. It's cool. I think it is genuinely interesting and amazing that a model exists that can yield (in many cases) bandgaps comparable to experimental values at low cost. It isn't perfect and that is why it, as well as any other functional, should be used with CAUTION. Moreover, I think it would be great to extend the potential to better fit complex systems like some authors have done. Gives it a nice classic theory feel to it. Also, I do think that learning to use multiple codes (e.g. Quantum ESPRESSO, VASP, Wien2K, Abinit, etc.) can actually save you time in the long run. While I was fighting with QE, I reproduced my GGA reuslts and had the TB09 results in Wien2K. Most of the papers I've read that employ TB09 are based on Wien2K. I gave it a try, and didn't really have any issues with it. Nobody would have cared one bit if I had managed to get the result in QE for a material that an undergrad was studying, even if I explained to them how hard it was for me and how it's important to me to stay as open-source as possible ... and that's kind of my point. I may have lost the battle, but the war continues.