Vibrational analysis is an extremely important tool for the quantum chemist, supplying a molecular fingerprint which is invaluable for aiding identification of molecular species in many experimental studies. Q-Chem includes a vibrational analysis package that can calculate vibrational frequencies and their Raman[Johnson and Florián(1995)] and infrared activities. Vibrational frequencies are calculated by either using an analytic Hessian (if available; see Table 10.1) or, numerical finite difference of the gradient. The default setting in Q-Chem is to use the highest analytical derivative order available for the requested theoretical method.

When calculating analytic frequencies at the HF and DFT levels of theory, the coupled-perturbed SCF equations must be solved. This is the most time-consuming step in the calculation, and also consumes the most memory. The amount of memory required is where is the number of basis functions, and the number of atoms. This is an order more memory than is required for the SCF calculation, and is often the limiting consideration when treating larger systems analytically. Q-Chem incorporates a new approach to this problem that avoids this memory bottleneck by solving the CPSCF equations in segments.[Korambath et al.(2002)Korambath, Kong, Furlani, and Head-Gordon] Instead of solving for all the perturbations at once, they are divided into several segments, and the CPSCF is applied for one segment at a time, resulting in a memory scaling of , where is the number of segments. This option is invoked automatically by the program.

Following a vibrational analysis, Q-Chem computes useful statistical thermodynamic properties at standard temperature and pressure, including: zero-point vibration energy (ZPVE) and, translational, rotational and vibrational, entropies and enthalpies.

The performance of various *ab initio* theories in determining vibrational frequencies has been well documented; see Refs. Murray:1992,Scott:1996,Johnson:1993d.

In order to carry out a frequency analysis users must *at a minimum* provide a molecule within the *$molecule* keyword and define an appropriate level of theory within the *$rem* keyword using the *$rem* variables EXCHANGE, CORRELATION (if required) (Chapter 4) and BASIS (Chapter 8). Since the default type of job (JOBTYPE) is a single point energy (SP) calculation, the JOBTYPE *$rem* variable must be set to FREQ.

It is very important to note that a vibrational frequency analysis must be performed at a stationary point on the potential surface that has been optimized at the same level of theory. Therefore a vibrational frequency analysis most naturally follows a geometry optimization in the same input deck, where the molecular geometry is obtained (see examples).

Users should also be aware that the quality of the quadrature grid used in DFT calculations is more important when calculating second derivatives. The default grid for some atoms has changed in Q-Chem 3.0 (see Section 5.5) and for this reason vibrational frequencies may vary slightly form previous versions. It is recommended that a grid larger than the default grid is used when performing frequency calculations.

The standard output from a frequency analysis includes the following.

Vibrational frequencies.

Raman and IR activities and intensities (requires

*$rem*DORAMAN).Atomic masses.

Zero-point vibrational energy.

Translational, rotational, and vibrational, entropies and enthalpies.

Several other *$rem* variables are available that control the vibrational frequency analysis. In detail, they are:

DORAMAN

Controls calculation of Raman intensities. Requires JOBTYPE to be set to FREQ

TYPE:

LOGICAL

DEFAULT:

FALSE

OPTIONS:

FALSE

Do not calculate Raman intensities.

TRUE

Do calculate Raman intensities.

RECOMMENDATION:

None

VIBMAN_PRINT

Controls level of extra print out for vibrational analysis.

TYPE:

INTEGER

DEFAULT:

1

OPTIONS:

1

Standard full information print out.

If VCI is TRUE, overtones and combination bands are also printed.

3

Level 1 plus vibrational frequencies in atomic units.

4

Level 3 plus mass-weighted Hessian matrix, projected mass-weighted Hessian

matrix.

6

Level 4 plus vectors for translations and rotations projection matrix.

RECOMMENDATION:

Use the default.

CPSCF_NSEG

Controls the number of segments used to calculate the CPSCF equations.

TYPE:

INTEGER

DEFAULT:

0

OPTIONS:

0

Do not solve the CPSCF equations in segments.

User-defined. Use segments when solving the CPSCF equations.

RECOMMENDATION:

Use the default.

**Example 11.254** An EDF1/6-31+G* optimization, followed by a vibrational analysis. Doing the vibrational analysis at a stationary point is necessary for the results to be valid.

$molecule 0 1 O C 1 co F 2 fc 1 fco H 2 hc 1 hco 3 180.0 co = 1.2 fc = 1.4 hc = 1.0 fco = 120.0 hco = 120.0 $end $rem JOBTYPE opt METHOD edf1 BASIS 6-31+G* $end @@@ $molecule read $end $rem JOBTYPE freq METHOD edf1 BASIS 6-31+G* $end

By default Q-Chem calculates vibrational frequencies using the atomic masses of the most abundant isotopes (taken from the Handbook of Chemistry and Physics, Edition). Masses of other isotopes can be specified using the *$isotopes* section and by setting the ISOTOPES *$rem* variable to TRUE. The format of the *$isotopes* section is as follows:

$isotopes number_of_isotope_loops tp_flag number_of_atoms [temp pressure] (loop 1) atom_number1 mass1 atom_number2 mass2 ... number_of_atoms [temp pressure] (loop 2) atom_number1 mass1 atom_number2 mass2 ... $end

**Note: **Only the atoms whose masses are to be changed from the default values need to be specified. After each loop all masses are reset to the default values. Atoms are numbered according to the order in the *$molecule* section.

An initial loop using the default masses is always performed first. Subsequent loops use the user-specified atomic masses. Only those atoms whose masses are to be changed need to be included in the list, all other atoms will adopt the default masses. The output gives a full frequency analysis for each loop. Note that the calculation of vibrational frequencies in the additional loops only involves a rescaling of the computed Hessian, and therefore takes little additional computational time.

The first line of the *$isotopes* section specifies the number of substitution loops and also whether the temperature and pressure should be modified. The *tp_flag* setting should be set to 0 if the default temperature and pressure are to be used (298.18 K and 1 atm respectively), or else to 1 if they are to be altered. Note that the temperatures should be specified in Kelvin and pressures in atmospheres.

ISOTOPES

Specifies if non-default masses are to be used in the frequency calculation.

TYPE:

LOGICAL

DEFAULT:

FALSE

OPTIONS:

FALSE

Use default masses only.

TRUE

Read isotope masses from

$isotopessection.

RECOMMENDATION:

None

**Example 11.255** An EDF1/6-31+G* optimization, followed by a vibrational analysis. Doing the vibrational analysis at a stationary point is necessary for the results to be valid.

$molecule 0 1 C 1.08900 0.00000 0.00000 C -1.08900 0.00000 0.00000 H 2.08900 0.00000 0.00000 H -2.08900 0.00000 0.00000 $end $rem BASIS 3-21G JOBTYPE opt METHOD hf $end @@@ $molecule read $end $rem BASIS 3-21G JOBTYPE freq METHOD hf SCF_GUESS read ISOTOPES 1 $end $isotopes 2 0 ! two loops, both at std temp and pressure 4 1 13.00336 ! All atoms are given non-default masses 2 13.00336 3 2.01410 4 2.01410 2 3 2.01410 ! H's replaced with D's 4 2.01410 $end

The computation of harmonic frequencies for systems with a very large number of atoms can become computationally expensive. However, in many cases only a few specific vibrational modes or vibrational modes localized in a region of the system are of interest. A typical example is the calculation of the vibrational modes of a molecule adsorbed on a surface. In such a case, only the vibrational modes of the adsorbate are useful, and the vibrational modes associated with the surface atoms are of less interest. If the vibrational modes of interest are only weakly coupled to the vibrational modes associated with the rest of the system, it can be appropriate to adopt a partial Hessian approach. In this approach,[Besley and Metcalf(2007), Besley and Bryan(2008)] only the part of the Hessian matrix comprising the second derivatives of a subset of the atoms defined by the user is computed. These atoms are defined in the *$alist* block. This results in a significant decrease in the cost of the calculation. Physically, this approximation corresponds to assigning an infinite mass to all the atoms excluded from the Hessian and will only yield sensible results if these atoms are not involved in the vibrational modes of interest. VPT2 and TOSH anharmonic frequencies can be computed following a partial Hessian calculation.[Hanson-Heine et al.(2012)Hanson-Heine, George, and Besley] It is also possible to include a subset of the harmonic vibrational modes with an anharmonic frequency calculation by invoking the ANHAR_SEL rem. This can be useful to reduce the computational cost of an anharmonic frequency calculation or to explore the coupling between specific vibrational modes.

Alternatively, vibrationally averaged interactions with the rest of the system can be folded into a partial Hessian calculation using vibrational subsystem analysis.[Zheng and Brooks(2005), Woodcock et al.(2008)Woodcock, Zheng, Ghysels, Shao, Kong, and Brooks] Based on an adiabatic approximation, this procedure reduces the cost of diagonalizing the full Hessian, while providing a local probe of fragments vibrations, and providing better than partial Hessian accuracy for the low frequency modes of large molecules.[Ghysels et al.(2010)Ghysels, Van Speybroeck, Pauwels, Catak, Brooks, Van Neck, and Waroquier] Mass-effects from the rest of the system can be vibrationally averaged or excluded within this scheme.

PHESS

Controls whether partial Hessian calculations are performed.

TYPE:

INTEGER

DEFAULT:

0

Full Hessian calculation

OPTIONS:

1

Partial Hessian calculation.

2

Vibrational subsystem analysis (massless).

3

Vibrational subsystem analysis (weighted).

RECOMMENDATION:

None

N_SOL

Specifies number of atoms included in the Hessian.

TYPE:

INTEGER

DEFAULT:

No default

OPTIONS:

User defined

RECOMMENDATION:

None

PH_FAST

Lowers integral cutoff in partial Hessian calculation is performed.

TYPE:

LOGICAL

DEFAULT:

FALSE

Use default cutoffs

OPTIONS:

TRUE

Lower integral cutoffs

RECOMMENDATION:

None

ANHAR_SEL

Select a subset of normal modes for subsequent anharmonic frequency analysis.

TYPE:

LOGICAL

DEFAULT:

FALSE

Use all normal modes

OPTIONS:

TRUE

Select subset of normal modes

RECOMMENDATION:

None

**Example 11.256** This example shows an anharmonic frequency calculation for ethene where only the C-H stretching modes are included in the anharmonic analysis.

$comment ethene restricted anharmonic frequency analysis $end $molecule 0 1 C 0.6665 0.0000 0.0000 C -0.6665 0.0000 0.0000 H 1.2480 0.9304 0.0000 H -1.2480 -0.9304 0.0000 H -1.2480 0.9304 0.0000 H 1.2480 -0.9304 0.0000 $end $rem JOBTYPE freq METHOD hf BASIS sto-3g ANHAR_SEL TRUE N_SOL 4 $end $alist 9 10 11 12 $end

**Example 11.257** This example shows a partial Hessian frequency calculation of the vibrational frequencies of acetylene on a model of the C(100) surface

$comment acetylene - C(100) partial Hessian calculation $end $molecule 0 1 C 0.000 0.659 -2.173 C 0.000 -0.659 -2.173 H 0.000 1.406 -2.956 H 0.000 -1.406 -2.956 C 0.000 0.786 -0.647 C 0.000 -0.786 -0.647 C 1.253 1.192 0.164 C -1.253 1.192 0.164 C 1.253 -1.192 0.164 C 1.297 0.000 1.155 C -1.253 -1.192 0.164 C 0.000 0.000 2.023 C -1.297 0.000 1.155 H -2.179 0.000 1.795 H -1.148 -2.156 0.654 H 0.000 -0.876 2.669 H 2.179 0.000 1.795 H -1.148 2.156 0.654 H -2.153 -1.211 -0.446 H 2.153 -1.211 -0.446 H 1.148 -2.156 0.654 H 1.148 2.156 0.654 H 2.153 1.211 -0.446 H -2.153 1.211 -0.446 H 0.000 0.876 2.669 $end $rem JOBTYPE freq METHOD hf BASIS sto-3g PHESS TRUE N_SOL 4 $end $alist 1 2 3 4 $end

The computation of harmonic frequencies leads to molecular vibrations described by coordinates which are often highly de-localized. For larger molecules many vibrational modes can potentially contribute to a single observed spectral band, and information about the interaction between localized chemical units can become less readily available. In certain cases, localizing vibrational modes using procedures similar to the localized orbital schemes discussed previously in this manual can therefore provide a more chemically intuitive way of analysing spectral data,[Jacob and Reiher(2009), Jacob et al.(2009a)Jacob, Luber, and Reiher, Jacob et al.(2009b)Jacob, Luber, and Reiher] interpreting two-dimensional vibrational spectra,[Hanson-Heine et al.(2016)Hanson-Heine, Husseini, Hirst, and Besley] or improving calculations that go beyond the harmonic approximation.[Cheng and Steele(2014), Panek and Jacob(2014), Hanson-Heine(2015)] It is also possible to include only a subset of the normal modes in the localization calculation by invoking the LOCALFREQ_SELECT rem variable. This can be useful to improve convergence in larger molecules or to explore the coupling between specific vibrational modes. These modes are defined in the *$alist* block. Alternatively it is possible to localize high and low frequency modes separately in a single calculation using LOCALFREQ_GROUPS and related inputs.

LOCAL_FREQ

Controls whether a vibrational mode localization calculation is performed.

TYPE:

INTEGER

DEFAULT:

0

Normal mode calculation.

OPTIONS:

1

Localized mode calculation with a Pipek-Mezey like criterion.

2

Localized mode calculation with a Boys like criterion.

RECOMMENDATION:

None

LOCALFREQ_THRESH

Mode localization is considered converged when the change in the localization criterion is less than .

TYPE:

INTEGER

DEFAULT:

6

OPTIONS:

User-specified integer.

RECOMMENDATION:

None

LOCALFREQ_MAX_ITER

Controls the maximum number of mode localization sweeps permitted.

TYPE:

INTEGER

DEFAULT:

200

OPTIONS:

User-specified integer.

RECOMMENDATION:

None

LOCALFREQ_SELECT

Select a subset of normal modes for subsequent anharmonic frequency analysis.

TYPE:

LOGICAL

DEFAULT:

FALSE

Use all normal modes.

OPTIONS:

TRUE

Select a subset of normal modes.

RECOMMENDATION:

None

LOCALFREQ_GROUPS

Select the number of groups of frequencies to be localized separately within a localized mode calculation. The size of the groups are then controlled using the LOCALFREQ_GROUP1, LOCALFREQ_GROUP2, and LOCALFREQ_GROUP3 keywords.

TYPE:

INTEGER

DEFAULT:

0

Localize all normal modes together.

OPTIONS:

1

Define one subset of modes to localize independently.

2

Define two subsets of modes to localize independently.

3

Define three subsets of modes to localize independently.

RECOMMENDATION:

None

LOCALFREQ_GROUP1

Select the number of modes to include in the first subset of modes to localize independently when the keyword LOCALFREQ_GROUPS > 0.

TYPE:

INTEGER

DEFAULT:

NONE

OPTIONS:

User-specified integer.

RECOMMENDATION:

Modes will be included starting with the lowest frequency mode and then in ascending energy order up to the defined value.

LOCALFREQ_GROUP2 and LOCALFREQ_GROUP3 are defined similarly.