Confusion about the special bonds of LAMMPS

Hi LAMMPS developers and users,

I’m studying the command create_bonds of LAMMPS (22 Jul 2025 - Update 1). I create five atoms and connect them with bonds, using a very simple script:

dimension	3
atom_style  bond
units		si
newton	 	off
boundary	f f f
comm_modify vel yes
region      simulation_box block 0 1 0 1 0 1
create_box  4 simulation_box bond/types 1 extra/bond/per/atom 5 extra/special/per/atom 10
create_atoms 1 single 0 0 0.1
create_atoms 1 single 0 0 0.2
create_atoms 1 single 0 0 0.3
create_atoms 1 single 0 0 0.4
create_bonds single/bond 1  1 2 special no
create_bonds single/bond 1  2 3 special no
create_bonds single/bond 1  3 4 special yes

The created atoms and bonds is like O-O-O-O. As you can see, there are only one pair of 1-4 neighbors, i.e., atom #1 and #4. And atom #2 and #3 have no 1-4 neighbors. But I’m really confused about the screen output:

     2 = max # of 1-2 neighbors
     1 = max # of 1-3 neighbors
     2 = max # of 1-4 neighbors
    21 = max # of special neighbors
  special bonds CPU = 0.000 seconds

It said that there were at most two 1-4 neighbors. What confused me more is the special neighbors. I set extra/special/per/atom as 10 in create_box, but the screen output said that there can be at most 21 special neighbors. I cannot understand these. Hope someone can help me explain how these values were obtained, and if they were valid.

Thanks in advance!

1 Like

I think that this may be a question for @sjplimp