I would like to create a very large custom basis set, and evaluate only its overlap with a regular density fitting basis set in a python code. I would like to do:
def CUSTOM(): q = psi4.code.BasisSet for alpha in (SomeListOfValues): for i in range(LARGENUMBER): q.AddSBasisFunction(alpha=alpha, centre=(x[i],y[i],z[i])) return q aux_basis = psi4.core.BasisSet.build\ (wfn.molecule(), "DF_BASIS_SCF", "", "RIFIT", basis.name()) special_basis = CUSTOM() Convolutions = mints.ao_overlap(aux_basis, special_basis)
The problem is, all the ways I can see to implement the “AddSBasisFunction” step involve multiple function calls so will be very slow.
What would be the most efficient way to do this? The ideal would be to get rid of the loop over i at the python level and do it at c++ or numpy level.
EDIT: Note, I only need S basis functions.
Scientifically, I want to compute convolutions of electron densities with gaussians at different centres and radii.
Many thanks in advance for help. Please let me know if you need details.
All the best,