Next: 34.2 Geometry optimization Up: 34.1 The gradient program Previous: 34.1.8 Example

34.1.9 Numerical gradients

It is possible to compute gradients by finite differences from energies using

FORCE,NUMERICAL,STARTCMD=command

where command is the first command in the input needed for the current energy calculation. The command must be found in the input before the FORCE card, i.e., the sequence of input cards starting with command and ending with FORCE is used to compute the energies. For example, in order to compute numerical gradients for ccsd(t), it is necessary to do a HF and a CCSD(T) calculation at each geometry. The input would read

hf
ccsd(t)
forces,numerical,startcmd=hf

The program will then automatically repeat HF and CCSD(T) at as many geometries as needed for evaluating the gradient. The keyword NUMERICAL implies that also STARTCMD must be given, otherwise an error results.

By default, the numerical gradients are computed relative to all variables on which the z-matrix depends. Cartesian gradients can be computed by adding a card

COORD,type

where type can be 3N or CART. In the first case, the gradients are computed explicitely for all 3N cartesian coordinates. In the latter case, the program tries to reduce the number of energy calculations by eliminating symmetry equivalent displacements, provided the SYMMETRY=AUTO option is set (see below). The displacements required for computing the gradient can reduce the symmetry of the molecule. By default, the numerical calculation of cartesian gradients is performed in C1 symmetry. It is possible to request the use of symmetry whenever possible using the command 1

SYMMETRY=AUTO

On the other hand, when numerical gradients are computed in z-matrix coordinates, it is assumed that changing the z-matrix variables does not change the symmetry, and therefore SYMMETRY=AUTO is the default in this case. The use of symmetry can be switched off using

SYMMETRY=OFF

Note that the SYMMETRY directive must be given after the COORD directive.

Normally, the numerical gradients are computed for the last computed energy. Alternatively, derivatives can be computed for an arbitrary MOLPRO variable name using

VARIABLE=name

By default, the numerical step sizes are 0.01 bohr for distances or cartesian coordinates, and 1 degree for angles. These defaults can be changed using

RSTEP=dr
ASTEP=da

where dr is the displacement for distances (or cartesian coordinates) in bohr, and da is the displacement for angles in degree. The step sizes for individual variables can be modified using

STEP,varname=value,...

where the value must be in atomic units for distances and in degree for angles.



Next: 34.2 Geometry optimization Up: 34.1 The gradient program Previous: 34.1.8 Example

P.J. Knowles and H.-J. Werner
molpro@tc.bham.ac.uk
Jan 15, 2002