Lennard-Jones 38 clusters

SystemLennard-Jones
Atoms38
Runs1000
Cap10000 force calls

The main metric is Force calls. Scoring rules.

Charts

Success rate on Lennard-Jones 38 clusters, in rank order. The rate is the share of runs that finished. 17 ranked rows did not record a success rate and are not drawn.
Success rate on Lennard-Jones 38 clusters, in rank order. The rate is the share of runs that finished. 17 ranked rows did not record a success rate and are not drawn. PDF.
Dolan-Moré profile for Minimizers on Lennard-Jones 38 clusters. The curve is the fraction of starts whose cost is at most tau times the best finite cost in this family. Tau is 1, 2, 4, 8, and 16. An unsolved start stays in the denominator and does not cross a finite tau. Dolan, E. D. and Moré, J. J., Math. Program. 91:201-213, 2002. Colored lines are the six largest areas. The other curves are gray.
Dolan-Moré profile for Minimizers on Lennard-Jones 38 clusters. The curve is the fraction of starts whose cost is at most tau times the best finite cost in this family. Tau is 1, 2, 4, 8, and 16. An unsolved start stays in the denominator and does not cross a finite tau. Dolan, E. D. and Moré, J. J., Math. Program. 91:201-213, 2002. Colored lines are the six largest areas. The other curves are gray. PDF.
Force calls on each recorded start for Lennard-Jones 38 clusters. The box is the quartiles of those counts. A blue point is a success and a vermillion cross is a recorded failure (10441). The horizontal position is the recorded count. The vertical offset only keeps marks from covering one another.
Force calls on each recorded start for Lennard-Jones 38 clusters. The box is the quartiles of those counts. A blue point is a success and a vermillion cross is a recorded failure (10441). The horizontal position is the recorded count. The vertical offset only keeps marks from covering one another. PDF.
rgmin on Lennard-Jones 38 clusters. Each point is one recorded version of one method. Versions run left to right in numeric order. PAR-2 is omitted where that row has none. No line is drawn across a missing value.
rgmin on Lennard-Jones 38 clusters. Each point is one recorded version of one method. Versions run left to right in numeric order. PAR-2 is omitted where that row has none. No line is drawn across a missing value. PDF.
ASE on Lennard-Jones 38 clusters. Each point is one recorded version of one method. Versions run left to right in numeric order. PAR-2 is omitted where that row has none. No line is drawn across a missing value.
ASE on Lennard-Jones 38 clusters. Each point is one recorded version of one method. Versions run left to right in numeric order. PAR-2 is omitted where that row has none. No line is drawn across a missing value. PDF.
Performance profile for Lennard-Jones 38 clusters00.51124816Cost ratioFraction of startsTSASE (1.0) · SDLBFGSeOn (3.6.0) · LBFGSDL-FIND (0.0.3) · L-BFGSOPTIM (svn-snapshot) · L-BFGSGMIN (df8da5992675) · LBFGSpele (0.1.2) · MYLBFGSpele (0.1.2) · LBFGSASE (3.29.0) · LBFGSvc-SQNM (1.3) · ASE-SQNMvc-SQNM (1.3) · SQNMASE (3.29.0) · BFGSrgmin (0.4.0) · BBrgmin (0.4.1) · BBrgmin (0.4.0) · CGrgmin (0.4.1) · CGASE (3.29.0) · BFGSLineSearchLAMMPS (30 Sep 2026) · FIREASE (3.29.0) · FIRErgmin (0.4.0) · FIRErgmin (0.4.1) · FIRErgmin (0.4.0) · FIRE2rgmin (0.4.1) · FIRE2ASE (3.29.0) · PreconLBFGSSella (2.6.0) · Sellapele (0.1.2) · FIRELAMMPS (30 Sep 2026) · Hessian-free truncated Newtonrgmin (0.4.0) · BFGSrgmin (0.4.1) · BFGSpysisyphus (0.1.dev1) · conjugate gradientLAMMPS (30 Sep 2026) · conjugate gradientrgmin (0.4.0) · QUICKMINrgmin (0.4.1) · QUICKMINpysisyphus (0.1.dev1) · steepest descentrgmin (0.4.1) · SR1rgmin (0.4.1) · SR2rgmin (0.4.1) · DIISASE (3.29.0) · PreconFIREDL-FIND (0.0.3) · conjugate gradientLAMMPS (30 Sep 2026) · QuickminDL-FIND (0.0.3) · steepest descentrgmin (0.4.1) · ADAMLAMMPS (30 Sep 2026) · steepest descentpele (0.1.2) · steepest descentpysisyphus (0.1.dev1) · L-BFGSrgmin (0.4.0) · ADAMrgmin (0.4.0) · DIISrgmin (0.4.0) · SDrgmin (0.4.0) · SR1rgmin (0.4.0) · SR2rgmin (0.4.1) · SDTSASE (1.0) · MDMinrgmin (0.4.0) · NEWTONrgmin (0.4.1) · NEWTONrgmin (0.4.0) · DOGLEGrgmin (0.4.1) · DOGLEGrgmin (0.4.0) · LBFGSrgmin (0.4.1) · LBFGS
Performance profile. Higher means more starts solved within that cost ratio. Colored lines are the six largest areas. Thin lines are the other 51.
  • rgmin (0.4.0) · NEWTON
  • rgmin (0.4.1) · NEWTON
  • rgmin (0.4.0) · DOGLEG
  • rgmin (0.4.1) · DOGLEG
  • rgmin (0.4.0) · LBFGS
  • rgmin (0.4.1) · LBFGS
Cost distribution for Lennard-Jones 38 clusters081679 to 157.78: 3157.78 to 315.121: 16315.121 to 629.366: 9629.366 to 1256.98: 181256.98 to 2510.46: 72510.46 to 5013.94: 65013.94 to 10013.9: 410013.9 to 20000: 117920000
Cost distribution of 74 ranked rows. Logarithmic bins, from 79 to 20000.

Performance profile SVG Cost and success SVG

Performance profile for Lennard-Jones 38 clusters
Performance profile. Select the plot for the full SVG.
Cost and success for Lennard-Jones 38 clusters
Cost and success. Select the plot for the full SVG.
Best cost for Lennard-Jones 38 clustersLennard-Jones 38 clusters10¹10²10³10⁴10⁵cost (force calls, log scale)unknown: 79unknown79rgmin: 81.881rgmin81.881TSASE: 166TSASE166OPTIM: 176OPTIM176pele: 179pele179eOn: 180.137eOn180.137Eon svn: 181Eon svn181DL-FIND: 231.908DL-FIND231.908GMIN: 301.399GMIN301.399ASE: 374.645ASE374.645vc-SQNM: 598.05vc-SQNM598.05Sella: 710.089Sella710.089LAMMPS: 1123.81LAMMPS1123.81pysisyphus: 15124.7pysisyphus15124.7
A shorter bar is a lower cost on a log scale shared by the codes of this problem.

Leaderboard

A shorter bar is a lower cost on the log scale for that problem. Select a column heading to sort.
RankCodeBestMedianSuccessPAR-2
1 unknown 79 79 100.0% 79
2 rgmin 81.881 928.197 100.0% 81.881
3 TSASE 166 257.2 100.0% 166
4 OPTIM 176 223.171 100.0% 176
5 pele 179 288.145 100.0% 179
6 eOn 180.137 180.137 100.0% 180.137
7 Eon svn 181 635 100.0% 181
8 DL-FIND 231.908 3048.62 99.8% 231.908
9 GMIN 301.399 301.399 99.7% 301.399
10 ASE 374.645 656 99.9% 374.645
11 vc-SQNM 598.05 598.05 98.9% 598.05
12 Sella 710.089 710.089 100.0% 710.089
13 LAMMPS 1123.81 4361.3 99.7% 1123.81
14 pysisyphus 15124.7 16094.8 25.4% 15124.7

The tables below list every ranked row, by method family and overall.

A run short of the full set, or a run that is not the stock method, stays off the ranked table.

Files with no per-start harness record stay off the ranked table.

These archived rows differ from the table of J. Chem. Theory Comput. 10, 5476 (2014) that prints them, and each ranks on its archived values: eOn (r2025) · FIRE (Table 1 prints 645, 207 and 2963 calls, this file has 731, 227 and 2918, and no archived file has the printed values. The cause is not established).

Minimizers

Minimizers. One row is one code, one version, and one method. A lower cost is better. PAR-2 counts a finished run as the calls it used and a failed run as twice the cap. An archived row shows the average it published, and its PAR-2 applies that rule to the failures the entry records. Hessians is the mean analytic Hessian count. FD calls is that count times one force call per coordinate.
RankRowCostUnitHessiansFD callsRuns
1Newtons Method maxstep=0.2579force calls001000
2rgmin (0.4.0) · DOGLEG81.881force calls80.8819220.431000
3rgmin (0.4.1) · DOGLEG81.881force calls80.8819220.431000
4tsase-SDLBFGS maxstep=0.1 optimizer='maxatom'166force calls001000
5rgmin (0.4.0) · NEWTON166.337force calls65.6497483.991000
6rgmin (0.4.1) · NEWTON166.337force calls65.6497483.991000
7OPTIM · L-BFGS176force calls001000
8pele-lbfgs-M100-maxstep0.2179force calls001000
9eOn (3.6.0) · LBFGS180.137force calls001000
10eOn (r2025) · eon-lbfgs181force calls001000
11rgmin (0.4.0) · LBFGS197.228force calls001000
12rgmin (0.4.1) · LBFGS197.228force calls001000
13pele · lbfgs_scipy230force calls001000
14DL-FIND (0.0.3) · L-BFGS231.908force calls001000
15TSASE (1.0) · SDLBFGS257.2force calls001000
16pele (0.1.2) · MYLBFGS268.036force calls001000
17OPTIM (svn-snapshot) · L-BFGS270.341force calls001000
18pele (0.1.2) · LBFGS288.145force calls001000
19GMIN (df8da5992675) · LBFGS301.399force calls001000
20ASE (3.6.1) · L-BFGS M=5 maxstep=0.2374.645force calls001000
21ASE (3.6.0) · L-BFGS Line Search M=5 maxstep=0.2417force calls001000
22eOn (r2025) · Conjugate Gradients453force calls001000
23ase-BFGS maxstep=0.1482.537force calls001000
24ASE (3.29.0) · LBFGS532.882force calls001000
25eOn (r2025) · eon-sd-twopoint539force calls001000
26ASE (3.29.0) · BFGSLineSearch580.893force calls001000
27vc-SQNM (1.3) · ASE-SQNM598.05force calls001000
28vc-SQNM (1.3) · SQNM598.05force calls001000
29rgmin (0.4.0) · BB639.474force calls001000
30rgmin (0.4.1) · BB639.474force calls001000
31ASE (3.6.0) · FIRE656force calls001000
32rgmin (0.4.0) · CG669.237force calls001000
33rgmin (0.4.1) · CG669.237force calls001000
34ASE (3.29.0) · BFGS706.622force calls001000
35pele-fire709force calls001000
36Sella (2.6.0) · Sella710.089force calls001000
37ASE (3.29.0) · PreconLBFGS728.405force calls001000
38eOn (r2025) · FIRE731force calls001000
39rgmin (0.4.0) · FIRE769.36force calls001000
40rgmin (0.4.1) · FIRE769.36force calls001000
41ASE (3.29.0) · FIRE802.368force calls001000
42rgmin (0.4.0) · FIRE2845.947force calls001000
43rgmin (0.4.1) · FIRE2845.947force calls001000
44rgmin (0.4.0) · BFGS1010.45force calls001000
45rgmin (0.4.1) · BFGS1010.45force calls001000
46LAMMPS (30 Sep 2026) · Hessian-free truncated Newton1123.81force calls001000
47ASE (3.29.0) · PreconFIRE1850.86force calls001000
48rgmin (0.4.0) · QUICKMIN1933force calls001000
49rgmin (0.4.1) · QUICKMIN1933force calls001000
50rgmin (0.4.1) · DIIS1967.42force calls001000
51pele (0.1.2) · FIRE2141.38force calls001000
52rgmin (0.4.1) · SR12185.66force calls001000
53rgmin (0.4.1) · SR22298.44force calls001000
54ase-Precon-LBFGS maxstep=0.12686force calls001000
55DL-FIND (0.0.3) · conjugate gradient3048.62force calls001000
56DL-FIND (0.0.3) · steepest descent3093.74force calls001000
57LAMMPS (30 Sep 2026) · Quickmin3138.21force calls001000
58eOn (r2025) · QuickMin3901.97force calls001000
59LAMMPS (30 Sep 2026) · conjugate gradient4361.3force calls001000
60LAMMPS (30 Sep 2026) · FIRE5844.9force calls001000
61eOn (r2025) · eon-sd6350.5force calls001000
62rgmin (0.4.0) · SD8392.75force calls001000
63rgmin (0.4.1) · SD8392.75force calls001000
64rgmin (0.4.1) · ADAM13835.7force calls001000
65LAMMPS (30 Sep 2026) · steepest descent14468.2force calls001000
66pysisyphus (0.1.dev1) · conjugate gradient15124.7force calls001000
67pysisyphus (0.1.dev1) · steepest descent16094.8force calls001000
68rgmin (0.4.0) · ADAM16420.2force calls001000
69rgmin (0.4.0) · SR119908.9force calls001000
70rgmin (0.4.0) · DIIS19945force calls001000
71TSASE (1.0) · MDMin20000force calls001000
72pele (0.1.2) · steepest descent20000force calls001000
73pysisyphus (0.1.dev1) · L-BFGS20000force calls001000
74rgmin (0.4.0) · SR220000force calls001000

Overall

One row is one code, one version, and one method. A lower cost is better. PAR-2 counts a finished run as the calls it used and a failed run as twice the cap. An archived row shows the average it published, and its PAR-2 applies that rule to the failures the entry records. Hessians is the mean analytic Hessian count. FD calls is that count times one force call per coordinate.
RowFamilyFamily rankUnitPAR-2PublishedMedian callsMean callsHessiansFD callsFailuresRuns
Newtons Method maxstep=0.25Minimizers1force calls797979000 failed1000
rgmin (0.4.0) · DOGLEGMinimizers2force calls81.8817981.88180.8819220.43crash 0, divergence 0, cap 0, wrong_stationary 01000
rgmin (0.4.1) · DOGLEGMinimizers3force calls81.8817981.88180.8819220.43crash 0, divergence 0, cap 0, wrong_stationary 01000
tsase-SDLBFGS maxstep=0.1 optimizer='maxatom'Minimizers4force calls166166166000 failed1000
rgmin (0.4.0) · NEWTONMinimizers5force calls166.3376466.64965.6497483.99crash 0, divergence 0, cap 0, wrong_stationary 51000
rgmin (0.4.1) · NEWTONMinimizers6force calls166.3376466.64965.6497483.99crash 0, divergence 0, cap 0, wrong_stationary 51000
OPTIM · L-BFGSMinimizers7force calls176176166176000 failed1000
pele-lbfgs-M100-maxstep0.2Minimizers8force calls179179179000 failed1000
eOn (3.6.0) · LBFGSMinimizers9force calls180.137171180.13700crash 0, divergence 0, cap 0, wrong_stationary 01000
eOn (r2025) · eon-lbfgsMinimizers10force calls181181181000 failed1000
rgmin (0.4.0) · LBFGSMinimizers11force calls197.228170177.36700crash 0, divergence 0, cap 0, wrong_stationary 11000
rgmin (0.4.1) · LBFGSMinimizers12force calls197.228170177.36700crash 0, divergence 0, cap 0, wrong_stationary 11000
pele · lbfgs_scipyMinimizers13force calls230230230000 failed1000
DL-FIND (0.0.3) · L-BFGSMinimizers14force calls231.908184202.10500crash 0, divergence 0, cap 1, wrong_stationary 11000
TSASE (1.0) · SDLBFGSMinimizers15force calls257.2169177.9600crash 0, divergence 0, cap 0, wrong_stationary 41000
pele (0.1.2) · MYLBFGSMinimizers16force calls268.036235248.22400crash 0, divergence 0, cap 0, wrong_stationary 11000
OPTIM (svn-snapshot) · L-BFGSMinimizers17force calls270.341217230.72400crash 0, divergence 0, cap 0, wrong_stationary 21000
pele (0.1.2) · LBFGSMinimizers18force calls288.145235248.60100crash 0, divergence 0, cap 0, wrong_stationary 21000
GMIN (df8da5992675) · LBFGSMinimizers19force calls301.399223242.09300crash 0, divergence 0, cap 0, wrong_stationary 31000
ASE (3.6.1) · L-BFGS M=5 maxstep=0.2Minimizers20force calls374.645355355001 failed, class not recorded1000
ASE (3.6.0) · L-BFGS Line Search M=5 maxstep=0.2Minimizers21force calls417417417000 failed1000
eOn (r2025) · Conjugate GradientsMinimizers22force calls453453453000 failed1000
ase-BFGS maxstep=0.1Minimizers23force calls482.537463463001 failed, class not recorded1000
ASE (3.29.0) · LBFGSMinimizers24force calls532.882257344.88100crash 0, divergence 0, cap 7, wrong_stationary 61000
eOn (r2025) · eon-sd-twopointMinimizers25force calls539539539000 failed1000
ASE (3.29.0) · BFGSLineSearchMinimizers26force calls580.893551561.46600crash 0, divergence 0, cap 0, wrong_stationary 11000
vc-SQNM (1.3) · ASE-SQNMMinimizers27force calls598.05365.5382.06800crash 0, divergence 0, cap 0, wrong_stationary 111000
vc-SQNM (1.3) · SQNMMinimizers28force calls598.05365.5382.06800crash 0, divergence 0, cap 0, wrong_stationary 111000
rgmin (0.4.0) · BBMinimizers29force calls639.474471.5521.46100crash 0, divergence 0, cap 0, wrong_stationary 61000
rgmin (0.4.1) · BBMinimizers30force calls639.474471.5521.46100crash 0, divergence 0, cap 0, wrong_stationary 61000
ASE (3.6.0) · FIREMinimizers31force calls656656656000 failed1000
rgmin (0.4.0) · CGMinimizers32force calls669.237538591.34600crash 0, divergence 0, cap 0, wrong_stationary 41000
rgmin (0.4.1) · CGMinimizers33force calls669.237538591.34600crash 0, divergence 0, cap 0, wrong_stationary 41000
ASE (3.29.0) · BFGSMinimizers34force calls706.622414.5489.93800crash 0, divergence 0, cap 3, wrong_stationary 111000
pele-fireMinimizers35force calls709709709000 failed1000
Sella (2.6.0) · SellaMinimizers36force calls710.089692.5710.08900crash 0, divergence 0, cap 0, wrong_stationary 01000
ASE (3.29.0) · PreconLBFGSMinimizers37force calls728.405652.5690.11900crash 0, divergence 0, cap 0, wrong_stationary 21000
eOn (r2025) · FIREMinimizers38force calls731731731000 failed1000
rgmin (0.4.0) · FIREMinimizers39force calls769.36625.5711.60900crash 0, divergence 0, cap 0, wrong_stationary 31000
rgmin (0.4.1) · FIREMinimizers40force calls769.36625.5711.60900crash 0, divergence 0, cap 0, wrong_stationary 31000
ASE (3.29.0) · FIREMinimizers41force calls802.368604706.00500crash 0, divergence 0, cap 0, wrong_stationary 51000
rgmin (0.4.0) · FIRE2Minimizers42force calls845.947639.5730.95200crash 0, divergence 0, cap 0, wrong_stationary 61000
rgmin (0.4.1) · FIRE2Minimizers43force calls845.947639.5730.95200crash 0, divergence 0, cap 0, wrong_stationary 61000
rgmin (0.4.0) · BFGSMinimizers44force calls1010.459701010.4500crash 0, divergence 0, cap 0, wrong_stationary 01000
rgmin (0.4.1) · BFGSMinimizers45force calls1010.459701010.4500crash 0, divergence 0, cap 0, wrong_stationary 01000
LAMMPS (30 Sep 2026) · Hessian-free truncated NewtonMinimizers46force calls1123.819741066.6100crash 0, divergence 0, cap 0, wrong_stationary 31000
ASE (3.29.0) · PreconFIREMinimizers47force calls1850.8615621816.5900crash 0, divergence 0, cap 0, wrong_stationary 21000
rgmin (0.4.0) · QUICKMINMinimizers48force calls193315981897.2200crash 0, divergence 0, cap 0, wrong_stationary 21000
rgmin (0.4.1) · QUICKMINMinimizers49force calls193315981897.2200crash 0, divergence 0, cap 0, wrong_stationary 21000
rgmin (0.4.1) · DIISMinimizers50force calls1967.4216521930.9200crash 0, divergence 0, cap 0, wrong_stationary 21000
pele (0.1.2) · FIREMinimizers51force calls2141.387391325.2900crash 0, divergence 0, cap 7, wrong_stationary 411000
rgmin (0.4.1) · SR1Minimizers52force calls2185.6617282093.0100crash 0, divergence 0, cap 2, wrong_stationary 41000
rgmin (0.4.1) · SR2Minimizers53force calls2298.441837.52230.0700crash 0, divergence 0, cap 5, wrong_stationary 11000
ase-Precon-LBFGS maxstep=0.1Minimizers54force calls268626862686000 failed1000
DL-FIND (0.0.3) · conjugate gradientMinimizers55force calls3048.6225542958.6200crash 0, divergence 0, cap 9, wrong_stationary 01000
DL-FIND (0.0.3) · steepest descentMinimizers56force calls3093.7425772993.7400crash 0, divergence 0, cap 10, wrong_stationary 01000
LAMMPS (30 Sep 2026) · QuickminMinimizers57force calls3138.2125453020.9400crash 0, divergence 5, cap 0, wrong_stationary 41000
eOn (r2025) · QuickMinMinimizers58force calls3901.97352335230023 failed, class not recorded1000
LAMMPS (30 Sep 2026) · conjugate gradientMinimizers59force calls4361.31550.52810.3200crash 0, divergence 1, cap 148, wrong_stationary 31000
LAMMPS (30 Sep 2026) · FIREMinimizers60force calls5844.9413421.05300crash 0, divergence 224, cap 0, wrong_stationary 491000
eOn (r2025) · eon-sdMinimizers61force calls6350.5490149010096 failed, class not recorded1000
rgmin (0.4.0) · SDMinimizers62force calls8392.7560996350.1900crash 0, divergence 0, cap 200, wrong_stationary 31000
rgmin (0.4.1) · SDMinimizers63force calls8392.7560996350.1900crash 0, divergence 0, cap 200, wrong_stationary 31000
rgmin (0.4.1) · ADAMMinimizers64force calls13835.7100008365.6800crash 0, divergence 0, cap 547, wrong_stationary 01000
LAMMPS (30 Sep 2026) · steepest descentMinimizers65force calls14468.2100008298.1900crash 0, divergence 0, cap 617, wrong_stationary 01000
pysisyphus (0.1.dev1) · conjugate gradientMinimizers66force calls15124.7100007655.1200crash 0, divergence 0, cap 745, wrong_stationary 11000
pysisyphus (0.1.dev1) · steepest descentMinimizers67force calls16094.8100008144.7800crash 0, divergence 0, cap 795, wrong_stationary 01000
rgmin (0.4.0) · ADAMMinimizers68force calls16420.2100009110.1600crash 0, divergence 0, cap 731, wrong_stationary 01000
rgmin (0.4.0) · SR1Minimizers69force calls19908.9100008133.100crash 0, divergence 196, cap 799, wrong_stationary 01000
rgmin (0.4.0) · DIISMinimizers70force calls19945100009836.2100crash 0, divergence 0, cap 964, wrong_stationary 321000
TSASE (1.0) · MDMinMinimizers71force calls20000100001000000crash 0, divergence 0, cap 1000, wrong_stationary 01000
pele (0.1.2) · steepest descentMinimizers72force calls20000100001000000crash 0, divergence 0, cap 1000, wrong_stationary 01000
pysisyphus (0.1.dev1) · L-BFGSMinimizers73force calls20000100001000000crash 0, divergence 0, cap 1000, wrong_stationary 01000
rgmin (0.4.0) · SR2Minimizers74force calls20000100009990.4500crash 0, divergence 1, cap 999, wrong_stationary 01000

Not scored

  • eOn: no per-start record
  • eOn: no per-start record
  • eOn: no per-start record
  • eOn: no per-start record
  • eOn: no per-start record
  • eOn: no per-start record
  • eOn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • Eon svn: no per-start record
  • pele: no per-start record
  • pele: no per-start record
  • pele: no per-start record
  • pele: no per-start record
  • pele: no per-start record
  • pele: no per-start record
  • pele: no per-start record

Success on this problem: harness force calls under the cap, the force norm at the stop, and vibrational Hessian index 0.

The six rigid modes of the free cluster are removed before the count.

A curvature counts as negative only below -max(force_norm, 1e-8*||H||_F, 1e-6).

Energy and Kabsch RMSD are not applied: this file has no energy_tol, rmsd_tol, or per-start reference.