Getting Started with KIM

Welcome to the Knowledgebase of Interatomic Models (KIM) project website!  

After several years of extensive development, we are excited to share with you our operational KIM framework! We now have a repository containing a variety of interatomic potentials and force fields, simulation codes which compute different material properties, and first-principles/experimental reference data. Compatible potentials and simulation codes are automatically coupled and run by our processing pipeline, which inserts the results into a publically accessible database whose contents are used to populate our website. Under the hood, the comprehensive and extendable data structure we have developed for rigorously defining material properties has further allowed us to implement a visualization framework for viewing the predictions of a potential and readily comparing them with those of other potentials and reference data.

This document provides a brief introduction to the KIM project and provides information on different ways that you can access KIM content.


Table of Contents


Overview

KIM is a major community-supported open source effort to develop standards for atomistic simulations and to improve the quality of such simulations by providing methods for selecting suitable potentials for a given application. To learn more about this project, please visit About KIM


Becoming a KIM Member

If you are still not a member, we encourage you to sign up. Becoming a KIM member is free and allows you to vote on important issues related to the project and its administration. For more information on the benefits of membership see here. Note that you do not need to be a member to access the KIM content described below.


What’s in KIM?

The OpenKIM Repository contains the following types of KIM Items, each of which is identified by a unique, permanent KIM ID which can be cited in publications:

  • Model – Computer implementation representing a specific interaction between atoms, e.g. an interatomic potential or force field.

  • Test – A specific program which when coupled with a suitable Model, possibly including additional input, calculates and returns a specific prediction about a particular configuration.

  • Reference Data – Experimental or first principles results (e.g. density functional theory (DFT) results) for a material property.

While Reference Data simply consists of numerical data and supporting metadata, Models and Tests are computer programs written in one of the languages supported by KIM: C, C++, Fortran 77, Fortran 90, and Fortran 2003. These programs conform to the KIM API and are automatically coupled to generate the predictions of each Model for compatible Tests. The calculations themselves are performed on the Amazon Elastic Compute Cloud (EC2) using the virtual machine (VM)-based processing pipeline system.

Models are either stand-alone implementations of a particular interatomic model, or consist of a parameter set that is read in by a Model Driver. A Model Driver is a computer implementation of an interatomic model that reads in parameters for a particular material system. For example, the Lennard-Jones Model Driver reads in two parameters (epsilon and sigma) that define the relevant material. Tests have a similar structure: there are stand-alone Tests, as well as Tests that provide data to associated Test Drivers.

The OpenKIM Repository currently contains (loading…) Models and (loading…) Tests, with more continually being uploaded by users (see Adding New Content to KIM below). You can browse the Repository content by clicking the colored buttons on our home page or by visiting KIM Items from the main KIM menu.


Visualizing KIM Content

The OpenKIM Repository contains a number of material properties of different kinds (crystal structures, cohesive energies, elastic constants, surface energies and structures, energy and forces of atomic clusters, phonon dispersion curves, …). Because of the high dimensionality associated with some of these properties, as well as that encountered when attempting to simultaneously compare predictions of them across many Models, this data is generally best accessed and explored visually. On each Model page, a collection of visualizers is listed which facilitate this comparison. Clicking any one of them will open a new browser tab, where you can interact with the visualizer by hovering over different components and clicking on them.


Using KIM Models

KIM Models are open source and conform to the KIM application programming interface (API). This means that you can download any KIM model and use it in any "KIM-Compliant" simulation code that supports the KIM API. Several major simulation codes either already support KIM or are actively working towards this goal. To see the latest, check out Software and Projects using KIM.

To use KIM-Compliant software, you first need to install the KIM API. This can be achieved by installing pre-compiled binaries (currently available for Ubuntu, CentOS, Fedora, and openSUSE systems here) or by building the package from the source code (available here).

Second, you need to install the KIM Models you want to use. This can likewise be achieved by installing pre-compiled binaries (currently available for the operating systems above as described here) or by building the Model from the source code (available here).

Finally, you need to install the KIM-Compliant Simulator that will use the KIM Models. Available KIM-Compliant Simulators and links to how they can be installed are provided here.


Adding New Content to KIM

An important aspect of the KIM project, and what makes it particularly powerful, is that users can add new Models, Tests, Reference Data and Visualizers to the KIM website.

As mentioned above, Models uploaded to the KIM website will automatically be coupled with all compatible Tests to generate new predictions which are then stored in the OpenKIM Repository. For Models which are designed to leverage an existing Model Driver, the upload process is as simple as providing a single parameter file to our automated submission wizard (which can be accessed after signing into your KIM user account by clicking on the cloud in the upper-right corner of the page). For example, the EAM Dynamo Model Driver was designed to support the canonical 'setfl' and 'funcfl' file formats. However, in order for stand-alone Models and Model Drivers to be uploaded to KIM, they must conform to the KIM API. The KIM project is currently actively working with developers to adapt their interatomic potential codes to be KIM-compliant. If you are interested in pursuing this, either for your own software or for an existing project, please contact us.

Similar to Models, a Test uploaded to the KIM website will automatically be coupled with all compatible Models to generate new predictions which are then stored in the OpenKIM Repository. Although Tests can be stand-alone programs that conform to the KIM API, a simpler approach is to create a Test as an input file to either LAMMPS or ASE, which are currently installed on the worker VMs of the processing pipeline. Tutorials have been prepared on how to create a LAMMPS Test and how to create an ASE Test. Tests must be associated with Properties which are defined within the KIM Properties Framework.

Finally, the visualization system has been created with user-extendibility in mind. A visualizer works by first performing a query to the KIM repository using a simplified interface to a Query API, and then presenting the results in visual form. The current system for creating these plots is based on the C3.js JavaScript library, which allows seamless integration of dynamic interactivity. If you have questions regarding visualizers or require support, please contact us.

Videos from the most recent KIM Boot Camp, which offer an overview of the project and the KIM API, can be found here. They also include a walk-through of the tutorial for creating a LAMMPS Test (Note: the final portion of the "Introduction to OpenKIM Tests" video related to visualizer creation is now deprecated and can safely be ignored).

The exception to this requirement is an External Model, which is hosted in the OpenKIM Repository but is not run against any Tests.


Getting Help

Support is always available by sending an email with a question and all relevant information to

openkim@googlegroups.com

The message will be posted to the openkim google group:

http://groups.google.com/group/openkim

Members of the OpenKIM development team actively monitor this forum and will do their best to respond to questions in a timely fashion. This forum is also used to announce minor new releases and bug fixes.