Features of the OpenKIM System

Features of the OpenKIM system provide users with multiple benefits:

Reliability
  • All content curated in openkim.org is reviewed by the KIM Editor for quality and archived with full provenance control. Each item is associated with a maintainer responsible for the integrity of the content. All changes are tracked and recorded.

  • Each KIM Model is automatically subjected to a unique set of Verification Checks that provide the user with information on various aspects of the model's behavior and coding correctness (e.g. numerical derivative check on forces, smoothness, invariance with respect to rigid-body motions, memory leaks, thread safety, and so on). Verification Check results for a given model are displayed in a dashboard on its Model Page (the model's page on openkim.org) accessible through the OpenKIM browse interface.

  • Each KIM Model is automatically subjected to a host of material property calculations (called KIM Tests), such as equilibrium crystal structures, elastic constants, defect formation and migration energies, surface energies, phonon spectra, etc. Users can develop their own Tests which when uploaded to OpenKIM are run against all applicable Models archived in the system. Test results are displayed on the Model Page both numerically and using Visualizers (which can also be developed by users).

Reproducibility
  • Each KIM Model is issued a unique identifier (KIM ID), which includes a version number (last three digits). Any changes that can result in different numerical values lead to a version increment in the KIM ID. This makes it possible to reproduce simulations since the specific version of a specific Model used can be retrieved using its KIM ID.

  • OpenKIM is a member organization of DataCite and issues digital object identifiers (KIM DOIs) to all KIM Models archived in OpenKIM. This makes it possible to cite the KIM Model code used in a simulation in a publications to give credit to the developers and further facilitate reproducibility. See details in Citing KIM Items.

  • KIM Portable Models include not just parameter files, but also the computer implementation of the potential (interatomic model) using these parameters. Since implementation details can change simulation results, archiving only parameters can be insufficient for reproducing simulation results. See details on this issue in this article.

Convenience
  • Models curated in OpenKIM can be used directly with many major codes that conform to the KIM API. KIM Models can be easily downloaded and installed and can be used in conforming simulation codes (simulators) simply by providing their KIM ID in the simulator input script. The KIM API and KIM Models are also distributed in binary form through most popular package managers (see current list here).

  • Each KIM Model has a page on openkim.org consolidating all the information on the model. This includes metadata provided by the developer (title, description, references in BibTeX format, guidelines on usage), Verification Checks and Test results, and a wiki where the developer can provide additional information or documentation, and registered KIM users can add comments and feedback. A developer contributing a model to OpenKIM can directly edit the content on this page making changes as necessary. Model pages are accessible through the OpenKIM browse interface.

  • All content in OpenKIM (Test results, in particular) are accessible via KIM web queries. This means a user can programmatically access this information. For example, in the input script for a molecular dynamics simulation of a crystalline material, the equilibrium lattice constant(s) predicted by the potential being used can be retrieved from openkim.org. This capability is integrated natively into some codes (such as LAMMPS).

  • Unit conversion between simulation codes and KIM Models is managed using the KIM API to reduce the likelihood of errors and simplify the usage of different models with different simulation codes.

For a more detailed discussion of KIM capabilities and usage, a good next step is to read Getting Started with KIM.