# Reference-free certification of machine-learning interatomic potentials

Data and analysis scripts for the paper *Reference-free certification of machine-learning
interatomic potentials* (J. Hänseroth and C. Dreßler).

Every number in the paper is produced with `pescert`, an open-source suite of 14 probes
that score an interatomic potential against exact mathematical or physical identities,
with no DFT reference anywhere. This record holds the raw output of those runs.

| Link | |
|---|---|
| Code | https://github.com/jhaens/pescert |
| Interactive results | https://jhaens.github.io/pescert-bench |
| Preprint | https://arxiv.org/abs/2610.00585 |
| Paper | (DOI added on publication) |

## What is in the archive

### `pescert-master.zip`

The exact version of the certification suite used for every run in this record, archived
here so the results stay reproducible independently of the code repository.
`pescert` 0.1.0, Python 3.9 or newer, with `numpy` and `ase` as its only required
dependencies. Contains the package source, the test suite and three usage examples.

```bash
pip install pescert-master.zip
```

Or unpack it first if you want to read or modify the source:

```bash
unzip pescert-master.zip
pip install ./pescert-master
```

Check the install and list the probes:

```bash
pescert list
```

### `large_scale_pretrained_models.zip`

The certification of 56 pretrained potentials plus an analytic Lennard-Jones control,
which is Fig. 2 of the paper. All models are run on identical substrates built for the
same ten elements (Li, Be, B, C, Na, Mg, Al, Si, P, S) from seed 0.

- `summary.csv`, `index.json`: the score matrix and the run metadata for all 57 rows
  (model family, parameter count, training set, precision, wall time, call counts).
- one directory per model, named by slug:
  - `result.json`: scores, deviations and the aggregate
  - `report_full.json`: the same plus the per-probe diagnostics
  - `spec.json`: the exact calculator call, pinned packages and Python version
  - `throughput.json`: the time benchmark

### `fine_tuning_study.zip`

The fine-tuning series of Fig. 3, in which one universal model (MACE-MP-0 small) is
fine-tuned to the sulfur-vacancy jump in MoS2 by three protocols: naive, LoRA and
multi-head replay.

- `training/`: the fine-tuning configs, scripts and resulting models, plus
  `uniform_mos2.xyz`, the 572-point training set
- `neb/`: the sulfur-vacancy jump paths for all four models (Fig. 3a)
- `pescert_run/`: the certification output for the universal model and the three
  fine-tuned models (Fig. 3b)
- `mlip_refcalc_runs_mos2/`, `mlip_refcalc_runs_s8/`: model forces and energies against
  the CP2K reference, in-domain (MoS2) and out-of-domain (S8)
- `mlip_md_runs/`: 10,000-step Nose-Hoover dynamics on octathiocane at 300 K. The
  naively fine-tuned model, which has the lowest held-out force error of the series,
  is the only one that fails, returning non-finite coordinates at step 140.
- `fig3.py`, `octasulfur.xyz`: the figure script and the S8 starting structure

### `si_figure_meta.zip`

The validation of every probe against analytic adversarial potentials, which is
Supplementary Notes 2 to 16.

- `si_figures.py`: builds each adversarial modulation, runs the probe against it and
  renders the supplementary figures. Self-contained apart from `pescert` and ASE.
- `si_numbers.json`: every score, deviation and diagnostic quoted in those notes

## License

The `pescert` suite itself is MIT licensed (see the code repository).
