dftd3 / simple-dftd3

reimplementation of the DFT-D3 program
https://dftd3.readthedocs.io
GNU Lesser General Public License v3.0
51 stars 24 forks source link

Which dftd3 should one use? #4

Closed zerothi closed 2 years ago

zerothi commented 2 years ago

Thanks for the work on this!

We are bit in a dead-lock now, since there exists 3 different libraries which all say do the same thing? :) So which one should we support :)

I see you are involved in both dftb and Grimme's group. What I would like to see is that there is one preferred version to be used? If that means archiving one of the packages, then good! :)

awvwgk commented 2 years ago

Thanks for your interest in this project.

The original dftd3 implementation has the obvious advantage of being the reference implementation, however you have to comply to the GPL-1.0-or-later licensing terms when using it. There is nothing wrong with this versions, except for the parallel performance, the compile time and the usability of the API.

The latter points are the motivation for this reimplementation, which is a mix / spin-off from dftd4 and xtb. For the features I'm interested in, mainly D3(BJ), the results are guaranteed for all practical purposes identical with the reference implementation. If you find any discrepancies, please let me know and I'll fix it.

I don't have enough resources to make it feature/bug compatible to actually supersede the reference implementation (there are some analysis features I'm not really interested in). However, contributions are always welcome.

aradi commented 2 years ago

Just my notes: dftd3-lib is a repackaged version of the original dftd3 implementation, as I wanted to use it as a proper library in DFTB+. As Sebastian noted, the license is problematic (GPL). In DFTB+, the preferred D3 method is definitely the one provided by the simple-dftd3. At some point, we may even drop the support for dftd3-lib. (But, maybe Nick is right, the situation is confusing for externals. I'll probably add a note in the README of dftd3-lib, directing people to simple-dftd3.)

zerothi commented 2 years ago

Thanks both!

As for the license, this shouldn't be a problem since we are GPL3 (Siesta). We are also only interested in using it in library mode.

So @aradi says that simple-dftd3 is the preferred library, while @awvwgk says it is not feature complete? So now I am a bit confused?

However, all-in-all it seems we should go for this package. So we'll do that!

awvwgk commented 2 years ago

while @awvwgk says it is not feature complete? So now I am a bit confused?

I don't implement all the command line analysis tools here.

zerothi commented 2 years ago

while @awvwgk says it is not feature complete? So now I am a bit confused?

I don't implement all the command line analysis tools here.

Ok, thanks for the clarification. Feel free to close this if you want. :)

awvwgk commented 2 years ago

I think this is something I can still improve in the documentation.

awvwgk commented 2 years ago

Here is a quick search for dftd3 versions which are currently around:

repo version license note
http://mctc.uni-bonn.de/software/dft-d3 v3.2.0 GPL-1.0-or-later reference implementation
https://github.com/awvwgk/simple-dftd3 v0.4.2 LGPL-3.0-or-later this project
https://github.com/dftbplus/dftd3-lib v0.10 GPL-1.0-or-later CMake
https://github.com/ehermes/ased3 LGPL-3.0-or-later ASE, f2py
https://github.com/pfnet-research/torch-dftd v0.3.0 MIT torch
https://github.com/cuanto/libdftd3 v3.1.1 (fork) GPL-3.0-or-later fork of dftd3-lib?, Python
https://github.com/cresset-group/dftd3 v3.2.0 (fork) GPL-1.0-or-later patched?
https://github.com/loriab/dftd3 v3.2.1 (fork) GPL-1.0-or-later CMake, patched
https://github.com/f3rmion/dftd3 v3.2.0 (fork) GPL-1.0-or-later patched
https://github.com/bobbypaton/pyDFTD3 v1.0.0 MIT Python

There are probably many more just redistributed in other software packages as well.


Projects using this implementation:

loriab commented 2 years ago

I'm the perpetrator of https://github.com/loriab/dftd3 . It's the original chemie.uni-bonn source with CMake buildsys, a dftd3 -version printing, more digits for abc energies, and saving abc gradients. I also maintain Linux/Mac/Windows conda distributions https://anaconda.org/psi4/dftd3/files for Psi4. Happily, Psi4 doesn't redistribute the dftd3 source directly.

Psi4 and QCEngine would be delighted to switch over to simple-dftd3 to help with consolidating the project. Then my repo could be archived. One thing I haven't looked into lately wrt simple-dftd3 is that Psi4 wants MKL-based conda distributions and needs Windows, too. (I build on CI through oneapi, iirc.) Switching to gcp-correction is desirable, too.

awvwgk commented 2 years ago

I'm planning on maybe moving this project to its own organisation on GitHub. In case any of you are interested in co-maintaining this project let me know.

awvwgk commented 2 years ago

In case anyone is interested in helping out with this project, please checkout #23.

I'm closing this issue as resolved now.