removing momenta during the run


I am trying to simulate the radiation knock in a material. Essentially, it produces a cascade of defects. For identifying the defect micro-structure, it is required to compare the initial atomic configuration with the final atomic configuration. In general, it is seen that the number of displaced atoms increases with time, reaches a maximum (known as thermal spike) and then again decreases due to recombination and converges to a particular value.

Here, I am facing a strange problem. In my simulation, I have seen that upto ~50 ps, the above mentioned phenomenon is happening as expected. After that, the number of displaced atoms gradually increases and after 150 ps, almost half of the total atoms are seen to be displaced considerably such that the defect detection code identifies them as defects too. But, this is not correct !! This is not physical too !!!

I have seen the dump file using VMD. It is seen that the atoms at the annealing phase are not only ‘vibrating’ about their mean position but also ‘collectively’ moving in a definite direction, as if they had some momentum.

I should mention here that the cascade simulation has three distinct phases (collision, spke and annealing) and I am using three different ‘timestep’ in each phase. For each phase, I am using ‘nve’ and then unfixing it.

Is it possible to remove total momenta when switching from equilibration to production and occasionally remove them during the run too ?

If yes, how to do that in LAMMPS ?

The high energy atom can certainly add momentum to
the system, or said another way, your system is not
at zero momentum to start.

You can look at the fix momentum and velocity zero