vibeqc.compute_gradient_rks

vibeqc.compute_gradient_rks(mol, basis, result, grid_options=None, options=None, *, dft_plus_u=None, allow_incomplete=False, _auto_df_for_fshell=False)[source]

RKS analytic nuclear gradient (Ha/bohr, per atom).

Note: the C++ signature is compute_gradient_rks(mol, basis, result, grid_options, options); keep the positional order or pass by keyword.

dft_plus_u: same convention as compute_gradient().

allow_incomplete: the kernel omits the long-range exact-exchange gradient of a range-separated hybrid and the VV10 nonlocal gradient (GitLab #571; see functional_gradient_terms_missing()). For such a result.functional this wrapper raises NotImplementedError naming the missing terms, because the returned array would not be the derivative of result.energy (hse06 5.6e-3, vv10 7.0e-4, wb97x-v 5.6e-2 Ha/bohr off finite differences on O/H/H STO-3G). Pass allow_incomplete=True to receive the partial analytic gradient knowingly.