ARTn (Activation-Relaxation Technique nouveau)

Added in version 2.13.

The Activation-Relaxation Technique nouveau (ARTn) Barkema and Mousseau [ARTN_BM96], Mousseau et al. [ARTN_MBelandB+12] is a saddle point search method that uses an explicit push phase followed by Lanczos eigenvalue computation and perpendicular relaxation. It is implemented via the pARTn Fortran library.

How ARTn differs from Dimer/Lanczos

Unlike the dimer and Lanczos methods, which follow the lowest eigenmode from a given starting point, ARTn actively pushes the system away from a local minimum before searching for the saddle:

  1. Push phase: displace atoms away from the minimum by push_step_size

  2. Lanczos phase: compute the lowest eigenvalue via internal Lanczos

  3. Perpendicular relaxation: FIRE relaxation orthogonal to the push direction

  4. Convergence check: iterate until force threshold is met or saddle found

This push-based exploration can find saddles that gradient-following methods miss, making ARTn complementary to Dimer/Lanczos rather than a replacement.

Force call costs

Each ARTn step (one call to artn_step) requires exactly 1 external force evaluation. However, ARTn typically needs more total steps than Lanczos because of the push and perpendicular relaxation overhead.

Illustrative benchmark on LJ38 TS optimization (100 near-saddle structures, OptBench):

Method

Avg force calls

Median

Failed/100

Lanczos

238

178

0

ARTn

426

269

10

Dimer

523

359

0

On this benchmark ARTn is faster than Dimer when it converges but less robust on non-periodic clusters (10% failure rate from the push phase causing “box explosion” on systems without periodic boundary conditions). Treat these numbers as workload-specific rather than universal performance guarantees; for periodic bulk and surface systems, which are ARTn’s design target, the failure rate is expected to be lower.

Usage

ARTn requires the artn-plugin Fortran subproject source to be available under subprojects/ (for example via meson subprojects download artn-plugin). When present, eOn builds it via CMake at configure time as a workaround for Meson’s current Fortran submodule scanner limitations.

ARTn can be used in two ways:

As a standalone method (method = artn): ARTn starts directly from pos.con and handles its own push, internal Lanczos eigenmode estimation, and perpendicular relaxation (FIRE). displacement.con is ignored in this mode, and an optional initial mode from direction.dat biases the push direction when present.

[Saddle Search]
method = artn

[ARTn]
push_step_size = 0.3
force_threshold = 0.05
max_iterations = 500

As a min-mode drop-in (min_mode_method = artn): eOn’s displacement and epicenter logic seeds the initial structure and mode, then ARTn takes over from the displaced configuration. This is useful when eOn’s displacement strategy (e.g. least-coordinated weighting) should control where the search starts.

[Saddle Search]
method = min_mode
min_mode_method = artn

[ARTn]
push_step_size = 0.3
force_threshold = 0.05
max_iterations = 500

Parameters

  • push_step_size: Step size (Angstrom) for the initial push away from the minimum. Maps to pARTn’s push_step_size. Larger values explore further but risk instability on clusters.

  • force_threshold: Force convergence criterion (eV/Angstrom). Maps to pARTn’s forc_thr.

  • max_iterations: Maximum number of ARTn steps.

  • ninit: Number of initial push steps before Lanczos eigenmode estimation. Default -1 keeps pARTn’s own default. Set 0 to skip the push and go directly to Lanczos (appropriate when eOn supplies the displacement); larger values let ARTn explore further from the minimum before engaging Lanczos. Maps to pARTn’s ninit.

  • nperp_limitation: Comma-separated integers controlling the maximum number of perpendicular relaxation steps per Lanczos cycle. default uses pARTn defaults (tuned for exploration from a minimum). -1 for unlimited perp-relax (smooth potentials in refinement). 20,30 limits steps (recommended for corrugated/ML potentials). Maps to pARTn’s nperp_limitation.

  • lanczos_min_size: Minimum Lanczos iterations before convergence check. Default -1 uses pARTn default (3). Set to 1 for refinement near a known saddle. Maps to pARTn’s lanczos_min_size.

  • nsmooth: Number of smooth interpolation steps between push direction and eigenvector. -1 uses pARTn default. 0 disables smoothing. Maps to pARTn’s nsmooth.

Build requirements

ARTn requires a Fortran compiler and LAPACK. Download the subproject first, then let eOn build it automatically at configure time:

meson subprojects download artn-plugin
meson setup builddir -Dwith_artn=true

Or with a prebuilt library:

meson setup builddir -Dwith_artn=true \
  -Dartn_libdir=/path/to/lib -Dartn_includedir=/path/to/include

Comparison with kart

The kart kinetic ART code also integrates pARTn, but differently: kart calls the Fortran API directly and embeds LAMMPS force computation inside the ARTn loop. eOn uses only the C API (artn.h) and treats ARTn as a black-box step function, keeping the potential abstraction layer intact. This means eOn’s ARTn works with any potential backend (LJ, EAM, LAMMPS, XTB, metatomic, etc.) without modification.

References

[ARTN_BM96]

G. T. Barkema and Normand Mousseau. Event-based relaxation of continuous disordered systems. Physical Review Letters, 77(21):4358–4361, 1996. doi:10.1103/PhysRevLett.77.4358.

[ARTN_MBelandB+12]

Normand Mousseau, Laurent Karim Béland, Peter Brommer, Jean-François Joly, Fedwa El-Mellouhi, Eduardo Machado-Charry, Mihai-Cosmin Marinica, and Pascal Pochet. The activation-relaxation technique: ART nouveau and kinetic ART. Journal of Atomic, Molecular, and Optical Physics, 2012:925278, 2012. doi:10.1155/2012/925278.