## Minimization Benchmarks

Entries for these benchmarks must record the average number number of force calls as force_calls in benchmark.dat, the maximum number of force calls as force_calls_max, the minimum number of force calls as force_calls_min, and the number of failed minimizations as nfailed

### Lennard-Jones 38 Clusters

This benchmark tests the performance of optimizers starting from 1000 randomly generated Lennard-Jones 38 clusters. A tar file containing the structures is here: lj38.tgz.

The L2 norm of the force must be reduced to at least 0.01 energy / distance. The maximum number of force calls that may be made cannot exceed 10,000. Runs that exceed the maximum number of force calls or fail to converge for any other reason are considered failed.

Entry <N> min N max N Failed
optim

Comments: The L-BFGS memory length was set to 100 steps and the maximum move distance was 0.2 distance units. Steps that increase energy are never accepted. This is enforced by ensuring the step direction points downhill and, if necesary, reducing the step size.
Date: 06 Aug 2014 Contributor: Jacob Stevenson Code: wales-27058.tar.bz2 Input files: optim.tgz

176 90 421 0
pele-lbfgs-M100-maxstep0.2

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M100-maxstep0.2.tgz

179 90 540 0
eon-lbfgs

Comments: L-BFGS with an initial diagonal inverse hessian equal to 0.004 distance squared per energy. The memory length was set to 100 steps and the maximum move distance was 0.2 distance units. The LBFGS history was reset when the angle between the descent direction and the force became greater than 90º or a step greater than the max move was taken.
Date: 27 Aug 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-lbfgs.tgz

181 90 405 0
pele-lbfgs-M20-maxstep0.1

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M20-maxstep0.1.tgz

222 116 507 0
scipy-lbfgs1

Date: 28 Aug 2013 Contributor: Jacob Stevenson Input files: scipy-lbfgs.tgz

230 105 545 0
pele-lbfgs-M4-maxstep0.2

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M4-maxstep0.2.tgz

230 100 620 0
pele-lbfgs-M10-maxstep0.1

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M10-maxstep0.1.tgz

235 115 523 0
pele-lbfgs-M4-maxstep0.1

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M4-maxstep0.1.tgz

249 127 575 0
pele-lbfgs-M1-maxstep0.1

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M1-maxstep0.1.tgz

287 132 712 0
ase-lbfgs1

Date: 27 Aug 2013 Contributor: Sam Chill Input files: ase-lbfgs.tgz

355 166 9317 1
pele-lbfgs-M4-maxstep0.05

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs-M4-maxstep0.05.tgz

379 200 773 0
ase-lbfgslinesearch1

Date: 27 Aug 2013 Contributor: Sam Chill Input files: ase-lbfgslinesearch.tgz

417 239 862 0
eon-cg

Date: 24 Jun 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-cg.tgz

453 207 1153 0
eon-sd-twopoint

Comments: This steepest descent algoirthm uses the Barzilai and Borwein method for determining the step size. The next position is determinied by $$x_{k+1} = x_k - \mathbf{S}_k g_k$$ where the step size $\mathbf{S}_k$ is $$S_k = \alpha_k \mathbf{I}$$ where $\mathbf{I}$ is the identity matrix and $\alpha_k$ is given by $$\alpha_k = \frac{\Delta x \cdot \Delta x}{\Delta x \cdot \Delta g}$$ with $\Delta x = x_k - x_{k-1}$ and $\Delta g = g_k - g_{k-1}$. For this problem, $\alpha_0$ was set to 0.001.
Barzilai, J.; Borwein, J. M. "Two-point step size gradient methods" IMA J. Numer. Anal. 1988, 8, 141-148.
Date: 24 Jun 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-sd-twopoint.tgz

539 182 2502 0
ase-fire1

Date: 23 Aug 2013 Contributor: Sam Chill Input files: ase-fire.tgz

656 208 1000 0
eon-fire

Date: 24 Jun 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-fire.tgz

731 227 2918 0
eon-qm

Date: 24 Jun 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-qm.tgz

3523 667 9929 23
eon-sd

Comments: This steepest descent algoirthm calculates the step size by assuming a constant curvature of the potential energy: $$x_{k+1} = x_k - \alpha g_k$$ where $x_k$ is the current position, $g_k$ is the current gradient and $\alpha = 0.001$.
Date: 24 Jun 2013 Contributor: Sam Chill Code: eon-r2025.tgz Input files: eon-sd.tgz

4901 1355 9982 96

### Morse Bulk

This benchmark tests the performance of optimizers starting from 100 FCC bulk Morse structures that have been slightly perturbed from their equilibrium lattice positions. A tar file containing the structures is here: morse-bulk.tgz.

$$U(r) = D_e ( 1 - e^{-a(r-r_e)})^2$$

where $D_e=0.7102$ eV, $r_e=2.8970$ Ang, and $a=1.6047$ Ang$^{-1}$.

The norm of the force must be reduced to at least 1e-3 eV/Ang

Entry <N> min N max N
optim

Comments: The L-BFGS memory length was set to 100 steps and the maximum move distance was 2.0 distance units. Steps that increase energy are never accepted. This is enforced by ensuring the step direction points downhill and, if necesary, reducing the step size.
Date: 06 Aug 2014 Contributor: Jacob Stevenson Code: wales-27058.tar.bz2 Input files: optim.tgz

46 21 80
pele-lbfgs

Date: 06 Aug 2014 Contributor: Code: pele-a68ec5.tgz Input files: pele-lbfgs.tgz

51 24 84
eon-lbfgs1

Comments: L-BFGS with an initial diagonal inverse hessian equal to 0.04 distance squared per energy. The memory length was set to 100 steps and the maximum move distance was 0.2 distance units. The LBFGS history was reset when the angle between the descent direction and the force became greater than 90º or a step greater than the max move was taken.
Date: 28 May 2014 Contributor: Sam Chill Input files: eon-lbfgs.tgz

52 35 81
ase-lbfgs1

Date: 26 Aug 2013 Contributor: Sam Chill Input files: ase-lbfgs.tgz

54 35 91
eon-sd-twopoint1

Comments: This steepest descent algoirthm uses the Barzilai and Borwein method for determining the step size. The next position is determinied by $$x_{k+1} = x_k - \mathbf{S}_k g_k$$ where the step size $\mathbf{S}_k$ is $$S_k = \alpha_k \mathbf{I}$$ where $\mathbf{I}$ is the identity matrix and $\alpha_k$ is given by $$\alpha_k = \frac{\Delta x \cdot \Delta x}{\Delta x \cdot \Delta g}$$ with $\Delta x = x_k - x_{k-1}$ and $\Delta g = g_k - g_{k-1}$. For this problem, $\alpha_0$ was set to 0.04.
Barzilai, J.; Borwein, J. M. "Two-point step size gradient methods" IMA J. Numer. Anal. 1988, 8, 141-148.
Date: 23 Aug 2013 Contributor: Sam Chill Input files: eon-sd-twopoint.tgz

64 28 138
eon-cg1

Date: 28 May 2014 Contributor: Sam Chill Input files: eon-cg.tgz

106 67 183
ase-fire1

Date: 23 Aug 2013 Contributor: Sam Chill Input files: ase-fire.tgz

147 102 216
eon-fire1

Comments: L-BFGS with an initial diagonal inverse hessian equal to 0.01 distance squared per energy. At each step after the initial, the initial inverse hessian, which determines the scale of the problem, is updated according to: $$H_0 = \frac{\Delta x \cdot \Delta x}{\Delta x \cdot \Delta g}$$ with $\Delta x = x_k - x_{k-1}$ and $\Delta g = g_k - g_{k-1}$. The memory length was set to 100 steps and the maximum move distance was 0.2 distance units. The LBFGS history was reset when the angle between the descent direction and the force became greater than 90º or a step greater than the max move was taken.
Date: 28 May 2014 Contributor: Sam Chill Input files: eon-fire.tgz

156 107 212
eon-sd1

Comments: This steepest descent algoirthm calculates the step size by assuming a constant curvature of the potential energy: $$x_{k+1} = x_k - \alpha g_k$$ where $x_k$ is the current position, $g_k$ is the current gradient and $\alpha = 0.001$.
Date: 23 Aug 2013 Contributor: Sam Chill Input files: eon-sd.tgz

196 95 360