From 18e1a56f6ff8655899a1f2658f1006fe2b98c734 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Fri, 27 Jun 2014 19:41:37 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12153 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- doc/Section_commands.html | 75 +++++------ doc/Section_commands.txt | 2 + doc/pair_coul.html | 4 + doc/pair_coul.txt | 2 + doc/pair_kim.html | 264 +++++++++++++++----------------------- doc/pair_kim.txt | 234 +++++++++++++-------------------- 6 files changed, 239 insertions(+), 342 deletions(-) diff --git a/doc/Section_commands.html b/doc/Section_commands.html index c8f264577b..e316b9f4cb 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -534,43 +534,44 @@ package. buck/coul/cut/ompbuck/coul/long/cudabuck/coul/long/gpubuck/coul/long/omp buck/coul/msm/ompbuck/cudabuck/long/coul/long/ompbuck/gpu buck/ompcolloid/gpucolloid/ompcomb/omp -coul/cut/ompcoul/cut/soft/ompcoul/debye/ompcoul/dsf/gpu -coul/dsf/ompcoul/long/gpucoul/long/ompcoul/long/soft/omp -coul/msm/ompcoul/wolfdpd/ompdpd/tstat/omp -eam/alloy/cudaeam/alloy/gpueam/alloy/ompeam/alloy/opt -eam/cd/ompeam/cudaeam/fs/cudaeam/fs/gpu -eam/fs/ompeam/fs/opteam/gpueam/omp -eam/optedip/ompeim/ompgauss/gpu -gauss/ompgayberne/gpugayberne/ompgran/hertz/history/omp -gran/hooke/cudagran/hooke/history/ompgran/hooke/omphbond/dreiding/lj/omp -hbond/dreiding/morse/ompline/lj/omplj/charmm/coul/charmm/cudalj/charmm/coul/charmm/omp -lj/charmm/coul/charmm/implicit/cudalj/charmm/coul/charmm/implicit/omplj/charmm/coul/long/cudalj/charmm/coul/long/gpu -lj/charmm/coul/long/omplj/charmm/coul/long/softlj/charmm/coul/long/soft/omplj/class2/coul/cut/cuda -lj/class2/coul/cut/omplj/class2/coul/long/cudalj/class2/coul/long/gpulj/class2/coul/long/omp -lj/class2/coul/msm/omplj/class2/cudalj/class2/gpulj/class2/omp -lj/long/coul/long/omplj/cut/coul/cut/cudalj/cut/coul/cut/gpulj/cut/coul/cut/omp -lj/cut/coul/cut/soft/omplj/cut/coul/debye/cudalj/cut/coul/debye/gpulj/cut/coul/debye/omp -lj/cut/coul/dsf/gpulj/cut/coul/dsf/omplj/cut/coul/long/cudalj/cut/coul/long/gpu -lj/cut/coul/long/omplj/cut/coul/long/optlj/cut/coul/msm/gpulj/cut/coul/msm/opt -lj/cut/coul/long/soft/omplj/cut/cudalj/cut/kklj/cut/dipole/cut/gpu -lj/cut/dipole/cut/omplj/cut/dipole/sf/gpulj/cut/dipole/sf/omplj/cut/experimental/cuda -lj/cut/gpulj/cut/omplj/cut/optlj/cut/soft/omp -lj/cut/tip4p/cut/omplj/cut/tip4p/long/omplj/cut/tip4p/long/optlj/cut/tip4p/long/soft/omp -lj/expand/cudalj/expand/gpulj/expand/omplj/gromacs/coul/gromacs/cuda -lj/gromacs/coul/gromacs/omplj/gromacs/cudalj/gromacs/gpulj/gromacs/omp -lj/long/coul/long/optlj/sdk/gpulj/sdk/omplj/sdk/coul/long/gpu -lj/sdk/coul/long/omplj/sdk/coul/msm/omplj/sf/omplj/smooth/cuda -lj/smooth/omplj/smooth/linear/omplj96/cut/cudalj96/cut/gpu -lj96/cut/omplubricate/omplubricate/poly/ompmeam/spline/omp -mie/cut/gpumorse/cudamorse/gpumorse/omp -morse/optnb3b/harmonic/ompnm/cut/ompnm/cut/coul/cut/omp -nm/cut/coul/long/ompperi/lps/ompperi/pmb/omprebo/omp -resquared/gpuresquared/ompsoft/gpusoft/omp -sw/cudasw/gpusw/omptable/gpu -table/kktable/omptersoff/cudatersoff/omp -tersoff/mod/omptersoff/table/omptersoff/zbl/omptip4p/cut/omp -tip4p/long/omptip4p/long/soft/omptri/lj/ompyukawa/gpu -yukawa/ompyukawa/colloid/gpuyukawa/colloid/ompzbl/omp +coul/cut/gpucoul/cut/ompcoul/cut/soft/ompcoul/debye/gpu +coul/debye/ompcoul/dsf/gpucoul/dsf/ompcoul/long/gpu +coul/long/ompcoul/long/soft/ompcoul/msm/ompcoul/wolf +dpd/ompdpd/tstat/ompeam/alloy/cudaeam/alloy/gpu +eam/alloy/ompeam/alloy/opteam/cd/ompeam/cuda +eam/fs/cudaeam/fs/gpueam/fs/ompeam/fs/opt +eam/gpueam/ompeam/optedip/omp +eim/ompgauss/gpugauss/ompgayberne/gpu +gayberne/ompgran/hertz/history/ompgran/hooke/cudagran/hooke/history/omp +gran/hooke/omphbond/dreiding/lj/omphbond/dreiding/morse/ompline/lj/omp +lj/charmm/coul/charmm/cudalj/charmm/coul/charmm/omplj/charmm/coul/charmm/implicit/cudalj/charmm/coul/charmm/implicit/omp +lj/charmm/coul/long/cudalj/charmm/coul/long/gpulj/charmm/coul/long/omplj/charmm/coul/long/soft +lj/charmm/coul/long/soft/omplj/class2/coul/cut/cudalj/class2/coul/cut/omplj/class2/coul/long/cuda +lj/class2/coul/long/gpulj/class2/coul/long/omplj/class2/coul/msm/omplj/class2/cuda +lj/class2/gpulj/class2/omplj/long/coul/long/omplj/cut/coul/cut/cuda +lj/cut/coul/cut/gpulj/cut/coul/cut/omplj/cut/coul/cut/soft/omplj/cut/coul/debye/cuda +lj/cut/coul/debye/gpulj/cut/coul/debye/omplj/cut/coul/dsf/gpulj/cut/coul/dsf/omp +lj/cut/coul/long/cudalj/cut/coul/long/gpulj/cut/coul/long/omplj/cut/coul/long/opt +lj/cut/coul/msm/gpulj/cut/coul/msm/optlj/cut/coul/long/soft/omplj/cut/cuda +lj/cut/kklj/cut/dipole/cut/gpulj/cut/dipole/cut/omplj/cut/dipole/sf/gpu +lj/cut/dipole/sf/omplj/cut/experimental/cudalj/cut/gpulj/cut/omp +lj/cut/optlj/cut/soft/omplj/cut/tip4p/cut/omplj/cut/tip4p/long/omp +lj/cut/tip4p/long/optlj/cut/tip4p/long/soft/omplj/expand/cudalj/expand/gpu +lj/expand/omplj/gromacs/coul/gromacs/cudalj/gromacs/coul/gromacs/omplj/gromacs/cuda +lj/gromacs/gpulj/gromacs/omplj/long/coul/long/optlj/sdk/gpu +lj/sdk/omplj/sdk/coul/long/gpulj/sdk/coul/long/omplj/sdk/coul/msm/omp +lj/sf/omplj/smooth/cudalj/smooth/omplj/smooth/linear/omp +lj96/cut/cudalj96/cut/gpulj96/cut/omplubricate/omp +lubricate/poly/ompmeam/spline/ompmie/cut/gpumorse/cuda +morse/gpumorse/ompmorse/optnb3b/harmonic/omp +nm/cut/ompnm/cut/coul/cut/ompnm/cut/coul/long/ompperi/lps/omp +peri/pmb/omprebo/ompresquared/gpuresquared/omp +soft/gpusoft/ompsw/cudasw/gpu +sw/omptable/gputable/kktable/omp +tersoff/cudatersoff/omptersoff/mod/omptersoff/table/omp +tersoff/zbl/omptip4p/cut/omptip4p/long/omptip4p/long/soft/omp +tri/lj/ompyukawa/gpuyukawa/ompyukawa/colloid/gpu +yukawa/colloid/ompzbl/omp
diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 10f36829d5..825432189d 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -905,8 +905,10 @@ package"_Section_accelerate.html. "colloid/gpu"_pair_colloid.html, "colloid/omp"_pair_colloid.html, "comb/omp"_pair_comb.html, +"coul/cut/gpu"_pair_coul.html, "coul/cut/omp"_pair_coul.html, "coul/cut/soft/omp"_pair_lj_soft.html, +"coul/debye/gpu"_pair_coul.html, "coul/debye/omp"_pair_coul.html, "coul/dsf/gpu"_pair_coul.html, "coul/dsf/omp"_pair_coul.html, diff --git a/doc/pair_coul.html b/doc/pair_coul.html index cac111ecc5..efa9c25bb7 100644 --- a/doc/pair_coul.html +++ b/doc/pair_coul.html @@ -11,10 +11,14 @@

pair_style coul/cut command

+

pair_style coul/cut/gpu command +

pair_style coul/cut/omp command

pair_style coul/debye command

+

pair_style coul/debye/gpu command +

pair_style coul/debye/omp command

pair_style coul/dsf command diff --git a/doc/pair_coul.txt b/doc/pair_coul.txt index dc8caf81a5..40863de1a4 100644 --- a/doc/pair_coul.txt +++ b/doc/pair_coul.txt @@ -7,8 +7,10 @@ :line pair_style coul/cut command :h3 +pair_style coul/cut/gpu command :h3 pair_style coul/cut/omp command :h3 pair_style coul/debye command :h3 +pair_style coul/debye/gpu command :h3 pair_style coul/debye/omp command :h3 pair_style coul/dsf command :h3 pair_style coul/dsf/gpu command :h3 diff --git a/doc/pair_kim.html b/doc/pair_kim.html index 6efb3f17bf..fbd6d9d22a 100644 --- a/doc/pair_kim.html +++ b/doc/pair_kim.html @@ -25,7 +25,7 @@ pair_coeff * * Ar Ar

Description:

-

This pair style is a wrapper on the Knowledge Base for Interatomic +

This pair style is a wrapper on the Knowledge Base for Interatomic Models (KIM) repository of interatomic potentials, so that they can be used by LAMMPS scripts.

@@ -36,8 +36,8 @@ cutoffs.

The argument virialmode determines how the global virial is calculated. If KIMvirial is specified, the KIM model performs the -global virial calculation. If LAMMPSvirial is specified, LAMMPS -computes the global virial using its fdotr mechanism. +global virial calculation (if it knows how). If LAMMPSvirial is +specified, LAMMPS computes the global virial using its fdotr mechanism.

The argument model is the name of the KIM model for a specific potential as KIM defines it. In principle, LAMMPS can invoke any KIM @@ -76,174 +76,118 @@ directory where LAMMPS is running.


-

Here is information on how to build KIM for use with LAMMPS. There is -a directory src/KIM/ with an important file in it: Makefile.lammps. -When you do 'make yes-kim' LAMMPS will use the settings in -src/KIM/Makefile.lammps to find KIM header files and the KIM library -itself for linking purposes. Thus, you should ensure Makefile.lammps -has the correct settings for your system and your build of KIM. +

Here is information on how to build KIM for use with LAMMPS.

-

Consult the KIM documentation for further details on KIM specifics. -

-

OpenKIM is available for download from this site, -namely http://openkim.org. The tarball you download is -"openkim-api-vX.X.X.tgz", which can be unpacked via +

The KIM API is available for download from this +site, namely https://openkim.org. The tarball +you download is "openkim-api-vX.X.X.tgz", which can be unpacked via

tar xvfz openkim*tgz 
 
-

The openkim-api-vX.X.X/DOCS directory has further documentation. For -more information on installing KIM and troubleshooting refer to -openkim/INSTALL. +

The openkim-api-vX.X.X/DOCS/ directory has further documentation. In +order to compile and install the KIM API follow the instructions found +in the file openkim-api-vX.X.X/INSTALL. (Don't forget to download and +compile any Model Drivers and Models that you want to use.)

-

Here is a brief summary of how to build KIM: +

Once you have successfully compiled and installed the KIM API, you +need to set up LAMMPS to use your KIM API system. In the LAMMPS +package there is a directory src/KIM/ with an important file in it: +Makefile.lammps. When you do 'make yes-kim' LAMMPS will use the +settings in src/KIM/Makefile.lammps to find the KIM API header files +and the KIM API library itself for linking purposes. Thus, you should +edit src/KIM/Makefile.lammps to ensure it has the correct settings for +your system and your build of KIM.

-
  1. If you have previously used the openkim-api package (versions 1.1.1 or -below), it is recommended that you remove all associated environment -variables from your environment. (These include, KIM_DIR, KIM_INTEL, -KIM_SYSTEM32, KIM_DYNAMIC, KIM_API_DIR, KIM_TESTS_DIR, -KIM_MODEL_DRIVERS_DIR, and KIM_MODELS_DIR.) All setting are now -specified in the Makefile.KIM_Config file. +

    The following is an example of how to download, compile, and run +LAMMPS with the KIM API: +

    +
    +mkdir lammps-kim
    +cd lammps-kim 
     
    -
  2. Set up the Makefile.KIM_Config file +# +# download lammps and the KIM API +# -
       (a) Copy the file Makefile.KIM_Config.example to Makefile.KIM_Config
    -       For example, if you untarred the `openkim-api-vX.X.X.tgz' tarball in
    -       your home directory, you would do: 
    -
    -
           % cd $HOME/openkim-api-vX.X.X
    -       % cp Makefile.KIM_Config.example Makefile.KIM_Config 
    -
    -
           The `%' symbol represents the bash sell prompt and should not be typed.
    -       
    -
    -
           (Above `vX.X.X' represents the current release number.) 
    -
    -
       (b) Edit the file Makefile.KIM_Config and set the appropriate value for the
    -       KIM_DIR variable.  This must expand to an absolute path.  Using the same
    -       assumptions as above, this would be 
    -
    -
           KIM_DIR = $(HOME)/openkim-api-vX.X.X 
    -
    -
       (c) If appropriate, set explicit values for the remaining three 
    -       directories 
    -
    -
           KIM_MODEL_DRIVERS_DIR =
    -       KIM_MODELS_DIR =
    -       KIM_TESTS_DIR = 
    -
    -
           If these lines are commented out, defaults will be provided by the
    -       openkim-api make system. 
    -
    -
       (d) Set the value of KIM_COMPILERSUITE.  Possible values are `GCC' and
    -       `INTEL'. 
    -
    -
           KIM_COMPILERSUITE = GCC 
    -
    -
       (e) Set the value of KIM_SYSTEMLINKER. Possible values are `linux',
    -       `freebsd', and `darwin'. 
    -
    -
           KIM_SYSTEMLINKER = linux 
    -
    -
       (f) Set the value of KIM_SYSTEMARCH.  Possible values are `32bit' and
    -       `64bit'. 
    -
    -
           KIM_SYSTEMARCH = 64bit 
    -
    -
       (g) Set the value of KIM_LINK.  Possible values are `dynamic-load',
    -       `dynamic-link', and `static-link'. 
    -
    -
           KIM_LINK = dynamic-load 
    -
    -
           `dynamic-load' is the preferred option. (Unless performance or
    -       other issues require it, you should use dynamic-load.)
    -       `dynamic-link' is like `dynamic-load' but does not use the dl.h
    -       library.  This option requires a more complicated Makefile
    -       process, but may improve computation time in some instances.
    -       `static-link' only works with ONE Model and AT MOST ONE Model
    -       Driver (in order to avoid the possibility of symbol
    -       clashes). 
    -
    -
       (h) Set override values for other variables, if necessary, by
    -       adding the desired variable name (after the "# overwrite
    -       default variable values here" line) and filling in appropriate
    -       values. 
    -
    -
           # overwrite default variable values here 
    -
    -
           # overwrite default compiler options 
    -
    -
           CC =
    -       CXX =
    -       FC = 
    -
    -
           # overwrite default compiler option flag lists
    -       FFLAGS   =
    -       CCFLAGS  =
    -       CXXFLAGS =
    -       LDFLAGS  = 
    -
    -
           # overwrite default linker options
    -       LDSHAREDFLAG =
    -       LINKSONAME =
    -       LDWHOLEARCHIVESTARTFLAG =
    -       LDWHOLEARCHIVEENDFLAG = 
    -
    -
           # overwrite default install directories
    -       package_name =
    -       prefix =
    -       libdir = 
    -
    -
  3. In the remainder of the documentation we will use the string $KD to -represent the location of the openkim-api source package (the value of -the KIM_DIR variable discussed above). If you wish to, type the below -commands exactly as written to set the shell variable KD to the -appropriate value: +wget http://lammps.sandia.gov/tars/lammps-DDMMMYY.tar.gz # replace DDMMMYY as appropriate here and below +wget http://s3.openkim.org/openkim-api/openkim-api-vX.X.X.tgz # replace X.X.X as appropriate here and below +tar zxvf openkim-api-vX.X.X.tgz -
       bash:
    -   % export KD=$HOME/openkim-api-vX.X.X 
    -
    -
  4. To compile the package, including the provided examples, change to the -$KD directory and execute `make examples' and then `make': +# +# Get OpenKIM models, setup and compile +# -
       % cd $KD
    -   % make examples
    -   % make 
    -
    -
         This builds all Model Drivers, Models, Tests, and the openkim-api service
    -     routine library.  The targets defined by the Makefile in this directory
    -     include: 
    -
    -
           `make'                -- compiles the API and all Models and Tests
    -       `make all'            -- same as `make'
    -       `make clean'          -- will remove appropriate .o, .mod, .a, .so and
    -                                executable files
    -       `make install'        -- install files to `/usr/local/lib' by default
    -       `make uninstall'      -- delete files installed by `make install'
    -       `make openkim-api'    -- compiles only the API
    -       `make examples'       -- copies examples into the appropriate
    -                                directories (no overwrite)
    -       `make examples-force' -- copies examples into the appropriate
    -                                directories (overwrite)
    -       `make examples-clean' -- remove all examples from the MODEL_DRIVERS,
    -                                MODELS, and TESTS directories. 
    -
    -
  5. Verify that the compilation was successful by running a Test. +cd openkim-api-vX.X.X +cp Makefile.KIM_Config.example Makefile.KIM_Config +vi Makefile.KIM_Config # edit file as appropriate following the instructions given in the INSTALL file +cd MODEL_DRIVERS +wget --content-disposition 'https://kim-items.openkim.org/archive?kimid=EAM_Dynamo__MD_120291908751_000&compression=gz' +tar zxvf EAM_Dynamo__MD_120291908751_000.tgz +cd ../MODELS +wget --content-disposition 'https://kim-items.openkim.org/archive?kimid=EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000&compression=gz' +tar zxvf EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000.tgz +cd ../ +make +cd ../ + +# +# setup and compile lammps +# + +tar zxvf lammps-DDMMMYY.tar.gz +cd lammps-DDMMMYY/src/KIM +vi Makefile.lammps # edit the three lines to look like below: + # kim_SYSINC = -I../../../openkim-api-vX.X.X/KIM_API + # kim_SYSLIB = -lkim + # kim_SYSPATH = -L../../../openkim-api-vX.X.X/KIM_API +cd ../ +make yes-kim +cd STUBS +make +cd ../ +make serial + +# +# run simple example with KIM model +# + +cd ../../ +vi al-input # create file with the following content +#---------------------------------------------------------------------------------------- +variable x index 1 +variable y index 1 +variable z index 1 + +variable xx equal 20*$x +variable yy equal 20*$y +variable zz equal 20*$z + +units metal +atom_style atomic + +lattice fcc 4.0500 +region box block 0.0 ${xx} 0.0 ${yy} 0.0 ${zz} +create_box 1 box +create_atoms 1 box + +pair_style kim KIMvirial EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000 +pair_coeff * * Al + +mass 1 26.98 +velocity all create 200.0 232345 loop geom + +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve + +run 100 +#---------------------------------------------------------------------------------------- + +./lammps-DDMMYY/src/lmp_serial < al-input + +
  6. -
       The provided example Tests read in the name of a Model (or Models)
    -   which they use to perform their calculations.  For most Tests the
    -   name of the Model can be piped in using an `echo' command.  For
    -   example, the following Fortran 90 Test reads in one Model: 
    -
    -
       % cd $KD/TESTs/test_Ar_free_cluster_CLUSTER_F90
    -   % echo "model_Ar_P_MLJ_CLUSTER_C" | ./test_Ar_free_cluster_CLUSTER_F90 
    -
    -
      (See the README files in the Test directories for an explanation of what
    -   the Tests do.) 
    -
    -
  7. Each Test (and Model) has its own make file for compiling and linking. -If changes are made to the code, re-compile (from the $KD -directory). -

Mixing, shift, table, tail correction, restart, rRESPA info: diff --git a/doc/pair_kim.txt b/doc/pair_kim.txt index 59b57810a9..0d30d50a14 100644 --- a/doc/pair_kim.txt +++ b/doc/pair_kim.txt @@ -23,7 +23,7 @@ pair_coeff * * Ar Ar :pre [Description:] This pair style is a wrapper on the "Knowledge Base for Interatomic -Models (KIM)"_http://openkim.org repository of interatomic potentials, +Models (KIM)"_https://openkim.org repository of interatomic potentials, so that they can be used by LAMMPS scripts. In KIM lingo, a potential is a "model" and a model contains both the @@ -33,8 +33,8 @@ cutoffs. The argument {virialmode} determines how the global virial is calculated. If {KIMvirial} is specified, the KIM model performs the -global virial calculation. If {LAMMPSvirial} is specified, LAMMPS -computes the global virial using its fdotr mechanism. +global virial calculation (if it knows how). If {LAMMPSvirial} is +specified, LAMMPS computes the global virial using its fdotr mechanism. The argument {model} is the name of the KIM model for a specific potential as KIM defines it. In principle, LAMMPS can invoke any KIM @@ -73,172 +73,116 @@ directory where LAMMPS is running. :line -Here is information on how to build KIM for use with LAMMPS. There is -a directory src/KIM/ with an important file in it: Makefile.lammps. -When you do 'make yes-kim' LAMMPS will use the settings in -src/KIM/Makefile.lammps to find KIM header files and the KIM library -itself for linking purposes. Thus, you should ensure Makefile.lammps -has the correct settings for your system and your build of KIM. +Here is information on how to build KIM for use with LAMMPS. -Consult the KIM documentation for further details on KIM specifics. - -OpenKIM is available for download from "this site"_http://openkim.org, -namely http://openkim.org. The tarball you download is -"openkim-api-vX.X.X.tgz", which can be unpacked via +The KIM API is available for download from "this +site"_https://openkim.org, namely https://openkim.org. The tarball +you download is "openkim-api-vX.X.X.tgz", which can be unpacked via tar xvfz openkim*tgz :pre -The openkim-api-vX.X.X/DOCS directory has further documentation. For -more information on installing KIM and troubleshooting refer to -openkim/INSTALL. +The openkim-api-vX.X.X/DOCS/ directory has further documentation. In +order to compile and install the KIM API follow the instructions found +in the file openkim-api-vX.X.X/INSTALL. (Don't forget to download and +compile any Model Drivers and Models that you want to use.) -Here is a brief summary of how to build KIM: +Once you have successfully compiled and installed the KIM API, you +need to set up LAMMPS to use your KIM API system. In the LAMMPS +package there is a directory src/KIM/ with an important file in it: +Makefile.lammps. When you do 'make yes-kim' LAMMPS will use the +settings in src/KIM/Makefile.lammps to find the KIM API header files +and the KIM API library itself for linking purposes. Thus, you should +edit src/KIM/Makefile.lammps to ensure it has the correct settings for +your system and your build of KIM. -If you have previously used the openkim-api package (versions 1.1.1 or -below), it is recommended that you remove all associated environment -variables from your environment. (These include, KIM_DIR, KIM_INTEL, -KIM_SYSTEM32, KIM_DYNAMIC, KIM_API_DIR, KIM_TESTS_DIR, -KIM_MODEL_DRIVERS_DIR, and KIM_MODELS_DIR.) All setting are now -specified in the Makefile.KIM_Config file. :olb,l +The following is an example of how to download, compile, and run +LAMMPS with the KIM API: -Set up the Makefile.KIM_Config file :l +

+mkdir lammps-kim
+cd lammps-kim :
 
-   (a) Copy the file Makefile.KIM_Config.example to Makefile.KIM_Config
-       For example, if you untarred the `openkim-api-vX.X.X.tgz' tarball in
-       your home directory, you would do: :pre
+#
+# download lammps and the KIM API
+# :
 
-       % cd $HOME/openkim-api-vX.X.X
-       % cp Makefile.KIM_Config.example Makefile.KIM_Config :pre
+wget http://lammps.sandia.gov/tars/lammps-DDMMMYY.tar.gz        # replace DDMMMYY as appropriate here and below
+wget http://s3.openkim.org/openkim-api/openkim-api-vX.X.X.tgz   # replace X.X.X as appropriate here and below
+tar zxvf openkim-api-vX.X.X.tgz :
 
-       The `%' symbol represents the bash sell prompt and should not be typed.
-       :pre
+#
+# Get OpenKIM models, setup and compile
+# :
 
-       (Above `vX.X.X' represents the current release number.) :pre
+cd openkim-api-vX.X.X
+cp Makefile.KIM_Config.example Makefile.KIM_Config
+vi Makefile.KIM_Config  # edit file as appropriate following the instructions given in the INSTALL file
+cd MODEL_DRIVERS
+wget --content-disposition 'https://kim-items.openkim.org/archive?kimid=EAM_Dynamo__MD_120291908751_000&compression=gz'
+tar zxvf EAM_Dynamo__MD_120291908751_000.tgz
+cd ../MODELS
+wget --content-disposition 'https://kim-items.openkim.org/archive?kimid=EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000&compression=gz'
+tar zxvf EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000.tgz
+cd ../
+make
+cd ../ :
 
-   (b) Edit the file Makefile.KIM_Config and set the appropriate value for the
-       KIM_DIR variable.  This must expand to an absolute path.  Using the same
-       assumptions as above, this would be :pre
+#
+# setup and compile lammps
+# :
 
-       KIM_DIR = $(HOME)/openkim-api-vX.X.X :pre
+tar zxvf lammps-DDMMMYY.tar.gz
+cd lammps-DDMMMYY/src/KIM
+vi Makefile.lammps  # edit the three lines to look like below:
+                    #   kim_SYSINC  = -I../../../openkim-api-vX.X.X/KIM_API
+                    #   kim_SYSLIB  = -lkim
+                    #   kim_SYSPATH = -L../../../openkim-api-vX.X.X/KIM_API
+cd ../
+make yes-kim
+cd STUBS
+make
+cd ../
+make serial :
 
-   (c) If appropriate, set explicit values for the remaining three 
-       directories :pre
+#
+# run simple example with KIM model
+# :
 
-       KIM_MODEL_DRIVERS_DIR =
-       KIM_MODELS_DIR =
-       KIM_TESTS_DIR = :pre
+cd ../../
+vi al-input  # create file with the following content
+#----------------------------------------------------------------------------------------
+variable        x index 1
+variable        y index 1
+variable        z index 1 :
 
-       If these lines are commented out, defaults will be provided by the
-       openkim-api make system. :pre
+variable        xx equal 20*$x
+variable        yy equal 20*$y
+variable        zz equal 20*$z :
 
-   (d) Set the value of KIM_COMPILERSUITE.  Possible values are `GCC' and
-       `INTEL'. :pre
+units           metal
+atom_style      atomic :
 
-       KIM_COMPILERSUITE = GCC :pre
+lattice         fcc 4.0500
+region          box block 0.0 $\{xx\} 0.0 $\{yy\} 0.0 $\{zz\}
+create_box      1 box
+create_atoms    1 box :
 
-   (e) Set the value of KIM_SYSTEMLINKER. Possible values are `linux',
-       `freebsd', and `darwin'. :pre
+pair_style      kim KIMvirial EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_000
+pair_coeff      * * Al :
 
-       KIM_SYSTEMLINKER = linux :pre
+mass            1 26.98
+velocity        all create 200.0 232345 loop geom :
 
-   (f) Set the value of KIM_SYSTEMARCH.  Possible values are `32bit' and
-       `64bit'. :pre
+neighbor        0.3 bin
+neigh_modify    delay 0 every 1 check yes :
 
-       KIM_SYSTEMARCH = 64bit :pre
+fix             1 all nve :
 
-   (g) Set the value of KIM_LINK.  Possible values are `dynamic-load',
-       `dynamic-link', and `static-link'. :pre
+run             100
+#---------------------------------------------------------------------------------------- :
 
-       KIM_LINK = dynamic-load :pre
-
-       `dynamic-load' is the preferred option. (Unless performance or
-       other issues require it, you should use dynamic-load.)
-       `dynamic-link' is like `dynamic-load' but does not use the dl.h
-       library.  This option requires a more complicated Makefile
-       process, but may improve computation time in some instances.
-       `static-link' only works with ONE Model and AT MOST ONE Model
-       Driver (in order to avoid the possibility of symbol
-       clashes). :pre
-
-   (h) Set override values for other variables, if necessary, by
-       adding the desired variable name (after the "# overwrite
-       default variable values here" line) and filling in appropriate
-       values. :pre
-
-       # overwrite default variable values here :pre
-
-       # overwrite default compiler options :pre
-       CC =
-       CXX =
-       FC = :pre
-
-       # overwrite default compiler option flag lists
-       FFLAGS   =
-       CCFLAGS  =
-       CXXFLAGS =
-       LDFLAGS  = :pre
-
-       # overwrite default linker options
-       LDSHAREDFLAG =
-       LINKSONAME =
-       LDWHOLEARCHIVESTARTFLAG =
-       LDWHOLEARCHIVEENDFLAG = :pre
-
-       # overwrite default install directories
-       package_name =
-       prefix =
-       libdir = :pre
-
-In the remainder of the documentation we will use the string $KD to
-represent the location of the openkim-api source package (the value of
-the KIM_DIR variable discussed above).  If you wish to, type the below
-commands exactly as written to set the shell variable KD to the
-appropriate value: :l
-
-   bash:
-   % export KD=$HOME/openkim-api-vX.X.X :pre
-
-To compile the package, including the provided examples, change to the
-$KD directory and execute `make examples' and then `make': :l
-
-   % cd $KD
-   % make examples
-   % make :pre
-
-     This builds all Model Drivers, Models, Tests, and the openkim-api service
-     routine library.  The targets defined by the Makefile in this directory
-     include: :pre
-
-       `make'                -- compiles the API and all Models and Tests
-       `make all'            -- same as `make'
-       `make clean'          -- will remove appropriate .o, .mod, .a, .so and
-                                executable files
-       `make install'        -- install files to `/usr/local/lib' by default
-       `make uninstall'      -- delete files installed by `make install'
-       `make openkim-api'    -- compiles only the API
-       `make examples'       -- copies examples into the appropriate
-                                directories (no overwrite)
-       `make examples-force' -- copies examples into the appropriate
-                                directories (overwrite)
-       `make examples-clean' -- remove all examples from the MODEL_DRIVERS,
-                                MODELS, and TESTS directories. :pre
-
-Verify that the compilation was successful by running a Test. :l
-
-   The provided example Tests read in the name of a Model (or Models)
-   which they use to perform their calculations.  For most Tests the
-   name of the Model can be piped in using an `echo' command.  For
-   example, the following Fortran 90 Test reads in one Model: :pre
-
-   % cd $KD/TESTs/test_Ar_free_cluster_CLUSTER_F90
-   % echo "model_Ar_P_MLJ_CLUSTER_C" | ./test_Ar_free_cluster_CLUSTER_F90 :pre
-
-  (See the README files in the Test directories for an explanation of what
-   the Tests do.) :pre
-
-Each Test (and Model) has its own make file for compiling and linking.
-If changes are made to the code, re-compile (from the $KD
-directory). :l,ole
+./lammps-DDMMYY/src/lmp_serial < al-input :
+
:line