Summary of "rotating a density matrix"

Several people ask me to forward the result, so here is s summary.
 It should not be too difficult.
 Remembering that the wave function in one spatial orientation must be
 equivalent to that in a different one
 Psi (0) = C(0)*1*Chi(0)
 C=SCF coefficients
 Chi=atomic orbitals
 1 = R**(-1) * R
 C(u) = R**(-1)*C(0)
 where u represents the new orientation
 In other words, if you rotate the orbitals one way, you rotate the
 coefficients the opposite.
 R =   3x3 rotation matrix to go from the 0th geometry to a different
 one, u.
 Now the 1S and 2S coefficients will not change, but the Px, Py, and Pz
 will.  So,
 for each set of  X,Y,Z AO coefficients on each atom apply the inverse of
 the 3x3 R matrix.  Easy to write a simple code for this.
 Then recompute the density..
 I hope this helps..
 John McKelvey
 If you can express your density matrix into MOs (it should be no problem
 with AM1 and PM3) then you just has to build a rotation matrix over
 atoms (choose 3 atoms to define a reference frame and calculate the
 angles that transform this frame from a geometry to another) that you
 can apply on the basis functions. I used to build such matrices for s, p
 and d functions in order to rotate some localized orbitals.
 See J.Comp.Chem. 23(6) 2002, 610-624
 But be careful to keep the norm of your functions through the rotations.
 Hope this helps.
 Nicolas FERRE' (PhD)
 I'm not sure the format of the density matrix you need to transform.  If
 you have this in the Gaussian 'density cube' format  (the usual output
 of the density keyword I
 believe) then I have a very simple Fortran utility that can transform
 the orientation for you.  Let me know and I can send it.
 If you have some other format, then I'm afraid I'm no help.
 Brent Krueger
 My thanks to everyone who sent me a response.