From eec46d66ec9851912b5d4356c0e9cfd141d18d3a Mon Sep 17 00:00:00 2001
From: sjplimp
atom_style style args-
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 doc page for details + template args = template-ID + template-ID = ID of molecule template specified in a separate molecule command hybrid args = list of one or more sub-styles, each with their args
Examples: @@ -31,7 +33,8 @@ atom_style bond atom_style full atom_style body nparticle 2 10 atom_style hybrid charge bond -atom_style hybrid charge body nparticle 2 5 +atom_style hybrid charge body nparticle 2 5 +atom_style template myMols
Description:
@@ -73,6 +76,7 @@ quantities.All of the styles assign mass to particles on a per-type basis, using -the mass command, except for the finite-size particle -styles. They assign mass to individual particles on a per-particle +
All of the point-particle styles assign mass to particles on a +per-type basis, using the mass 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 @@ -133,6 +137,16 @@ end points of the line segment). 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 +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). +
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, @@ -165,6 +179,10 @@ torque, you would 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.
@@ -173,10 +191,10 @@ styles; see this section.This command cannot be used after the simulation box is defined by a read_data or create_box command.
-The angle, bond, full, and molecular styles are part of the -MOLECULAR 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 +
The angle, bond, full, molecular, and template styles are +part of the MOLECULAR 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. The meso style is part of the USER-SPH diff --git a/doc/atom_style.txt b/doc/atom_style.txt index 44049ee8f1..3350c60744 100644 --- a/doc/atom_style.txt +++ b/doc/atom_style.txt @@ -14,12 +14,14 @@ 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 {sphere} or {tri} or {hybrid} :ul + {molecular} or {peri} or {sphere} or {tri} or {template} or {hybrid} :ul 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 [Examples:] @@ -29,7 +31,8 @@ atom_style bond atom_style full atom_style body nparticle 2 10 atom_style hybrid charge bond -atom_style hybrid charge body nparticle 2 5 :pre +atom_style hybrid charge body nparticle 2 5 +atom_style template myMols :pre [Description:] @@ -70,6 +73,7 @@ quantities. {molecular} | bonds, angles, dihedrals, impropers | uncharged molecules | {peri} | mass, volume | mesocopic Peridynamic models | {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=|) @@ -88,9 +92,9 @@ All of the above styles define point particles, except the {sphere}, 14"_Section_howto.html#howto_14 for an overview of using finite-size particle models with LAMMPS. -All of the styles assign mass to particles on a per-type basis, using -the "mass"_mass.html command, except for the finite-size particle -styles. They assign mass to individual particles on a per-particle +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 @@ -129,6 +133,16 @@ 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). + 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, @@ -161,6 +175,10 @@ torque, you would 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. @@ -169,10 +187,10 @@ styles; see "this section"_Section_modify.html. 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}, and {molecular} styles are part of the -MOLECULAR 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 +The {angle}, {bond}, {full}, {molecular}, and {template} styles are +part of the MOLECULAR 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 diff --git a/doc/read_data.html b/doc/read_data.html index 7db005e662..c743b3c895 100644 --- a/doc/read_data.html +++ b/doc/read_data.html @@ -343,6 +343,7 @@ of analysis.
The molecule ID is a 2nd identifier attached to an atom. Normally, it is a number from 1 to N, identifying which molecule the atom belongs @@ -403,6 +406,16 @@ Additional attributes must be defined for each ellipsoid, line, triangle, or body in the corresponding Ellipsoids, Lines, Triangles, or Bodies section.
+The template-index and template-atom are only defined used by +atom_style template. In this case the +molecule command is used to define a molecule template +which contains one or more molecules. If an atom belongs to one of +those molecules, its template-index and template-atom are both set +to positive integers; if not the values are both 0. The +template-index is which molecule (1 to Nmols) the atom belongs to. +The template-atom is which atom (1 to Natoms) within the molecule +the atom is. +
Some pair styles and fixes and computes that operate on finite-size particles allow for a mixture of finite-size and point particles. See the doc pages of individual commands for details. diff --git a/doc/read_data.txt b/doc/read_data.txt index 8d8aaef3ac..7402acfb48 100644 --- a/doc/read_data.txt +++ b/doc/read_data.txt @@ -320,6 +320,7 @@ meso: atom-ID atom-type rho e cv x y z molecular: atom-ID molecule-ID atom-type x y z peri: atom-ID atom-type volume density x y z sphere: atom-ID atom-type diameter density x y z +template: atom-ID molecule-ID template-index template-atom atom-type x y z tri: atom-ID molecule-ID atom-type triangleflag density x y z wavepacket: atom-ID atom-type charge spin eradius etag cs_re cs_im x y z hybrid: atom-ID atom-type x y z sub-style1 sub-style2 ... :tb(s=:) @@ -335,6 +336,8 @@ ellipsoidflag = 1 for ellipsoidal particles, 0 for point particles lineflag = 1 for line segment particles, 0 for point particles triangleflag = 1 for triangular particles, 0 for point particles bodyflag = 1 for body particles, 0 for point particles +template-index = which molecule within the molecule template the atom is part of +template-atom = which atom within a template molecule the atom is density = density of particle (mass/distance^3 or mass/distance^2 or mass/distance units, depending on dimensionality of particle) mass = mass of particle (mass units) volume = volume of particle (distance^3 units) @@ -358,11 +361,11 @@ The atom-ID is used to identify the atom throughout the simulation and in dump files. Normally, it is a unique value from 1 to Natoms for each atom. Unique values larger than Natoms can be used, but they will cause extra memory to be allocated on each processor, if an atom -map array is used (see the "atom_modify"_atom_modify.html command). -If an atom map array is not used (e.g. an atomic system with no -bonds), and velocities are not assigned in the data file, and you -don't care if unique atom IDs appear in dump files, then the atom-IDs -can all be set to 0. +map array is used, but not if an atom map hash is used; see the +"atom_modify"_atom_modify.html command for details. If an atom map is +not used (e.g. an atomic system with no bonds), and you don't care if +unique atom IDs appear in dump files, then the atom-IDs can all be set +to 0. The molecule ID is a 2nd identifier attached to an atom. Normally, it is a number from 1 to N, identifying which molecule the atom belongs @@ -379,6 +382,16 @@ Additional attributes must be defined for each ellipsoid, line, triangle, or body in the corresponding {Ellipsoids}, {Lines}, {Triangles}, or {Bodies} section. +The {template-index} and {template-atom} are only defined used by +"atom_style template"_atom_style.html. In this case the +"molecule"_molecule.html command is used to define a molecule template +which contains one or more molecules. If an atom belongs to one of +those molecules, its {template-index} and {template-atom} are both set +to positive integers; if not the values are both 0. The +{template-index} is which molecule (1 to Nmols) the atom belongs to. +The {template-atom} is which atom (1 to Natoms) within the molecule +the atom is. + Some pair styles and fixes and computes that operate on finite-size particles allow for a mixture of finite-size and point particles. See the doc pages of individual commands for details.