Greetings LAMMPS users and developers,
I have a system in which I have a chain of atoms interacting through normal
bonds, angles, and dihedrals. Additionally, the interactions are such that
atoms 1-3, 1-4, 1-5, and potentially up to (but not necessarily
all-inclusive) 1-8 neighbors along the chain are also interacting through
another bonded-like potential (but no angles, or dihedrals). I have made
therefore a bond_style hybrid, and define separate lists of bonded atoms.
For example, I have the atom at position 1 bonded to atom 2 through one
style, and 1 bonded to 3, 4, 5, and 8 through the other.
My problem arises due to needing a non-bonded interaction to also act
between pairs. This, using the example above, needs to provide an
interaction between atom 1 and others - atoms 6, 7, 9, etc (within a
cutoff). Since LAMMPS keeps track of how the atoms are bonded together, the
code sees that atom 1 is bonded to atom 8, so atom 1 and atom 9 are 1-3
neighbors. Ideally it would seem that the special bonds infrastructure in
LAMMPS would be useful in excluding this non-bonded LJ interaction. I need
to definitely exclude all 1-2 interactions from both bond types. For the
first bond type it needs to exclude also the 1-3, and 1-4 interactions, but
for the second type, this doesn't work since it's a non-contiguous (in terms
of the first bond type) arrangement.
I am thinking this could be accomplished somehow by modifying the special
bonds code. This seems, however, like a fairly complicated task. How do
you envision the complexity here?
Another potential option would be to make another bonded interaction between
the pairs already not explicitly defined above. The problem with this, I
envision however, is that the interaction pairs are dynamic due to the
cutoff imposed and the motion of the chain particles. Maybe I could include
another bond style that imposes a cutoff somehow? Looking at bond_style
quartic, I see a cutoff is imposed, so perhaps I could use that construction
in making my bond_style lj_cutoff. This of course means that I would now
have three bond styles - there shouldn't be a problem with bond_style hybrid
followed by three styles, right?
One thing to add to the complexity, this non-bonded interaction also
interacts with other particles in my system, not connected through this
chain backbone. Defining all of those potential "bonds" would be a
nightmare I think. Perhaps I have a work-around using the atom types,
though.
Perhaps I'm missing an easier way to accomplish this. If you have any
ideas, I would greatly appreciate some input or direction. I welcome
feedback as to the complexity and/or workability of implementing these ideas
(or others).
Thank you,
Robert