# # CDDL HEADER START # # The contents of this file are subject to the terms of the Common Development # and Distribution License Version 1.0 (the "License"). # # You can obtain a copy of the license at # http://www.opensource.org/licenses/CDDL-1.0. See the License for the # specific language governing permissions and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each file and # include the License file in a prominent location with the name LICENSE.CDDL. # If applicable, add the following below this CDDL HEADER, with the fields # enclosed by brackets "[]" replaced with your own identifying information: # # Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved. # # CDDL HEADER END # # # Copyright (c) 2015, Regents of the University of Minnesota. # All rights reserved. # # Contributors: # Ryan S. Elliott # Andrew Akerson # This directory (LennardJones612__MD_414112407348_001) contains a Lennard-Jones Driver which reads a parameter file containing the parameters for up to 139 species. It supports shifted and non-shifted energy behavior. The driver is written in C++. This Model Driver complies with the KIM API interface standard, using any NBC and iterator or locator mode, publishes its parameters, and supports optional computation of `energy', `forces', `particleEnergy', `process_dEdr', and `process_d2Edr2'. Its initialization routine takes a KIM API object pointer, a pointer to a two-dimensional character array (each row of which contains the full path to a parameter file) of the form a[b][c], a pointer to the value of c, and a pointer to the value of b. This Model Driver expects b = 1. The model driver implements the functional form: phi_{ij}(r) = 4 * epsilon_{ij} * [ (sigma_{ij}/r)^12 - (sigma_{ij}/r)^6 ] + shift_{ij}, where i, j = 0, 1, 2, ..., N-1, and N is the number of supported species. The format of the parameter file is as follows: * Blank lines and lines beginning with the `#' character are ignored. * Line 0 : N, shift - N : integer number of distinct particle species - shift : integer value: 0-for no shift; 1-for shifts. All shift values are computed at run time * Lines 1,2,...: species_i, species_j, cutoff, epsilon, sigma - species_i : A valid KIM API particle species string - species_j : A valid KIM API particle species string - cutoff : double cutoff distance value (in Angstroms) for phi_{ij}(r) - epsilon : double energy value (in eV) for epsilon_{ij} - sigma : double sigma distance value (in Angstroms) for sigma_{ij} The parameter file must contain all "like-like" parameter sets (i.e., lines where species_i and species_j are identical) for each species which occurs in the file. The model driver uses the Lorentz-Berthelot rules to generate any "cross-interaction" parameter sets which are not provided. The model driver sets the KIM API `cutoff' argument to max_{ij}(cutoff_{ij}) where the set of {ij} values considered is taken from the list of species provided by the Simulator. Thus, the `cutoff' argument can change depending on the KIM descriptor file provided by the Simulator in the call to KIM_API_init() or KIM_API_string_init(). This allows the Simulator to use the smallest valid cutoff value for the particular simulation to be performed. The contents of the directory are as follows (before any compilation is performed): CreateDispatch.sh Bash shell script used to generate, at compile time, a C++ switch statement that calls the correct templated version of the LennardJones612 compute function. LennardJones612.cpp Implementation of Model Driver interface consisting of wrapper functions that call the corresponding member functions of the implementation object. LennardJones612.hpp Header file for the (minimal) Model Driver interface. Here we use the "pointer to implementation" (pimpl) pattern to hide all implementation details. LennardJones612.kim.tpl KIM descriptor template file, contains all variables and methods that are exposed through the KIM API interface LennardJones612Implementation.cpp Actual implementation of the LennardJones612 driver code. LennardJones612Implementation.hpp Header file for implementation of LennardJones612. Includes definition of the compute function since this is templated in order to provide the highest possible computational efficiency. LICENSE.CDDL The Common Development and Distribution License (CDDL) Version 1.0 file Makefile Makefile to compile and build executables with GNU or Intel compilers README This file