jdftx icon indicating copy to clipboard operation
jdftx copied to clipboard

XC functionals for Van-der-Waals interactions

Open ximik69 opened this issue 1 year ago • 3 comments

Hi dear Shankar.

I'd like to consult with you about xc functionals for accurate description of vdw interactions. Jdftx has already grimme d2 and d3 van der Waals functionality included, but they do not describe interactions in closo-boranes B12H12 good enough. At least pbe+d2 or pbe+d3 overbind and lead to significantly smaller volume and parameters of the unit cell. I have read about good results with pbe+vdw-df but it is not included in jdftx or libxc 5, supported by jdftx.

What do you think about promising xc functionals for that?

I started my own trials. I tried pbe+d3, optpbe-vdw. Pbe+d3 contracts unit cell significantly, optpbe-vdw is a bit better. I started scan and scan+rvv10 too.

What do you think about external libraries like libvdwxc for vdw-df https://libvdwxc.org/ or dftd4 for grimme-d4 https://github.com/dftd4/cpp-d4 ?

Best wishes, Igor.

ximik69 avatar Dec 21 '23 11:12 ximik69

For the nonlocal vdW functionals like vdw-DF, an implementation of the nonlocal piece is needed. LibXC does not handle this; only handling the corresponding semilocal parts for say rvv10. Libvdwxc seems promising, and an interface could be useful!

I don't have any specific expertise with these libraries or functionals though, so I can't comment usefully on which ones would be most viable.

Best, Shankar

shankar1729 avatar Dec 22 '23 14:12 shankar1729

Hi dear Shankar, thank you very much for your answer. I wish you Merry Christmas and Happy New Year! I wish you health, happiness and joyful time during holidays!

Best wishes, Igor.

ximik69 avatar Dec 25 '23 19:12 ximik69

Hi dear Shankar.

I have found another library, describing vdW interactions, named libMBD because of treating many body dispersion: https://github.com/libmbd/libmbd

The library is described in publication libMBD: A general-purpose package for scalable quantum many-body dispersion calculations https://doi.org/10.1063/5.0170972

I can not say that I have understood the theory, but have found out what may be important for considering integration. In principle this library seems to be better than say Grimme-D2 or D3. This library uses MPI parallelization and no threads. It uses ScaLAPACK. Lack of threads may pose some scalability problems.

Libmbd has small code example in fortran. Libvdwxc looks much simpler, but none of these libraries has extensive documentation. I'll write if I would find something more.

Best wishes, Igor.

ximik69 avatar Dec 29 '23 17:12 ximik69