shankar1729 / jdftx

JDFTx: software for joint density functional theory
http://jdftx.org
82 stars 54 forks source link

XC functionals for Van-der-Waals interactions #311

Open ximik69 opened 9 months ago

ximik69 commented 9 months ago

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.

shankar1729 commented 9 months ago

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

ximik69 commented 9 months ago

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 commented 9 months ago

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.