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¶
Changed in version 2.15: ARTn is now loaded at runtime via dlopen / LoadLibrary, mirroring
the LAMMPS pattern. No -Dwith_artn build flag is needed and no
configure-time CMake build of artn-plugin is required. A single
eOn binary picks up ARTn iff libartn.so is on the library search
path. The pre-2.15 meson subprojects download artn-plugin workflow
is no longer required.
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.filin: Path to anartn.instyle input file read by pARTn during setup. Empty (the default) keeps pARTn’s postartn_createsentinelBBBB, i.e. no file is read and all parameters come from this[ARTn]section. Any non-empty value is required to exist; eOn checks before setup and aborts with a clear error when it does not. Maps to pARTn’sfilin.
Runtime requirements¶
ARTn needs libartn.so (or libartn.dylib / libartn.dll) on the
library search path at run time. The shim and the SaddleSearch driver
are unconditionally compiled into eonclient; only the dynamic library
is supplied externally.
# Build libartn from the upstream Fortran subproject (one-time):
git clone https://gitlab.com/mammasmias/artn-plugin
cd artn-plugin
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
-DWITH_LAMMPS=OFF -DWITH_QE=OFF -DWITH_SIESTA=OFF
cmake --build build -j
# Make eonclient see it:
export LD_LIBRARY_PATH=$PWD/build:$LD_LIBRARY_PATH # Linux
export DYLD_LIBRARY_PATH=$PWD/build:$DYLD_LIBRARY_PATH # macOS
If the library is missing, the eonclient banner still says
ARTn: enabled (dlopen at runtime) but method = artn (or
min_mode_method = artn) raises a runtime error naming the entry
point and pointing at LD_LIBRARY_PATH.
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.