Grimme's DFT-D3 with three-body term
Posted: Wed Apr 27, 2022 2:01 am
Hello,
I wanted to suggest an edit to the VASP wiki (I don't know what the proper protocol for such suggestions is) that may help other VASP users, especially when comparing against other works using this type of vdW correction.
I recently was performing some calculations on bulk h-BN with the Grimme's DFT-D3 and DFT-D3(BJ) vdW corrections. As currently outlined on the VASP wiki entry:
wiki/index.php/DFT-D3
only the pairwise 2-body terms are included in a standard calculation of the DFT-D3 or DFT-D3(BJ) vdW correction. Based on my reading, this is in keeping with the discussion within the original paper:
S. Grimme, J. Antony, S. Ehrlich, and S. Krieg, J. Chem. Phys. 132, 154104 (2010)
which did also discuss the inclusion of an approximation to the Axilrod-Teller-Muto or triple dipole term.
This was also discussed in a prior thread on the VASP forums:
forum/viewtopic.php?f=3&t=17001
However, it was suggested that for consistency, code based on the original implementation was preferred.
That being said, while comparing against some results of other researchers that used Quantum Espresso (QE), I noticed that there were some discrepancies in the c-axis spacing between my results and their results that seemed to be more than just using different PAW pseudopotential sets. It turns out, that in QE, they have a tag (dftd3_threebody) that includes this interaction by default.
After doing a little digging in the VASP source code, I found that in the source file subdftd3.F, there is a logical variable noabc set at line 505 to noabc=.true. which will prevent VASP from making a call to the pbcthreebody subroutine (see line 2182 in the same source file).
However, this variable can be set to .false. and the source code recompiled to allow for the inclusion of the three-body term.
While a future version of VASP could include an INCAR tag to control this setting if the admins deem it useful enough, it may be worthwhile to at least call attention to this availability through modification and recompiling on the VASP wiki in case other researchers have a need to include such an interaction in their work (similar to how many are aware of the modifications for constr_cell_relax.F when doing constrained relaxations).
Thank you,
Andrew
P.S. I did find at least one paper that explicitly mentions these modifications being performed in a VASP calculation to explore effects of different vdW approximations:
M. Li, J. R. Reimers, J. F. Dobson, and T. Gould, "Faraday cage screening reveals intrinsic aspects of the van der Waals attractions," Proc. Natl. Acad. Sci. U.S.A. 115, E10295 (2018)
I wanted to suggest an edit to the VASP wiki (I don't know what the proper protocol for such suggestions is) that may help other VASP users, especially when comparing against other works using this type of vdW correction.
I recently was performing some calculations on bulk h-BN with the Grimme's DFT-D3 and DFT-D3(BJ) vdW corrections. As currently outlined on the VASP wiki entry:
wiki/index.php/DFT-D3
only the pairwise 2-body terms are included in a standard calculation of the DFT-D3 or DFT-D3(BJ) vdW correction. Based on my reading, this is in keeping with the discussion within the original paper:
S. Grimme, J. Antony, S. Ehrlich, and S. Krieg, J. Chem. Phys. 132, 154104 (2010)
which did also discuss the inclusion of an approximation to the Axilrod-Teller-Muto or triple dipole term.
This was also discussed in a prior thread on the VASP forums:
forum/viewtopic.php?f=3&t=17001
However, it was suggested that for consistency, code based on the original implementation was preferred.
That being said, while comparing against some results of other researchers that used Quantum Espresso (QE), I noticed that there were some discrepancies in the c-axis spacing between my results and their results that seemed to be more than just using different PAW pseudopotential sets. It turns out, that in QE, they have a tag (dftd3_threebody) that includes this interaction by default.
After doing a little digging in the VASP source code, I found that in the source file subdftd3.F, there is a logical variable noabc set at line 505 to noabc=.true. which will prevent VASP from making a call to the pbcthreebody subroutine (see line 2182 in the same source file).
However, this variable can be set to .false. and the source code recompiled to allow for the inclusion of the three-body term.
While a future version of VASP could include an INCAR tag to control this setting if the admins deem it useful enough, it may be worthwhile to at least call attention to this availability through modification and recompiling on the VASP wiki in case other researchers have a need to include such an interaction in their work (similar to how many are aware of the modifications for constr_cell_relax.F when doing constrained relaxations).
Thank you,
Andrew
P.S. I did find at least one paper that explicitly mentions these modifications being performed in a VASP calculation to explore effects of different vdW approximations:
M. Li, J. R. Reimers, J. F. Dobson, and T. Gould, "Faraday cage screening reveals intrinsic aspects of the van der Waals attractions," Proc. Natl. Acad. Sci. U.S.A. 115, E10295 (2018)