forked from lijiext/lammps
277 lines
12 KiB
Plaintext
277 lines
12 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
|
|
|
|
atom_style command :h3
|
|
|
|
[Syntax:]
|
|
|
|
atom_style style args :pre
|
|
|
|
style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \
|
|
{electron} or {ellipsoid} or {full} or {line} or {meso} or \
|
|
{molecular} or {peri} or {smd} or {sphere} or {tri} or \
|
|
{template} or {hybrid} :ulb,l
|
|
args = none for any style except {body} and {hybrid}
|
|
{body} args = bstyle bstyle-args
|
|
bstyle = style of body particles
|
|
bstyle-args = additional arguments specific to the bstyle
|
|
see the "body"_body.html doc page for details
|
|
{template} args = template-ID
|
|
template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
|
|
{hybrid} args = list of one or more sub-styles, each with their args :pre
|
|
|
|
accelerated styles (with same args) = {angle/cuda} or {angle/kk} or {atomic/cuda} or {atomic/kk} or {bond/kk} or {charge/cuda} or {charge/kk} or {full/cuda} or {full/kk} or {molecular/kk} :l
|
|
:ule
|
|
|
|
[Examples:]
|
|
|
|
atom_style atomic
|
|
atom_style bond
|
|
atom_style full
|
|
atom_style full/cuda
|
|
atom_style body nparticle 2 10
|
|
atom_style hybrid charge bond
|
|
atom_style hybrid charge body nparticle 2 5
|
|
atom_style template myMols :pre
|
|
|
|
[Description:]
|
|
|
|
Define what style of atoms to use in a simulation. This determines
|
|
what attributes are associated with the atoms. This command must be
|
|
used before a simulation is setup via a "read_data"_read_data.html,
|
|
"read_restart"_read_restart.html, or "create_box"_create_box.html
|
|
command.
|
|
|
|
Once a style is assigned, it cannot be changed, so use a style general
|
|
enough to encompass all attributes. E.g. with style {bond}, angular
|
|
terms cannot be used or added later to the model. It is OK to use a
|
|
style more general than needed, though it may be slightly inefficient.
|
|
|
|
The choice of style affects what quantities are stored by each atom,
|
|
what quantities are communicated between processors to enable forces
|
|
to be computed, and what quantities are listed in the data file read
|
|
by the "read_data"_read_data.html command.
|
|
|
|
These are the additional attributes of each style and the typical
|
|
kinds of physical systems they are used to model. All styles store
|
|
coordinates, velocities, atom IDs and types. See the
|
|
"read_data"_read_data.html, "create_atoms"_create_atoms.html, and
|
|
"set"_set.html commands for info on how to set these various
|
|
quantities.
|
|
|
|
{angle} | bonds and angles | bead-spring polymers with stiffness |
|
|
{atomic} | only the default values | coarse-grain liquids, solids, metals |
|
|
{body} | mass, inertia moments, quaternion, angular momentum | arbitrary bodies |
|
|
{bond} | bonds | bead-spring polymers |
|
|
{charge} | charge | atomic system with charges |
|
|
{dipole} | charge and dipole moment | system with dipolar particles |
|
|
{electron} | charge and spin and eradius | electronic force field |
|
|
{ellipsoid} | shape, quaternion, angular momentum | aspherical particles |
|
|
{full} | molecular + charge | bio-molecules |
|
|
{line} | end points, angular velocity | rigid bodies |
|
|
{meso} | rho, e, cv | SPH particles |
|
|
{molecular} | bonds, angles, dihedrals, impropers | uncharged molecules |
|
|
{peri} | mass, volume | mesocopic Peridynamic models |
|
|
{smd} | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles |
|
|
{sphere} | diameter, mass, angular velocity | granular models |
|
|
{template} | template index, template atom | small molecules with fixed topology |
|
|
{tri} | corner points, angular momentum | rigid bodies |
|
|
{wavepacket} | charge, spin, eradius, etag, cs_re, cs_im | AWPMD :tb(c=3,s=|)
|
|
|
|
NOTE: It is possible to add some attributes, such as a molecule ID, to
|
|
atom styles that do not have them via the "fix
|
|
property/atom"_fix_property_atom.html command. This command also
|
|
allows new custom attributes consisting of extra integer or
|
|
floating-point values to be added to atoms. See the "fix
|
|
property/atom"_fix_property_atom.html doc page for examples of cases
|
|
where this is useful and details on how to initialize, access, and
|
|
output the custom values.
|
|
|
|
All of the above styles define point particles, except the {sphere},
|
|
{ellipsoid}, {electron}, {peri}, {wavepacket}, {line}, {tri}, and
|
|
{body} styles, which define finite-size particles. See "Section_howto
|
|
14"_Section_howto.html#howto_14 for an overview of using finite-size
|
|
particle models with LAMMPS.
|
|
|
|
All of the point-particle styles assign mass to particles on a
|
|
per-type basis, using the "mass"_mass.html command, The finite-size
|
|
particle styles assign mass to individual particles on a per-particle
|
|
basis.
|
|
|
|
For the {sphere} style, the particles are spheres and each stores a
|
|
per-particle diameter and mass. If the diameter > 0.0, the particle
|
|
is a finite-size sphere. If the diameter = 0.0, it is a point
|
|
particle.
|
|
|
|
For the {ellipsoid} style, the particles are ellipsoids and each
|
|
stores a flag which indicates whether it is a finite-size ellipsoid or
|
|
a point particle. If it is an ellipsoid, it also stores a shape
|
|
vector with the 3 diamters of the ellipsoid and a quaternion 4-vector
|
|
with its orientation.
|
|
|
|
For the {dipole} style, a point dipole is defined for each point
|
|
particle. Note that if you wish the particles to be finite-size
|
|
spheres as in a Stockmayer potential for a dipolar fluid, so that the
|
|
particles can rotate due to dipole-dipole interactions, then you need
|
|
to use atom_style hybrid sphere dipole, which will assign both a
|
|
diameter and dipole moment to each particle.
|
|
|
|
For the {electron} style, the particles representing electrons are 3d
|
|
Gaussians with a specified position and bandwidth or uncertainty in
|
|
position, which is represented by the eradius = electron size.
|
|
|
|
For the {peri} style, the particles are spherical and each stores a
|
|
per-particle mass and volume.
|
|
|
|
The {meso} style is for smoothed particle hydrodynamics (SPH)
|
|
particles which store a density (rho), energy (e), and heat capacity
|
|
(cv).
|
|
|
|
The {smd} style is for a general formulation of Smooth Particle
|
|
Hydrodynamics. Both fluids and solids can be modeled. Particles
|
|
store the mass and volume of an integration point, a kernel diameter
|
|
used for calculating the field variables (e.g. stress and deformation)
|
|
and a contact radius for calculating repulsive forces which prevent
|
|
individual physical bodies from penetretating each other.
|
|
|
|
The {wavepacket} style is similar to {electron}, but the electrons may
|
|
consist of several Gaussian wave packets, summed up with coefficients
|
|
cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
|
|
particle in LAMMPS, wave packets belonging to the same electron must
|
|
have identical {etag} values.
|
|
|
|
For the {line} style, the particles are idealized line segments and
|
|
each stores a per-particle mass and length and orientation (i.e. the
|
|
end points of the line segment).
|
|
|
|
For the {tri} style, the particles are planar triangles and each
|
|
stores a per-particle mass and size and orientation (i.e. the corner
|
|
points of the triangle).
|
|
|
|
The {template} style allows molecular topolgy (bonds,angles,etc) to be
|
|
defined via a molecule template using the "molecule"_molecule.txt
|
|
command. The template stores one or more molecules with a single copy
|
|
of the topology info (bonds,angles,etc) of each. Individual atoms
|
|
only store a template index and template atom to identify which
|
|
molecule and which atom-within-the-molecule they represent. Using the
|
|
{template} style instead of the {bond}, {angle}, {molecular} styles
|
|
can save memory for systems comprised of a large number of small
|
|
molecules, all of a single type (or small number of types). See the
|
|
paper by Grime and Voth, in "(Grime)"_#Grime, for examples of how this
|
|
can be advantageous for large-scale coarse-grained systems.
|
|
|
|
NOTE: When using the {template} style with a "molecule
|
|
template"_molecule.html that contains multiple molecules, you should
|
|
insure the atom types, bond types, angle_types, etc in all the
|
|
molecules are consistent. E.g. if one molecule represents H2O and
|
|
another CO2, then you probably do not want each molecule file to
|
|
define 2 atom types and a single bond type, because they will conflict
|
|
with each other when a mixture system of H2O and CO2 molecules is
|
|
defined, e.g. by the "read_data"_read_data.html command. Rather the
|
|
H2O molecule should define atom types 1 and 2, and bond type 1. And
|
|
the CO2 molecule should define atom types 3 and 4 (or atom types 3 and
|
|
2 if a single oxygen type is desired), and bond type 2.
|
|
|
|
For the {body} style, the particles are arbitrary bodies with internal
|
|
attributes defined by the "style" of the bodies, which is specified by
|
|
the {bstyle} argument. Body particles can represent complex entities,
|
|
such as surface meshes of discrete points, collections of
|
|
sub-particles, deformable objects, etc.
|
|
|
|
The "body"_body.html doc page descibes the body styles LAMMPS
|
|
currently supports, and provides more details as to the kind of body
|
|
particles they represent. For all styles, each body particle stores
|
|
moments of inertia and a quaternion 4-vector, so that its orientation
|
|
and position can be time integrated due to forces and torques.
|
|
|
|
Note that there may be additional arguments required along with the
|
|
{bstyle} specification, in the atom_style body command. These
|
|
arguments are described in the "body"_body.html doc page.
|
|
|
|
:line
|
|
|
|
Typically, simulations require only a single (non-hybrid) atom style.
|
|
If some atoms in the simulation do not have all the properties defined
|
|
by a particular style, use the simplest style that defines all the
|
|
needed properties by any atom. For example, if some atoms in a
|
|
simulation are charged, but others are not, use the {charge} style.
|
|
If some atoms have bonds, but others do not, use the {bond} style.
|
|
|
|
The only scenario where the {hybrid} style is needed is if there is no
|
|
single style which defines all needed properties of all atoms. For
|
|
example, as mentioned above, if you want dipolar particles which will
|
|
rotate due to torque, you need to use "atom_style hybrid sphere
|
|
dipole". When a hybrid style is used, atoms store and communicate the
|
|
union of all quantities implied by the individual styles.
|
|
|
|
When using the {hybrid} style, you cannot combine the {template} style
|
|
with another molecular style that stores bond,angle,etc info on a
|
|
per-atom basis.
|
|
|
|
LAMMPS can be extended with new atom styles as well as new body
|
|
styles; see "this section"_Section_modify.html.
|
|
|
|
:line
|
|
|
|
Styles with a {cuda} or {kk} 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.
|
|
|
|
Note that other acceleration packages in LAMMPS, specifically the GPU,
|
|
USER-INTEL, USER-OMP, and OPT packages do not use accelerated atom
|
|
styles.
|
|
|
|
The accelerated styles are part of the USER-CUDA and KOKKOS 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.
|
|
|
|
[Restrictions:]
|
|
|
|
This command cannot be used after the simulation box is defined by a
|
|
"read_data"_read_data.html or "create_box"_create_box.html command.
|
|
|
|
The {angle}, {bond}, {full}, {molecular}, and {template} styles are
|
|
part of the MOLECULE package. The {line} and {tri} styles are part
|
|
of the ASPHERE pacakge. The {body} style is part of the BODY package.
|
|
The {dipole} style is part of the DIPOLE package. The {peri} style is
|
|
part of the PERI package for Peridynamics. The {electron} style is
|
|
part of the USER-EFF package for "electronic force
|
|
fields"_pair_eff.html. The {meso} style is part of the USER-SPH
|
|
package for smoothed particle hydrodyanmics (SPH). See "this PDF
|
|
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS. The
|
|
{wavepacket} style is part of the USER-AWPMD package for the
|
|
"antisymmetrized wave packet MD method"_pair_awpmd.html. They are
|
|
only enabled if LAMMPS was built with that package. See the "Making
|
|
LAMMPS"_Section_start.html#start_3 section for more info.
|
|
|
|
[Related commands:]
|
|
|
|
"read_data"_read_data.html, "pair_style"_pair_style.html
|
|
|
|
[Default:]
|
|
|
|
atom_style atomic
|
|
|
|
:line
|
|
|
|
:link(Grime)
|
|
[(Grime)] Grime and Voth, to appear in J Chem Theory & Computation
|
|
(2014).
|