forked from lijiext/lammps
197 lines
7.8 KiB
Plaintext
197 lines
7.8 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 reax command :h3
|
|
|
|
[Syntax:]
|
|
|
|
pair_style reax hbcut hbnewflag tripflag precision :pre
|
|
|
|
hbcut = hydrogen-bond cutoff (distance units)
|
|
hbnewflag = use old or new hbond function style (0 or 1)
|
|
tripflag = apply stabilization to all triple bonds (0 or 1)
|
|
precision = precision for charge equilibration :ul
|
|
|
|
[Examples:]
|
|
|
|
pair_style reax
|
|
pair_style reax 10.0 0 1 1.0e-5
|
|
pair_coeff * * ffield.reax 3 1 2 2
|
|
pair_coeff * * ffield.reax 3 NULL NULL 3 :pre
|
|
|
|
[Description:]
|
|
|
|
Style {reax} computes the ReaxFF potential of van Duin, Goddard and
|
|
co-workers. ReaxFF uses distance-dependent bond-order functions to
|
|
represent the contributions of chemical bonding to the potential
|
|
energy. There is more than one version of ReaxFF. The version
|
|
implemented in LAMMPS uses the functional forms documented in the
|
|
supplemental information of the following paper:
|
|
"(Chenoweth)"_#Chenoweth_2008. The version integrated into LAMMPS matches
|
|
the most up-to-date version of ReaxFF as of summer 2010.
|
|
|
|
The {reax} style differs from the "pair_style reax/c"_pair_reax_c.html
|
|
command in the lo-level implementation details. The {reax} style is a
|
|
Fortran library, linked to LAMMPS. The {reax/c} style was initially
|
|
implemented as stand-alone C code and is now integrated into LAMMPS as
|
|
a package.
|
|
|
|
LAMMPS requires that a file called ffield.reax be provided, containing
|
|
the ReaxFF parameters for each atom type, bond type, etc. The format
|
|
is identical to the ffield file used by van Duin and co-workers. The
|
|
filename is required as an argument in the pair_coeff command. Any
|
|
value other than "ffield.reax" will be rejected (see below).
|
|
|
|
LAMMPS provides several different versions of ffield.reax in its
|
|
potentials dir, each called potentials/ffield.reax.label. These are
|
|
documented in potentials/README.reax. The default ffield.reax
|
|
contains parameterizations for the following elements: C, H, O, N, S.
|
|
|
|
The format of these files is identical to that used originally by van
|
|
Duin. We have tested the accuracy of {pair_style reax} potential
|
|
against the original ReaxFF code for the systems mentioned above. You
|
|
can use other ffield files for specific chemical systems that may be
|
|
available elsewhere (but note that their accuracy may not have been
|
|
tested).
|
|
|
|
The {hbcut}, {hbnewflag}, {tripflag}, and {precision}
|
|
settings are optional arguments.
|
|
If
|
|
neither is provided, default settings are used: {hbcut} = 6 (which is
|
|
Angstroms in real units), {hbnewflag} = 1 (use new hbond function style),
|
|
{tripflag} = 1 (apply stabilization to all triple bonds),
|
|
and {precision} = 1.0e-6 (one part in 10^6).
|
|
If you wish to override any of these defaults, then all settings
|
|
must be specified.
|
|
|
|
Two examples using {pair_style reax} are provided in the examples/reax
|
|
sub-directory, along with corresponding examples for
|
|
"pair_style reax/c"_pair_reax_c.html.
|
|
|
|
Use of this pair style requires that a charge be defined for every
|
|
atom since the {reax} pair style performs a charge equilibration (QEq)
|
|
calculation. See the "atom_style"_atom_style.html and
|
|
"read_data"_read_data.html commands for details on how to specify
|
|
charges.
|
|
|
|
The thermo variable {evdwl} stores the sum of all the ReaxFF potential
|
|
energy contributions, with the exception of the Coulombic and charge
|
|
equilibration contributions which are stored in the thermo variable
|
|
{ecoul}. The output of these quantities is controlled by the
|
|
"thermo"_thermo.html command.
|
|
|
|
This pair style tallies a breakdown of the total ReaxFF potential
|
|
energy into sub-categories, which can be accessed via the "compute
|
|
pair"_compute_pair.html command as a vector of values of length 14.
|
|
The 14 values correspond to the following sub-categories (the variable
|
|
names in italics match those used in the ReaxFF FORTRAN library):
|
|
|
|
{eb} = bond energy
|
|
{ea} = atom energy
|
|
{elp} = lone-pair energy
|
|
{emol} = molecule energy (always 0.0)
|
|
{ev} = valence angle energy
|
|
{epen} = double-bond valence angle penalty
|
|
{ecoa} = valence angle conjugation energy
|
|
{ehb} = hydrogen bond energy
|
|
{et} = torsion energy
|
|
{eco} = conjugation energy
|
|
{ew} = van der Waals energy
|
|
{ep} = Coulomb energy
|
|
{efi} = electric field energy (always 0.0)
|
|
{eqeq} = charge equilibration energy :ol
|
|
|
|
To print these quantities to the log file (with descriptive column
|
|
headings) the following commands could be included in an input script:
|
|
|
|
compute reax all pair reax
|
|
variable eb equal c_reax\[1\]
|
|
variable ea equal c_reax\[2\]
|
|
...
|
|
variable eqeq equal c_reax\[14\]
|
|
thermo_style custom step temp epair v_eb v_ea ... v_eqeq :pre
|
|
|
|
Only a single pair_coeff command is used with the {reax} style which
|
|
specifies a ReaxFF 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 indices = mapping of ReaxFF elements to atom types :ul
|
|
|
|
The specification of the filename and the mapping of LAMMPS atom types
|
|
recognized by the ReaxFF is done differently than for other LAMMPS
|
|
potentials, due to the non-portable difficulty of passing character
|
|
strings (e.g. filename, element names) between C++ and Fortran.
|
|
|
|
The filename has to be "ffield.reax" and it has to exist in the
|
|
directory you are running LAMMPS in. This means you cannot prepend a
|
|
path to the file in the potentials dir. Rather, you should copy that
|
|
file into the directory you are running from. If you wish to use
|
|
another ReaxFF potential file, then name it "ffield.reax" and put it
|
|
in the directory you run from.
|
|
|
|
In the ReaxFF potential file, near the top, after the general
|
|
parameters, is the atomic parameters section that contains element
|
|
names, each with a couple dozen numeric parameters. If there are M
|
|
elements specified in the {ffield} file, think of these as numbered 1
|
|
to M. Each of the N indices you specify for the N atom types of LAMMPS
|
|
atoms must be an integer from 1 to M. Atoms with LAMMPS type 1 will
|
|
be mapped to whatever element you specify as the first index value,
|
|
etc. If a mapping value is specified as NULL, the mapping is not
|
|
performed. This can be used when a ReaxFF 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.
|
|
|
|
As an example, say your LAMMPS simulation has 4 atom types and the
|
|
elements are ordered as C, H, O, N in the {ffield} file. If you want
|
|
the LAMMPS atom type 1 and 2 to be C, type 3 to be N, and type 4 to be
|
|
H, you would use the following pair_coeff command:
|
|
|
|
pair_coeff * * ffield.reax 1 1 4 2 :pre
|
|
|
|
:line
|
|
|
|
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
|
|
|
This pair style does not support the "pair_modify"_pair_modify.html
|
|
mix, 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.
|
|
|
|
[Restrictions:]
|
|
|
|
The ReaxFF potential files provided with LAMMPS in the potentials
|
|
directory are parameterized for real "units"_units.html. You can use
|
|
the ReaxFF potential with any LAMMPS units, but you would need to
|
|
create your own potential file with coefficients listed in the
|
|
appropriate units if your simulation doesn't use "real" units.
|
|
|
|
[Related commands:]
|
|
|
|
"pair_coeff"_pair_coeff.html, "pair_style reax/c"_pair_reax_c.html,
|
|
"fix_reax_bonds"_fix_reax_bonds.html
|
|
|
|
[Default:]
|
|
|
|
The keyword defaults are {hbcut} = 6, {hbnewflag} = 1, {tripflag} = 1, {precision} = 1.0e-6
|
|
|
|
:line
|
|
|
|
:link(Chenoweth_2008)
|
|
[(Chenoweth_2008)] Chenoweth, van Duin and Goddard,
|
|
Journal of Physical Chemistry A, 112, 1040-1053 (2008).
|