Vibrational Spectroscopy

See the Vibrational Spectroscopy section of the AMS manual.

IR frequencies and normal modes

See the IR frequencies and normal modes section of the AMS manual.

The Hessian that is needed can be calculated numerically (for almost all XC functionals) or analytically (for a limited amount of XC functionals, mostly LDA or GGA). 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

Description

Define options for analytical frequencies.

B1Size
Type

Float

Description

Sparse grid max memory size

B1Thresh
Type

Float

Default value

1e-10

Description

MMGF_DENB1 and MMGF_GRADB1 cutoff values

Check_CPKS_From_Iteration
Type

Integer

Default value

1

Description

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

Description

For debugging purposes. Options: fit, hessian, b1, densities, numbers, symmetry, all.

Hessian
Type

Multiple Choice

Default value

reflect

Options

[reflect, average]

Description

Whether the final Hessian is obtained by reflecting or averaging?

Max_CPKS_Iterations
Type

Integer

Default value

20

Description

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

Description

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

Default value

No

Description

Request ADF to print analysis of the normal modes independently of AMS.

U1_Accuracy
Type

Float

Default value

5.0

Description

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

See the (Resonance) Raman section of the AMS manual. As explained there one has two methods for calculating resonance Raman. One method uses the geometrical derivatives of the frequency-dependent polarizability with a finite lifetime, and the other method uses excited-state energy gradients projected onto the ground-state normal modes.

For (resonance) Raman calculations that use the geometrical derivatives of the frequency-dependent polarizability by default AORESPONSE will be used. 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.

Vibrational Polarizabilities

Following a vibrational frequency calculation ADF will automatically print the pure vibrational polarizability 4 of the system. The full polarizability tensor is printed in atomic units along with the isotropic average.

See the Vibrational Polarizabilities section of the AMS manual.

4
    1. Cohen, A. Willetts, R. D. Amos, and N. C. Handy, Vibrational contributions to static polarizabilities and hyperpolarizabilities, Journal of Chemical Physics 100, 4467 (1994)