Fire

class Fire : public minim::NewMinimiser<Fire>

FIRE (Fast Inertial Relaxation Engine) minimisation.

A damped molecular dynamics method: velocities follow the forces, with an adaptive time step that grows during downhill motion and resets when the motion turns uphill. Converged when the RMS gradient falls below the state’s convergence criterion.

Public Functions

Fire(double dtMax)

Construct with a maximum time step.

virtual Fire &setMaxIter(int maxIter)

Set the maximum number of iterations.

Fire &setDtMax(double dtMax)

Set the maximum time step of the dynamics.

virtual void init(State &state)

Initialise the minimiser before the first iteration.

virtual void iteration(State &state)

Perform a single minimisation iteration.

virtual bool checkConvergence(const State &state) override

Check whether the minimisation is converged.

Public Members

double dtMax = 0

Maximum time step of the dynamics.

If left as 0, it is estimated from the initial gradient norm.