forked from lijiext/lammps
163 lines
7.5 KiB
Plaintext
163 lines
7.5 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
|
|
|
|
fix deposit command :h3
|
|
|
|
[Syntax:]
|
|
|
|
fix ID group-ID deposit N type M seed keyword values ... :pre
|
|
|
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
|
deposit = style name of this fix command :l
|
|
N = # of atoms to insert :l
|
|
type = atom type to assign to inserted atoms :l
|
|
M = insert a single particle every M steps :l
|
|
seed = random # seed (positive integer) :l
|
|
one or more keyword/value pairs may be appended to args :l
|
|
keyword = {region} or {global} or {local} or {near} or {attempt} or {rate} or {vx} or {vy} or {vz} or {units} :l
|
|
{region} value = region-ID
|
|
region-ID = ID of region to use as insertion volume
|
|
{global} values = lo hi
|
|
lo,hi = put new particle a distance lo-hi above all other particles (distance units)
|
|
{local} values = lo hi delta
|
|
lo,hi = put new particle a distance lo-hi above any nearby particle beneath it (distance units)
|
|
delta = lateral distance within which a neighbor is considered "nearby" (distance units)
|
|
{near} value = R
|
|
R = only insert particle if further than R from existing particles (distance units)
|
|
{attempt} value = Q
|
|
Q = attempt a single insertion up to Q times
|
|
{rate} value = V
|
|
V = z velocity (y in 2d) at which insertion volume moves (velocity units)
|
|
{vx} values = vxlo vxhi
|
|
vxlo,vxhi = range of x velocities for inserted particle (velocity units)
|
|
{vy} values = vylo vyhi
|
|
vylo,vyhi = range of y velocities for inserted particle (velocity units)
|
|
{vz} values = vzlo vzhi
|
|
vzlo,vzhi = range of z velocities for inserted particle (velocity units)
|
|
{target} values = tx ty tz
|
|
tx,ty,tz = location of sputtering target (distance units)
|
|
{units} value = {lattice} or {box}
|
|
lattice = the geometry is defined in lattice units
|
|
box = the geometry is defined in simulation box units :pre
|
|
:ule
|
|
|
|
[Examples:]
|
|
|
|
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 :pre
|
|
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
|
|
|
|
[Description:]
|
|
|
|
Insert a single particle into the simulation domain every M timesteps
|
|
until N particles have been inserted. This is useful for simulating
|
|
the deposition of particles onto a surface.
|
|
|
|
Inserted particles have the specified atom type and are assigned to
|
|
two groups: the default group "all" and the group specified in the fix
|
|
deposit command (which can also be "all").
|
|
|
|
If you are computing temperature values which include inserted
|
|
particles, you will want to use the "compute_modify"_compute_modify.html
|
|
dynamic option, which insures the current number of atoms is used as a
|
|
normalizing factor each time temperature is computed.
|
|
|
|
Care must be taken that inserted particles are not too near existing
|
|
particles, using the options described below. When inserting
|
|
particles above a surface in a non-periodic box (see the
|
|
"boundary"_boundary.html 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
|
|
"fix wall/reflect"_fix_wall_reflect.html 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 "thermo_modify"_thermo_modify.html
|
|
command with the {lost ignore} option and a fixed "boundary"_boundary.html.
|
|
|
|
This command must use the {region} keyword to define an insertion
|
|
volume. The specified region must have been previously defined with a
|
|
"region"_region.html command. It must be defined with side = {in}.
|
|
|
|
Each timestep a particle is to be inserted, its coordinates are chosen
|
|
as follows. A random position within the insertion volume is
|
|
generated. If neither the {global} or {local} keyword is used, that
|
|
is the trial position. If the {global} 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 {local} 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 delta parameter.
|
|
|
|
Once a trial x,y,z location has been computed, the insertion is only
|
|
performed if no current particle in the simulation is within a
|
|
distance R of the new particle. 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 an atom is not successfully
|
|
deposited, LAMMPS prints a warning message.
|
|
|
|
The {rate} 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 {global} or {local} keywords are used, since those
|
|
options choose a z-coordinate for insertion independently.
|
|
|
|
The vx, vy, and vz components of velocity for the inserted particle
|
|
are set using the values specified for the {vx}, {vy}, and {vz}
|
|
keywords. Note that normally, new particles should be a assigned a
|
|
negative vertical velocity so that they move towards the surface.
|
|
|
|
In case the {target} option is used, the velocity vector of the
|
|
inserted particle will be changed in a way so that it would pass
|
|
through the specified coordinate. This allows convenient simulation
|
|
of a sputtering process.
|
|
|
|
The {units} keyword determines the meaning of the distance units used
|
|
for the other deposition parameters. A {box} value selects standard
|
|
distance units as defined by the "units"_units.html command,
|
|
e.g. Angstroms for units = real or metal. A {lattice} value means the
|
|
distance units are in lattice spacings. The "lattice"_lattice.html
|
|
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.
|
|
|
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
|
|
|
This fix writes the state of the deposition to "binary restart
|
|
files"_restart.html. This includes information about how many atoms
|
|
have been depositied, the random number generator seed, the next
|
|
timestep for deposition, etc. See the
|
|
"read_restart"_read_restart.html 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.
|
|
|
|
None of the "fix_modify"_fix_modify.html options are relevant to this
|
|
fix. No global or per-atom quantities are stored by this fix for
|
|
access by various "output commands"_Section_howto.html#howto_15. No
|
|
parameter of this fix can be used with the {start/stop} keywords of
|
|
the "run"_run.html command. This fix is not invoked during "energy
|
|
minimization"_minimize.html.
|
|
|
|
[Restrictions:]
|
|
|
|
The specified insertion region cannot be a "dynamic" region, as
|
|
defined by the "region"_region.html command.
|
|
|
|
[Related commands:]
|
|
|
|
"fix_pour"_fix_pour.html, "region"_region.html
|
|
|
|
[Default:]
|
|
|
|
The option defaults are 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.
|