Pairwise interactions for rigid bodies

Hello All,

I am working on a project consisting of two types rigid molecules in which I turn off pairwise interactions within the molecule. I often use molecule files for these and the lattice command to construct larger systems and the neigh_modify exclude to turn off pairwise within the molecule. I was wondering if there is a way to have a data file containing all the molecules and to turn off the pairwise interactions within the molecule. One solution I’m thinking of is to use the special bonds command and set all values to zero. However I think I would then have to set a bond style, bonds and bond coeffs? How would that work with the rigid integrator?

Thanks,

Michael Goytia

Hello All,

I am working on a project consisting of two types rigid molecules in which I turn off pairwise interactions within the molecule. I often use molecule files for these and the lattice command to construct larger systems and the neigh_modify exclude to turn off pairwise within the molecule. I was wondering if there is a way to have a data file containing all the molecules and to turn off the pairwise interactions within the molecule. One solution I’m thinking of is to use the special bonds command and set all values to zero. However I think I would then have to set a bond style, bonds and bond coeffs? How would that work with the rigid integrator?

data files work just like molecule files. please note that for
"neigh_modify exclude molecule" to work, you need to make sure that
each rigid body has a unique molecule id. it is in no way connected to
using molecule files. it just so happens that when using molecule
files, each created molecule gets a new and unique molecule id
assigned, and thus fulfills the requirement automatically. for a data
file you have to make sure that this is given. however, since you are
likely using the molecule id to define the rigid bodies anyway, this
pre-requisite would be automatically given.

axel.

Hello,

Thanks for the explanation. I guess the next concept I am confused on is how you would speceficy the group command in order to use the neighbor modify molecule command. For example I have four particle molecules A and B, that differ by one type of particle. So I initially set the group command with the lines:

group one type 1:4 # mol A
group one type 1:3 5 # mol B

neigh modify molecule mol A
neigh modify molecule mol B

Unless I am wrong I don’t think this is what I want because this lumps all the atoms in the types specified into one group. I am confused on how you would then create a group for the individual molecules(Molecule tags have been accounted for in the data file) if I have multiple molecules of A and B to then use with the neigh_modify exclude molecule.

Thanks,

Michael Goytia

Hello,

Thanks for the explanation. I guess the next concept I am confused on is how you would speceficy the group command in order to use the neighbor modify molecule command. For example I have four particle molecules A and B, that differ by one type of particle. So I initially set the group command with the lines:

group one type 1:4 # mol A
group one type 1:3 5 # mol B

neigh modify molecule mol A
neigh modify molecule mol B

Unless I am wrong I don’t think this is what I want because this lumps all the atoms in the types specified into one group. I am confused on how you would then create a group for the individual molecules(Molecule tags have been accounted for in the data file) if I have multiple molecules of A and B to then use with the neigh_modify exclude molecule.

you *are* wrong. in fact, you don't even need two groups. the
identification of what constitutes a molecule (and thus which
interactions to exclude) works the same way how rigid objects are
identified via the molecule id and thus you would just need one group
with all atoms for all molecules where you want to have intramolecular
pairwise interactions excluded. it is as simple as that. it is quite
puzzling, how you can up with such a complex hypothesis about how
things would work, that is also inconsistent with the documentation.
ever heard of occam's razor? :wink:

axel.

If for your system you want to exclude all intra-moleclue pairwise interactions,
you can just use:

neigh_modify exclude molecule all

If your small molecules are solvent and you have some
big solute molecule(s) where the exclusion should
not apply, then just put all the solvent in a group of that name:

neigh_modify exclude molecule solvent

Steve

Hello,

Thanks for the explanation all!

Michael Goytia