Skip to content

Addition of dipole/quadrupole gradient integrals - #131

Open
robin-dahl wants to merge 2 commits into
sunqm:masterfrom
robin-dahl:tblite-relevant-additional-integrals
Open

Addition of dipole/quadrupole gradient integrals#131
robin-dahl wants to merge 2 commits into
sunqm:masterfrom
robin-dahl:tblite-relevant-additional-integrals

Conversation

@robin-dahl

@robin-dahl robin-dahl commented Jul 23, 2026

Copy link
Copy Markdown

Summary

This PR addresses #130 by adding four one-electron integral families required by tblite for dipole and quadrupole nuclear gradients:

  • int1e_ipr_origj
  • int1e_r_origj_ip
  • int1e_iprr_origj
  • int1e_rr_origj_ip

These provide derivatives with respect to both Gaussian centres for dipole and quadrupole operators defined relative to the ket centre.

Implementation

The new routines are integrated using libcint's existing symbolic code-generation infrastructure:

  • the four definitions are added to scripts/auto_intor.cl
  • the generated recurrence and wrapper code is added to src/autocode/grad1.c
  • the public declarations are added to include/cint_funcs.h

Each integral family provides:

  • optimizer entry points
  • Cartesian entry points
  • spherical entry points
  • spinor entry points
  • Fortran-compatible wrappers generated through libcint's existing macros

We additionally added public declarations for the three-center two-electron integrals because we need int3c2e_sph to compute COSMO surface integrals (using smoothed Gaussian functions at the grid points of the cavity).

Motivation

These routines are required for the ongoing integration of libcint as an alternative Gaussian integral evaluator in tblite (https://github.com/tblite/tblite), where we need these routines to evaluate the nuclear derivatives of dipole and quadrupole integrals.
Including these routines upstream is important for binary distributions such as conda-forge, where tblite should link against the standard packaged libcint library rather than a project-specific fork. Without these public entry points, complete libcint support in such distributions would likely have to remain disabled by default. It would therefore be very helpful to us if this addition could be considered for inclusion in upstream libcint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant