The DL-FIND geometry optimisation library

Home » The DL-FIND geometry optimisation library

DL-FIND is an open-source geometry optimisation library for atomistic simulation codes. It provides methods for local minimisation, transition state search, reaction path optimisation, conical intersection optimisation and population-based (global) optimisation.

A well-defined interface is provided to make it straightforward to integrate the DL-FIND library into computational chemistry software packages. DL-FIND is an integral part of STFC’s ChemShell QM/MM code and GAMESS-UK quantum chemistry code, and has been interfaced to several other programs.

The DL-FIND project was started by Johannes Kästner in 2006. The code developers are Jo Carr, Johannes Kästner, Tom Keal and Judith Rommel. DL-FIND is currently maintained for STFC by Tom Keal.


Coordinate systems

  • Optimisations may be carried out in:
    • Cartesian coordinates (including frozen atoms and components)
    • Delocalised internal coordinates (DLCs)
    • Hybrid delocalised coordinates (HDLCs)
    • Total connection (DLC-TC/HDLC-TC)
  • Input/output is in Cartesian coordinates (transformed internally as required)

Local minimisation algorithms

  • Steepest descent
  • Conjugate gradient
  • Newton-Raphson/quasi-Newton (BFGS)
  • L-BFGS (low memory quasi-Newton) for large systems
  • Damped dynamics

Transition state search

  • Partitioned rational function optimisation (P-RFO) with Powell or Bofill updates
  • Dimer method

Reaction path optimisation

  • Nudged elastic band (NEB) method

Conical intersection optimisation

  • Penalty function
  • Gradient projection
  • Lagrange-Newton

Population-based optimisation

  • Genetic algorithm
  • Stochastic search

Parallel methods

  • The following methods can be run in parallel using DL-FIND’s task-farming interface:
    • NEB
    • Genetic algorithm
    • Stochastic search
    • Finite-difference Hessian evaluation

Restart mechanism

  • DL-FIND is fully restartable.


  • The HDLC coordinate transformation routines in DL-FIND are derived from the HDLCopt code written by Salomon Billeter and Alexander Turner. This code is included by permission of the Max-Planck-Institute für Kohlenforschung.
  • The L-BFGS code by Jorge Nocedal was used.


GPR optimisation

If you wish to use the recently developed Gaussian Process Regression optimisation features in DL-FIND, you can download a development version of DL-FIND with GPR.

Citing DL-FIND

Publications making use of the DL-FIND geometry optimiser either through ChemShell or as a standalone library should cite:

DL-FIND development

The DL-FIND repository is hosted on STFC Gitlab. If you are interested in contributing to the development of DL-FIND, please contact Tom Keal.

Obtaining DL-FIND

DL-FIND is usually distributed to users as part of software packages such as ChemShell or GAMESS-UK and does not need to be downloaded separately.

DL-FIND is released under the open source GNU LGPL licence.

Download DL-FIND

If you would like to interface DL-FIND to another software package, you can download the standalone DL-FIND library.

Please note it is not necessary to download DL-FIND here if you intend to use it within ChemShell, as the ChemShell distribution includes a copy of DL-FIND.

Download DL-FIND with GPR optimisation

You can download a development version of the DL-FIND library including GPR optimisation functionality below.

This is a snapshot of development code from 5 July 2021. It is not a stable release of DL-FIND and no support is provided for use of this code. Users should take extra care that the results of their calculations are valid.

GPR optimisation references:

GPR optimisation in internal coordinates has been submitted for publication.