# sf.apps.qchem.duschinsky¶

duschinsky(Li, Lf, ri, rf, wf, m)[source]

Generate the Duschinsky rotation matrix $$U$$ and displacement vector $$\delta$$.

The Duschinsky transformation relates the normal coordinates of the initial and final states in a vibronic transition, $$q_i$$ and $$q_f$$ respectively, as:

$q_f = U q_i + d,$

where $$U$$ is the Duschinsky rotation matrix and $$d$$ is a vector giving the displacement between the equilibrium structures of the two states involved in the vibronic transition. The normal coordinates of a molecule can be represented in terms of atomic displacements as:

$q = L^T \sqrt{m} (r -r_e),$

where $$r_e$$ represents the equilibrium geometry of the molecule, $$m$$ represents atomic masses and $$L$$ is a matrix containing the eigenvectors of the mass-weighted Hessian. The Duschinsky parameters $$U$$ and $$d$$ can be obtained as:

$U = L_f^T L_i,$
$d = L_f^T \sqrt{m} (r_e^i-r_e^f).$

Note that $$i$$ and $$f$$ refer to the initial and final states, respectively. The parameter $$d$$ is usually represented as a dimensionless parameter $$\delta$$ as:

$\delta = l^{-1} d,$

where $$l$$ is a diagonal matrix containing the vibrational frequencies $$\omega$$ of the final state:

$l_{kk} = \left ( \frac{\hbar }{2 \pi \omega_k c} \right )^{1/2},$

where $$\hbar$$ is the reduced Planck constant and $$c$$ is the speed of light.

The vibrational normal mode matrix for a molecule with $$M$$ vibrational modes and $$N$$ atoms is a $$3N \times M$$ matrix where $$M = 3N - 6$$ for nonlinear molecules and $$M = 3N - 5$$ for linear molecules. The Duschinsky rotation matrix of a molecule is an $$M \times M$$ matrix and the Duschinsky displacement vector has $$M$$ components.

Example usage:

>>> Li = np.array([[-0.28933191], [0.0], [0.0], [0.95711104], [0.0], [0.0]])
>>> Lf = np.array([[-0.28933191], [0.0], [0.0], [0.95711104], [0.0], [0.0]])
>>> ri = np.array([-0.0236, 0.0, 0.0, 1.2236, 0.0, 0.0])
>>> rf = np.array([0.0, 0.0, 0.0, 1.4397, 0.0, 0.0])
>>> wf = np.array([1363.2])
>>> m = np.array([11.0093] * 3 + [1.0078] * 3)
>>> U, delta = duschinsky(Li, Lf, ri, rf, wf, m)
>>> U, delta
(array([[0.99977449]]), array([-1.17623073]))

Parameters
• Li (array) – mass-weighted normal modes of the initial electronic state

• Lf (array) – mass-weighted normal modes of the final electronic state

• ri (array) – equilibrium molecular geometry of the initial electronic state

• rf (array) – equilibrium molecular geometry of the final electronic state

• wf (array) – normal mode frequencies of the final electronic state in units of $$\mbox{cm}^{-1}$$

• m (array) – atomic masses in unified atomic mass units

Returns

Duschinsky rotation matrix $$U$$, Duschinsky displacement vector $$\delta$$

Return type

tuple[array, array]