25.2.17 Keywords for Module aoforce

This module calculates analytically harmonic vibrational frequencies within the HF- or (RI)DFT-methods for closed-shell and spin-unrestricted open-shell-systems. Broken occupation numbers would lead to results without any physical meaning. Note, that RI is only used partially, which means that the resulting Hessian is only a (very good) approximation to exact second derivatives of the RIDFT-energy expression. Apart from a standard force constant calculation which predicts all (allowed and forbidden) vibrational transitions, it is also possible to specify certain irreps for which the calculation has to be done exclusively or to select only a small number of lowest eigenvalues (and eigenvectors) that are generated at reduced computational cost.

General keywords

$drvopt

is the keyword for non-default options of gradient and second derivative calculations. Possibilities in case of the module aoforce are:

frequency analysis only
analysis only

to read a complete Hessian from the input file $hessian and perform only the frequency analysis

analysis [only] intcoord [print ]

to perform an analysis of normal modes in terms of internal coordinates. Details about this option and the effect of the printlevel (default is 0) are given in Section 15. The effect of the keyword only is the same as described above.

$maxcor

fixes the amount of core memory to be used for dynamically allocated arrays (here 50 MiB), about 70% of available memory should be fine, because $maxcor specifies only the memory used to store derivatives of density and Fock matrices as well as right hande side vectors for the CPHF equations. For further details see subsection 25.2.3.

$forceconv

sets the convergence criterion for the CPHF-equations to a residual norm of 1.0d-7. Normally the default value of 1.0d-5 already provides an accuracy of vibrational frequencies of 0.01 cm\(^{-1}\) with respect to the values obtained for the convergence limit. Note that aoforcecan also read $rpaconv if $forceconv is not set.

$forceiterlimit

fixes the maximum number of Davidson iterations for the solution of the CPHF-equations to a value of ten. Normal calculations should not need more than eight iterations, but as a precaution the default value is 35.

$nosalc

forces the program in case of molecules with \(C_{1}\) symmetry not to use \(3N-6(5)\) symmetry adapted but all \(3N\) cartesian nuclear displacement vectors. This option may lead to a moderate speed-up for molecules notedly larger than 1000 basis functions and 100 atoms.

$noproj

forces the program not to project out translations and rotations when forming a basis of symmetry adapted molecular displacements. This option may be needed if a Hessian is required, that contains translation- and rotation-contributions, e.g. for coupling the system with low cost methods. Output of the unprojected hessian is done on $nprhessian; format is the same as for conventional $hessian. Output of the corresponding eigenvalues and eigenvectors is done analogously on $nprvibrational spectrum and $nprvibrational normal modes.

$nomw

causes the program to diagonalize a not mass weighted hessian. Output is on $nprhessian, $nprvibrational spectrum and $nprvibrational normal modes, because projection of rotations is not possible in this case.

$isosub

This keyword allows to trace back the effects of isotopic substitution on vibrational frequencies. The atom(s) for which isotopic substitution is to be investigated are specified in subsequent lines of the form (atom index) (mass in special isotope), e.g. 

$isosub 
 3 2.001 
 5 13 

The interpolation then takes place between the mass(es) specified in $atoms (or the default mass(es), if none specified) and the mass(es) in $isosub. Take care of symmetry equivalent atoms, otherwise symmetry analysis will fail. This feature can not be used in a lowest eigenvalue search (keyword $les).

$isopts

Sets the number of points for interpolation between the two isotopes compared by the $isosub option to six. Default value is 21.

Keywords for the treatment of only selected nuclear displacement vectors:

$ironly

CPHF-iteration is done only for distortions, that are IR active.

$ramanonly

CPHF-iteration is done only for distortions, that are Raman active.

$vcd

Calculation of VCD rotational strenghts after preceding mpshiftrun.

$les

This causes a lowest Hessian eigenvalue search to be performed instead of a complete force constant calculation. The lowest eigenvalue search consists of the calculation of a guess-Hessian and macro-iterations to find the solution vector(s) for the lowest eigenvalue(s). In each macro-iteration the CPHF-equations are solved for the present search vector(s).

$les all 1 means that one lowest eigenvalue for each irrep will be determined, other numbers of lowest eigenvalues per irrep are admissible too.

Different numbers of lowest eigenvalues for different irreps are requested by e.g. 

$les
a1 3
a2 all
b2 1

The convergence criterion of the Davidson iterations for the solution of the CPHF-equations as well as the maximal residual norm for the lowest Hessian eigenvalue in the macro-iteration are specified by $forceconv as explained above.

The maximum number of macro-iterations is specified by  $lesiterlimit x

with the default x=25. The maximum number of iterations for each solution of the CPHF-equations is again determined by $forceiterlimit as shown above.

The convergence of the macro-iterations is strongly influenced by the size of the starting search-subspace. Generally all guess-Hessian eigenvectors corresponding to imaginary frequencies and at least two real ones are used as starting search-subspace. However it proved to be necessary to use even more vectors in the case of guess-Hessians with very large conditioning numbers.
$hesscond 8.0d-5
means that all eigenvalues with the quotient \(\mathrm{(eigenvalue)/ (max.~eigenvalue)}\) lower than 0.00008 are added to the starting search-subspace. Default is 1.0d-4.

$sijuai_out

Save the derivative of the density matrix for subsequent use in the module evib. See 16

$dipgrad

This keyword is the output of a default aoforce run and contains the dipole derivatives w.r.t. atomic Cartesian coordinates. The result is given as 3x3 tensors for each atom (first three lines are for atom 1, next three lines for atom 2, etc.). In each 3x3 matrix per atom the columns are the dipole moment direction and the rows are three atomic cartesian coordinate directions:

$dipgrad cartesian dipole gradients
\( \begin{array}{ccc} d(\mu_x)/d(x_1) & d(\mu_y)/d(x_1) & d(\mu_z)/d(x_1) \\ d(\mu_x)/d(y_1) & d(\mu_y)/d(y_1) & d(\mu_z)/d(y_1) \\ d(\mu_x)/d(z_1) & d(\mu_y)/d(z_1) & d(\mu_z)/d(z_1) \\ d(\mu_x)/d(x_2) & d(\mu_y)/d(x_2) & d(\mu_z)/d(x_2) \\ d(\mu_x)/d(y_2) & d(\mu_y)/d(y_2) & d(\mu_z)/d(y_2) \\ \end{array}\)
...
$end

Force constant calculations on the DFT level prove to be numerically reliable only with large integration grids or if one includes the effects of quadrature weights. This is done by default—to prevent this, insert
no weight derivatives
in $dft.