forked from lijiext/lammps
258 lines
10 KiB
Plaintext
258 lines
10 KiB
Plaintext
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||
|
||
:link(lws,http://lammps.sandia.gov)
|
||
:link(ld,Manual.html)
|
||
:link(lc,Section_commands.html#comm)
|
||
|
||
:line
|
||
|
||
pair_style tersoff/zbl command :h3
|
||
pair_style tersoff/zbl/omp command :h3
|
||
|
||
[Syntax:]
|
||
|
||
pair_style tersoff/zbl :pre
|
||
|
||
[Examples:]
|
||
|
||
pair_style tersoff/zbl
|
||
pair_coeff * * SiC.tersoff.zbl Si C Si :pre
|
||
|
||
[Description:]
|
||
|
||
The {tersoff/zbl} style computes a 3-body Tersoff potential
|
||
"(Tersoff_1)"_#Tersoff_1 with a close-separation pairwise modification
|
||
based on a Coulomb potential and the Ziegler-Biersack-Littmark
|
||
universal screening function "(ZBL)"_#ZBL, giving the energy E of a
|
||
system of atoms as
|
||
|
||
:c,image(Eqs/pair_tersoff_zbl.jpg)
|
||
|
||
The f_F term is a fermi-like function used to smoothly connect the ZBL
|
||
repulsive potential with the Tersoff potential. There are 2
|
||
parameters used to adjust it: A_F and r_C. A_F controls how "sharp"
|
||
the transition is between the two, and r_C is essentially the cutoff
|
||
for the ZBL potential.
|
||
|
||
For the ZBL portion, there are two terms. The first is the Coulomb
|
||
repulsive term, with Z1, Z2 as the number of protons in each nucleus,
|
||
e as the electron charge (1 for metal and real units) and epsilon0 as
|
||
the permittivity of vacuum. The second part is the ZBL universal
|
||
screening function, with a0 being the Bohr radius (typically 0.529
|
||
Angstroms), and the remainder of the coefficients provided by the
|
||
original paper. This screening function should be applicable to most
|
||
systems. However, it is only accurate for small separations
|
||
(i.e. less than 1 Angstrom).
|
||
|
||
For the Tersoff portion, f_R is a two-body term and f_A includes
|
||
three-body interactions. The summations in the formula are over all
|
||
neighbors J and K of atom I within a cutoff distance = R + D.
|
||
|
||
Only a single pair_coeff command is used with the {tersoff/zbl} style
|
||
which specifies a Tersoff/ZBL potential file with parameters for all
|
||
needed elements. These are mapped to LAMMPS atom types by specifying
|
||
N additional arguments after the filename in the pair_coeff command,
|
||
where N is the number of LAMMPS atom types:
|
||
|
||
filename
|
||
N element names = mapping of Tersoff/ZBL elements to atom types :ul
|
||
|
||
As an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values
|
||
for Si and C. If your LAMMPS simulation has 4 atoms types and you
|
||
want the 1st 3 to be Si, and the 4th to be C, you would use the
|
||
following pair_coeff command:
|
||
|
||
pair_coeff * * SiC.tersoff Si Si Si C :pre
|
||
|
||
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 the Si
|
||
element in the Tersoff/ZBL file. The final C argument maps LAMMPS
|
||
atom type 4 to the C element in the Tersoff/ZBL file. If a mapping
|
||
value is specified as NULL, the mapping is not performed. This can be
|
||
used when a {tersoff/zbl} potential is used as part of the {hybrid}
|
||
pair style. The NULL values are placeholders for atom types that will
|
||
be used with other potentials.
|
||
|
||
Tersoff/ZBL files in the {potentials} directory of the LAMMPS
|
||
distribution have a ".tersoff.zbl" suffix. Lines that are not blank
|
||
or comments (starting with #) define parameters for a triplet of
|
||
elements. The parameters in a single entry correspond to coefficients
|
||
in the formula above:
|
||
|
||
element 1 (the center atom in a 3-body interaction)
|
||
element 2 (the atom bonded to the center atom)
|
||
element 3 (the atom influencing the 1-2 bond in a bond-order sense)
|
||
m
|
||
gamma
|
||
lambda3 (1/distance units)
|
||
c
|
||
d
|
||
costheta0 (can be a value < -1 or > 1)
|
||
n
|
||
beta
|
||
lambda2 (1/distance units)
|
||
B (energy units)
|
||
R (distance units)
|
||
D (distance units)
|
||
lambda1 (1/distance units)
|
||
A (energy units)
|
||
Z_i
|
||
Z_j
|
||
ZBLcut (distance units)
|
||
ZBLexpscale (1/distance units) :ul
|
||
|
||
The n, beta, lambda2, B, lambda1, and A parameters are only used for
|
||
two-body interactions. The m, gamma, lambda3, c, d, and costheta0
|
||
parameters are only used for three-body interactions. The R and D
|
||
parameters are used for both two-body and three-body interactions. The
|
||
Z_i,Z_j, ZBLcut, ZBLexpscale parameters are used in the ZBL repulsive
|
||
portion of the potential and in the Fermi-like function. The
|
||
non-annotated parameters are unitless. The value of m must be 3 or 1.
|
||
|
||
The Tersoff/ZBL potential file must contain entries for all the
|
||
elements listed in the pair_coeff command. It can also contain
|
||
entries for additional elements not being used in a particular
|
||
simulation; LAMMPS ignores those entries.
|
||
|
||
For a single-element simulation, only a single entry is required
|
||
(e.g. SiSiSi). For a two-element simulation, the file must contain 8
|
||
entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that
|
||
specify Tersoff parameters for all permutations of the two elements
|
||
interacting in three-body configurations. Thus for 3 elements, 27
|
||
entries would be required, etc.
|
||
|
||
As annotated above, the first element in the entry is the center atom
|
||
in a three-body interaction and it is bonded to the 2nd atom and the
|
||
bond is influenced by the 3rd atom. Thus an entry for SiCC means Si
|
||
bonded to a C with another C atom influencing the bond. Thus
|
||
three-body parameters for SiCSi and SiSiC entries will not, in
|
||
general, be the same. The parameters used for the two-body
|
||
interaction come from the entry where the 2nd element is repeated.
|
||
Thus the two-body parameters for Si interacting with C, comes from the
|
||
SiCC entry. By symmetry, the twobody parameters in the SiCC and CSiSi
|
||
entries should thus be the same. The parameters used for a particular
|
||
three-body interaction come from the entry with the corresponding
|
||
three elements. The parameters used only for two-body interactions
|
||
(n, beta, lambda2, B, lambda1, and A) in entries whose 2nd and 3rd
|
||
element are different (e.g. SiCSi) are not used for anything and can
|
||
be set to 0.0 if desired.
|
||
|
||
We chose the above form so as to enable users to define all commonly
|
||
used variants of the Tersoff portion of the potential. In particular,
|
||
our form reduces to the original Tersoff form when m = 3 and gamma =
|
||
1, while it reduces to the form of "Albe et al."_#Albe when beta = 1
|
||
and m = 1. Note that in the current Tersoff implementation in LAMMPS,
|
||
m must be specified as either 3 or 1. Tersoff used a slightly
|
||
different but equivalent form for alloys, which we will refer to as
|
||
Tersoff_2 potential "(Tersoff_2)"_#Tersoff_2.
|
||
|
||
LAMMPS parameter values for Tersoff_2 can be obtained as follows:
|
||
gamma = 1, just as for Tersoff_1, but now lambda3 = 0 and the value of
|
||
m has no effect. The parameters for species i and j can be calculated
|
||
using the Tersoff_2 mixing rules:
|
||
|
||
:c,image(Eqs/pair_tersoff_2.jpg)
|
||
|
||
Values not shown are determined by the first<73>atom type. Finally, the
|
||
Tersoff_2 parameters R and S must be converted to the LAMMPS
|
||
parameters R and D (R is different in both forms), using the following
|
||
relations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the
|
||
Tersoff_2 parameters.
|
||
|
||
In the potentials directory, the file SiCGe.tersoff provides the
|
||
LAMMPS parameters for Tersoff's various versions of Si, as well as his
|
||
alloy parameters for Si, C, and Ge. This file can be used for pure Si,
|
||
(three different versions), pure C, pure Ge, binary SiC, and binary
|
||
SiGe. LAMMPS will generate an error if this file is used with any
|
||
combination involving C and Ge, since there are no entries for the GeC
|
||
interactions (Tersoff did not publish parameters for this
|
||
cross-interaction.) Tersoff files are also provided for the SiC alloy
|
||
(SiC.tersoff) and the GaN (GaN.tersoff) alloys.
|
||
|
||
Many thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou
|
||
for helping clarify how Tersoff parameters for alloys have been
|
||
defined in various papers. Also thanks to Ram Devanathan for
|
||
providing the base ZBL implementation.
|
||
|
||
:line
|
||
|
||
Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally
|
||
the same as the corresponding style without the suffix. They have
|
||
been optimized to run faster, depending on your available hardware, as
|
||
discussed in "Section_accelerate"_Section_accelerate.html of the
|
||
manual. The accelerated styles take the same arguments and should
|
||
produce the same results, except for round-off and precision issues.
|
||
|
||
These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT
|
||
packages, respectively. They are only enabled if LAMMPS was built with
|
||
those packages. See the "Making LAMMPS"_Section_start.html#start_3
|
||
section for more info.
|
||
|
||
You can specify the accelerated styles explicitly in your input script
|
||
by including their suffix, or you can use the "-suffix command-line
|
||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||
use the "suffix"_suffix.html command in your input script.
|
||
|
||
See "Section_accelerate"_Section_accelerate.html of the manual for
|
||
more instructions on how to use the accelerated styles effectively.
|
||
|
||
:line
|
||
|
||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||
|
||
For atom type pairs I,J and I != J, where types I and J correspond to
|
||
two different element types, mixing is performed by LAMMPS as
|
||
described above from values in the potential file.
|
||
|
||
This pair style does not support the "pair_modify"_pair_modify.html
|
||
shift, table, and tail options.
|
||
|
||
This pair style does not write its information to "binary restart
|
||
files"_restart.html, since it is stored in potential files. Thus, you
|
||
need to re-specify the pair_style and pair_coeff commands in an input
|
||
script that reads a restart file.
|
||
|
||
This pair style can only be used via the {pair} keyword of the
|
||
"run_style respa"_run_style.html command. It does not support the
|
||
{inner}, {middle}, {outer} keywords.
|
||
|
||
:line
|
||
|
||
[Restrictions:]
|
||
|
||
This pair style is part of the MANYBODY package. It is only enabled
|
||
if LAMMPS was built with that package (which it is by default). See
|
||
the "Making LAMMPS"_Section_start.html#start_3 section for more info.
|
||
|
||
This pair style requires the "newton"_newton.html setting to be "on"
|
||
for pair interactions.
|
||
|
||
The Tersoff/ZBL potential files provided with LAMMPS (see the
|
||
potentials directory) are parameterized for metal "units"_units.html.
|
||
You can use the Tersoff potential with any LAMMPS units, but you would
|
||
need to create your own Tersoff potential file with coefficients
|
||
listed in the appropriate units if your simulation doesn't use "metal"
|
||
units.
|
||
|
||
[Related commands:]
|
||
|
||
"pair_coeff"_pair_coeff.html
|
||
|
||
[Default:] none
|
||
|
||
:line
|
||
|
||
:link(Tersoff_1)
|
||
[(Tersoff_1)] J. Tersoff, Phys Rev B, 37, 6991 (1988).
|
||
|
||
:link(ZBL)
|
||
[(ZBL)] J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges
|
||
of Ions in Matter' Vol 1, 1985, Pergamon Press.
|
||
|
||
:link(Albe)
|
||
[(Albe)] J. Nord, K. Albe, P. Erhartand K. Nordlund, J. Phys.:
|
||
Condens. Matter, 15, 5649(2003).
|
||
|
||
:link(Tersoff_2)
|
||
[(Tersoff_2)] J. Tersoff, Phys Rev B, 39, 5566 (1989)
|