Release notes#
[v2.10.0] - 2026-02-15#
This release improves documentation, developer infrastructure, and runtime performance. There are no breaking API changes.
Documentation#
Displacement Strategies Guide#
The Saddle Search page now includes a conceptual
explanation of how epicenter selection works during saddle searches, covering
the weight-based probabilistic strategies (displace_random_weight,
displace_listed_atom_weight, etc.), the displace_radius /
displace_magnitude mechanism, and the displace_all_listed flag.
Displacement Scripts Tutorial#
A new Targeted Displacement for Saddle Searches tutorial walks through two worked examples of targeted displacement:
Vacancy diffusion in Cu using OVITO’s Polyhedral Template Matching (PTM) to identify non-bulk atoms near a vacancy (
ptmdisp.py).Adsorbate on a catalyst surface using ASE to select atoms by element or z-coordinate and expand the selection by a distance cutoff (
adsorbate_region.py).
The tutorial also covers the script interface contract (positional .con path
argument, comma-separated indices on stdout, per-state caching), the static
displace_atom_list alternative, and client-side listed_atoms displacement.
Schema Descriptions#
The [Saddle Search] configuration fields displace_atom_kmc_state_script,
displace_all_listed, displace_atom_list, and client_displace_type now
have detailed descriptions that appear in the auto-generated documentation
tables.
GPR-Dimer#
Exposed
gprd_linalg_backendbuild option for selecting the linear algebra backend used by gpr_optim:eigen(default),cusolver(NVIDIA GPU),kokkos(portable CPU/GPU), orstdpar(C++17 parallel STL with TBB).Updated pinned gpr_optim to latest commit with new backends, subproject build fix, and performance improvements.
Performance#
Eliminated unnecessary Eigen matrix copies in
Matter,Potential, andHelperFunctionshot paths by using const references and move semantics.Replaced per-typedef
Eigen::RowMajorwith a singleeOnStorageOrderconstant inclient/Eigen.h, making the storage order explicit and configurable in one place. Also removed the deadEIGEN2_SUPPORTcomment.
Developer#
Added ASV benchmark CI workflow with
asv-spyglassfor automated PR performance comparison.Expanded ASV benchmark suite with point evaluation, LJ minimization, and NEB workloads.
Added macOS arm64 to the metatomic CI matrix using Homebrew gfortran.
Reduced build times by linking to xTB by default.
Build cleanup for Windows compatibility.
Refactored
MetatomicPotentialvariant resolution to use upstreammetatomic_torch::pick_output.
Bug Fixes#
Fixed Windows
STATUS_STACK_OVERFLOW(0xC00000FD) crash in the EAM Al potential. The Fortran subroutinegagafeDblexpallocates ~3.6 MB of local arrays (phi/phivirstdimensioned atMAXPRS=200000), exceeding the 1 MB Windows default stack. The linker now requests a 16 MB stack on Windows.Fixed silent client failure on Windows when stdout is redirected by the Python server, by switching spdlog from
stdout_color_sink_mt(which usesWriteConsole) to the plainstdout_sink_mt.Use Goswami & Jonsson 2025 for removing rotations through projections.