forked from lijiext/lammps
255 lines
13 KiB
HTML
255 lines
13 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>fix deposit command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID deposit N type M seed keyword values ...
|
|
</PRE>
|
|
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
|
|
|
<LI>deposit = style name of this fix command
|
|
|
|
<LI>N = # of atoms or molecules to insert
|
|
|
|
<LI>type = atom type to assign to inserted atoms (offset for moleclue insertion)
|
|
|
|
<LI>M = insert a single atom or molecule every M steps
|
|
|
|
<LI>seed = random # seed (positive integer)
|
|
|
|
<LI>one or more keyword/value pairs may be appended to args
|
|
|
|
<LI>keyword = <I>region</I> or <I>id</I> or <I>global</I> or <I>local</I> or <I>near</I> or <I>attempt</I> or <I>rate</I> or <I>vx</I> or <I>vy</I> or <I>vz</I> or <I>mol</I> or <I>rigid</I> or <I>shake</I> or <I>units</I>
|
|
|
|
<PRE> <I>region</I> value = region-ID
|
|
region-ID = ID of region to use as insertion volume
|
|
<I>id</I> value = <I>max</I> or <I>next</I>
|
|
max = atom ID for new atom(s) is max ID of all current atoms plus one
|
|
next = atom ID for new atom(s) increments by one for every deposition
|
|
<I>global</I> values = lo hi
|
|
lo,hi = put new atom/molecule a distance lo-hi above all other atoms (distance units)
|
|
<I>local</I> values = lo hi delta
|
|
lo,hi = put new atom/molecule a distance lo-hi above any nearby atom beneath it (distance units)
|
|
delta = lateral distance within which a neighbor is considered "nearby" (distance units)
|
|
<I>near</I> value = R
|
|
R = only insert atom/molecule if further than R from existing particles (distance units)
|
|
<I>attempt</I> value = Q
|
|
Q = attempt a single insertion up to Q times
|
|
<I>rate</I> value = V
|
|
V = z velocity (y in 2d) at which insertion volume moves (velocity units)
|
|
<I>vx</I> values = vxlo vxhi
|
|
vxlo,vxhi = range of x velocities for inserted atom/molecule (velocity units)
|
|
<I>vy</I> values = vylo vyhi
|
|
vylo,vyhi = range of y velocities for inserted atom/molecule (velocity units)
|
|
<I>vz</I> values = vzlo vzhi
|
|
vzlo,vzhi = range of z velocities for inserted atom/molecule (velocity units)
|
|
<I>target</I> values = tx ty tz
|
|
tx,ty,tz = location of target point (distance units)
|
|
<I>mol</I> value = template-ID
|
|
template-ID = ID of molecule template specified in a separate <A HREF = "molecule.html">molecule</A> command
|
|
<I>rigid</I> value = fix-ID
|
|
fix-ID = ID of <A HREF = "fix_rigid.html">fix rigid/small</A> command
|
|
<I>shake</I> value = fix-ID
|
|
fix-ID = ID of <A HREF = "fix_shake.html">fix shake</A> command
|
|
<I>units</I> value = <I>lattice</I> or <I>box</I>
|
|
lattice = the geometry is defined in lattice units
|
|
box = the geometry is defined in simulation box units
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>fix 3 all deposit 1000 2 100 29494 region myblock local 1.0 1.0 1.0 units box
|
|
fix 2 newatoms deposit 10000 1 500 12345 region disk near 2.0 vz -1.0 -0.8
|
|
fix 4 sputter deposit 1000 2 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice
|
|
</PRE>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>Insert a single atom or molecule into the simulation domain every M
|
|
timesteps until N atoms or molecules have been inserted. This is
|
|
useful for simulating deposition onto a surface. For the remainder of
|
|
this doc page, a single inserted atom or molecule is referred to as a
|
|
"particle".
|
|
</P>
|
|
<P>If inserted particles are individual atoms, they are assigned the
|
|
specified atom type. If they are molecules, the type of each atom in
|
|
the inserted molecule is specified in the file read by the
|
|
<A HREF = "molecule.html">molecule</A> command, and those values are added to the
|
|
specified atom type. E.g. if <I>type</I> = 2, and the file specifies atom
|
|
types 1,2,3, then the inserted molecule will have atom types 3,4,5.
|
|
</P>
|
|
<P>All atoms in the inserted particle are assigned to two groups: the
|
|
default group "all" and the group specified in the fix deposit command
|
|
(which can also be "all").
|
|
</P>
|
|
<P>If you are computing temperature values which include inserted
|
|
particles, you will want to use the
|
|
<A HREF = "compute_modify.html">compute_modify</A> dynamic option, which insures the
|
|
current number of atoms is used as a normalizing factor each time the
|
|
temperature is computed.
|
|
</P>
|
|
<P>Care must be taken that inserted particles are not too near existing
|
|
atoms, using the options described below. When inserting particles
|
|
above a surface in a non-periodic box (see the
|
|
<A HREF = "boundary.html">boundary</A> command), the possibility of a particle
|
|
escaping the surface and flying upward should be considered, since the
|
|
particle may be lost or the box size may grow infinitely large. A
|
|
<A HREF = "fix_wall_reflect.html">fix wall/reflect</A> command can be used to
|
|
prevent this behavior. Note that if a shrink-wrap boundary is used,
|
|
it is OK to insert the new particle outside the box, however the box
|
|
will immediately be expanded to include the new particle. When
|
|
simulating a sputtering experiment it is probably more realistic to
|
|
ignore those atoms using the <A HREF = "thermo_modify.html">thermo_modify</A>
|
|
command with the <I>lost ignore</I> option and a fixed
|
|
<A HREF = "boundary.html">boundary</A>.
|
|
</P>
|
|
<P>The fix deposit command must use the <I>region</I> keyword to define an
|
|
insertion volume. The specified region must have been previously
|
|
defined with a <A HREF = "region.html">region</A> command. It must be defined with
|
|
side = <I>in</I>.
|
|
</P>
|
|
<P>Individual atoms are inserted, unless the <I>mol</I> keyword is used. It
|
|
specifies a <I>template-ID</I> previously defined using the
|
|
<A HREF = "molecule.html">molecule</A> command, which reads a file that defines the
|
|
molecule. The coordinates, atom types, charges, etc, as well as any
|
|
bond/angle/etc and special neighbor information for the molecule can
|
|
be specified in the molecule file. See the <A HREF = "molecule.html">molecule</A>
|
|
command for details. The only settings required to be in this file
|
|
are the coordinates and types of atoms in the molecule.
|
|
</P>
|
|
<P>If you wish to insert molecules via the <I>mol</I> keyword, that will be
|
|
treated as rigid bodies, use the <I>rigid</I> keyword, specifying as its
|
|
value the ID of a separate <A HREF = "fix_rigid_small.html">fix rigid/small</A>
|
|
command which also appears in your input script.
|
|
</P>
|
|
<P>If you wish to insert molecules via the <I>mol</I> keyword, that will have
|
|
their bonds or angles constrained via SHAKE, use the <I>shake</I> keyword,
|
|
specifying as its value the ID of a separate <A HREF = "fix_shake.html">fix
|
|
shake</A> command which also appears in your input script.
|
|
</P>
|
|
<P>Each timestep a particle is inserted, the coordinates for its atoms
|
|
are chosen as follows. For insertion of individual atoms, the
|
|
"position" referred to in the following description is the coordinate
|
|
of the atom. For insertion of molecule, the "position<A HREF = "molecule.html"> is the
|
|
geometric center of the molecule; see the (molecule</A> doc
|
|
page for details. A random rotation of the molecule around its center
|
|
point is performed, which determines the coordinates all the
|
|
individual atoms.
|
|
</P>
|
|
<P>A random position within the region insertion volume is generated. If
|
|
neither the <I>global</I> or <I>local</I> keyword is used, the random position
|
|
is the trial position. If the <I>global</I> keyword is used, the random
|
|
x,y values are used, but the z position of the new particle is set
|
|
above the highest current atom in the simulation by a distance
|
|
randomly chosen between lo/hi. (For a 2d simulation, this is done for
|
|
the y position.) If the <I>local</I> keyword is used, the z position is
|
|
set a distance between lo/hi above the highest current atom in the
|
|
simulation that is "nearby" the chosen x,y position. In this context,
|
|
"nearby" means the lateral distance (in x,y) between the new and old
|
|
particles is less than the <I>delta</I> setting.
|
|
</P>
|
|
<P>Once a trial x,y,z position has been selected, the insertion is only
|
|
performed if no current atom in the simulation is within a distance R
|
|
of any atom in the new particle, including the effect of periodic
|
|
boundary conditions if applicable. Note that the default value for R
|
|
is 0.0, which will allow atoms to strongly overlap if you are
|
|
inserting where other atoms are present. This distance test is
|
|
performed independently for each atom in an inserted molecule, based
|
|
on the randomly rotated configuration of the molecule. If this test
|
|
fails, a new random position within the insertion volume is chosen and
|
|
another trial is made. Up to Q attempts are made. If the particle is
|
|
not successfully inserted, LAMMPS prints a warning message.
|
|
</P>
|
|
<P>The <I>rate</I> option moves the insertion volume in the z direction (3d)
|
|
or y direction (2d). This enables particles to be inserted from a
|
|
successively higher height over time. Note that this parameter is
|
|
ignored if the <I>global</I> or <I>local</I> keywords are used, since those
|
|
options choose a z-coordinate for insertion independently.
|
|
</P>
|
|
<P>The vx, vy, and vz components of velocity for the inserted particle
|
|
are set using the values specified for the <I>vx</I>, <I>vy</I>, and <I>vz</I>
|
|
keywords. Note that normally, new particles should be a assigned a
|
|
negative vertical velocity so that they move towards the surface. For
|
|
molecules, the same velocity is given to every particle (no rotation
|
|
or bond vibration).
|
|
</P>
|
|
<P>If the <I>target</I> option is used, the velocity vector of the inserted
|
|
particle is changed so that it points from the insertion position
|
|
towards the specified target point. The magnitude of the velocity is
|
|
unchanged. This can be useful, for example, for simulating a
|
|
sputtering process. E.g. the target point can be far away, so that
|
|
all incident particles strike the surface as if they are in an
|
|
incident beam of particles at a prescribed angle.
|
|
</P>
|
|
<P>The <I>id</I> keyword determines how atom IDs and molecule IDs are assigned
|
|
to newly deposited particles. Molecule IDs are only assigned if
|
|
molecules are being inserted. For the <I>max</I> setting, the atom and
|
|
molecule IDs of all current atoms are checked. Atoms in the new
|
|
particle are assigned IDs starting with the current maximum plus one.
|
|
If a molecule is inserted it is assigned an ID = current maximum plus
|
|
one. This means that if particles leave the system, the new IDs may
|
|
replace the lost ones. For the <I>next</I> setting, the maximum ID of any
|
|
atom and molecule is stored at the time the fix is defined. Each time
|
|
a new particle is added, this value is incremented to assign IDs to
|
|
the new atom(s) or molecule. Thus atom and molecule IDs for deposited
|
|
particles will be consecutive even if particles leave the system over
|
|
time.
|
|
</P>
|
|
<P>The <I>units</I> keyword determines the meaning of the distance units used
|
|
for the other deposition parameters. A <I>box</I> value selects standard
|
|
distance units as defined by the <A HREF = "units.html">units</A> command,
|
|
e.g. Angstroms for units = real or metal. A <I>lattice</I> value means the
|
|
distance units are in lattice spacings. The <A HREF = "lattice.html">lattice</A>
|
|
command must have been previously used to define the lattice spacing.
|
|
Note that the units choice affects all the keyword values that have
|
|
units of distance or velocity.
|
|
</P>
|
|
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
|
</P>
|
|
<P>This fix writes the state of the deposition to <A HREF = "restart.html">binary restart
|
|
files</A>. This includes information about how many
|
|
particles have been depositied, the random number generator seed, the
|
|
next timestep for deposition, etc. See the
|
|
<A HREF = "read_restart.html">read_restart</A> command for info on how to re-specify
|
|
a fix in an input script that reads a restart file, so that the
|
|
operation of the fix continues in an uninterrupted fashion.
|
|
</P>
|
|
<P>None of the <A HREF = "fix_modify.html">fix_modify</A> options are relevant to this
|
|
fix. No global or per-atom quantities are stored by this fix for
|
|
access by various <A HREF = "Section_howto.html#howto_15">output commands</A>. No
|
|
parameter of this fix can be used with the <I>start/stop</I> keywords of
|
|
the <A HREF = "run.html">run</A> command. This fix is not invoked during <A HREF = "minimize.html">energy
|
|
minimization</A>.
|
|
</P>
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>This fix is part of the MISC package. It is only enabled if LAMMPS
|
|
was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P>The specified insertion region cannot be a "dynamic" region, as
|
|
defined by the <A HREF = "region.html">region</A> command.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "fix_pour.html">fix_pour</A>, <A HREF = "region.html">region</A>
|
|
</P>
|
|
<P><B>Default:</B>
|
|
</P>
|
|
<P>Insertions are performed for individual atoms, i.e. no <I>mol</I> setting
|
|
is defined. Additional option defaults are id = max, delta = 0.0,
|
|
near = 0.0, attempt = 10, rate = 0.0, vx = 0.0 0.0, vy = 0.0 0.0, vz =
|
|
0.0 0.0, and units = lattice.
|
|
</P>
|
|
</HTML>
|