Vibrational analysis

This section documents AMS tasks focused on generating (approximations of) vibrational normal modes, or the calculation of properties of these vibrational modes. We discuss both conventional vibrational analysis and more selective methods, as implemented in AMS.

Full analysis

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 generalised 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.

   Hessian [True | False]
Default value:False
Description: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.


Numerical calculation of the Hessian requires 6N single points calculation, which can take a considerable amount of time for large systems.

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.

   NormalModes [True | False]
Default value:False
Description:Whether or not to calculate the normal modes of vibration (and of molecules 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.


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 optimisation at the desired engine settings. One can either run this optimisation 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.

Mode selective analysis

The vibrational analysis tools in AMS also provide three additional methods: Mode Scanning, Mode Refinement and Mode Tracking. The latter two methods can be used for the calculation of select modes or select regions of the vibrational spectrum, whereas Mode Scanning can be used to obtain more accurate approximations of the vibrational mode properties. These methods are discussed in more detail on their respective pages:

Mode Scanning is an extension of the frequency scanning options that were part of ADF and BAND in earlier versions of the Amsterdam Modeling Suite. It is primarily used to identify spurious imaginary modes obtained from the normal modes calculation discussed earlier. Alternatively, you can use it to improve the numerical accuracy of the normal mode properties or to obtain approximations for these properties at higher levels of theory.

Both Mode Tracking and Mode Refinement can be used to obtain select vibrational modes without construction of the (full) Hessian. In the work-flow for both of these methods, we start with e.g. a semi-empirical method such as MOPAC to get an initial approximation of the normal modes, which are used to obtain accurate approximations of the normal modes on e.g. DFT-level. While the methods appear similar, it is important to stress their differences. Here, we give our recommendations on which methods you should use. (You can read up on the details of these methods on the respective pages.)

Mode Tracking:
  • Calculations are conducted for each mode separately. Converges fastest for characteristic (non-highly degenerate) modes.
  • Iterative approximation to the true modes. Guaranteed to give the correct normal modes if the procedure converges.
  • Will not necessarily reproduce the entire spectrum as multiple guess modes can converge to the same normal mode.
Mode Refinement:
  • Refinement of entire spectral regions, but requires a sufficient number of modes in the basis for sufficient accuracy.
  • 1-step refinement. No iterative improvement possible. (Unless followed by a separate Mode Tracking calculation.)
  • Quality of the results depends on accuracy of the selected guess modes.

Because the Mode Refinement method uses linear combinations of the guess modes, its accuracy depends on the set of modes that is supplied.

  • If we want to e.g. obtain a mode which includes a C=O stretch, then the initial set must contain a mode which has this C=O stretch, otherwise this cannot be included in the refined modes.
  • If we are refining a region containing many similar modes, e.g. vibrations of aromatic ring backbones, and we only use part of this spectral region for the initial set, the set of refined modes will “drift” towards the centre of the spectral region as a results of mode-mixing. This is again an artefact of missing character in the modes.
  • This mode-mixing may result in reduced accuracy for some of the modes, as this procedure minimises the total error for all of the modes. Instead of having a couple of modes with large errors, mode-mixing tends to spread out the error across multiple normal modes. Adding 1 “bad” mode to the basis can then negatively affect your results.

Mode Tracking on the other hand uses information about the known parts of the Hessian to expand its basis iteratively:

  • Missing C-O stretch character can thus be recovered in this procedure, and there is no basis dependency.
  • For large regions with similar modes however, it is possible that multiple guess modes converge to the same normal mode. Running mode tracking for all modes in this region might not reproduce all unique normal modes.

Which method to use thus primarily depends on the type and number of modes you are refining:

  • The advantage of Mode Refinement is the ability to refine entire spectral regions at once. If we have a good basis, Mode Refinement can be less computationally expensive than Mode Tracking. If you want to refine larger sections of the spectrum, Mode Refinement is therefore recommended. If you only want to calculate a select few modes, use Mode Tracking to avoid basis dependence and to assure accuracy of the obtained modes.
  • For characteristic peaks, Mode Tracking shows very good convergence, and will thus be cheaper to use than Mode Refinement. For (semi-)degenerate modes however, Mode Refinement works better due to the poor tracking performance for these modes.

Selecting modes

Mode Scanning, Mode Refinement and Mode Tracking all require you to supply a set of modes as input. For Mode Scanning these are the modes that you want to calculate the properties of, for Mode Refinement these modes form the basis modes, and for Mode Tracking these are the initial guess modes.

These methods provide options to load a large set of modes, after which the program will filter out the modes of interest. This is done according to the keys set in the ModeSelect block.


The ModeSelect block is part of the configuration blocks for each task. You can read how to set up these task-specific blocks for each method on their individual pages. Note that the methods for obtaining the set of modes that we will filter can differ per method. Particularly Mode Tracking features a lot of additional options.

Below is an overview of all the available options for the ModeSelect block. The options are not mutually exclusive, e.g.:


      HighFreq 1
      HighIR 1

  ... other Mode Tracking options ...


This will select 2 modes: the one with the highest frequency and the one with the highest IR intensity. If these modes happen to be the same one however (the mode with the highest frequency also has the highest IR intensity), only 1 mode is selected.


  • HighFreq followed by an integer N will select the N modes with the highest frequencies.
  • LowFreq followed by an integer N will select the N modes with the lowest frequencies. Imaginary modes are given with negative frequencies in AMS, and are included in this selection.
  • LowFreqNoIm is the same as LowFreq except imaginary modes are omitted.
  • ImFreq will select all imaginary modes.
  • ModeNumber allows you to supply a list of integers. Each integer is the index of the mode in the order that they appear in the file. E.g. benzene has 30 vibrational modes, which are numbered 1-30.
  • FreqRange selects all modes whose frequency falls in a specific range. 2 values must be supplied to mark this frequency range. Calculating all modes with e.g. frequencies higher than 3000cm-1 can be achieved by making the upper bound very large: FreqRange 3000 1000000
  • IRRange selects all modes whose IR intensity falls in a specific range. 2 values must be supplied to mark this IR intensity range, the same way as for FreqRange.
  • FreqAndIRRange combines FreqRange and IRRange. It selects modes in a frequency range whose IR intensity falls into a specified range as well. 4 values must be supplied: the first 2 specify the frequency range, the final 2 specify the IR intensity range.
  • HighIR followed by an integer N will select the N modes with the highest IR intensities.
  • LowIR followed by an integer N will select the N modes with the lowest IR intensities.
  • Full requests a full frequency calculation. This will select all modes. This only make sense for Mode Scanning calculations, as tracking or refining all modes is just an overcomplicated way of doing the full vibrational analysis.
[ ModeScanning | ModeRefinement | ModeTracking ]

      # select the 2 modes with the highest frequency
      HighFreq 2
      # select the 2 modes with the lowest frequency (including imaginary modes)
      LowFreq 2
      # select the 3 modes with the lowest energy
      LowFreqNoIm 3
      # Select modes #1 #7 & #19
      ModeNumber 1 7 19
      # Select modes with frequencies between 3000 - 3200 cm-1
      FreqRange 3000 3200
      # Select modes with IR intensities between 5 - 10 km/mol
      IRRange 5 10
      # Select modes with frequencies between 1000 - 1500 cm-1 that have
      # IR intensities between 10 - 30 km/mol
      FreqAndIRRange 1000 15000 10 30
      # Select the mode with the highest IR intensity
      HighIR 1
      # Select the 3 modes with the lowest IR intensities
      LowIR 3
      # Request all modes
      Full true