Lanczos

Changed in version 2.12: Force call tracking fixed to use the job’s potential instance.

The Lanczos method determines the lowest curvature mode of the potential energy surface using the iterative Lanczos algorithm Malek and Mousseau [LCZ_MM00]. It is an alternative to the dimer method for min-mode following saddle searches.

Force call costs per eigenmode computation

Each min-mode method has different force evaluation costs per eigenmode computation step:

Method

Force calls per step

How it works

Lanczos

1 + N (N = Lanczos iters, typically 3–7)

Builds Krylov subspace; 1 initial + 1 per iteration

Improved Dimer

2 + N (N = rotations, up to 20)

Forward/backward FD + 1 per trial rotation

ARTn

1 per artn_step call

External force eval; internal Lanczos is implicit

The Lanczos method converges the lowest eigenmode in fewer force calls because the Krylov basis extracts more curvature information per evaluation than repeated dimer rotations.

Benchmark: LJ38 TS optimization (100 structures)

Added in version 2.13.

Method

Avg force calls

Median

Min

Max

Failures

Lanczos

238

178

84

1625

0/100

ARTn

426

269

100

2462

10/100

Dimer

523

359

151

2996

0/100

Force calls are counted via Potential::forceCallCounter (incremented on every Matter::computePotential call). Cached evaluations (positions unchanged) do not count.

When to Use Lanczos vs Dimer

Both methods find the same lowest eigenmode. The Lanczos method is generally more efficient (fewer force calls) while the Dimer is more robust and integrates with GP acceleration:

  • Lanczos: 1 gradient evaluation per iteration. Fewer total force calls. Natural for large systems. Integrates with OCINEB climbing image refinement.

  • Improved Dimer: 2 evaluations per iteration (finite difference). More force calls but integrates with the AtomicGPDimer for GP-accelerated searches.

  • ARTn: Push-based exploration. Finds different saddles than gradient-following methods. See ARTn.

Usage

The Lanczos method is selected in the saddle search configuration:

[Saddle Search]
min_mode_method = lanczos

[Lanczos]
tolerance = 0.01
max_iterations = 20

max_iterations controls how many Lanczos iterations are performed per eigenmode computation. Unlike the dimer’s rotations_max, each Lanczos iteration costs exactly 1 gradient evaluation.

Configuration

[Lanczos]
pydantic model eon.schema.LanczosConfig[source]

Show JSON schema
{
   "title": "LanczosConfig",
   "type": "object",
   "properties": {
      "tolerance": {
         "default": 0.001,
         "description": "This is the convergence criteria for relative change in the estimated lowest eigenvalue.",
         "title": "Tolerance",
         "type": "number"
      },
      "max_iterations": {
         "default": 20,
         "description": "The maximum number of refinement iterations when calculating the minimum eigenvalue.",
         "title": "Max Iterations",
         "type": "integer"
      },
      "quit_early": {
         "default": true,
         "description": "If the relative change between the previous lowest eigenvalue and the curvature along the initial direction is less than the tolerance, terminate.",
         "title": "Quit Early",
         "type": "boolean"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field max_iterations: int = 20

The maximum number of refinement iterations when calculating the minimum eigenvalue.

field quit_early: bool = True

If the relative change between the previous lowest eigenvalue and the curvature along the initial direction is less than the tolerance, terminate.

field tolerance: float = 0.001

This is the convergence criteria for relative change in the estimated lowest eigenvalue.

References

[LCZ_MM00]

Rachid Malek and Normand Mousseau. Dynamics of Lennard-Jones clusters: A characterization of the activation-relaxation technique. Physical Review E, 62(6):7723–7728, December 2000. doi:10.1103/PhysRevE.62.7723.