Constraints & Scans

Constraints and PES scan specifications go inside the *CONSTR section. Constraints use Lagrange multipliers via the augmented Hessian method, with analytical gradients for all constraint types.

Bond Constraint

Fixes a bond length between two atoms at a target distance (Ångström).

R atom1 atom2 target_distance

Example:

*CONSTR
R 1 2 1.54    # Fix C–C bond at 1.54 Å
*

Angle Constraint

Fixes a bond angle defined by three atoms at a target value (degrees).

A atom1 atom2 atom3 target_angle

atom2 is the central atom.

Example:

*CONSTR
A 1 2 3 109.5    # Fix angle at 109.5°
*

Dihedral Constraint

Fixes a dihedral angle defined by four atoms at a target value (degrees).

D atom1 atom2 atom3 atom4 target_dihedral

Example:

*CONSTR
D 1 2 3 4 180.0    # Fix dihedral at 180°
*

Fixed Atoms

Individual atoms can be frozen using the fixedatoms keyword (not inside *CONSTR). Ranges are supported.

fixedatoms = 1,3-5,7    # Fix atoms 1, 3, 4, 5, and 7

PES Scans

Scan specifications are placed inside *CONSTR and trigger a PES scan run instead of a single MECP optimization.

Bond Scan

s r atom1 atom2 start num_points step_size

Example — scan a C–H bond from 1.0 to 1.95 Å in 20 steps of 0.05 Å:

*CONSTR
s r 1 2 1.0 20 0.05
*

Angle Scan

s a atom1 atom2 atom3 start num_points step_size

Example — scan from 90° to 135° in 10 steps of 5°:

*CONSTR
s a 1 2 3 90 10 5
*

Dihedral Scan

s d atom1 atom2 atom3 atom4 start num_points step_size

Example — full dihedral rotation from 0° to 350° in 36 steps of 10°:

*CONSTR
s d 1 2 3 4 0 36 10
*

2D Scan

Specify two scan lines in *CONSTR for a 2D scan:

*CONSTR
s r 1 2 1.0 10 0.1    # First dimension: bond
s a 1 2 3 90 5 10     # Second dimension: angle
*

Output: Geometries saved as scan_{value1}_{value2}.xyz.


Combining Constraints

Multiple constraints of different types can be combined freely:

*CONSTR
R 1 2 1.54      # Fix bond
A 1 2 3 109.5   # Fix angle
D 1 2 3 4 60.0  # Fix dihedral
*