Neighbor list overflow and slow computational performance

Dear LAMMPS Users,

Hello All. I am currently simulating NVT equilibration of a system of polymer chains. I am using LAMMPS version: 16 Mar 2018. Each polymer is 13-mer P3HT and there are a total of 100 chains as shown in the below figure (unwrapped coordinates)

image.png

The total number of particles in this system is 3900 particles. The pairwise interaction is tabulated Lennard-Jones (with cuttoff distance of 5.21 in real units). Using an inexpensive LJ potential with only 3900 particles, the computational time should be very fast via parallel run. Bond, angle and dihedral potentials are also all tabulated.

However, using 27 processors, the computational time is very slow taking 7 hours just to compute 700000 timesteps. Moreover, after 700000 timesteps, I obtained an error stating:
Neighbor list overflow, boost neigh_modify one

In my LAMMPS script, my script consists of the following lines:

neighbor 2.0 bin
neigh_modify delay 0 every 1 check yes one 10000
comm_modify mode single cutoff 50 vel yes

The neighbor skin distance of 2.0 is reasonable, and I was studying the neighbor list and LAMMPS printed: Total # of neighbors = 17161583

If N is the total number of particles (3900) in the system, then the total number of neighbors should scale as N^(3/2) using a Verlet list but the total number of neighbors that LAMMPS printed is close to N^2. This means that a single particle is feeling virtually all of the surrounding pairwise interactions (including very long-range interactions) making this simulation computationally inefficient.

Yet, I am not sure why LAMMPS should encounter an error of “neighbor list overflow.”

Furthermore, I understand that having half the number of particles for each particle in a Verlet list is sufficient thereby max neighbors/atom being 2000.

I changed the input argument for neigh_modify to:
neigh_modify delay 0 every 1 check yes one 2000

but I still obtain an error " neighbor list overflow" immediately upon running the script and LAMMPS would print the following output file:

LAMMPS (16 Mar 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (…/comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
Reading data file …
orthogonal box = (-1.35406 15.0702 -1.38096) to (53.6441 144.93 39.881)
1 by 1 by 1 MPI processor grid
reading atoms …
3900 atoms
reading velocities …
3900 velocities
scanning bonds …
2 = max bonds/atom
scanning angles …
3 = max angles/atom
scanning dihedrals …
4 = max dihedrals/atom
reading bonds …
3800 bonds
reading angles …
4700 angles
reading dihedrals …
4600 dihedrals
Finding 1-2 1-3 1-4 neighbors …
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
3 = max # of 1-2 neighbors
5 = max # of 1-3 neighbors
11 = max # of 1-4 neighbors
14 = max # of special neighbors
Neighbor list info …
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 54.1659
ghost atom cutoff = 54.1659
binsize = 27.0829, bins = 3 5 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0

I would greatly appreciate if someone could point me in the correct direction or suggest where I should look into.

Thank you so much for your time.

Sincerely,

Masato Koizumi

Your cut-off is 54.1659 according to the output. Something must be not what you think it is in your input script.

image.png