dftd3 / simple-dftd3

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

default for s9 in dftd3 #27

Closed loriab closed 1 year ago

loriab commented 1 year ago

The parameters file for dftd3 has three-body scaling all defaulting to s9=0.0 or off, https://github.com/dftd3/simple-dftd3/blob/main/assets/parameters.toml#L5-L9 , and that's what gets returned from a get_all_damping_params call. But the docs and interface file show the three-body as s9=1.0 or on, https://github.com/dftd3/simple-dftd3/blob/main/python/dftd3/qcschema.py#L50 , and on is what gets computed in a qcschema run without param_tweaks being specified.

Is this an inconsistency, or am I missing something? In switching over psi4, I was prepared for three-body on, then pleasantly surprised (for consistency's sake with "classic" executable dftd3) to find it off, and now uncertain. I can make it work psi4-side either way, but I thought I'd check in for guidance. Thanks!

awvwgk commented 1 year ago

You are right this is inconsistent. Most of the code base use s9=1.0 by default, while the parameters.toml uses s9=0.0, which creates the inconsistency in get_all_damping_params. Leaving the ATM on by default seems like the safer choice in my opinion.

loriab commented 1 year ago

Thanks. For now, locally, I'll update the s9=0.0 -> 1.0 at the parameter acrobatics step in qcengine, https://github.com/MolSSI/QCEngine/blob/master/qcengine/programs/empirical_dispersion_resources.py#L902 , so that reported parameters match used ones. ("classic" dftd3 can ignore s9.) Then perhaps later parameters.toml upstream can change for single-source-of-truth?