[lammps-users] Special bonds exception for hybrid bond styles

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

Your model is complicated. I wouldn't try to modify the special_bonds
functionality to allow 2 sets of settings. There is no problem
with having 2 or more bond styles under a bond_style hybrid.

What you might do is include some of the pair interaction you need in
the bond_style itself. For example, the bond_style fene has
the bond term and also a LJ term (with an effective cutoff).
Thus when you use it with special_bonds 0 1 1 (the normal),
you get the bond + LJ interacting between 1-2 bonded pairs, but
the LJ part is computed in the bond, not in the pair style. This
is necessary and useful b/c the LJ that is part of the bond can
then be defined with its own sigma,epsilon.

So maybe you can do something like this for your 1-6, 1-7, etc
bonds. to include the pair part that is outside the special bonds
range of the bonds defined for 1-2.

Steve