KIM API Features and Package Contents

The KIM API is an Application Programming Interface for atomistic simulations. The API provides a standard for exchanging information between atomistic simulation codes (molecular dynamics, molecular statics, lattice dynamics, Monte Carlo, etc.) and interatomic models (potentials or force fields).

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 and README files in the root directory of the kim-api package for more information on these features.

The current version of the kim-api package includes the API itself and the following example codes:

Models

(for more information see the file $(KIM_DIR)/examples/example_legos/model_legos/README)

  • Lennard-Jones pair potential shifted to zero energy at cutoff.
    • Parameterized for Ar and Ne (ex_model_Ar_P_LJ, ex_model_Ne_P_LJ)
    • An implementation for Ne that is optimized for computational speed (ex_model_Ne_P_fastLJ)
    • An implementation for Ne that demonstrates the use of F77 with the api (ex_model_Ne_P_LJ_NEIGH_PURE_H)
  • Lennard-Jones pair potential with quadratic cutoff function.
    • Parameterized for Ar and Ne. (ex_model_Ar_P_MLJ_C, ex_model_Ar_P_MLJ_CLUSTER_C, ex_model_Ar_P_MLJ_CLUSTER_F03, ex_model_Ar_P_MLJ_F03, ex_model_Ar_P_MLJ_MI_OPBC_H_F, ex_model_Ar_P_MLJ_NEIGH_PURE_H_F, ex_model_Ar_MLJ_NEIGH_RVEC_F, ex_model_Ne_P_MLJ_NEIGH_RVEC_F)
    • Note: multiple versions of this potential are provided in order to demonstrate the various features and options of the api.
  • Morse pair potential shifted to zero energy at cutoff.
    • Parameterized for Ar and Ne (ex_model_Ar_P_Morse, ex_model_Ne_P_Morse)
  • Lennard-Jones alloy pair potential with quadratic cutoff function.
    • Parameterized for ArNe alloys (ex_model_ArNe_P_MLJ_NEIGH_RVEC_F)
  • Ercolessi Adams EAM potential for Al (ex_model_Al_PF_ErcolessiAdams)

  • Johnson EAM potential for Cu (ex_model_Cu_PF_Johnson)

Tests

(for more information see the file $(KIM_DIR)/examples/example_legos/openkim_test_legos/README)

  • Compute the energy and forces on a finite chunk of an fcc crystal. Versions for Al, Ar and Ne are provided. (ex_test_Al_free_cluster, ex_test_Ar_free_cluster, ex_test_Ar_free_cluster_CLUSTER_C, ex_test_Ar_free_cluster_CLUSTER_F03, ex_test_Ne_free_cluster, ex_test_Ne_free_cluster_SI, ex_test_Ne_free_cluster_stiff)
    • The ex_test_Ne_free_cluster_SI and ex_test_Ne_free_cluster_stiff versions use the SI unit system and compute the Hessian for the cluster, respectively.
  • Compute the relaxed lattice spacing and cohesive energy of a periodic infinite fcc crystal of Al, Ar, and Ne. (ex_test_Al_FCCcohesive_MI_OPBC, ex_test_Ar_FCCcohesive_MI_OPBC, ex_test_Ar_FCCcohesive_NEIGH_PURE, ex_test_Ar_FCCcohesive_NEIGH_RVEC)

  • Compute the relaxed lattice spacing and cohesive energy of a periodic infinite B2 crystal of ArNe. (ex_test_ArNe_periodic_B2_NEIGH_RVEC)

  • Compute the relaxed lattice spacing and cohesive energy of a periodic infinite fcc crystal of Ar for a variety of Model cutoff values. (ex_test_Ar_FCCcohesiveCutoff_NEIGH_RVEC)

  • Compute energy and forces for two models in one Test (ex_test_Ar_multiple_models) This Test is meant to illustrate some more advanced usage of the api.

Support

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

openkim@googlegroups.com

Your message will be posted to the openkim google group:

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

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.)