vdW-DF combined with mGGA
Posted: Tue Jul 02, 2024 10:27 am
Dear VASP developers,
I have noticed what might be an incorrect implementation of the vdW-DF in the mGGA driver routines in the new VASP versions. For vdW-DF, it is a requirement to use LDA correlation, and not GGA or mGGA. (BEEF-vdW is a notable exception where beyond-LDA is used, since it is a mixture of LDA and GGA correlation with NLC added on top. Although I would argue that this is not correct when employing vdW-DF.) For GGAs, this is done by using AGGAC=0. Unfortunately, when using a mGGA there is no correct way of enforcing LDA correlation through AGGAC or AMGGAC. The issue is that in the GGA routines the enhancement factor is calculated separately from the LDA correlation, and can therefore be multiplied by AGGAC=0, which enforces LDA. However, in the mGGA routines the correlation is calculated in one step, and is completely multiplied by AMGGAC, thus the choice is either semi-local correlation or no correlation at all. This seems to be done in order to combine mGGA exchange with RPA correlation? Furthermore, AGGAC still has influences on the results for some of the mGGA DFs, but our tests seem to indicate that this does not work the way one expects it too. For example, the MS mGGA DFs actually use GGA correlation, and the GGA routines are used in VASP where AGGAC does end up doing something, but not necessarily the correct thing.
It seems that current versions of VASP can only correctly combine mGGA exchange with vdW-DF if libxc is used. In this case, one can enforce LDA correlation (should be PWmod; ID=13) through the LIBXC2 tag.
Hopefully we misunderstood our tests or the source code, but I feel it is important to address.
Kind regards,
Nick Gerrits
I have noticed what might be an incorrect implementation of the vdW-DF in the mGGA driver routines in the new VASP versions. For vdW-DF, it is a requirement to use LDA correlation, and not GGA or mGGA. (BEEF-vdW is a notable exception where beyond-LDA is used, since it is a mixture of LDA and GGA correlation with NLC added on top. Although I would argue that this is not correct when employing vdW-DF.) For GGAs, this is done by using AGGAC=0. Unfortunately, when using a mGGA there is no correct way of enforcing LDA correlation through AGGAC or AMGGAC. The issue is that in the GGA routines the enhancement factor is calculated separately from the LDA correlation, and can therefore be multiplied by AGGAC=0, which enforces LDA. However, in the mGGA routines the correlation is calculated in one step, and is completely multiplied by AMGGAC, thus the choice is either semi-local correlation or no correlation at all. This seems to be done in order to combine mGGA exchange with RPA correlation? Furthermore, AGGAC still has influences on the results for some of the mGGA DFs, but our tests seem to indicate that this does not work the way one expects it too. For example, the MS mGGA DFs actually use GGA correlation, and the GGA routines are used in VASP where AGGAC does end up doing something, but not necessarily the correct thing.
It seems that current versions of VASP can only correctly combine mGGA exchange with vdW-DF if libxc is used. In this case, one can enforce LDA correlation (should be PWmod; ID=13) through the LIBXC2 tag.
Hopefully we misunderstood our tests or the source code, but I feel it is important to address.
Kind regards,
Nick Gerrits