|
Analytical Frequencies
The frequencies are calculated analytically by specifying the AnalyticalFreq
block keyword (see below for more details). The analytical frequencies are as
accurate as the numerical frequencies 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. The analytical
frequencies are fully parallelised and linearly scaled.
Note: The analytical calculation of frequencies in case of ZORA and frozen cores
contains a bug in all version up to and including ADF2006.01b.
In this case the numerical frequencies are more reliable.
The analytical calculation of frequencies in case of ZORA and all electron basis sets does not give problems.
Calculating the analytical frequencies 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 frequencies 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
Exchange GGA: Becke88, OPTx, PBEx, rPBEx, revPBEx
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 Hatree-Fock.
To calculate the frequencies analytically, include the block key word ANALYTICALFREQ.
Subkeys are available, but in general, to calculate the frequencies, no subkeys
are required, and including the following in your run file is sufficient:
AnalyticalFreq
End
Unlike the numerical frequencies, the analytical frequencies can be computed immediately
after a geometry optimization by including both block keywords in the same input file.
Geometry
... Geometry optimization options here ...
End
AnalyticalFreq
End
A note of caution: during a geometry optimization the integration accuracy is set by
default to 4, 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. If accurate frequencies are required, then one should change the integration
accuracy by using the INTEGRATION keyword.
The format for the AnalyticalFreq block key is:
AnalyticalFreq
PRINT {eigs} {u1} {parts} {raw_freq}
DEBUG {fit} {hessian} {b1} {densities} {numbers} {symmetry} {all}
MAX_CPKS_ITERATIONS Niter
CHECK_CPKS_FROM_ITERATION N
U1_ACCURACY x
NUC N1 N2 ... Nk
End
An explanation of the subkeys follow.
PRINT
This is primarly for debugging purposes. 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. RAW_FREQ gives the eignvalues of the initial force matrix, which are
essentially the frequencies before rotational and translational degrees of
freedom have been removed from the force matrix.
DEBUG
This is for debugging purposes. The choice FIT results in the
print out of information related to the calculation of the fit coefficients and
their derivatives. HESSIAN results in the printing out of many of the
sub-Hessians that add ups to give the final Hessian. Many more Hessians are
printed out with this option that with the print parts subkey option (mentioned
above). Choosing B1 gives data related to the frozen core orthogonalisation
coefficients and their derivatives. DENSITIES gives the integrals and moments
of various densities computed during the calculation of the frequencies.
Including NUMBERS results in the print out of numbers of basis functions, fit
functions etc, as well as various integer arrays that are crucial to the
calculation of the analytical second derivatives. SYMMETRY results in symmetry
information and symmetry matrices being printed out. ALL can be used to print
out all debug information.
MAX_CPKS_ITERATIONS Niter
Calculating the analytical frequencies requires the solution of
the Coupled Perturbed Kohn-Sham (CPKS) equations, which is an iterative
process. For most systems tested so far, convergence to the required
accuracy in the U1 matrix is achieved within Niter=20 iterations, which is the
default. 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.
CHECK_CPKS_FROM_ITERATION N
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. The default is
1.
U1_ACCURACY x
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 (similar to the integration accuracy
parameter). The default is 4. While this parameter effects the accuracy of
the frequencies, other factors also effect the accuracy of the frequencies,
especially the ADF integration accuracy.
NUC N1 N2 ... Nk
By default, when calculating the frequencies analytically, the
derivatives of the energy with respect to all nuclei are calculated. This
gives a complete Hessian (second derivative) matrix, from which the vibrational
frequencies of the molecule can be calculated. However, there may be certain
cases where only derivatives with respect to a subset of all the nuclei are
required. In this case it is a considerable saving in time if only a partial
Hessian is calculated. With this subkey, a list of the nuclei for which the
derivatives are required can be specified. However, the frequencies in this
case are not the vibrational frequencies of the molecule, but may be used in
guiding certain transition state searches.
Restarting Analytical Frequency jobs
Analytical frequency jobs can be restarted if a previous job did not finish.
A restart can be done if the file TAPE21 has been saved without any corruption
to the file. Upon doing a restart for analytical frequencies, the ADF program
will check for the presence of an incomplete Hessian and/or for the presence of
an incomplete U1 matrix, then attempt to figure out what more needs to be done.
The restart option may also be useful in combination with the atom selection
option (i.e. by specifying a list of atoms following the keyword nuc in the
analyticalfreq block key, see previous notes in this section). So for instance,
you could calculate the partial Hessian for a subset of atoms of a molecule,
and at a later time add another subset of atoms, or the rest of the atoms of
the molecule to complete the Hessian.
|