fix_spring contradicting Newton's third law?

Hello,
I’ve been having really odd issues with “fix_spring” command. I used the “couple” option to connect a single atom to another rigid body group of atoms. It seems like the forces dumped out from each group are way off by at least two orders of magnitude.
I explicitly dumped the force of the single atom which does not have any other external interactions. To double check, the global vector associated with the fix is also calculated. Turns out that the former quantity is much larger. Any suggestions on things I might overlooked? Thank you so much!

Are you normalizing one of the forces by N = # of atoms in the simulation?
Is the spring force consistent with the spring energy, which is the scalar
output of the fix? Are the force directions opposite?

Steve

Hi Steve,
Thanks for the suggestions!
The first possibility you mentioned is actually right, and the force directions are opposite too.
But weird thing is to match the two forces, I have to multiply the # of all the atoms in simulation (rather than that group of atoms involved in the fix). What also confuses me is that according to LAMMPS manual, fix_spring “computes global 4-vector” (instead of “per-atom”). Am I misunderstanding the meaning of “global”/“per-atom”? Thanks!

It's nothing to do with global vs per-atom. It has
to do with whether the quantity the fix produces is
extensive or intensive and what thermo output option
(norm or not) you have selected. In either case
the normalization factor is by N = # of atoms in the system.

Steve

I'll just add that each fix documents whether
it produces intensive vs extensive output.

Steve