"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

displace_atoms command :h3

[Syntax:]

displace_atoms group-ID style args keyword value ... :pre

group-ID = ID of group of atoms to displace :ulb,l
style = {move} or {ramp} or {random} :l
  {move} args = delx dely delz
    delx,dely,delz = distance to displace in each dimension (distance units)
  {ramp} args = ddim dlo dhi dim clo chi
    ddim = {x} or {y} or {z}
    dlo,dhi = displacement distance between dlo and dhi (distance units)
    dim = {x} or {y} or {z}
    clo,chi = lower and upper bound of domain to displace (distance units)
  {random} args = dx dy dz seed
    dx,dy,dz = random displacement magnitude in each dimension (distance units)
    seed = random # seed (positive integer) :pre
zero or more keyword/value pairs may be appended :l
  keyword = {units}
    value = {box} or {lattice} :pre
:ule

[Examples:]

displace_atoms top move 0 -5 0 units box
displace_atoms flow ramp x 0.0 5.0 y 2.0 20.5 :pre

[Description:]

Displace a group of atoms.  This can be used to move atoms a large
distance before beginning a simulation or to randomize atoms initially
on a lattice.  For example, in a shear simulation, an initial strain
can be imposed on the system.  Or two groups of atoms can be brought
into closer proximity.

The {move} style displaces the group of atoms by the specified 3d
distance.

The {ramp} style displaces atoms a variable amount in one dimension
depending on the atom's coordinate in a (possibly) different
dimension.  For example, the second example command displaces atoms in
the x-direction an amount between 0.0 and 5.0 distance units.  Each
atom's displacement depends on the fractional distance its y
coordinate is between 2.0 and 20.5.  Atoms with y-coordinates outside
those bounds will be moved the minimum (0.0) or maximum (5.0) amount.

The {random} style independently moves each atom in the group by a
random displacement, uniformly sampled from a value between -dx and
+dx in the x dimension, and similarly for y and z.  Random numbers are
used in such a way that the displacement of a particular atom is the
same, regardless of how many processors are being used.

Distance units for displacement are determined by the setting of {box}
or {lattice} for the {units} keyword.  {Box} means distance units as
defined by the "units"_units.html command - e.g. Angstroms for {real}
units.  {Lattice} means distance units are in lattice spacings.  The
"lattice"_lattice.html command must have been previously used to
define the lattice spacing.

:line

Care should be taken not to move atoms on top of other atoms.  After
the move, atoms are remapped into the periodic simulation box if
needed.

Atoms can be moved arbitrarily long distances by this command.  If the
simulation box is non-periodic, this can change its size or shape.
This is not a problem, except that the mapping of processors to the
simulation box is not changed by this command from its initial 3d
configuration; see the "processors"_processors.html command.  Thus, if
the box size or shape changes dramatically, the simulation may not be
as well load-balanced (atoms per processor) as the initial mapping
tried to achieve.

[Restrictions:]

This command requires inter-processor communication to migrate atoms
once they have been displaced.  This means that your system must be
ready to perform a simulation before using this command (force fields
are setup, atom masses are set, etc).

[Related commands:]

"lattice"_lattice.html

[Default:]

The option defaults are units = lattice.
