# Vibrational Spectroscopy¶

## IR frequencies and normal modes¶

The Hessian that is needed can be calculated numerically or analytically. This can be set in the AMS part of the input.

\$ADFBIN/ams <<eor
NormalModes
Hessian [Auto | Analytical | Numerical]
End
...
eor


### Analytical Hessian¶

The analytical second derivatives (Hessian) implementation in ADF is based on Ref. [1] [2] [3]. The analytical Hessian is as accurate as the numerical Hessian for the same integration accuracy, but can be up to 3 to 5 times quicker to compute, depending on the molecule, integration grid parameters, and choice of basis set. Using the analytical Hessian AMS will calculate the vibrational frequencies and normal modes.

Warning

In previous versions ADF2006-ADF2020 contained a bug for analytical frequencies calculations of spin polarized molecules using PBEc.

Bug PBEc The bug for analytical frequencies calculations of spin-polarized molecules using PBEc affects calculations with the exchange-correlation functionals PBE, OPBE, RPBE, revPBE, and S12g. This bug was introduced in ADF2006 and fixed in AMS2020.103. Analytical frequencies using LibXC were not affected. Workaround for older versions is to use numerical frequencies. For AMS2020 one should use AMS2020.103 or later. For ADF2019.3 one should use ADF2019.307.

Calculating the analytical Hessian requires the solution of the Coupled Perturbed Kohn-Sham (CPKS) equations, which is an iterative process. This part of the process is of order 3 x number of atoms, and is generally the main bottle neck in calculating the frequencies. The immediate result of the solution of the CPKS equations is the U1 matrix, the components of which are closely related to the derivatives of the MO coefficients. One of the adjustable parameters in the input of an analytical frequencies calculation can be used to control the accuracy of the U1 matrix components.

One disadvantage in calculating analytical Hessian is that the range of exchange-correlation functionals is limited. This is because derivative formulas have to be derived for each exchange-correlation functional in ADF, which is not an straight forward task. Here are the currently available functionals:

LDA: XONLY, VWN, STOLL, PW92

Exchange GGA: Becke88, OPTx, PBEx, rPBEx, revPBEx, S12g

Correlation GGA: LYP, Perdew86, PBEc

XC GGA shortcuts: BP86, PBE, RPBE, revPBE, BLYP, OLYP, OPBE

Any functional not mentioned above is not implemented, including PW91 and Hartree-Fock.

A note of caution: For accurate frequencies it is especially important to also have an accurately optimized geometry. During a geometry optimization the integration accuracy is set by default to “Normal”, and so the resulting frequencies will also have this level of integration accuracy while it may be desirable to have frequencies computed with a higher accuracy. One might consider using Good NumericalQuality (or BeckeGrid quality) and set the convergence criteria for the geometry optimization tighter.

AnalyticalFreq
B1Size float
B1Thresh float
Check_CPKS_From_Iteration integer
Debug string
Hessian [reflect | average]
Max_CPKS_Iterations integer
Print string
PrintNormalModeAnalysis Yes/No
U1_Accuracy float
End

AnalyticalFreq
Type: Block Define options for analytical frequencies.
B1Size
Type: Float Sparse grid max memory size
B1Thresh
Type: Float 1e-10 MMGF_DENB1 and MMGF_GRADB1 cutoff values
Check_CPKS_From_Iteration
Type: Integer 1 Solution of the CPKS equations is an iterative process, and convergence is achieved if the difference between U1 matrix of successive iterations falls below a certain threshold. This key can be used to determine at which iteration the checking should start taking place.
Debug
Type: String For debugging purposes. Options: fit, hessian, b1, densities, numbers, symmetry, all.
Hessian
Type: Multiple Choice reflect [reflect, average] Whether the final Hessian is obtained by reflecting or averaging?
Max_CPKS_Iterations
Type: Integer 20 Calculating the analytical frequencies requires the solution of the Coupled Perturbed Kohn-Sham (CPKS) equations, which is an iterative process. If convergence is not achieved (a warning will be printed in the output if this is the case) then this subkey can be used to increase the number of iterations, although convergence is not guaranteed. The user required accuracy of the U1 matrix, as well as the ADF integration accuracy, can effect the rates of convergence.
Print
Type: String Primarily for debugging purposes. Options: eigs, u1, parts. Choosing EIGS results in the print out of the MO eigenvectors, while U1 results in the print out of the U1 matrices. Except for small molecules this will result in a lot of data being output, and so they are not recommended. Choosing PARTS results in the print out of various sub-hessians that add up to give the final analytical hessian.
PrintNormalModeAnalysis
Type: Bool No Request ADF to print analysis of the normal modes independently of AMS.
U1_Accuracy
Type: Float 5.0 Solution of the CPKS equations is an iterative process, and convergence is achieved if the difference between U1 matrix of successive iterations falls below a certain threshold. This subkey can be used to set the threshold. The accuracy of the U1 will be 10**(-x). So, the higher the number the more accurate the U1 will be. While this parameter effects the accuracy of the frequencies, other factors also effect the accuracy of the frequencies, especially the ADF integration accuracy.
 [1] A. Bérces, R. M. Dickson, L. Fan, H. Jacobsen, D. Swerhone and T. Ziegler, An implementation of the coupled perturbed Kohn-Sham equations: perturbation due to nuclear displacements, Computer Physics Communications 100, 247 (1997)
 [2] H. Jacobsen, A. Bérces, D. Swerhone and T. Ziegler, Analytic second derivatives of molecular energies: a density functional implementation, Computer Physics Communications 100, 263 (1997)
 [3] S.K. Wolff, Analytical second derivatives in the Amsterdam density functional package, International Journal of Quantum Chemistry 104, 645 (2005)

## (Resonance) Raman¶

For Raman calculations by default AORESPONSE will be used to calculate the frequency-dependent polarizability. To use RESPONSE instead of AORESPONSE include the RESPONSE block key in the Engine ADF part of the input:

Engine ADF
Response
End
EndEngine


## VROA: (Resonance) vibrational Raman optical activity¶

See the VROA section of the AMS manual.

## VCD: Vibrational Circular Dichroism¶

New in AMS2020 is that one can calculate VCD also for open-shell systems in a spin-unrestricted calculation.

See the VCD section of the AMS manual.