# Intrinsic Reaction Coordinate¶

The path of a chemical reaction can be traced from the Transition State to the products and/or to the reactants, using the Intrinsic Reaction Coordinate method (IRC) [9, 10]. The starting coordinates should be a fair approximation of the Transition State. The final values at the endpoint(s) - reactants, products - are computed. The IRC path is defined as the steepest-descent path from the Transition State down to the local energy minimum. The energy profile is obtained as well as length and curvature properties of the path, providing the basic quantities for an analysis of the reaction path. Additional properties along the path (dipole moment, atomic charges) are computed.

Technically speaking the path is computed by taking small steps along the path meanwhile optimizing all atomic coordinates *orthogonal to it* so that, like in a Linear Transit run, a sequence of constrained optimizations is carried out. The total number of steps along the path is not known in advance. The maximum number of such steps can be set in input. If the path is not completed in the run, a Restart can be used to finish it. Each of the constrained optimizations in the run is treated as it would be in a Linear Transit run: convergence thresholds, maximum numbers of optimization iterations et cetera are set with subkeys in the geometry block.

You can set the IRC runtype by typing it in the geometry block

```
GEOMETRY
IRC {Forward=True} {Backward=True} {Points=Points} {Step=Step}
{StepMax=StepMax} {StepMin=StepMin} {Start=Start}
End
```

or

```
GEOMETRY
IRC
End
End
```

`IRC`

- IRC is a block key so if specified without sub-keys it needs to be closed with an End key.
`Forward, Backward`

- Specifies execution of the two possible paths from the Transition State to the adjacent local minima. By default both are computed. If only half of the path is desired, the other half must be turned off explicitly. For example, in order to calculate the forward half only, one need to specify Backward=False. Note that the definition of the forward and backward direction is arbitrary at the start of an IRC calculation, even when using the same restart file from a TS or frequency run. The reason is that the Hessian eigenvectors that are computed at the start of the IRC run are defined up to a +/-1 phase factor. To make sure that the forward and backward directions are consistent, a restart file from a previous IRC calculation should be used.
`Points`

- The maximum number of IRC points computed in the run, for both paths together and including the initial (TS) central point (as far as applicable). Default 100.
`Step`

- The (initial) step length when proceeding from one IRC point to another along the path. The difference between two geometries, to which the step quantity applies, is measured in mass-weighted coordinates. The default value for step is 0.2 (amu)
^{1/2}bohr. Larger steps reduce, in principle, the required number of IRC points from the transition state to the minimum, but usually at the expense of more optimization steps at each of the points so the net gain in computation time may not be very large, or even negative. The default size is rather conservative and in many cases you may increase it to save a few steps. However, to some extent you can leave that to the program. When going from one point to the next, the program will increase or decrease the step size depending on whether or not the previous point to a large number of geometry cycles to converge. The adjusting algorithm also tends to be more cautious when the successive IRC points show more drastic changes in the atomic geometrical configuration. In all cases the IRC step sizes remain between pre-set maximum and minimum values, see the next items. `StepMax`

- The maximum step length that the program will select in the step-adjusting algorithm. Default: 1.0 or 10 times the initial step length, whichever is larger.
`StepMin`

- The minimum step length that the program will select in the step-adjusting algorithm. Default: 0.03 or 0.3 times the initial step length, whichever is smaller.
`Start`

- Defines how the initial direction of the path is chosen to move away from the Transition State. It does
*not*imply whether the first step along this direction is taken positively or negatively. See for this aspect the section about Forward/Backward IRC paths. The admissible values for start are:*Grad*: compute the gradient and take that direction right from the start. Obviously, if we start perfectly at the Transition State this will be meaningless since the gradient vanishes there completely.*Read*: the initial path direction is read in with the key IRCstart, see the section IRC Start Direction.*Hess n*: the initial path coincides with the n-th Hessian eigenvector (ordered by ascending eigenvalues);*n*must be an integer in the appropriate range. The default (omission of any start specification at all) is the first Hessian eigenvector, presumably corresponding to the path over the Transition State (negative Hessian eigenvalue!).

## IRC start direction¶

As mentioned above, the IRC path is initialized by a first step away from the Transition State. If perfect information is available this should be along the unique Hessian eigenvector with a negative eigenvalue. Therefore, it is preferable to supply (with a restart file) a good approximation of the Hessian at the Transition State. This can be computed in a Frequencies run. In many cases the automatic internally generated (force field based) Hessian will not severely disturb the procedure and may only require a few more initial search steps for the right direction to take, while saving a potentially expensive Frequencies calculation.

If you decide to use a precalculated Hessian, then usually the approximate Hessian resulting from a Transition State run will be good enough. The latter approach is more attractive of course since the TS run will usually be done anyway, as a preliminary to the IRC run, while an additional Frequencies run would be very demanding. At the other hand, Transition State runs often require a preceding Frequencies run. In such case, the Frequencies result file may be used both for the TS run and for the IRC run. The fact that the Frequencies run may have been performed not at the exact TS may affect slightly the adequacy for using it as a start-up for the IRC run, but this is likely not significant.**

In some case you may want to specify the initial direction of the IRC path explicitly. This is done as follows:

```
IRCSTART
data
data
...
end
```

`IRCstart`

A block-type key. The data in the data block are values for

*all*atomic coordinates (Cartesian or Z-matrix, as the case may be) that are not frozen and not (by geovar) explicitly instructed to remain equal. All such coordinate data together define a direction vector in the space of all (free) coordinates, which then serves as the initial segment of the IRC path.Note that only a direction vector is defined here: the

*size*of the total vector plays no role.Furthermore, the initial step may be in the positive or negative direction along the so-defined initial path, see the section Forward / Backward IRC paths.

## Forward / Backward IRC paths¶

Obviously there are two IRC paths down the transition state: Forward and Backward. We would have liked to chemically define forward and backward by determining (in advance!) which of the endpoints is reactants and which products. This is not well doable in practice. Therefore we define the directions in terms of the initial path vector: select simply the atomic coordinate with the largest (absolute) change in the initial vector and define *Forward* as the direction in which this coordinate *increases* and *Backward* as the direction in which it *decreases*.