New "Verification Checks" ensure interatomic model coding integrity


Interatomic models stored in OpenKIM are now subjected to a suite of Verification Checks (VCs) that put the models through their paces and check that they are programmed correctly. The following VCs are currently available:

  • vc-species-supported-as-stated — The model supports all species it claims to support.

  • vc-periodicity-support — Periodic boundary conditions are handled correctly.

  • vc-permutation-symmetry — Total energy and forces are unchanged when swapping atoms of the same species.

  • vc-forces-numerical-derivative — Forces computed by the model agree with numerical derivatives of the energy.

  • vc-dimer-continuity-c1 — The energy versus separation relation of a pair of atoms is C1 continuous (i.e. the function and its first derivative are continuous).

  • vc-objectivity — Total energy is unchanged and forces transform correctly under rigid-body translation and rotation.

  • vc-inversion-symmetry — Total energy is unchanged and forces change sign when inverting a configuration through the origin.

  • vc-memory-leak — The model code does not have memory leaks (i.e. it releases all allocated memory at the end).

Each model is graded on these VCs and the results are displayed in a dashboard on its model page (as an example, see here). Each VC grade is accompanied by a detailed report and data providing more information on the model, which are accessible through the dashboard. For more information, see About VCs.

VCs are written in Python and make use of the Atomic Simulation Environment (ASE). We welcome the contribution of new VCs. If you have an idea, Contact us!