Syntax:
fix ID group-ID deposit N type M seed keyword values ...
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
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
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 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 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 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 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 command, e.g. Angstroms for units = real or metal. A lattice value means the distance units are in lattice spacings. The lattice 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. 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 options are relevant to this fix. No quantities calculated by this fix can be output by the thermo_style custom command. No parameter of this fix can be used with the start/stop keywords of the run command. This fix is not invoked during energy minimization.
Restrictions: none
Related commands:
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.