pele.optimize._fire#

Module source

Created on 30 Apr 2012

@author: ruehle

class pele.optimize._fire.Fire[source]

Source

class Fire:

The FIRE optimization algorithm

Parameters:
coordsarray

the starting configuration for the optimization.

potential

the potential object

dtfloat

adaptive time step for integration of the equations of motion

maxstepfloat

the maximum step size permitted

dtmaxfloat

the maximum time step permitted

Nminint

minimum number of steps taken after an uphill step before adaptive parameters are allowed to change

fincfloat

factor by which the time step is increased if moving downhill and at least Nmin steps from the last uphill step

fdecfloat

factor by which the time step is decreased if an uphill step has been taken

astartfloat

initial value of a and value taken after an uphill step.

fafloat

factor by which parameter a decreases if moving downhill and at least Nmin steps from the last uphill step

afloat

adaptive parameter that controls the velocity used to evolve the system.

iprintint

how often to print status information

alternate_stop_criterioncallable

this criterion will be used rather than rms gradient to determine when to stop the iteration. must return a boolean and accept the following keywords:

  1. energy

  2. gradient

  3. tol

eventslist of callables

callbacks supplied through the events argument, called after each iteration. Each event must accept keywords:

  1. coords

  2. energy

  3. rms

See also

LBFGS
MYLBFGS

Notes

The Fast Inertial Relaxation Engine is an optimization algorithm based on molecular dynamics with modifications to the velocity and adaptive time steps. The method is based on a blind skier searching for the bottom of a valley and is described and tested here:

Erik Bitzek, Pekka Koskinen, Franz Gaehler, Michael Moseler, and Peter Gumbsch. Phys. Rev. Lett. 97, 170201 (2006) http://link.aps.org/doi/10.1103/PhysRevLett.97.170201

This implementation of the algorithm differs significantly from the original algorithm in the order in which the steps are taken.

Fire.run()[source]

Source

def run(self, fmax=1e-3, steps=100000):

Run structure optimization algorithm.

By default, stop when the RMS gradient is less than fmax or after at most steps iterations. If supplied, alternate_stop_criterion determines convergence instead of the RMS gradient.

Fire.converged()[source]

Source

def converged(self, forces=None):

Did the optimization converge?