Optimization Algorithms

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

Algorithms include
  • Steepest descent

  • NR

  • Rational function optimization (RFO)

  • Restricted Step RFO

  • Partioned RFO

  • Intrinsic Reaction Coordinate (IRC) optimizations

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.

API Documentation

For more information on the OptHelper classes see `optimizations`_. To simply run an optimization the OptHelper classes or the interfaces through QCEngine and Psi4 are recommended, especially the later.

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

See also

opt_helper.OptHelper for easy setup and control over optimization procedures.

  • User interfaces
    • optimization_factory()

    • OptimizationManager

  • optimiziation Classes
    • NewtonRaphson

    • SteepestDescent
      • overlap

      • barzilai_borwein

    • RestricedStepRFO

    • ParitionedRFO

  • Linesearch
    • ThreePointEnergy

  • Abstract Classes
    • OptimizationInterface

    • OptimizationAlgorithm

    • RFO

    • QuasiNewtonOptimization

The optimization classes above may be created using the factory pattern through 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)

Classes

ABC()

Helper class that provides a standard way to create an ABC using inheritance.

AlgError([mesg, newLinearBends])

History([params])

Molsys(fragments[, dimer_intcos])

OptError([mesg, err_type])

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.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

AlgError([mesg, newLinearBends])

History([params])

LineSearch(molsys, history, params)

Basic framework for performing Linesearches.

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

Extension of history.Step

OptError([mesg, err_type])

OptimizationInterface(molsys, history, params)

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

Step(geom, E, forces, cart_grad)

ThreePointEnergy(molsys, history, params)

Class Inheritance Diagram

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

optking.IRCfollowing Module

Functions

acos(x, /)

Return the arc cosine (measured in radians) of x.

displace_molsys(molsys, dq_in[, fq, ...])

Manage internal coordinate step for a molecular system :param oMolsys: input molecular system :type oMolsys: Molsys :param dq: input coordinate step :type dq: ndarray :param fq: passed in au.

irc_de_projected(step_size, grad, hess)

Compute anticipated energy change along one dimension

lowest_eigenvector_symm_mat(mat)

Returns eigenvector with lowest eigenvalues; makes the largest

print_array_string(M[, Ncol, title, form])

Formats Arrays for Logging or Printing

print_mat_string(M[, Ncol, title])

Formats a Matrix for Logging or Printing

sqrt(x, /)

Return the square root of x.

step_n_factor(G, g)

Computes distance scaling factor for mass-weighted internals.

symm_mat_eig(mat)

symm_mat_inv(A[, redundant, redundant_eval_tol])

Return the inverse of a real, symmetric matrix.

symm_mat_root(A[, Inverse])

Compute A^(1/2) for a positive-definite matrix

tan(x, /)

Return the tangent of x (measured in radians).

Classes

AlgError([mesg, newLinearBends])

IntrinsicReactionCoordinate(molsys, history, ...)

OptimizationInterface(molsys, history, params)

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

Class Inheritance Diagram

Inheritance diagram of optking.IRCfollowing.IntrinsicReactionCoordinate