KIM Verification Checks (VCs) are programs that explore the integrity of an interatomic model (IM) implementation (as opposed to the accuracy of its physical predictions as done by KIM Tests). They check for programming errors, failures to satisfy required behaviors, and determine general characteristics of the IM functional form. The information provided by VCs can save a researcher a great deal of time by identifying limitations of IMs that can lead to subtle problems in simulations, e.g. poor convergence during energy minimization due to incorrect or discontinuous forces.
VCs are divided into three categories: 'informational', 'consistency', and 'mandatory'. Informational VCs provide useful knowledge about an IM that has no implications regarding its internal consistency (e.g. the degree of continuity of the IM). Consistency VCs check for violations of internal consistency (e.g. to what extent are the forces returned by the IM equal to the negative gradient of its energy). Mandatory VCs check for failures of an IM to satisfy critical requirements or declared capabilities (such as supporting a specified species).
Each VC returns a grade indicating how well the check was passed. The type of grade returned is defined by the VC's grade basis. There are two options: 'graded' and 'passfail'. A 'graded' VC returns a letter grade 'A', 'B', 'C', 'D' or 'F' (where 'A' is best, and 'F' indicates failure). A 'passfail' verification check returns 'P' for pass, or 'F' for fail.
Each VC generates a property instance (
results.edn) with the VC result conforming to the universal VC property definition. In addition, the VC generates a detailed report in human-readable form (
report.txt) with additional information on the check and the performance of the IM, along with auxiliary files used by the VC that can help analyze any problems uncovered by the check.
VCs are written in Python and make use of the Atomic Simulation Environment (ASE). Researchers are encouraged to develop their own VCs, which can be added to the suite of VCs in OpenKIM and applied to all IMs stored in the KIM repository. If you have an idea for a VC, contact us for information on how to proceed. The OpenKIM Team will assist in the development of new VCs.