Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement superposition of atomic potentials guess #74

Open
susilehtola opened this issue Aug 29, 2023 · 3 comments
Open

Implement superposition of atomic potentials guess #74

susilehtola opened this issue Aug 29, 2023 · 3 comments
Labels
new-functionality Adds a capability to GauXC

Comments

@susilehtola
Copy link
Contributor

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.

@wavefunction91
Copy link
Owner

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?

@susilehtola
Copy link
Contributor Author

How are you interpolating for arbitrary radial points?

Lagrange interpolation. I have a C implementation of the tabulated potentials.

@susilehtola
Copy link
Contributor Author

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.

@wavefunction91 wavefunction91 added the new-functionality Adds a capability to GauXC label Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-functionality Adds a capability to GauXC
Projects
None yet
Development

No branches or pull requests

2 participants