Reproduce

Install the release that the d-SEAMS 2.0 paper describes, rerun its records and check its Lean development. Versions lists what each step pins, and Benchmarks lists what each record measured.

Install the release

The engine builds with pixi and Meson, or with the Nix flake.

git clone https://github.com/d-SEAMS/seams-core
cd seams-core && git checkout v2.12.0
pixi run setup && pixi run build && pixi run test
./bbdir/seams read input/traj/exampleTraj.lammpstrj
nix build        # ./result/bin/seams; runs the Catch2 suite

Install the engine covers the pixi environments and the flake in full.

PydSEAMSlib installs from PyPI and loads with import pydseamslib. It needs Python 3.11 or later.

pip install pydseamslib

The Lua library builds from the yodaStruct repository with Meson.

meson setup bbdir --wrap-mode=nofallback && meson compile -C bbdir
LUA_PATH="$PWD/lua/?.lua;;" LUA_CPATH="$PWD/bbdir/?.so;;" lua script.lua

The device-resident batch is the Meson feature with_gpulite, built when CUDA and NVRTC are found.

The LAMMPS compute is the two sources extras/lammps/compute_dseams.cpp and compute_dseams.h, which call only the C header seams_c_api.h. After pixi run install, copy them into the src directory of LAMMPS, put $CONDA_PREFIX/include/seams on its include path and link it to libyodaLib in $CONDA_PREFIX/lib.

The PLUMED module builds with pixi run build in the dseams-plumed repository. Its tests/driver_check.py runs plumed driver with DSEAMS_CAGES over a LAMMPS dump and compares the per-frame counts with a walk_compare table.

Rerun the records

The reproducibility package pins OVITO, freud, GenIce2 and cycless in its pixi lock next to the engine. genice2-cage is installed with pip. R.I.N.G.S. is built from the SourceForge archive of rings-code 1.3.5.

pip install genice2-cage==2.5.2
tar xzf rings-code-v1.3.5.tar.gz && cd rings-code-v1.3.5
./configure FC=gfortran && make

The whole campaign runs from one Snakemake workflow, on an exclusive Slurm node or on any machine.

git clone https://github.com/d-SEAMS/dseams2_repro
cd dseams2_repro
pixi run prep && pixi run submit   # exclusive Slurm node
pixi run run-local                 # any machine

The three cloud-VM timing records each have a run.sh.

R=results/reference
bash $R/bench-2026-10-31/run.sh SRC BUILD BASE_TREE BASE_BUILD 3 ARCHIVE
BEFORE=1 bash $R/cli-carry-2026-10-31/run.sh SRC BUILD 3 ARCHIVE
bash $R/h2h-2026-10-31/run.sh

Here SRC is the unpacked program-files archive ARCHIVE and BUILD its Meson release build, and BASE_TREE and BASE_BUILD are the baseline commit 1c8efa38 and its build. The 3 is the pinned core. Each run.sh refuses a source tree that differs from the archive. The carry record takes the session count as a fifth argument, five by default, and with BEFORE=1 it also times the build without the back-off by reversing its backoff.patch.

The head-to-head run.sh reads ARCHIVE, H2H_SEAMS (the seams binary of that archive) and PYDSEAMS (a PydSEAMSlib built on the same archive). It and rings_mw.sh, which runs the mW R.I.N.G.S. row, call h2h.py, and compare_table.py prints the rows of the table. Each record writes raw/ and a provenance.txt with the archive checksum and the machine.

Check the carried walk

The Meson test compares the JSON output of a carried range with --rebuild, SEAMS_CARRY=0 and --jobs 2. By hand, the two runs below print the same lines.

meson test -C build seams_carried_frames_match_rebuild
seams --frame 1 --last 148 cages --graph seeded nucleation.lammpstrj
seams --rebuild --frame 1 --last 148 cages --graph seeded nucleation.lammpstrj

seams CLI lists when the command line carries and when it rebuilds.

Run the tests

meson test and nix build run the Catch2 suite together with check_device_host, check_invariance and gpu_kernels_host. The property tests use Hypothesis and run in the PydSEAMSlib repository.

meson test -C bbdir
pip install ".[test,ase]"
python -m pytest tests

Check the Lean development

The lean/ folder of the supplementary archive (lean.zip) holds the library DSeams, thirteen files in lean/DSeams/, with no other library. From that folder the two commands below check every declaration. lean/README.md lists each theorem’s supplement number, Lean name and file.

elan toolchain install leanprover/lean4:v4.15.0
lake build