Neighbor command for kMC

I’m trying a kMC simulation to understand interdiffusion around Pd/V interface. I create an interface model whose size is about 60 x 60 x 120 A^3. I want to swap atoms neighbors, so I use “neighbor” command. However, atoms at the center of the models were swapped. It seems likely that “neighbor” command doesn’t work.
Could anyone tell me where the problem is?

---------------input file ---------------------

swap

units metal
dimension 3
boundary p p p
atom_modify map array sort 0 0.0
atom_style atomic
read_data data_000.lmp
variable e equal pe

shell "echo variable rand equal {RANDOM} > rand" include rand variable r equal round(random(18347,434572049,{rand}))

pair_style meam/c
pair_coeff * * …/…/…/library/library.meam Pd V …/…/…/library/PdV.meam Pd V

neighbor 0.0 bin
neigh_modify every 2 delay 2 check yes

variable t equal 873
fix m1 all atom/swap 1 1 $r $t types 1 2

thermo 1
thermo_style custom step temp press pxx pyy pzz lx ly lz etotal pe ke f_m1[1] f_m1[2]
dump 1 all cfg 1 snapshot_*.cfg mass type xs ys zs fx fy fz
dump_modify 1 sort id element Pd V pad 8
run 1000

You didn’t study the documentation carefully enough.
Fix atom/swap does what its documentation says it does and that is what you are observing.
Adding a neighbor command doesn’t change that. As its documentation says, using neighbor 0.0 bin will change the neighbor list skin distance from the default value to 0.0 and nothing else.

Thank you for replying.

Is there another available command for kMC simulations?

I don’t think so. LAMMPS is a molecular dynamics software and not a kMC code.

Thank you