Algorithms#

Methods Implemented#

Optking performs Newton-Raphson (NR) and Qausi-NR optimizations for small to medium-sized molecules.

Algorithms include:

  • Minimization
    • Steepest descent

    • NR

    • Rational function optimization (RFO)

    • Restricted Step RFO

    • Conjugate Gradient

  • TS
    • Image RFO

    • Partioned RFO

  • Reaction Path
    • Intrinsic Reaction Coordinate (IRC)

The type of optimization is controlled by the step_type and opt_type keywords. step_type chooses optimization algorithm (SD, NR, etc.) opt_type selects the kind of optimization (min, TS, or IRC) and unless overriden chooses the appropriate (or default) step_type.

Classes and Functions#

For more information on the OptHelper classes see OptHelper To simply run an optimization the OptHelper classes or the interfaces through QCEngine and Psi4 are recommended.

For more information on interacting directly with the algorithms see the API documentation below. In short, the OptimizationAlgorithm class provides a basic “interface” for running optimizations through the take_step() method. The OptimizationManager class extends this interface to encompass the addition of linesearching to any of the basic algorithms and IRCFollowing.

optking.stepAlgorithms Module#

Defines classes for minimization and transition state optimizations

Classes#

OptimizationInterface

An abstract class that all optimization classes inherit from. Requires that all subclasses implement a take_step() method

OptimizationAlgorithm

An abstract class that extends OptimizationInterface most algorithms (minimization or ts) inherit from this class.

QuasiNewtonOptimization

Abstract class for performing Quasi-Newton optimizations, these methods utilize an approximate updated hessian to approximate the potential energy surface.

RFO

An abstract class for performing various Rational Function Optimization. RFO itself is an extension of a QuasiNewtonOptimization.

NewtonRaphson

Extension of QuasiNewtonOptimization

RestrictedStepRFO

Default minimization algorithm.

ImageRFO

Extension of RestrictedStepRFO for transition state finding

PartitionedRFO

Default TS algorithm before OptKing v0.3.0

SteepestDescent

Basic gradient descent

ConjugateGradient

Three varieties of CG are implemented Fletcher, Descent, and Polak. Fletcher is default.

Linesearch

1-D linesearch by quadratic fit of energies

Functions#

step_matches_forces

A basic attempt to determine whether the step taken matches the symmetry of the gradient.

Notes

The optimization classes above may be created using the factory pattern through optking.optimize.optimization_factory(). If linesearching or more advanced management of the optimization process is desired an OptimizationManager should be created. (More features are coming to the OptimizationManager)

Functions#

step_matches_forces(dq, fq)

Check for eigenvectors from RFO matrix which don't qualitatively match the gradient.

Classes#

ConjugateGradient(molsys, history, params)

Implements the conjugate gradient algorithm.

ImageRFO(molsys, history, params)

OptimizationAlgorithm(molsys, history, params)

The standard minimization and transition state algorithms inherit from here.

OptimizationInterface(molsys, history, params)

Declares that ALL OptKing optimization methods/algorithms will have a self.take_step() method.

PartitionedRFO(molsys, history, params)

Partitions the gradient augmented Hessian into eigenvectors to maximize along (direction of the TS) and minimize along all other directions.

QuasiNewtonOptimization(molsys, history, params)

QuasiNewtonRaphson(molsys, history, params)

RFO(molsys, history, params)

Standard RFO and base class for RS_RFO, P_RFO, RS_PRFO #TODO

RestrictedStepRFO(molsys, history, params)

Rational Function approximation (or 2x2 Pade approximation) for step.

SteepestDescent(molsys, history, params)

Steepest descent with step size adjustment

Class Inheritance Diagram#

Inheritance diagram of optking.stepAlgorithms.ConjugateGradient, optking.stepAlgorithms.ImageRFO, optking.stepAlgorithms.OptimizationAlgorithm, optking.stepAlgorithms.OptimizationInterface, optking.stepAlgorithms.PartitionedRFO, optking.stepAlgorithms.QuasiNewtonOptimization, optking.stepAlgorithms.QuasiNewtonRaphson, optking.stepAlgorithms.RFO, optking.stepAlgorithms.RestrictedStepRFO, optking.stepAlgorithms.SteepestDescent

optking.linesearch Module#

Classes#

LineSearch(molsys, history, params)

Basic framework for performing Linesearches.

LineSearchStep(geom, energy, forces, ...)

Extension of history.Step

ThreePointEnergy(molsys, history, params)

Class Inheritance Diagram#

Inheritance diagram of optking.linesearch.LineSearch, optking.linesearch.LineSearchStep, optking.linesearch.ThreePointEnergy

optking.IRCfollowing Module#

Functions#

irc_de_projected(step_size, grad, hess)

Compute anticipated energy change along one dimension

step_n_factor(G, g)

Computes distance scaling factor for mass-weighted internals.

Classes#

IntrinsicReactionCoordinate(molsys, history, ...)

Class Inheritance Diagram#

Inheritance diagram of optking.IRCfollowing.IntrinsicReactionCoordinate