Skip to content

Ambiguous description of the grimme-d3 parametrization

Octopus experimentally supports the Grimme-d3 Van der Waals correction. The input variable 'VDWD3Functional' controls which parametrization will be used for the calculation.

In the file ('https://gitlab.com/octopus-code/octopus/-/blob/14.1/external_libs/dftd3/core.f90') a multitude of different possible implementations exist for the same functional e.g. Grimme-D2, Grimme-D3 with zero damping, Grimme-D3 with BJ damping, Grimme-D3M...

In the case the user is setting the parameter 'VDWCorrection = vdw_d3' octopus will call the dftd3 library for the 'Grimme-D3 with BJ damping' version which I find slightly misleading as in the documentation only the original Grimme-D3 paper with zero damping is cited.

Perhaps it would help to either specify in the documentation that Grimme-D3 with BJ damping is used and cite https://doi.org/10.1002/jcc.21759

or in case the other versions of dftd3 would also work add an additional input parameter VDWD3Version = 2-6 which specifies which part of the external dftd3 library is called. (replaces version=4 in 196: call dftd3_set_functional(this%vdw_d3, func = d3func, version = 4, tz = .false.) in the file https://gitlab.com/octopus-code/octopus/-/blob/14.1/src/hamiltonian/xc_vdw.F90 )

In case option (2) would work I would also gladly do some testing for that and open a merge request.

Kind regards, Samuel