Neigh_modify exclude group problem

Hi all,

I am doing an irradiation simulation.

I have 5 groups of carbon atoms (called ions1 to ions5) all randomly situated within a rectangular region (all within the same plane). What I want to do in my simulation is fire in a single group of these atoms at a carbon nanotube each time until all 5 rounds are fired in.

Within each group, no atom is within 4 angstroms of another atom of that group (this means they will not interact with each other via my pairwise potential airebo type)

Also, to prevent atoms in a current firing round interacting with the remaining atoms in the plane I used a “neigh_modify exclude group command”

For example, before I fire in the first round of atoms I apply the command:

neigh_modify exclude group ions1 ions2to5

where ions2to5 contains all the remaining atoms in the plane which are for future firing rounds

[ie group ions2to5 union ions2 ions3 ions4 ions5]

This works for the first round (ie the atoms in group ions1 leave the plane at the prescribed velocities and don’t appear to interact with atoms from the other groups)

However, for the subsequent rounds, it doesn’t work :

For example, when ions2 are released, they only move a little and appear to be interacting with the other atoms.

This is strange since ions2 have the same prescribed velocities as ions1 had and a similar neigh_modify command was used: neigh_modify exclude group ions2 ions3to5

Of course, at the end of each round I apply neigh_modify exclude none

I don’t understand why the first group behaves fine and the next 4 groups don’t

Maybe someone can help with this

Thanks in advance

Daniel

……………………………………………………………………………………………………………

Daniel Mulvihill

Government of Ireland Research Fellow,

Department of Mechanical, Aeronautical, and Biomedical Enginering,

University of Limerick

Hi all,

I am doing an irradiation simulation.

I have 5 groups of carbon atoms (called ions1 to ions5) all randomly
situated within a rectangular region (all within the same plane). What I
want to do in my simulation is fire in a single group of these atoms at a
carbon nanotube each time until all 5 rounds are fired in.

Within each group, no atom is within 4 angstroms of another atom of that
group (this means they will not interact with each other via my pairwise
potential airebo type)

Also, to prevent atoms in a current firing round interacting with the
remaining atoms in the plane I used a “neigh_modify exclude group command”

For example, before I fire in the first round of atoms I apply the command:

neigh_modify exclude group ions1 ions2to5

where ions2to5 contains all the remaining atoms in the plane which are for
future firing rounds

[ie group ions2to5 union ions2 ions3 ions4 ions5]

This works for the first round (ie the atoms in group ions1 leave the plane
at the prescribed velocities and don’t appear to interact with atoms from
the other groups)

why so complicated? how about this strategy?

define your system and your five groups in their reservoir and only
time integrate the regular system.

if you want to "fire the first round", initialize the first group with
the suitable velocity and add a fix nve just for this group

and then with every other group you can do the same.

no more messing with neighbor lists required.

if you want to absolutely make certain that those atoms don't interact
with anything, you can set up pair style hybrid with a non-interacting
atom type (e.g. using a lj/cut style with epsilon set to 0.0) and then
also change the type of the atoms you want to "fire" right before you
release them.

axel.

1 Like