# All vibrational modes¶

With vibrational analysis, we focus on the calculation of molecular vibrational modes and their associated properties. These molecular normal modes are typically calculated within the harmonic oscillation model.

If the molecule is in its equilibrium conformation, it sits in the lowest point (at least locally) on the PES. The cross-section of the PES profile close to this point can then be assumed to be approximately parabolic, such that the second derivative of the energy w.r.t a nuclear coordinate can be interpreted as a force constant for the harmonic oscillation of an atom along this coordinate. Since molecular vibrations in polyatomics involve the simultaneous displacement of multiple atoms, this harmonic oscillator model can be generalized to multiple nuclear coordinates. The normal modes and their frequencies then become eigenvectors and eigenvalues of a force constant matrix, the Hessian:

$H_{ij} = \frac{\partial^2E}{\partial{}R_i\partial{}R_j}$

This Hessian can be requested as a PES property in AMS.

Properties
Hessian [True | False]
End

Properties
Hessian
Type: Bool False Whether or not to calculate the Hessian.

The (non-mass-weighted) Hessian is saved in the engine result file as variable AMSResults%Hessian. It is not printed to the text output. The column/row indices are ordered as: x-component of atom 1, y-component of atom 1, z-component of atom 1, x-component of atom 2, etc.

Most engines cannot calculate the Hessian analytically. The Hessian is then constructed column-wise through numerical differentiation of the energy gradients w.r.t. each nuclear coordinate. AMS will set up 2 single-point calculations (1 for the positive displacement, 1 for the negative displacement), and the requested engine will return the energy gradients at these displacements. These gradients are calculated analytically for most engines.

Note

Numerical calculation of the full Hessian requires 6N single points calculation, which can take a considerable amount of time for large systems. A mode selective method can be a fast alternative.

You can also request AMS to calculate the normal modes (and their properties). AMS will obtain the normal modes as the eigenvectors of the mass-weighted Hessian.

Properties
NormalModes [True | False]
End

Properties
NormalModes
Type: Bool False Frequencies Calculate the frequencies and normal modes of vibration, and for molecules also the corresponding IR intensities.

The frequencies of the normal modes are then obtained from the Hessian eigenvalues, which are the effective force constants of the vibrational modes:

$\nu = \frac{1}{2\pi c}\sqrt{\frac{\lambda}{\mu_r}}$

Here $$\nu$$ is the vibrational frequency in $$cm^{-1}$$, $$\lambda$$ is the Hessian eigenvalue and $$\mu_r$$ is the reduced mass associated with the vibrational mode.

Note that the normal modes also include 3 translational and 3 rotational modes (2 for linear molecules). Together, these are referred to as “rigid modes”. While they are not presented as part of the vibrational spectra, they are still stored in the engine result file in the Vibrations section.

When requesting the normal modes calculation, integrated IR intensities are simultaneously calculated during the finite differentiation steps when constructing the Hessian (as long as dipole moments are supported by the engine). These IR intensities are calculated from the numerical dipole gradients:

$I_{IR} = \frac{N\pi}{3c^2}\sum_\alpha\Big(\sum_j\frac{\partial{}\mu_\alpha}{\partial{}R_j^m}Q_{j}^m\Big)^2$

Where $$\alpha$$ denotes the x-,y- and z-components of the dipole moment $$\mu$$, and $$Q^m$$ is the mass-weighted vibrational normal mode.

Note

To obtain accurate results using this method, the harmonic approximation must hold. Your calculations should thus be done at the system’s equilibrium geometry. Since different engines, functionals, parameter sets etc. all yield slightly different PESs, it is recommended to always precede the calculation of the normal modes and/or Hessian with a geometry optimization at the desired engine settings. One can either run this optimization first and then get the Hessian/modes from a PES point calculation, or combine both steps into one job by using the geometry optimization task together with the Properties%NormalModes keyword.

Older versions of ADF and BAND in AMS supported a ScanFreq keyword which allowed the user to recalculate suspicious/spurious frequencies after a normal mode calculation. This keyword is now available as ScanModes under the NormalModes input block. It allows the user to specify a frequency range. All normal modes with frequencies in this range will be recalculated. By default this includes all negative frequencies and positive frequencies up to 10 cm $$^{-1}$$. The step size for the numerical differentiation uses that specified in the VibrationalAnalysis block (with a default of 0.001).

NormalModes
FreqRange float_list
ScanModes [True | False]
UseSymmetry [True | False]
End

NormalModes
Type: Block Configures details of a normal modes calculation.
FreqRange
Type: Float List [-10000000.0, 10.0] cm-1 True Specifies a frequency range within which all modes will be scanned. (2 numbers: an upper and a lower bound.)
ScanModes
Type: Bool False Whether or not to scan imaginary modes after normal modes calculation has concluded.
UseSymmetry
Type: Bool True Whether or not to exploit the symmetry of the system in the normal modes calculation.

An extension of this functionality is available as the ModeScanning application in AMS. For more details on how ScanModes recalculates frequencies and the extensions implemented by ModeScanning, see its documentation page.