Open susilehtola opened 1 year ago
Just because it took me a second to realize what's denoted here, you mean
$$ V^{SAP}(r) = -\sum_A \frac{Z^{eff}_A(r)}{\vert r - R_A\vert} $$
where the effective charge is tabulated in the above source. Should be very easy to implement, particularly if we also add a simple nuclear potential integrator (for e.g. STOs / NAOs)
How are you interpolating for arbitrary radial points?
How are you interpolating for arbitrary radial points?
Lagrange interpolation. I have a C implementation of the tabulated potentials.
It should also be quite straightforward to use the tabulated atomic wave functions to compute Coulomb + LDA exchange potentials, which is what we use anyhow.
In J. Chem. Theory Comput. 15, 1593 (2019), I pointed out that the superposition of atomic potentials (SAP) initial guess can be easily formed on a Becke grid.
Later on, I tabulated more accurate potentials with fully numerical calculations. These potentials are available as a BSD licensed C++ implementation in https://github.com/psi4/psi4/blob/master/psi4/src/psi4/libfock/sap.cc
The guess is evaluated similarly to an LDA Fock matrix; one just needs to form
$$ V{\mu\nu}^{\text{SAP}}=\int\chi{\mu}({\bf r})V^{\text{SAP}}(\boldsymbol{r})\chi_{\nu}({\bf r}){\rm d}^{3}r $$
where the pointwise potential is a sum over atomic potentials
$$ V^{\text{SAP}}(\boldsymbol{r})=-\sum{A}\frac{Z{A}}{r_{A}} $$
which also have a limited range of 40 bohr. The guess is then obtained by forming the Fock matrix
$$ {\bf F} = {\bf T} + {\bf V}^\text{SAP} $$
and diagonalizing it to find orbitals and eigenvalues.
It would also be possible to implement a superposition of atomic densities (SAD) guess in GauXC by computing the pointwise sum of densities, approximating the exchange potential with the LDA, and computing the Coulomb part with analogous machinery to SAP.