lammps/doc/fix_deposit.txt

156 lines
7.2 KiB
Plaintext
Raw Normal View History

"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)
{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
[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-perioidic 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.
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.
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, thermo output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html. This means you must be careful when restarting a
deposition simulation, when the restart file was written in the middle
of the deposition operation. Specifically, you should use a new fix
deposit command in the input script for the restarted simulation that
continues the operation. You will need to adjust the arguments of the
original fix deposit command to do this.
Also note that because the state of the random number generator is not
saved in restart files, you cannot do "exact" restarts with this fix,
where the simulation continues on the same as if no restart had taken
place. However, in a statistical sense, a restarted simulation should
produce the same behavior if you adjust the fix deposit parameters
appropriately.
None of the "fix_modify"_fix_modify.html options are relevant to this
fix. No quantities calculated by this fix can be output by the
"thermo_style custom"_thermo_style.html command. 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:] none
[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.