Tutorial on Developing KIM Tests using LAMMPS

We consider here the use of the LAMMPS Molecular Dynamics Simulator in constructing KIM Tests. This process essentially amounts to the following steps:

  1. Creating a LAMMPS input script which is accessed by the Test executable
  2. Invoking LAMMPS from the Test executable
  3. Parsing the LAMMPS output for the quantities of interest
  4. Post-processing the quantities of interest, if necessary, and reporting the results of the Test

Although not strictly necessary in general, both of the Tests included in this tutorial have been constructed to make use of Test Drivers for the purpose of demonstration. In order to download these Tests and their Test Drivers, as well as the Model we'll use and its Model Driver, log into the KIM VM and issue the following commands:

kimitems install -D LammpsExample__TE_565333229701_004
kimitems install -D LammpsExample2_fcc_Ar__TE_778998786610_002
kimitems install -D Pair_Lennard_Jones_Shifted_Bernardes_MedCutoff_Ar__MO_126566794224_002

(the -D flag skips the prompt that ordinarily asks if you would like to install the driver of a Test or Model).

In the first example Test, the input consists of a KIM Model name and an initial guess at the equilibrium lattice constant for fcc argon. Using this initial guess, the Test uses LAMMPS to compute the equilibrium lattice constant and cohesive energy for the specified Model by performing a static minimization of the potential energy using the Polak-Ribiere conjugate gradient method.

In the second example Test, the input includes a KIM Model name, a cubic lattice type (bcc, fcc, sc, or diamond), an atomic species (e.g. 'Ar', 'Si', etc.), and a set of ad-hoc parameters which are used to select a set of lattice spacings at which the cohesive energy will be computed using the specified Model.