full neighbor list via dump

Dear group,

I would like to access the full neighbor list for of a LAMMPS calculation. My goal is to use it to calculate the strain tensor at various timesteps. The initial list would be ok since the atoms don’t move much.

I’m using the compute property/local to dump the list into a file. See small example input script attached. I’m using a dummy LJ potential for the pairwise interaction. My problem is that this seems to only give me the half list, but I need the full list. See attached image: red are the neighbors of the green atom given by the dump.

I know that AIREBO uses the full neighbor list, but I’m not sure how to access it. If I run the script with only AIREBO enabled, it gives me an error: “Pair style does not support compute property/local”.

Going through the mailing list archive, it seems this could be possible, but I’m not sure how.

Is there any way to access the full neighbor list from within lammps, or do I need to go into the source for this?

My LAMMPS version: 20160902

Best,
Peterneighbors.png

in.grbn (1.32 KB)

I don’t think there is an easy way round this. One possibility might be to use the hbond/dreiding/lj pair style, which is one of the few that requests a full neighbor list and also supports the single () function. But I have not tested it. The more proper solution would be to modify the code to have the compute generate both i/j and j/i pairs if the neighbor list is half.

neighbors.png

I don't think there is an easy way round this. One possibility might be to use the hbond/dreiding/lj pair style, which is one of the few that requests a full neighbor list and also supports the single () function. But I have not tested it. The more proper solution would be to modify the code to have the compute generate both i/j and j/i pairs if the neighbor list is half.

as for modifying a pair style, the best option in this case would be
to add a few lines to pair style zero.
but since, the compute creates its own neighbor list request (which is
for a half neighbor list), it is irrelevant what pair style is used.
one would have to modify the compute instead.

axel.

I’m not clear on what you are trying to do with a full list.

If you are reading the neighbors from a dump local

file, generated from compute property/local, then

why does it matter if half the neighs are there vs all of them?

Each time you read a line, just treat it as an I/J neigh

and a J/I neigh -> that’s the full list.

If you are running a script that uses pair AIREBO,

hoping to compute energy or forces between pairs

of atoms, via compute pair/local, then that won’t work.

There are no pairwise forces defined or caculated

by AIREBO, since its a manybody potential.

The error message you are getting for compute prop/local

not supporting it, is not actually an issue so far as I see. I’m not sure

why we have that check - you can just comment out

the line number it is referencing. We could also remove

the restriction in compute pair/local.

Steve