[lammps-users] Question about one-way force screen

Dear Lammps users,

I am wondering whether we can do the one-way force screen in LAMMPS. Say, I have group A and group B. I need the force acting on group B from all of the atoms in group A, but no force acting on group A from all of the atoms in group B.

I checked with neigh_modify command. But that’s two-way force screen for interatomic interactions. So, does anyone know how to realize what I want?

Your kind reply would be most appreciated.

Best
Yajie Lei

Dear Lammps users,

I am wondering whether we can do the one-way force screen in LAMMPS. Say, I
have group A and group B. I need the force acting on group B from all of the
atoms in group A, but no force acting on group A from all of the atoms in
group B.

you'll have to write a new pair style for that, as pair styles
don't compute the force between particles i and j and j and i
seperately (if both atoms are local to a processor, that is)
but only once and then add the forst to f(i,j) and subtract it
from f(j,i). and in the nonlocal case it is not discriminated
either which type atom i or j are but what is the interaction
type for the pair.

cheers,
   axel.

When you say you need force A on force B, what does that mean?
For diagnostics, for time integration? You could just compute A,B
forces then zero them on A with fix setforce.

Steve

Hi Steve,

Thanks for your reply.

Actually, in my model, I have three primary parts, group A, B and C. A is considered as a NVT ensemble. Group B is combined with C as a rigid body and have time integration, but not included in the ensemble. So, I guess I could not put fixed zero force on B. Otherwise, how can B move along with C?

Certainly, no need to count the interaction between B and C. Regarding the role of group B, ideally it can be a massless repulsive wall associated with group C when group C is approaching group A. However, I don’t want the force from group A acting on the wall (group B). Only group A can feel the repulsive force from the wall so that atoms in A won’t penetrate the wall. A and C have the normal interatomic interaction.

So that’s what I want. Do you have any good idea to treat the repulsive wall? Or if you are still confused about my model, could you please let me know? Your kind help would be most appreciated.

Best regards
Yajie Lei

Hi Steve,

Thanks for your reply.

Actually, in my model, I have three primary parts, group A, B and C. A is
considered as a NVT ensemble. Group B is combined with C as a rigid body and
have time integration, but not included in the ensemble. So, I guess I could
not put fixed zero force on B. Otherwise, how can B move along with C?

that sounds very much like a setup that i just discussed with a
colleague over the last days (only that he wanted a different
shape of object to have this kind of interaction).

in my opinion, the best way to implement this would be to write
a "fix". the fix operates on one group (A atoms) and computes its
forces based on the position of C. have a look at, e.g., "fix spring"
with the couple option wich applies a spring force on one group
based on the position of another group.

Certainly, no need to count the interaction between B and C. Regarding the
role of group B, ideally it can be a massless repulsive wall associated with
group C when group C is approaching group A. However, I don't want the force
from group A acting on the wall (group B). Only group A can feel the
repulsive force from the wall so that atoms in A won't penetrate the wall. A
and C have the normal interatomic interaction.

if it is a wall you want, you could look into programming a variation
of "fix wall". that can currently already be moving at constant
velocity, so you'd just compute its position based on the position
of the C atoms. if you only want a repulsive wall, you have choose
the cutoff so that it is in the minimum of the potential.

cheers,
   axel.

If B + C is a rigid body, integrated with fix rigid, you can zero forces
on B atoms and they will still move if the C atoms have forces. If you
never want B to move then don't make it part of the rigid body and
set the forces on it (and its velocity) to 0, or just don't integrate it.

Steve