KIM API Features

Download kim-api-v1.9.0.tgz — released 2017/09/09

Visit the OpenKIM Forum on Google Groups for assistance. Click here to return to the KIM API Overview.

The KIM development team is pleased to bring you the KIM application programming interface (API). By conforming to this API, an atomistic simulation code will seamlessly work with any KIM-compliant interatomic model written in any supported language. The interface is computationally efficient and often requires relatively minor changes to existing codes.

The KIM API has the following main features:

  • licensed under the Open Source CDDL license
  • support for C, C++, FORTRAN 77, Fortran 90/95, Fortran 2003
  • communication of an arbitrary number of 'arguments' to and from a Model
  • support for multiple particle types
  • enables a simulation code to access and modify Model parameters
  • support for physical units and unit conversions
  • support for five NBC (neighbor list and boundary conditions) methods
  • support for 'Model Drivers' (Models that read in parameters)
  • built-in support for virial and Hessian calculations
  • up-to-date documentation

(See the NEWS file and README file files described below for more information on these features.)

The distribution includes the API code, examples of simulation codes (Tests) and interatomic models (Models) and documentation.

The most recent packaged download of the KIM API is available here:

Download kim-api-v1.9.0.tgz — released 2017/09/09
  1. Download and unpack the archive.

    • On Linux and Mac systems, type:

      tar zxvf kim-api-v1.9.0.tgz

      which will expand the archive into the directory ./kim-api-v1.9.0/

  2. Read the README file in the new directory.

  3. Read the NEWS file to see what is new in the current release.

  4. Install the package. See directions in the INSTALL file.

  5. Read the docs/README file for a step-by-step guide to learning the API.


If you have problems or questions, send an email with your question and all relevant information to

Your message will be posted to the openkim google group:

The members of the openkim development team actively monitor this forum and will do their best to help you with your question in a timely fashion. This forum is also used to announce minor new releases and bug fixes.

If you plan to work with the KIM API, it is highly recommended that you become a member of the openkim group. (Just go to the above link and click on "Join this group" on the right of the screen.)

For more information on planned features, see the TODO file.

Recent Updates

=== kim-api-v1.9.0 ============== 09Sep2017 ====================================

* Added collections-management user utility to manage build and install
  of OpenKIM Models and Model Drivers

* Added support for "Simulator Models"

* Dramatically simplify build system by removing supported scenarios.
  + Removed static-link build option
  + Removed "in-place" build scenario
  + Added support and use of the libexec directory to distinguish between
    user executable utilities and program executable utilities

* Incorporate fix to configure script contributed by Christoph Junghans

* Fix minor bugs in KIM_API_DIRS

=== kim-api-v1.8.2 ============== 17Apr2017 ====================================

* Fixed issues reaised by Tobias Brink (this==NULL; and `find` portability)

=== kim-api-v1.8.1 ============== 28Mar2017 ====================================

* Added additional deprecations in prep. for kim-api-v2.0.0

* Fixed other minor bugs in create_package script and build-config.cpp

* Fixed bug in Makefile.ParameterizedModel

* Fixed formatting error in Makefiles created by build-config utility

* Fixed bug in ex_model_Ar_P_MLJ_CLUSTER_C example model

=== kim-api-v1.8.0 ============== 17Jan2017 ====================================

* Deprecated significatant features and methods in prep. for kim-api-v2.0.0

* Updated `build-config' utility with more flexible options

* Removed `KIM_LINK = dynamic-link' option of build system

* Modified/Fixed/Improved the configuration and build system

* Added `collections-info' utility for querying environment variables,
  user configuration files, and lists of models and model drivers in the

=== kim-api-v1.7.3 ============== 02Jun2016 ====================================

* Added a `configure' script for setting up Makefile.KIM_Config

* Added support for environment-variable-collection

* Added support for user_config_file_dir_name setting

* Documentation update/improvements

* Minor improvements to error messages

* Added `make add-OpenKIM' feature

* Added `make help' feature

* Added release dates to NEWS file

* Bug fixs

=== kim-api-v1.7.2 ============== 25Jun2015 ====================================

* Updated copyright years in files

* Rewrite of INSTALL file to provide a significantly improved description and
  instructions for build and installation of the KIM API

* Fix error checking bug in ex_test_Ar_multiple_models Test

* Improve the build and install process to better follow standard conventions
  for library soname values.

* Increased the maximum number of species supported by the example Tests to 200

* Fixed bug in example Tests related to maximum number of supported species

* Updated 'make clean' so that it removes all old library files in the source

* Fixed default make target for Parameterized Models

* Fixed a bug in the installation process associated with the use of DESTDIR

* Fixed a regular expression error in the build system

* Fixed memory leak in internal KIM API code

* Added sanity check to make sure that the 'xxd' utility is available

* vc_forces_numer_deriv now outputs configuration energy

* Documentation updates

=== kim-api-v1.7.1 ============== 02Dec2014 ====================================

* Bug fix for build of parameterized Models

* Minor documentation update

=== kim-api-v1.7.0 ============== 21Nov2014 ====================================

* Use 'xxd' utility for encapsulation of KIM descriptor files and param. files

* Added LINKSOPATH variable to build system for advanced system install options

* Added KIM_API_get_kim_str_len() routine

* Fix inconsistencies in ex_test_Ar_multiple_models

* remove build system dependency on 'ed' program

* Update 'make add-*' mechanism to use permanent url's for items

* Fix bugs and minor improvements to build system

* Minor improvements to error messages

* Updates to documentation

View the NEWS file for additional history.