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:
The distribution includes the API code, examples of simulation codes (Tests) and interatomic models (Models) and documentation.
Download and unpack the archive.
On Linux and Mac systems, type:
tar zxvf kim-api-v1.8.2.tgz
which will expand the archive into the directory
Read the README file in the new directory.
Read the NEWS file to see what is new in the current release.
Install the package. See directions in the INSTALL file.
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.
=== 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 collections. === 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 directories * 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 openkim.org items * Fix bugs and minor improvements to build system * Minor improvements to error messages * Updates to documentation === kim-api-v1.6.3 ============== 18Aug2014 ==================================== * Fixed install to recognize := and = in Makefiles * Removed use of non-standard strtok_r() * Fixes to ex_model_Cu_PF_Johnson & model_El_PF_Template.c * Fixes build system === kim-api-v1.6.2 ============== 11Aug2014 ==================================== * Correct KIM_API_Versions in template ".kim" files * Update make clean target for Model Drivers and Models * All template ".kim" files now generated from "legos" in git repo === kim-api-v1.6.1 ============== 08Aug2014 ==================================== * Updates to Model Driver and Model template files (in docs/templates/) * Changed the internal mechanism for handling parameter files to remove a security hole associated with the use of tmpnam(). * Revise kim.log entries to be more informative and clear * Bug fixes in build system, examples, and build system * Other small documentation and code improvements === kim-api-v1.6.0 ============== 28Jul2014 ==================================== * Documentation updates. * Model Driver Template and training model examples are now generated from a single consistent "lego" file. Training examples are not included in official release tarballs. * Add SemVer version routines to the KIM API. ".kim" files now require a KIM_API_Version line to indicate the Model/Simulator compatibility. * Change terminology from "Particle Types" to "Particle Species" for clarity and uniformity with the rest of the OpenKIM project. (See KIM_API_get_model_species(), and similar routines.) * Changed KIM API routines that output strings. This avoids output of arrays of strings, which are unnatural in C/C++ and allows for more natural handling of string arguments in Fortran. (See: KIM_API_get_NBC_method(), KIM_API_get_params(), and similar routines.) * Simulators and OpenKIM Tests now should use the "kim-api-build-config" utility in order to obtain appropriate compiler and linker flags for building against the KIM API. * Changed CCFLAGS to more standard CFLAGS Make variable. * Build system now provides ability to download Model Drivers and Models directly from openkim.org. * Change package name from "openkim-api" to "kim-api". * Rename this file (CHANGELOG) to NEWS, to better follow convention. * A complete restructuring of the package directory layout has been performed in order to conform to more standard practices and to better reflect the intended behavior and use of the package components. * Model Drivers now specify the name of their ".kim" file template in their Makefile. The conventional name for these files now ends in ".kim.tpl". * Model ".kim" file name is now specified in the Makefile and can be anything the developer desires. * Remove deprecated KIM_API_init() routine. * Remove deprecated Fortran Cray pointer support.
View the NEWS file for additional history.