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:
Push phase: displace atoms away from the minimum by
push_step_sizeLanczos phase: compute the lowest eigenvalue via internal Lanczos
Perpendicular relaxation: FIRE relaxation orthogonal to the push direction
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’spush_step_size. Larger values explore further but risk instability on clusters.force_threshold: Force convergence criterion (eV/Angstrom). Maps to pARTn’sforc_thr.max_iterations: Maximum number of ARTn steps.ninit: Number of initial push steps before Lanczos eigenmode estimation. Default-1keeps pARTn’s own default. Set0to 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’sninit.nperp_limitation: Comma-separated integers controlling the maximum number of perpendicular relaxation steps per Lanczos cycle.defaultuses pARTn defaults (tuned for exploration from a minimum).-1for unlimited perp-relax (smooth potentials in refinement).20,30limits steps (recommended for corrugated/ML potentials). Maps to pARTn’snperp_limitation.lanczos_min_size: Minimum Lanczos iterations before convergence check. Default-1uses pARTn default (3). Set to1for refinement near a known saddle. Maps to pARTn’slanczos_min_size.nsmooth: Number of smooth interpolation steps between push direction and eigenvector.-1uses pARTn default.0disables smoothing. Maps to pARTn’snsmooth.
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¶
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.
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.