[lammps-users] Reactive systems simulation?

Does anybody know the way to change atom types from 1 and 2 to 3 and 4
when 1 and 2 types get closer than some R distance?

I’ve read this
paper and they seem to be doing what I need but there is no source code :frowning:



You can send Aidan an email and ask him about what he did (athomps at
For the example you give, I would write a fix that tested distances
(via the neighbor list) and changed the atom types.


Thanks a lot!

Do you know if I can find any example fix scripts with similar functionality
(i.e. going through all the atoms and performing some operations on their

Best regards,


Hi Oleg,

This isn't exactly what you want, but if you look at any of the
pair code you'll see a framework for iterating through all of a
processors atoms, getting the neighbor list and computing a pairwise
interaction. But you could use this same code structure in a fix.


Fix rdf loops over the neighbor lists to compute g(r)


Dear all,

I have a question about the kinetic energy calculation.
Lammps has in update.cpp :

force->mvv2e = 48.88821 * 48.88821 ~ 2390

Should it be:

force->mvv2e = NA*AU*(10^3)/4 = 2500 ?

I must be missing something really simple but when I calculate
the kinetic energy by hand I overestimate it somehow by
around 1.166 while for all the other energies I get exact values.

Thank you in advance for your time,


Here are my notes on the derivation of mvv2e for real units,
c is the conversion factor from mv^2 units to energy units

mv^2 is g/mole Ang^2/fmsec^2
eng = Kcal/mole

mv^2 (cgs) = mv^2 (mole / 6.022E23 atoms) (cm^2 / E16 Ang^2)
            (E30 fmsec^2 / sec^2)
eng (cgs) = eng (4.184E10 erg / Kcal) (mole / 6.022E23 atoms)

c = 2390.057 = 48.88821 * 48.888821

If LAMMPS was computing the KE wrong, it wouldn't conserve


Dear Steve,

I found my mistake. It was not the units I had wrong
but the degrees of freedom. I forgot to take one degree
of freedom out and that is the reason I was
finding the energy higher. I said the Kinetic energy is
1.166 higher because I had 7 test atoms
and so 7/6=1.166 overestimation of the kin energy.

I am sorry for taking your time.
Thank you for your help,



In my system, there are two very different particles by size. I think I
should use "multi" as the neighbor style. When I put
neighbor 0.3 multi
in my input script file, LAMMPS always complain that "Illegal neighbor
command". Could anyone tell me how to use "multi" style in "neighbor"

Thank you!


Are you running the most current version of LAMMPS?
In the set() routine of neighbor.cpp you should see a reference
to "multi", else you will get the error message you indicate.