# gau2grid¶

gau2grid is a python-generated C library for vectorized computation of grid to gaussian collocation matrices

The core of gau2grid is generating the collocation matrices between a real space grid and a gaussian basis set expanded to a given angular momenta. Where a simple gaussian can be represented with the cartesian form as:

$\phi({\bf r}) = x^l y^m z^n e^{-\alpha r^2}$

where for a given angular momenta $$\ell$$, a gaussian basis has all possible combinations of $$l, m, n$$ that satisfy $$l + m + n = \ell$$. These gaussians can also take a spherical harmonic form of:

$\phi({\bf r}) = Y_\ell^m (\hat{\bf r}) e^{-\alpha r^2}$

where $$m$$ ranges from $$+\ell$$ to $$-\ell$$. The spherical form offers a more compact representation at higher angular momenta, but is more difficult to work with when examining cartesian derivates.

In quantum chemistry, an individual basis is often represented as a sum of several gaussian with different exponents and coefficients together:

$\phi({\bf r}) = Y_\ell^m (\hat{\bf r}) \sum_i c_i e^{-\alpha_i r^2}$

Collocation matrices between a single basis set and multiple grid points can then be represented as follows:

$\phi_{m p} = Y_\ell^m (\widehat{{\bf r}_p -{\bf r}_{\rm center}}) \sum_i c_i e^{-\alpha_i ({\bf r}_{\rm center} - {\bf r}_p) ^2}$

where the basis is evaluated at every point $$p$$ for every component of the basis i.e. basis function $$m$$. The $$\phi_{m p}$$ matrices are the primary focus on the gau2grid library.

Getting Started

Python Interface

C Interface