forked from lijiext/lammps
210 lines
6.6 KiB
HTML
210 lines
6.6 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>pair_style kim command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>pair_style kim virialmode model
|
|
</PRE>
|
|
<UL><LI>virialmode = KIMvirial or LAMMPSvirial
|
|
<LI>model = name of KIM model (potential)
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>pair_style kim KIMvirial model_Ar_P_Morse
|
|
pair_coeff * * Ar Ar
|
|
</PRE>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>This pair style is a wrapper on the <A HREF = "https://openkim.org">Knowledge Base for Interatomic
|
|
Models (KIM)</A> repository of interatomic potentials,
|
|
so that they can be used by LAMMPS scripts.
|
|
</P>
|
|
<P>In KIM lingo, a potential is a "model" and a model contains both the
|
|
analytic formulas that define the potential as well as the parameters
|
|
needed to run it for one or more materials, including coefficients and
|
|
cutoffs.
|
|
</P>
|
|
<P>The argument <I>virialmode</I> determines how the global virial is
|
|
calculated. If <I>KIMvirial</I> is specified, the KIM model performs the
|
|
global virial calculation (if it knows how). If <I>LAMMPSvirial</I> is
|
|
specified, LAMMPS computes the global virial using its fdotr mechanism.
|
|
</P>
|
|
<P>The argument <I>model</I> is the name of the KIM model for a specific
|
|
potential as KIM defines it. In principle, LAMMPS can invoke any KIM
|
|
model. You should get an error or warning message from either LAMMPS
|
|
or KIM if there is an incompatibility.
|
|
</P>
|
|
<P>Only a single pair_coeff command is used with the <I>kim</I> style which
|
|
specifies the mapping of LAMMPS atom types to KIM elements. This is
|
|
done by specifying N additional arguments after the * * in the
|
|
pair_coeff command, where N is the number of LAMMPS atom types:
|
|
</P>
|
|
<UL><LI>N element names = mapping of KIM elements to atom types
|
|
</UL>
|
|
<P>As an example, imagine the KIM model supports Si and C atoms. If your
|
|
LAMMPS simulation has 4 atom types and you want the 1st 3 to be Si,
|
|
and the 4th to be C, you would use the following pair_coeff command:
|
|
</P>
|
|
<PRE>pair_coeff * * Si Si Si C
|
|
</PRE>
|
|
<P>The 1st 2 arguments must be * * so as to span all LAMMPS atom types.
|
|
The first three Si arguments map LAMMPS atom types 1,2,3 to Si as
|
|
defined within KIM. The final C argument maps LAMMPS atom type 4 to C
|
|
as defined within KIM. If a mapping value is specified as NULL, the
|
|
mapping is not performed. This can only be used when a <I>kim</I>
|
|
potential is used as part of the <I>hybrid</I> pair style. The NULL values
|
|
are placeholders for atom types that will be used with other
|
|
potentials.
|
|
</P>
|
|
<HR>
|
|
|
|
<P>In addition to the usual LAMMPS error messages, the KIM library itself
|
|
may generate errors, which should be printed to the screen. In this
|
|
case it is also useful to check the kim.log file for additional error
|
|
information. This file kim.log should be generated in the same
|
|
directory where LAMMPS is running.
|
|
</P>
|
|
<HR>
|
|
|
|
<P>Here is information on how to build KIM for use with LAMMPS.
|
|
</P>
|
|
<P>The KIM API is available for download from <A HREF = "https://openkim.org">this
|
|
site</A>, namely https://openkim.org. The tarball
|
|
you download is "kim-api-vX.X.X.tgz", which can be unpacked via
|
|
</P>
|
|
<PRE>tar xvfz kim*tgz
|
|
</PRE>
|
|
<P>The kim-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 kim-api-vX.X.X/INSTALL. (Don't forget to download and
|
|
compile any Model Drivers and Models that you want to use.)
|
|
</P>
|
|
<P>Once you have successfully compiled and installed the KIM API, you
|
|
need to make sure the utility kim-api-build-config is on your PATH
|
|
so that the LAMMPS build system can properly work with the KIM API.
|
|
</P>
|
|
<P>The following is an example of how to download, compile, and run
|
|
LAMMPS with the KIM API:
|
|
</P>
|
|
<pre>
|
|
mkdir lammps-kim
|
|
cd lammps-kim
|
|
|
|
#
|
|
# download lammps and the KIM API
|
|
#
|
|
|
|
wget http://lammps.sandia.gov/tars/lammps-DDMMMYY.tar.gz # replace DDMMMYY as appropriate here and below
|
|
wget http://s3.openkim.org/kim-api/kim-api-vX.X.X.tgz # replace X.X.X as appropriate here and below
|
|
tar zxvf kim-api-vX.X.X.tgz
|
|
|
|
#
|
|
# Get OpenKIM models, setup and compile
|
|
#
|
|
|
|
cd kim-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
|
|
make add-EAM_Dynamo_Angelo_Moody_NiAlH__MO_418978237058_001
|
|
make
|
|
make install
|
|
make install-set-default-to-vX # replace X with the KIM API major version number
|
|
|
|
#
|
|
# setup and compile lammps
|
|
#
|
|
|
|
tar zxvf lammps-DDMMMYY.tar.gz
|
|
cd lammps-DDMMMYY/src
|
|
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_001
|
|
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 -in al-input
|
|
|
|
</pre>
|
|
|
|
<HR>
|
|
|
|
<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
|
|
</P>
|
|
<P>This pair style does not support the <A HREF = "pair_modify.html">pair_modify</A>
|
|
mix, shift, table, and tail options.
|
|
</P>
|
|
<P>This pair style does not write its information to <A HREF = "restart.html">binary restart
|
|
files</A>, since KIM stores the potential parameters.
|
|
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
|
an input script that reads a restart file.
|
|
</P>
|
|
<P>This pair style can only be used via the <I>pair</I> keyword of the
|
|
<A HREF = "run_style.html">run_style respa</A> command. It does not support the
|
|
<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>This pair style is part of the KIM package. It is only enabled if
|
|
LAMMPS was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P>This current version of pair_style kim is compatible with the
|
|
kim-api package version 1.6.0 and higher.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "pair_coeff.html">pair_coeff</A>
|
|
</P>
|
|
<P><B>Default:</B> none
|
|
</P>
|
|
</HTML>
|