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

Evaluation of atomic overlap matrices #53

Open
susilehtola opened this issue Jul 3, 2023 · 4 comments · May be fixed by #81
Open

Evaluation of atomic overlap matrices #53

susilehtola opened this issue Jul 3, 2023 · 4 comments · May be fixed by #81
Labels
new-functionality Adds a capability to GauXC

Comments

@susilehtola
Copy link
Contributor

This might already be implemented, however... many applications require the evaluation of atomic overlap matrices

$$ S_{\mu \nu}^{A} = \int w_A({\bf r}) \chi_\mu ({\bf r}) \chi_\nu({\bf r}) {\rm d}^3 r $$

where $A$ is the atom and $\mu$ and $\nu$ are basis function indices.

An example use case is our generalized Pipek-Mezey orbital localization method, which replaces the original ill-defined Mulliken (or Löwdin) charges with a variety of mathematically well-defined partial charge estimates. It turns out that the localized orbitals are remarkably insensitive to the partial charge method, which can thereby be chosen by computational convenience, such as the Becke charges defined by the above overlap matrices

$$Q_{ij}^{A} = C_{\mu i} S_{\mu \nu} C_{\nu j}$$

We have also extended this method to forming generalized Pipek-Mezey Wannier functions

@wavefunction91 wavefunction91 added the new-functionality Adds a capability to GauXC label Oct 25, 2023
@wavefunction91
Copy link
Owner

@susilehtola would an API to return a specific atomic overlap (as opposed to all or a batch of them) suit the needs here (at least to start)? Would it also be desirable to have an API that returns $Q_{ij}^A$ directly given MO coefficients (might make sense to spin that off onto another Issue if desired)?

@wavefunction91
Copy link
Owner

Also, do you have a reference code for this? Code is written, but need something to verify against

@susilehtola
Copy link
Contributor Author

Batching over atoms is fine, as long as you get the matrices separately. I don't think the MO transformation is within the scope of this feature, since it is trivial to achieve with a matrix multiply.

@susilehtola
Copy link
Contributor Author

There are implementations in PySCF and ERKALE. As a simple check, you can just check that the sum equals the overlap matrix?

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

Successfully merging a pull request may close this issue.

2 participants