How to create a reservoir as a source of deposited atoms by fix deposit?

As far as I know, by using the fix deposit command, new deposited atoms will be introduced to the model and then these atoms will deposit one by one. But is there anyway to create a reservoir which can releases one atom at a time, by using fix deposit command?
Thanks very much.

You’ll probably want to post this in the LAMMPS forum, not the Materials Project.

Concerning your question, why would you want a reservoir rather than individual particles? What benefit could there be?

The only solution I could think of would be to randomly select a particle in the reservoir near the surface and add some force. If you put this in a loop, you might be able to get what you want, but again, why wouldn’t you just use fix deposit?

As you said, adding force to individual atoms one by one seems similar with fix deposit, so it’s unnecessary. But every time when I just used fix deposit, it always appeared lost atom error after a while, so I wanna try if adding a reservoir will solve this or not.
Or maybe it’s merely the problem of force field file.

If you’re having trouble with fix deposit, then you should ask us to help with that, rather than coming up with a brand new idea with no presence in the literature. We all have some experience with fix deposit, so we’ll have a better idea of how to get that working.

Can you share your input script and data file using the fix deposit method?

Yes, thanks a lot. Actually, I was suggested to do this by my supervisor. Here below is the input file.
jz0c03720_si_002.txt (31.4 KB)
Li111-25x24x80-rg.lmp (51.5 KB)

#timer timeout 0:00:00 every 1
package kokkos
units real

atom_style charge

boundary p p f

lattice bcc 3.51

read_data Li111-25x24x80-rg.lmp group substrate
#mass 1 6.94 # Li
pair_style reaxff NULL checkqeq no
pair_coeff * * jz0c03720_si_002.txt Li

neighbor 4 bin
neigh_modify every 1 delay 0 check yes

timestep 0.5

min_style cg
minimize 1e-8 1e-8 10000 10000

region slab block 0 25 0 24 70 75 units box
#create_atoms 1 region slab
group addatoms region slab

fix 1 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff
fix 2 substrate nvt temp 313.0 313.0 $(100.0*dt)

run 20000
unfix 1
unfix 2

fix 3 all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff
fix 4 substrate nvt temp 313.0 313.0 $(100.0*dt)

fix 5 addatoms nve

fix 6 addatoms deposit 100 1 500 12345 region slab near 3.04 vz -0.004 -0.004

fix 7 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
#thermo_modify temp add

dump 1 all atom 50 dump.deposit.Li

run 50000

A typical setup for deposition onto a substrate, if you check the literature, usually includes a couple layers of immobile atoms at the bottom, a few layers which are thermostatted, then the rest are run with fix nve. Do you know which atoms are lost? I.e., are they usually the deposited atoms, atoms from the top of the substrate, or atoms from the bottom?

1 Like

Thank you very much, it seems like it’s the atoms from the substrate, but I am not sure whether it’s from top of substrate or from the bottom, I can’t tell where it losts atoms in the generated video.

Either way, it looks like your system can’t handle the added energy of the deposited particles. I would definitely recommend that you set up your substrate as I mentioned (though you should obviously be working from the details of a publication) and see if that fixes the issue. If it doesn’t, you can try a few things like

  • reducing the velocity of the deposited particles
  • increasing the amount of time between depositions
  • decreasing the timestep

If none of that works, you may need to validate your forcefield.