This is related to a prior question of mine Derivatives with respect to user defined vibrational modes. While that one focuses on potential software to use for derivatives with respect to normal modes, I want to present the actual problem that led me to that.
I have the derivatives of some property $P$ with respect to the $3N-6=M$ normal vibrational modes $\big\{Q_i\big\}$ of a molecule. I wanted to convert these modes to a local mode basis to more directly relate these derivatives to functional groups of the molecule. Conversion of the modes to a local basis can done by a simple unitary transformation [1]: $$\mathbf{Q}'=\mathbf{QU}$$ Here, $\mathbf{Q}$ is a $3N\times M$ matrix of the normal modes, $\mathbf{U}$ is $M\times M$ unitary matrix defined via an iterative process described in the linked paper, and $\mathbf{Q'}$ is a matrix of the normal modes.
With the modes transformed, I also want derivatives in this local mode basis. I have two ways of doing this:
- Transform the original derivatives: $\frac{\partial P}{\partial Q_i'}=\sum_jU_{ji}\frac{\partial P}{\partial Q_i}$ where the derivatives are arranged as column vectors.
- Compute numerical derivatives along the new mode: $\frac{P(X+hQ_i')-P(X)}{h|Q_i'|}$ where $X$ is the initial molecule geometry.
However, the transformed derivatives and the numerical derivatives of the local modes do not seem to match. If I test my procedure on the normal modes, the numerical derivatives agree with the ones I get from Gaussian. I'm concerned that perhaps I have something mixed up with removing/keeping the mass weighting of the modes (Gaussian fiddles with the coordinate representation a lot during vibrational analysis). Is there something obviously wrong with the procedure I have outlined above? Can I transform mass-weighted normal modes properly or do I need to ensure they are in cartesian coordinates before performing the transformation?
- Jacob, C.R & Reiher, M. J. Chem. Phys. 130, 084106 (2009); DOI: 10.1063/1.3077690