Fix deposit

I would like to deposit atoms on a substrate from 25-fold lattice height toward the substrate surface with an incident angle of 0◦ distance. I used fix deposit but i don’t know how to add angle and distance.
Any help!
Best regard

A quick look at the doc indicates that there are some options like vx to assign velocity to atoms, as well as region option to choose an insertion region… Did you look at all at those?

Thank you for you reply!
Another question: I used : fix 6 g_depo deposit 8000 2 2500 67546 region r_adatom vz -15.29 -15.29 units box
fix 7 g_depo deposit 5000 1 4000 69546 region r_adatom vz -11.03 -11.03 units box
fix 8 g_depo deposit 5000 3 4000 70546 region r_adatom vz -6.9 -6.9 units box
I see that it deposits atoms after 1000 step while it must be deposited after 2500 step:
log.lammps (4.5 KB)

Try writing a data file after using run 0 or run 1. You might see that the deposit starts on the first timestep, not the 2500th.

I used run 1 it deposits 3 atoms
how i can solve this problem?

there is no problem. this is what is supposed to happen.

In this command :fix 6 g_depo deposit 8000 2 2500 67546 region r_adatom vz -15.29 -15.29 units box
the deposition begins after 2500 steps no first step

Minimal example input:

units metal
region box block 0 10 0 10 0 10
create_box 2 box
pair_style zero 10.0
pair_coeff * *
mass * 1.0

region r_adatom block 0 10 0 10 0 5
group g_depo type 2
fix 6 g_depo deposit 8000 2 2500 67546 region r_adatom vz -15.29 -15.29 units box

thermo_style custom step atoms
thermo 1

run 10 post no

Corresponding output:

  update: every = 1 steps, delay = 10 steps, check = yes
  max neighbors/atom: 2000, page size: 100000
  master list distance cutoff = 12
  ghost atom cutoff = 12
  binsize = 6, bins = 2 2 2
  1 neighbor lists, perpetual/occasional/extra = 1 0 0
  (1) pair zero, perpetual
      attributes: half, newton on
      pair build: half/bin/atomonly/newton
      stencil: half/bin/3d
      bin: standard
Setting up Verlet run ...
  Unit style    : metal
  Current step  : 0
  Time step     : 0.001
Per MPI rank memory allocation (min/avg/max) = 0.4561 | 0.4561 | 0.4561 Mbytes
   Step        Atoms   
         0           0 
         1           1 
         2           1 
         3           1 
         4           1 
         5           1 
         6           1 
         7           1 
         8           1 
         9           1 
        10           1 
Loop time of 0.000221016 on 1 procs for 10 steps with 1 atoms

Total wall time: 0:00:00


Thank you!
How we can introduce atoms from a distance (d) from the substrate.

What about defining a thin region at a distance d from the substrate, and use the region for the deposit?

My objective is to simulated the growth of AlGaN by periodically injecting an Al atom, a Ga atom or a N atom from a 25-fold lattice height toward the AlN substrate surface .

That is quite unphysical. You cannot really insert particles in a real environment from thin air. So there is going to be some reservoir which translates into a region in a simulation. Please keep in mind that the length scales in simulations are much reduced in comparison to almost everything else, so just take some extra time and give it some extra space, and things will be easier and work sufficiently well.

What I have seen from your questions and previous input examples, it looks like you are seriously over-engineering and over-designing things and worry about items that are of little relevance, but instead do not pay attention to much more crucial bits of you model and simulation. That is going to spell trouble for you down the road and force you to make many unexpected errors. This is compounded by the fact that don’t observe very well, which is a massively important skill in research. So before worrying about minor details of the simulation, you should be worry more about these two aspects.

You can do this with a loop:

set up your regions, groups, and fixes and perform a run so that you deposit about one layer worth of material. Then delete and redefine everything for the next layer. Rinse and repeat until you have the thickness you want. Make sure to factor in some suitable safety margins.