Hi,
I am interested in the following type integral <mu_A| d/dX_B | nu_B>, where A and B are the centers of contracted Gaussian basis, mu_A and nu_B, e.g., mu_A = \sum_i c_i exp( -\alpha_i (x - X_A)**2 ), X_B stands for the X,Y,Z three components of the nuclear coordinates.
I found in MintsHelper
overlap_grad(*self: [psi4.core.MintsHelper]
First nuclear derivative overlap integrals
I am not sure if this is dS/dX, the derivative on the overlap integral itself. dS/dX = <d/dX_B mu_A| | nu_B> + <mu_A| d/dX_B | nu_B>, if R_A = R_B, the first term <d/dX_B mu_A| | nu_B> will not vanish.
There is also an ao_overlap_half_deriv1
, I tried to load it as asarray(mints.ao_overlap_half_deriv1(), order='F')
and got
TypeError: ao_overlap_half_deriv1(): incompatible function arguments. The following argument types are supported:
1. (self: psi4.core.MintsHelper, side: str, atom: int) -> List[psi4.core.Matrix]
Invoked with: <psi4.core.MintsHelper object at 0x7f4776ce01b0>
in psi4 version 1.5. Thank you so much.
Here is a minimal reproducible example
import psi4
import numpy as np
psi4.set_output_file("output.dat", False)
geom = """
H 0. 0. 0.
F 0. 0. 1.
"""
psi4.set_options({"BASIS": "cc-pVDZ"})
print ('geom', geom )
mol = psi4.geometry(geom)
print ('mol', mol)
wfn = psi4.core.Wavefunction.build(mol, psi4.core.get_global_option('BASIS'))
mints = psi4.core.MintsHelper(wfn.basisset())
T = np.asarray(mints.ao_kinetic(), order='F')
V = np.asarray(mints.ao_potential(), order='F')
S = np.asarray(mints.ao_overlap(), order='F')
print('S',S.shape)
dS1 = np.asarray(mints.overlap_grad(), order='F')
print('dS1',dS1.shape)
dS2 = np.asarray(mints.ao_overlap_half_deriv1(), order='F')
print('dS2',dS2.shape)