KIM Application Programming Interface (API)

Overview

The Knowledgebase of Interatomic Models (KIM) Application Programming Interface (API) defines a standard (the Portable Model Interface (PMI)) for how molecular simulators interface with interatomic models (also called potentials or force-fields). This allows a single computer implementation of a Portable Model (PM) to be used without modification within multiple simulator codes. A PM can include code and parameters all in one. Or, a PM can include just parameters and use a separate Model Driver (MD) library containing the code. The KIM API also defines a standard (the Simulator Model Interface (SMI)) that allows for the creation and curation of Simulator Models (SMs), which are packages containing the metadata necessary to set up and run a model that is implemented as an integral part of a simulation code (simulator). A KIM SM includes all of the necessary parameter files, simulator input commands, and metadata (supported species, units, etc.) needed to run the model in its native simulator.

The KIM API includes bindings for the most popular middle-level languages:

  • C++, C, and Fortran.

See here for a list of simulation codes that support the KIM API.

For details on KIM API features and what is included with the kim-api package, see the documentation here.


KIM API Documentation for Developers

Documentation for the latest developent git branch is available here:

https://kim-api.readthedocs.io/en/devel/

Documentation for the latest KIM API release (version 2.3.0) is available here:

https://kim-api.readthedocs.io/en/latest/


Installing the KIM API

The easiest option for obtaining the KIM API is to install the kim-api pre-compiled binary package from conda-forge. You can also install the KIM API from source. See Obtaining KIM Models for instructions to install the KIM API and the models from OpenKIM on your system.

The KIM API is under version control hosted at GitHub.

A detailed revision history is available here.

Older packaged versions of the KIM API source are available here.


Getting Help

Support is always available by posting questions with all relevant information to

https://matsci.org/openkim/

Members of the OpenKIM development team actively monitor this forum and will do their best to respond to questions in a timely fashion.