I see there is a method of `GaussianShell`

called `coeff`

that returns the coefficient of the pi’th primitive. Is there any way to set these coefficients manually? I have a set of atomic orbital coefficients that I would like to read in to psi4.

Do you mean that you want to use a custom basis set? If so, how to do this is described in the manual.

If not, could you elaborate on what you’re trying to do?

That is close, and for s functions, putting in a custom basis set would work. But for higher angular momentum functions, I need to be able to specify different coefficients for every angular component. As an example, I would like to be able to specific the px, py and pz independently as they all have different coefficients.

You seem to be asking for: instead of having a single shell consisting of px, py, and pz orbitals which are just rotated versions of each other, have the px, py, and pz orbitals be fundamentally different with different coefficients.

I have never heard of a basis set that does that, and it seems like a very bad idea. You can change the energy of a system just by rotating it in space.

As far as I know, Psi does not support such a thing. For efficiency reasons, we assume the same coefficients for every orbital in every `GaussianShell`

.

Thanks, @jmisiewicz for the response. Yes, I agree that for the purpose of specifying a basis set, this would be a bad idea. I guess it’s probably helpful if I spell out what I want to do.

What I have is a set of coefficients, ci, that define a molecular density in an auxiliary basis set:

density = sum(ci*Xi),

where Xi are the primitives of the auxiliary basis set. What I would like to do is compute the integral for the Hellmann-Feynman force on atom i from that density:

Fi = integral(Zi * density / r^3)

This question relates to the first equation. If there is a way, how do I get that function represented in psi4. If I can do that I think that @andysim has already answered the second part (second equation) in this post. Thanks!