3 - Geometry Optimizations
3 - Geometry Optimizations
Geometry Optimizations
3.1. The Potential Energy Surface
The potential energy surface (PES) is a central concept in computational chemistry. It specifies
how the energy of a molecular system varies with small changes in its structure. A potential energy
surface is a mathematical relationship linking molecular structure and the resultant energy.
For a diatomic molecule, it is a two-dimensional plot with the inter-nuclear separation on the X-
axis (the only way that the structure of such a molecule can vary), and the potential energy at that
bond distance on the Y-axis, producing a curve.
For larger systems, the surface has as many dimensions as there are degrees of freedom within the
molecule.
Generally, a non-linear N atomic molecule, has 3N 6 degrees of freedom, or internal coordinates.
This is because all N atoms can move in 3 dimensions (x, y and z) giving 3N degrees of freedom.
However, 6 of those: three translations - in x, y, z directions, and three rotations - along x, y and z
axes of the molecule as a whole - do not produce any change in energy. There are also referred to
as external coordinates.
For a linear molecule there are only two rotations and the number of internal coordinates (degrees
of freedom) is 3N 5.
A potential energy surface (PES) is often represented by illustrations like the one below. This sort
of drawing considers only two of the degrees of freedom within the molecule, and plots the energy
above the plane defined by them, creating a literal surface. Each point corresponds to the specific
values of the two structural variables-and thus represents a particular molecular structure-with the
height of the surface at that point corresponding to the energy of that structure.
1
(1st order saddle point)
A minimum can be a local minimum, meaning that it is the lowest point in some limited region of
the potential surface, or it can be the global minimum, the lowest energy point anywhere on the
potential surface. Minima occur at equilibrium structures for the system, with different minima
corresponding to different conformations or structural isomers in the case of single molecules, or
reactant and product molecules in the case of multi-component systems.
Peaks and ridges correspond to maxima on the potential energy surface. A peak is a maximum in
all directions (i.e., both along and across the ridge). A low point along a ridge - a mountain pass in
our topographical metaphor - is a local minimum in one direction (along the ridge), and a
maximum in the other. A point which is a maximum in one direction and a minimum in the other
(or in all others in the case of a larger dimensional potential surface) is called a saddle point (based
on its shape).
2
For example, the saddle point in the diagram is a minimum along its ridge and a maximum along
the path connecting minima on either side of the ridge. A saddle point corresponds to a transition
structure connecting the two equilibrium structures.
The slice along the “lowest-energy” path connecting the global minimum, the local minimum and
the transition state, that is, along the “reaction coordinate” gives a one-dimensional energy surface.
Here the transition state (saddle point) looks like a maximum. Note that the horizontal axis (i.e.
the reaction coordinate) is a combination of the two coordinates (bond length and angle) from the
original plot.
Together, minima, maxima and saddle points are called stationary points. They have in common
that at any stationary point (minimum, maximum) the surface is flat, i.e. parallel to the horizontal
line corresponding to the one geometric parameter (or to the plane corresponding to two geometric
parameters etc). A marble placed on a stationary point will remain balanced, i.e. stationary, while
at any other point on a potential surface the marble will roll toward a region of lower potential
energy.
Mathematically, the stationary points are characterized by zero first derivatives with respect to the
geometrical parameters:
V V V
... 0 (3.1)
q1 q 2 q n
The derivatives can be arranged into a vector, which is called gradient of energy
V
q1
V
grad V V q 2 (3.2)
...
V
q
n
Therefore at a stationary point, the forces on the atoms in the molecule in all directions are all zero,
which is another reason why they are stationary points.
3
3.3. Locating minima
Minima on potential energy structures are important because they correspond to the optimum
molecular geometries, also called equilibrium structures. Geometry optimization is therefore more
or less synonymous with energy minimization. From a mathematical point of view, it is a problem
of finding a minimum of a function of many variables.
The basic idea of a minimization algorithm is to vary the geometry of the molecule (i.e. atomic
positions) is some systematic fashion so that the energy keeps decreasing; once the energy stops
decreasing and only increases with further geometry variations, the minimum is found.
Important point to remember is that all minimization algorithms only find local minima: you are
never guaranteed that the minimum found is a global one !
There are several classes of algorithms that have been developed for this purpose. They can be
divided into three basic classes:
The first class represents the most robust, but least efficient way to find the minimum. The example
is the Simplex algorithm (also known as “amoeba”). It is robust, because it can always find a
minimum of pretty much any function, no matter how crazy. Least efficient means that for well
behaved functions, the other two classes could do it ways faster! Because molecular PES are
usually smooth and well behaved functions of atomic coordinates, these algorithms are usually not
the first choice for optimizations.
If the gradients can be computed (note that the function has to be differentiable - i.e. continuous),
they indicate in which direction the energy decreases. Remember the gradient is the negative of
force, and the force pushes the atoms to their minimum energy position (= equilibrium) position.
The simples gradient based algorithm is the so-called “steepest descent”, where steps are made in
the direction of the gradient until the minimum is found (in that direction), then the gradient is
recomputed, steps are made in the new direction etc. This is simple but in practice very inefficient.
With gradients available the direction toward the potential minimum is known, but not how far
one has to step to get there. Imagine the surface could be approximated by a quadratic function
(parabola). Assuming one dimension for illustration we could write a Taylor expansion around
some point q0:
dV 1 d 2V
V (q) V (q0 ) (q q0 ) 2 (q q0 ) 2 (3.4)
dq q0 2 dq q
0
4
dV dV d 2V
2 (q q0 ) (3.5)
dq q dq q0 dq q0
Assuming the point q0 is our starting point and we are looking for the next point “q” on our PES
where the energy is minimum, we know that at “q” (the minimum) the gradient has to be zero.
Setting the gradient at point “q”, which is the left-hand side of the last equation, equal to zero:
dV d 2V
0 2 (q q0 ) (3.6)
dq q0 dq q0
In more dimensions (remember we have n coordinates, which can be 3N 6 or more for N atoms
depending on the coordinates), q has n components, gradient is a vector with n components (eqn.
3.2), which we denote g, and the second derivatives are so called force constants, which form a n-
by-n matrix called Hessian, which we will denote H:
2V 2V 2V
...
q1q1 q1q 2 q1q n
2V 2V 2V
2V
H ij H q q q 2 q 2
...
q 2 q n (3.8)
qi q j 2 1
... ... ... ...
2V 2V 2V
q q q n q 2
...
q n q n
n 1
where the superscript “0” symbolizes the starting point and the “-1” is matrix inverse.
For the quadratic (parabolic) surface, this formula will take us from any starting point straight to
the minimum. If the surface is not exactly parabolic, this formula can be iterated, i.e. compute
gradient and (inverted) Hessian at point q0, move to the new point q using formula (3.9),
recalculate gradient and Hessian etc.
5
The closer to the minimum one gets the better the quadratic approximation becomes: eventually
this algorithm will converge to the minimum.
The disadvantages of Newton-Raphson method are the following:
Hessian matrix is large and computationally expensive to construct at every iteration step
Hessian must be inverted (inverting a matrix is also computationally expensive)
Second derivatives are even more sensitive to discontinuities than gradients: for surfaces
that are not “well behaved” the method may become unstable and diverge or crash.
Do avoid that, a class of methods known as Quazi-Newton (also variable metric methods) instead
of using the true Hessian estimate it (actually its inverse) approximately, e.g. from the gradients at
the successive steps (there are many schemes for estimating and updating Hessians, see e.g.
Numerical Recipes: The Art of Scientific Computing by William H. Press, Brian P. Flannery, Saul
A. Teukolsky and William T. Vetterling, www.nr.com). The exact Hessian can be calculated once
in a while, if needed, typically when the optimization gets close to the minimum.
While this may sound like a step back - using an approximation instead of the true H, quazi-Newton
methods are actually more reliable and efficient than the old Newton-Raphson. You can imagine
more sophisticated algorithms for finding minima, using e.g. higher order (cubic) approximations
to the surface etc. Some details of the algorithm used by Gaussian can be found on the Gaussian
manual pages.
AVAILABILITY
MP3, MP4(DQ) and MP4(SDQ): Energies, analytic gradients, and numerical frequencies.
MP4(SDTQ) and MP5: Analytic energies, numerical gradients, and numerical frequencies.
Here “frequencies” as we will see later, refer essentially to Hessians, because vibrational
frequencies are calculated directly from them. The important distinction here is analytical vs.
numerical. While there is no such thing as rigorously “analytical” in Gaussian calculations
(everything is done numerically),
analytical gradients (frequencies) mean that essentially exact derivatives are calculated by
solving the corresponding derivative Shrödinger equation.
numerical gradients are calculated by finite differencing from energies at two points:
6
dV V (q0 q) V (q0 )
(3.10)
dq q0 q
this is not only less accurate, but also more computationally costly (especially the larger
the molecules get) because for each coordinates two energies have to be evaluated at two
different points (i.e. the Shrödinger equation solved twice).
numerical frequencies (or more precisely the force constants) are calculated either by
numerical differentiation of the analytical gradients, or in the worst case scenario, by
numerical differentiation of numerical gradients (which is equivalent to calculating finite
difference second derivatives from the energies).
d 2V V (q0 q) V (q0 q) 2V (q0 )
2 (3.11)
dq q0 q 2
Fortunately, most methods, even the very high level ones nowadays have implemented at least
analytical gradients.
%chk=formaldehyde.chk
# HF/6-31G(d) Opt Test
Formaldehyde Optimization
0 1
C 0.0330000000 -0.0000000000 0.0000000000
O -1.1870000000 -0.0000000000 0.0000000000
H 0.5770000000 0.9430000000 0.0000000000
H 0.5770000000 -0.9430000000 0.0000000000
Remember: if you generate your input using Gabedit, get rid of keywords that request full printing
of the basis set and orbital parameters, i.e. Gfinput Pop=Full Density IOP(6/7=3).
We'll now look at the output from the formaldehyde optimization. The actual optimization starts
like this:
7
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
Berny optimization.
Initialization pass.
----------------------------
! Initial Parameters !
! (Angstroms and Degrees) !
-------------------------- -----------------------
! Name Definition Value Derivative Info. !
----------------------------------------------------------------------------
! R1 R(1,2) 1.22 estimate D2E/DX2 !
! R2 R(1,3) 1.0887 estimate D2E/DX2 !
! R3 R(1,4) 1.0887 estimate D2E/DX2 !
! A1 A(2,1,3) 119.9799 estimate D2E/DX2 !
! A2 A(2,1,4) 119.9799 estimate D2E/DX2 !
! A3 A(3,1,4) 120.0402 estimate D2E/DX2 !
! D1 D(2,1,4,3) 180.0 estimate D2E/DX2 !
----------------------------------------------------------------------------
Trust Radius=3.00D-01 FncErr=1.00D-07 GrdErr=1.00D-07
Number of steps in this run= 20 maximum allowed number of steps= 100.
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
This is the list of (redundant) internal coordinates: bond lengths - R, angles - A and dihedrals - D
that will be optimized. For example R1 = R(1,2) is the length of the bond between atoms 1
and 2, D(2,1,4,3) is the dihedral (torsion) angle 2-1-4-3.
Note that these coordinates are assigned automatically. We will discuss below how to modify
them.
After each step of the optimization, the following is printed (with less important parts omitted):
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
Berny optimization.
…
Search for a local minimum.
Step number 2 out of a maximum of 20
All quantities printed in internal units (Hartrees-Bohrs-Radians)
…
Variable Old X -DE/DX Delta X Delta X Delta X New X
(Linear) (Quad) (Total)
R1 2.24220 -0.00194 -0.00511 0.00085 -0.00426 2.23794
…
A3 2.04627
-0.00367 -0.00394 -0.02106 -0.02500 2.02126
D1 3.14159
0.00000 0.00000 0.00000 0.00000 3.14159
Item Value Threshold Converged?
Maximum Force 0.003670 0.000450 NO
RMS Force 0.002472 0.000300 NO
Maximum Displacement 0.014472 0.001800 NO
RMS Displacement 0.009857 0.001200 NO
Predicted change in Energy=-1.068230D-04
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
The meaning of this output should be fairly obvious. Important is the table:
8
Item Value Threshold Converged?
Maximum Force 0.003670 0.000450 NO
RMS Force 0.002472 0.000300 NO
Maximum Displacement 0.014472 0.001800 NO
RMS Displacement 0.009857 0.001200 NO
which tells you how the optimization is progressing. The items on the left are the convergence
criteria, the numbers under Threshold are the limits for each criterion: if the actual value is less
than the threshold, the criterion is satisfied. If all are satisfied the geometry is considered
optimized.
Note that energy is not an optimization criterion. However, after each step is taken, a single point
energy calculation follows at the new point on the potential energy surface, producing the normal
output for such a calculation.
SCF Done: E(RHF) = -113.866330648 A.U. after 9 cycles
This particular optimization converged in 3 steps:
Step number 3 out of a maximum of 20
….
Item Value Threshold Converged?
Maximum Force 0.000332 0.000450 YES
RMS Force 0.000203 0.000300 YES
Maximum Displacement 0.001223 0.001800 YES
RMS Displacement 0.001014 0.001200 YES
Predicted change in Energy=-6.303701D-07
Optimization completed.
The final optimized structure appears immediately after the final convergence tests:
-- Stationary point found.
-------------------------
! Optimized Parameters !
! (Angstroms and Degrees) !
-------------------------- ----------------------
! Name Definition Value Derivative Info. !
----------------------------------------------------------------------------
! R1 R(1,2) 1.1843 -DE/DX = 0.0003 !
! R2 R(1,3) 1.0915 -DE/DX = 0.0001 !
! R3 R(1,4) 1.0915 -DE/DX = 0.0001 !
! A1 A(2,1,3) 122.0951 -DE/DX = 0.0002 !
! A2 A(2,1,4) 122.0951 -DE/DX = 0.0002 !
! A3 A(3,1,4) 115.8099 -DE/DX = -0.0003 !
! D1 D(2,1,4,3) 180.0 -DE/DX = 0.0 !
----------------------------------------------------------------------------
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
9
When the optimization converges, it knows that the current structure is the final one, and
accordingly ends the calculation at that point. Therefore, the energy for the optimized structure is
found in the single point energy computation for the previous step in other words, it appears before
the successful convergence test in the output.
It also appears in the archive entry at the end of the output file:
1\1\ UNIVERSITY OF WYOMING, CHEMISTRY-BORN\FOpt\RHF\6-31G(d)\C1H2O1\JK
UBELKA\05-Sep-2012\0\\# HF/6-31G(d) Opt Test\\Formaldehyde Optimizatio
n\\0,1\C,0.0061089195,0.,0.\O,-1.1781605463,0.,0.\H,0.5860258134,0.924
6432963,0.\H,0.5860258134,-0.9246432963,0.\\Version=EM64L-G09RevA.02\S
tate=1-A1\HF=-113.8663306\RMSD=5.538e-09\RMSF=1.508e-04\Dipole=1.04885
91,0.,0.\Quadrupole=-0.2270643,0.1031481,0.1239162,0.,0.,0.\PG=C02V [C
2(C1O1),SGV(H2)]\\@
In the new window (called Multiple geometries), select File/Read/Read a Gaussian output file.
10
Using mouse you can step through the optimization steps, read energies, forces and displacements
and you can also play the whole optimization as a movie.
0 1
molecule specification
In the second job we may simply read the geometry from the checkpoint file and use it in the single
point energy calculation that will output all the orbital parameters.
The line which specifies the name of the checkpoint file must be in the input (otherwise Gaussian
would not know where to read the geometry from):
%chk=optimization.chk
The keywords in the route section are either Geom=Check or Geom=AllCheck. Both these
command will read the final (i.e. optimized) structure from the checkpoint file. The difference is
that Geom=Check reads only the geometry, and we have to specify the title and spin and
multiplicity for the subsequent job:
%chk=optimization.chk
# HF/6-31G(d) GFinput Pop=Full Density Iop(6/7=3) Geom=Check Guess=Read
Test
0 1
while Geom=AllCheck will take everything from the checkpoint file, including the title. All
that needs to be in the input file is the checkpoint file and the route section
%chk=optimization.chk
# HF/6-31G(d) GFinput Pop=Full Density Iop(6/7=3) Geom=AllCheck
Guess=Read Test
Of course, all input files are terminated by a blank line. Never forget that !
11
Note that Guess=Read is also included in the route of the second job - that is a good rule whose
significance will become apparent later.
You can also use %NoSave in the second job (right under the %chk) which will delete the
checkpoint file after the completion of the last job.
Instead of writing two input files, one for each step of the job, we can create a single input file for
both jobs. Gaussian allows to combine any number of jobs in the single input file.
The input for each successive job is separated from that of the preceding job step by a line of the
form:
--Link1--
For the above example, we would have an input file:
%chk=optimization.chk
# HF/6-31G(d) Opt Test
0 1
molecule specification
--Link1--
%chk=optimization.chk
%NoSave
# HF/6-31G(d) GFinput Pop=Full Density Iop(6/7=3) Geom=Check Guess=Read
Test
0 1
or
%chk=optimization.chk
%NoSave
# HF/6-31G(d) Opt Test
0 1
molecule specification
--Link1--
%chk=optimization.chk
# HF/6-31G(d) GFinput Pop=Full Density Iop(6/7=3) Geom=AllCheck
Guess=Read Test
This way you can run any number of consecutive jobs from a single input file. Note that the jobs
do not have to be related: you can link absolutely any jobs.
Since there is one input file, there will also be one output file with the output from the second job
right after the output from the first one.
12
Normal termination of Gaussian 09 at Thu Sep 6 15:41:38 2012.
Initial command:
/gaussian/g09/l1.exe /gaussian/scratch/Gau-28338.inp -scrdir=/gaussian/scratch/
Entering Link 1 = /gaussian/g09/l1.exe PID= 28340.
Copyright (c) 1988,1990,1992,1993,1995,1998,2003,2009, Gaussian, Inc.
All Rights Reserved.
… output of the second job…
coordinate systems
modifying coordinates
constraints
convergence criteria
symmetry
13
suppresses defining any angles (including dihedrals), and the last the dihedrals only. They have to
be specified using ModRedundant option. My advice: don’t even try it.
2. Internal coordinates
The construction of Z-matrices was explained above, along with the use of variables and
constants. The coordinates that you define as variables will have the specified starting values
and will be optimized and displayed. In this peroxide example:
H2O2 optimization
0 1 .
O1
Hl O1 B1
O2 O1 B2 Hl A1
H2 O2 B1 O1 A1 H1 T1
B1=0.9
B2=1.4
A1=105.
T1=120.
the O-H, O-O bond lengths, O-O-H angle and H-O-O-H torsions are defined as variables with the
values assigned (0.9Å, 1.4 Å, 105.0º and 120.0º respectively). These parameters will be optimized
and their optimum values displayed.
Constrained optimizations
Often we need to optimize only certain geometry parameters, while holding others fixed. This can
be done in Redundant internal coordinates or internal coordinates (Z-matrix). Cartesian coordinate
optimization does not allow any constraints (i.e. it is always a full optimization).
1. Redundant Coordinates
The ModRedundant option can also be used for constraining (freezing) specific coordinates
during optimizations. To fix or freeze the particular coordinate, F is added after its definition. In
the following example of the formaldehyde the OCH angles are fixed:
0 1
C 0.33 0.0 0.0
O -1.187 0.0 0.0
H 0.577 0.943 0.0
H 0.577 -0.943 0.0
2 1 3 F
2 1 4 F
14
The output will show these two as “Frozen”:
…
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
Berny optimization.
Initialization pass.
----------------------------
! Initial Parameters !
! (Angstroms and Degrees) !
-------------------------- --------------------------
! Name Definition Value Derivative Info. !
--------------------------------------------------------------------------------
! R1 R(1,2) 1.517 estimate D2E/DX2 !
! R2 R(1,3) 0.9748 estimate D2E/DX2 !
! R3 R(1,4) 0.9748 estimate D2E/DX2 !
! A1 A(2,1,3) 104.6777 Frozen !
! A2 A(2,1,4) 104.6777 Frozen !
! A3 A(3,1,4) 150.6445 estimate D2E/DX2 !
! D1 D(2,1,4,3) 180.0 estimate D2E/DX2 !
--------------------------------------------------------------------------------
…
and when the optimization is complete, they will have their initial values, while the other
coordinates change:
…
Optimization completed.
-- Stationary point found.
----------------------------
! Optimized Parameters !
! (Angstroms and Degrees) !
-------------------------- --------------------------
! Name Definition Value Derivative Info. !
--------------------------------------------------------------------------------
! R1 R(1,2) 1.2124 -DE/DX = -0.0001 !
! R2 R(1,3) 1.0843 -DE/DX = 0.0 !
! R3 R(1,4) 1.0843 -DE/DX = 0.0 !
! A1 A(2,1,3) 104.6777 -DE/DX = 0.0375 !
! A2 A(2,1,4) 104.6777 -DE/DX = 0.0375 !
! A3 A(3,1,4) 150.6446 -DE/DX = -0.0751 !
! D1 D(2,1,4,3) 180.0 -DE/DX = 0.0 !
--------------------------------------------------------------------------------
GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
…
This way you can freeze bond lengths, angles and torsions. Individual atoms can also be
“frozen” using only one atom number with the F:
1 F
2 F
This will fix the positions of atoms 1 and 2 and optimize everything around them. This can be
useful, though it is not as straightforward as fixing particular bonds and angles and dihedrals, so
you have to be careful what is actually constrained and what is optimized.
15
the freeze code for the particular atom in the first column after the atomic symbols in
the Cartesian input set to -1
using ReadFreeze, which will define atoms to be frozen. For example the following
input:
Formaldehyde Optimization
0 1
C 0.0330000000 -0.0000000000 0.0000000000
O -1.1870000000 -0.0000000000 0.0000000000
H 0.5770000000 0.9430000000 0.0000000000
H 0.5770000000 -0.9430000000 0.0000000000
atoms=1-4 notatoms=H
will freeze the hydrogens and optimize the rest:
Optimization completed.
-- Stationary point found.
----------------------------
! Optimized Parameters !
! (Angstroms and Degrees) !
-------------------------- --------------------
! Name Definition Value Derivative Info.
--------------------------------------------------------------------------
! X3 R(3,-1) 0.577 -DE/DX = 0.0
! Y3 R(3,-2) 0.943 -DE/DX = 0.0
! Z3 R(3,-3) 0.0 -DE/DX = 0.0
! X4 R(4,-1) 0.577 -DE/DX = 0.0
! Y4 R(4,-2) -0.943 -DE/DX = 0.0
! Z4 R(4,-3) 0.0 -DE/DX = 0.0
! R1 R(1,2) 1.1849 -DE/DX = -0.0001
! R2 R(1,3) 1.1011 -DE/DX = 0.0
! R3 R(1,4) 1.1011 -DE/DX = 0.0
! A1 A(2,1,3) 121.0819 -DE/DX = 0.0
! A2 A(2,1,4) 121.0819 -DE/DX = 0.0
! A3 A(3,1,4) 117.8361 -DE/DX = 0.0
! D1 D(2,1,4,3) 180.0 -DE/DX = 0.0
--------------------------------------------------------------------------
Note that
the hydrogens have not moved
the optimization coordinates are a mix of Cartesian (for the two hydrogens)
and internals
As always, consult the Gaussian manual for more information.
2. Internal coordinates
16
#RHF/6-31G(d) Opt=Z-matrix Test
O3 optimization
0 1 .
O1
Hl O1 B1
O2 O1 B2 Hl 105.
H2 O2 B1 O1 105. H1 120.0
B1=0.9
B2=1.4
O3 optimization
0 1 .
O1
Hl O1 B1
O2 O1 B2 Hl A1
H2 O2 B1 O1 A1 H1 T1
B1=0.9
B2=1.4
A1=105.
T1=120.
Both of these inputs will optimize the bond lengths but keep the valence angle A1 and dihedral
T1 fixed:
Optimization completed.
-- Stationary point found.
----------------------------
! Optimized Parameters !
! (Angstroms and Degrees) !
---------------------- ----------------------
! Name Value Derivative information (Atomic Units) !
------------------------------------------------------------------------
! B1 0.9491 -DE/DX = 0.0 !
! B2 1.3877 -DE/DX = 0.0 !
! A1 105.0 -DE/DX = -0.029 !
! T1 120.0 -DE/DX = -0.0018 !
------------------------------------------------------------------------
Convergence criteria
Most often default convergence criteria are used, which require no options. The criteria can be
found under Threshold in the optimization output.
17
Opt=Tight is used when it is necessary to optimize the molecule to “higher standards”, i.e.
lower residual forces and energy changes (displacements). The downside is that it will take more
steps to satisfy the tighter criteria and the optimization will take longer.
Opt=VeryTight uses even more strict criteria, if even the Tight optimization is not good
enough.
Opt=Loose on the other hand can be used for quick and dirty optimizations.
Symmetry
Symmetry is an important element of molecular structures. Gaussian checks for the symmetry of
the input structure and displays the symmetry group in the output. This is what we have for our
formaldehyde:
This says that formaldehyde belong to C2v point group, which is correct. If the symmetry point
group is recognized by Gaussian, it will be kept during the optimization. By default symmetry is
used unless it is turned off by keyword NoSymm.
The problem arises if our initial structure is slightly off and Gaussian does not recognize the correct
point group. For example, if the coordinates of one of the formaldehyde atoms is changed by
0.0001 Angstroms, it is assigned to the Cs group instead:
18
3.5. Handling difficult optimization cases
There are some systems for which the default optimization procedure may not succeed on its own.
If that happens, there are several strategies to make your optimizations converge:
1. Calculate force constants (frequencies). A common problem with many difficult cases is that
the Hessian (the matrix of force constants, a.k.a. second derivatives of the energy) estimated
by the optimization procedure differ substantially from the actual values. By default, a
geometry optimization starts with an initial guess for the second derivative (Hessian) matrix
derived from a simple molecular mechanics valence force field.
The approximate matrix is improved at each step of the optimization using the computed first
derivatives. When this initial guess is poor, you need a more sophisticated-albeit more
expensive-means of generating the force constants. Gaussian provides a variety of alternate
ways of generating them. Here are some of the most useful associated keywords (as always
you can consult the Gaussian manual for a full description of their use:
Opt=ReadFC read in the initial force constants from the checkpoint file created by a
frequency calculation (see below), which can be run at a lower level of
theory or using a smaller basis set. This option can help to start an
optimization off in the right direction.
This option will also require that a %Chk=filename line precede the route section of the
input, specifying the name of the checkpoint file, as discussed in section 2.7 above.
Opt=CalcFC compute the force constants at the initial point using the same method and
basis set as for the optimization itself.
Including ReadFC is also useful whenever you already have performed a frequency
calculation at a lower level of theory. When you have a difficult case and you have no previous
frequency job, then CalcFC is a good first choice.
2. Increase a number of steps and restart Sometimes, an optimization will simply require more
steps than the default procedure allots to it. You can increase the maximum number of steps
with the MaxCycle option to the Opt keyword (it takes the number of steps as its argument).
If you have saved the checkpoint file, it is possible to restart a failed optimization, using the
Opt=Restart keyword. Restarting calculations from where they crashed, rather than
starting over from scratch, is one of the (many) reasons why it is a good practice to always
save the checkpoint file.
3. Start from a better initial structure If an optimization runs out of steps, do not blindly assume
that increasing the number of steps will fix the problem. Examine the output and determine
whether the optimization was making progress or not. The following script
egrep 'SCF Don|Step number|Maximum Force|RMS Force|Maximum
Displacement|RMS Displacement' filename.log
will grab the important information from the optimization output filename.log and display it
on the screen:
19
Alternately, you can get this information using Gabedit (along with a color movie of your
molecular structure changing during optimization!) This particular optimization was very close
to a minimum at step two, but then it moved away from it again in subsequent steps. Merely
increasing the number of steps will not fix the problem. A better approach is to start a new
optimization, beginning with the structure corresponding to step 2 and including the CalcFC
option in the route section.
You can retrieve an intermediate structure from the output log file manually. Alternatively,
you may use the Geom=(Check,Step=n) keyword to retrieve the structure corresponding
to step n from a checkpoint file.
Only if it looks that the optimization is converging, but slowly, increase number of steps
(option 2)
4. Try to optimize the structure at a lower level of theory first. For example, if your starting
structure is really bad, it may be better to roughly optimize it using for example molecular
mechanics or a semiempirical method. This pre-optimized structure, eventually with computed
force constants, can then be used as a starting structure for a higher level optimization.
Sometimes your optimization job will crash with the following message in your output file:
20
…
Iteration 97 RMS(Cart)= 0.00264867 RMS(Int)= 1.13696504
Iteration 98 RMS(Cart)= 0.00268035 RMS(Int)= 1.13585384
Iteration 99 RMS(Cart)= 0.00271288 RMS(Int)= 1.13474508
Iteration100 RMS(Cart)= 0.00274629 RMS(Int)= 1.13363899
New curvilinear step not converged.
RedCar failed in NewRed.
This can happen either before the optimizations even begins or during any step. It usually means
that something is wrong with the geometry.
First inspect the structure and make sure it is reasonable. Fix it if necessary and start over.
If there is nothing wrong with the structure, it may be the definition of the redundant internal
coordinates. Sometimes simply restarting the optimization from the last successful step or
changing the orientation (rotating) the molecule can solve the problem. If not, experiment with the
definitions and modifications of the redundant coordinates or use different coordinate system.
21