next up previous contents
Next: Vibrational Frequency Computations Up: userman Previous: Examples   Contents


Geometry Optimization

PSI3 is capable of carrying out geometry optimizations (minimization only, at present) for a variety of molecular structures using either analytic and numerical energy gradients.

When present, internal coordinates provided in the INTCO: section of the input will be read and used by PSI3. If these are missing, PSI3 will automatically generate and use redundant, simple internal coordinates for carrying out the optimization. These simple stretch, bend, torsion, and linear bend coordinates are determined by distance criteria using the input geometry.

By default, optimization is performed in redundant internal coordinates regardless of how the geometry was provided in the input. Alternatively, the user may specify zmat_simples=true, in which case the simple internal coordinates will be taken from the ZMAT given in the input file. Also, the user may specify optimization in non-redundant, delocalized internal coordinates with delocalize=true. In this case, the automatically generated simple coordinates are delocalized and redandancies are removed. Advanced users may wish to specify the simple internal coordinates in the intco.dat file, and then allow PSI3 to delocalize them.

Only those coordinates or combinations of coordinates that are specified by the "symm =" keyword in the INTCO: section are optimized. Coordinates can be approximately frozen by commenting them out within the "symm =" section. Geometrical constraints may be precisely imposed by the addition of a section with nearly the same format as in INTCO:. For example, to fix the distance between atoms 1 and 2, as well as the angle between atoms 2, 1 and 3 in an optimization, add the following to your input file.
fixed_intco: (
stre = (
(1 2)
)
bend = (
(2 1 3)
)
)

The constrained simple internals must be ones present (either manually or automatically) among the simple internals in the INTCO: section. Alternatively, the z-matrix input format may be used to specify constrained optimizations. If zmat_simples=true, then variables in the z-matrix which end in a dollar sign will be taken as simple internals to be optimized, and all other variables will be taken as simple internals to keep frozen.

To aid optimizations, force constants may be computed using "jobtype = symm_fc". The determined force constants will be saved in a binary file PSIF_OPTKING (currently file 1). Subsequent optimizations will read and use these force constants. In general, PSI3 looks for force constants in the following order: in this binary file, in the FCONST: section of the input, and in the fconst.dat file. If no force constants are found in any of these, then an empirical diagonal force constant matrix is generated.

For methods for which only energies are available, PSI3 will use non-redundant, symmetry-adapted delocalized internal coordinates to generate geometrical displacements for computing finite-difference gradients. The simple coordinates can be linearly combined by hand or automatically. The goal is to form 3N-6(5) symmetry-adapted internal coordinates. The automated delocalized coordinates may work for low-symmetry molecules without linear angles, but have not been extensively tested. For both analytic- and finite-difference-gradient optimization methods, Hessian updates are performed using the BFGS method.

The list below shows which coordinates are used by default for different types of jobs.
jobtype=freq dertype=first symmetry-adapted cartesians
jobtype=freq dertype=none symmetry-adapted cartesians
jobtype=fc dertype=first delocalized internals (or user-defined SALCs)
jobtype=symm_fc dertype=first delocalized internals (or user-defined SALCs)
jobtype=opt dertype=first redundant internals
jobtype=opt dertype=none delocalized internals (or user-defined SALCS)

The following keywords are pertinent for geometry optimizations.

JOBTYPE = string

This keyword must be set to OPT for geometry optimizations and SYMM_FC to compute force constants.
DERTYPE = string

This keyword must be set to NONE if only energies are available for the chosen method and FIRST if analytic gradients are available.
CONV = integer

The maximum force criteria for optimization is $10^{-conv}$.
BFGS = boolean

If true (the default), a BFGS Hessian update is performed.
BFGS_USE_LAST = integer

This keyword is used to specify the number of gradient step for the BFGS update of the Hessian. The default is six.
SCALE_CONNECTIVITY = float

Determines how close atoms must be to be considered bonded in the automatic generation of the bonded list. The default is 1.3.
DELOCALIZE = integer

Whether to delocalize simple internal coordinates to attempt to produce a symmetry-adapted, non-redundant set.
MIX_TYPES = boolean

If set to false, different types of internal coordinates are not allowed to mix in the formation of the delocalized coordinates. Although this produces cleaner coordinates, often the resulting delocalized coordinates form a redundant set.
ZMAT_SIMPLES = boolean

If set to true, the simple internal coordinates are taken from the zmat entry in the input file. The default is false.
POINTS = 3 or 5

Specifies a 3-point or a 5-point formula for optimization by energy points.
EDISP = float

The default displacment size (in au) for finite-difference computations. The default is 0.005.
FRAGMENT_DISTANCE_INVERSE = boolean

For interfragment coordinates. If true, then 1/R(AB) is used, if false, then R(AB) is used. The default is true.
FIX_INTRAFRAGMENT = boolean

If true, all intrafragment coordinates are constrained.
FIX_INTERFRAGMENT = boolean

If true, all interfragment coordinates are constrained.
DUMMY_AXIS_1 = 1 or 2 or 3

Specifies the axis for the location of a dummy atom for the definition of a linear bending coordinate. The default is 2.
DUMMY_AXIS_2 = 1 or 2 or 3

Specifies the axis for the location of a dummy atom for the definition of a linear bending coordinate. The default is 3.
TEST_B = boolean

If set to true, a numerical test of the B-matrix is performed.
PRINT_FCONST = boolean

If set to true and jobtype=symm_fc, then the force constants will be written to the fconst.dat file. This allows force constants to be reused even if the binary PSIF_OPTKING file is no longer present.
Print options

The following when set to true, print additional information to the output file: PRINT_SIMPLES, PRINT_PARAMS, PRINT_DELOCALIZE, PRINT_SYMMETRY, PRINT_HESSIAN, PRINT_CARTESIANS.
DISPLACEMENTS = ( (integer float ...) ...)

A user may specify displacments along internal coordinates using this keyword. For example, displacements = ( (2 0.01 3 0.01) ) will compute a new cartesian geometry with the second and third internal coordinates increased by 0.01.


next up previous contents
Next: Vibrational Frequency Computations Up: userman Previous: Examples   Contents
T. Daniel Crawford 2009-02-16