Protocol optimize

This protocol implements geometry optimization. There is a lot of options provided but the default setup was tuned to provide good results in almost any system.

Default setup

The default setup is applicable to wide range of systems - the only adjustment needed might be setting the convergence thersholds using the opt_quality keyword. The default value of 1.0 is reasonable for common optimization of rigid molecules, for flexible systems or non-covalent interactions, tighter convergence criteria are needed for obtaining accurate geometroies. It is recommended to set the opt_quality to 0.1.

Coordinate systems

The protocol implements optimization in Cartesian (default), redundant internal and z-matrix coordinates. Only the optimization in Cartesian coordinates should be considered stable and robust, the internal coordinates are under development and often fail in some cases.

Cuby can now build z-matrix automatically from cartesian coordinates but it is not guaranteed that the generated z-matrix will work well for optimization. The use of z-matrices is thus recommended only for cases where user-supplied z-matrix is used. The advantage of z-matrices is that it is easily possible to optimize only specified internal coordinates.

Parallel optimizer P-LBFGS

Cuby implements the P-LBFGS algorithm[1] that can accelerate the convergence of the optimization by calculating multiple points in parallel in each step. For details, refer to teh example below an to the original paper.[1] To use the optimizer, it is necessary to complile the linear algebra extension with a support of the UMFPACK library, the details are described on the page on installation.

Transition states

A simple optimization to transition state is available. It is based on following the normal mode corresponding to the lowest (most negative) eigenvalue of the Hessian. Such an optimization should start from a good guess of the TS structure. The TRIM optimizer with Hessian calculation in each step must be used. For now, optimization to TS works only in cartesian coordinates. See Example 4.


  1. Klemsa, J.; Řezáč, J. Chemical Physics Letters 2013, 584, 10–13.

Keywords used

Keywords specific for this protocol:

Other keywords used by this protocol:


The following examples, along with all other files needed to run them, can be found in the directory cuby4/protocols/optimize/examples

# Optimize protocol example 1 - basic input

# Simple geometry optimization of benzene dimer from the S66 data set
# The calculation produces these additional files:
# 1) - the optimized geometry
# 2) - record of all the steps

job: optimize

# This keyword scales all the three convergence thresholds. The default value,
# 1.0, might not yield accurate enough geometry because the potential of
# the intermolecular interaction in benzene dimer is rather weak and flat.
opt_quality: 0.1

# Geometry from the database
geometry: S66:benzene_dimer_stack

# Calculation
interface: dftb
method: scc-dftb
dftb_dispersion: yes
# Optimize protocol example 2 - Partial optimization

# Only a part of the system can be optimized, in this case we optimize just
# some residues in a peptide chain.

job: optimize

geometry: PDB:1AQG # PDB from Cuby's internal database of small peptides

# Optimize only residues no. 5 and 6
optimize_region: ":5,6"
# Any selection can be used, use the following to optimize only hydrogens in
# the peptide:
#optimize_region: "@H"

# Calculation - MM in Amber, default setup
interface: amber

# Save the optimized geometry in PDB format
restart_file: optimized.pdb
# Optimize protocol example 3 - parallel optimizer P-LBFGS

# This example demonstrates the use of the parallel optimizer P-LBFGS

job: optimize
opt_quality: 0.1

geometry: ace-ala-nme.pdb # ACE-ALA-NME peptide

# Parallel optimizer setup
optimizer: plbfgs
linesearch: cubic # The optimizer was designed to be used with a linesearch
plbfgs_colors: 1 # One 'color' per step, results into 4 calculations / step
cuby_threads: 4 # Run those 4 calculations in parallel

# Calculation - MM in Amber, default setup
interface: amber

# Optimize protocol example 4 - transition state optimization

# Simple optimization of a transition state.
# Bond rotation in propane calculated at PM6 level in MOPAC.

job: optimize

# Only the trim_hessian optimizer can be used
optimizer: trim_hessian
# This switches on the TS optimization
optimize_ts: lowest_eigenvector

# Because we use a method for which analytical Hessian is not available,
# the calculation is wrapped in the numerical_hessian interface
interface: numerical_hessian
  interface: mopac
  mopac_precise: yes
  method: pm6

# Propane with one methyl rotated out of equilibrum
geometry: |
  C     1.185982     0.229141     0.070276
  C    -0.060586    -0.617450    -0.182669
  C    -1.347745     0.182277     0.010546
  H     2.100284    -0.357414    -0.070830
  H     1.234407     1.086263    -0.611544
  H     1.202201     0.625393     1.092275
  H    -0.028969    -1.030374    -1.210857
  H    -0.060467    -1.493919     0.495992
  H    -1.164166     1.260751    -0.054713
  H    -2.092020    -0.071474    -0.752003
  H    -1.799149    -0.014287     0.989612