Setting forces on one atom_type in a pairwise interaction to zero

Dear lammps-users,

I am running a simulation on a system that has 3 atom_types 1, 2 and 3. The interactions between these 3 atom_types are given by a neural network potential that I previously trained. In addition to this, I would like to add a pairwise interaction between atom_type 1 and 2 that I tabulated and can be read from a file. This can be achieved by using the hybrid/overlay option but my problem is that I want to add this ‘pairwise’ interaction only to atom_type 1 and set the force on atom_type 2 to zero at every step of the simulation. I would really appreciate if someone can point me the relevant documentation in lammps to do this or to previous discussions on similar topic/issues.


This kind of force violates Newton’s third law of motion.

Indeed. That’s exactly what I want to do.
It is simply part of a series of preliminary tests that I would like to perform to see if it can fix the issues with the neural network potential. The reasons is a bit long to explain here but if you would like to have more specific information, I would be glad to provide.


I don’t care to know more. This sounds like you are trying to patch a problem with another problem. Not a good idea, regardless of the specific reasons.

Implementing this kind of force requires a custom pair style written in C++ and you need to be careful with several settings since many defaults assume that Newton’s third law applies. Thus very careful debugging is going to be required.