2.3.10. Neighbor list access¶
Access to neighbor lists is handled through a couple of wrapper classes that allows to treat it like either a python list or a NumPy array. The access procedure is similar to that of the C-library interface: use one of the “find” functions to look up the index of the neighbor list in the global table of neighbor lists and then get access to the neighbor list data. The code sample below demonstrates reading the neighbor list data using the NumPy access method.
from lammps import lammps
import numpy as np
lmp = lammps()
lmp.commands_string("""
region box block -2 2 -2 2 -2 2
lattice fcc 1.0
create_box 1 box
create_atoms 1 box
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0
run 0 post no""")
# look up the neighbor list
nlidx = lmp.find_pair_neighlist('lj/cut')
nl = lmp.numpy.get_neighlist(nlidx)
tags = lmp.extract_atom('id')
print("half neighbor list with {} entries".format(nl.size))
# print neighbor list contents
for i in range(0,nl.size):
idx, nlist = nl.get(i)
print("\natom {} with ID {} has {} neighbors:".format(idx,tags[idx],nlist.size))
if nlist.size > 0:
for n in np.nditer(nlist):
print(" atom {} with ID {}".format(n,tags[n]))
Methods:
lammps.get_neighlist()
: Get neighbor list for given indexlammps.get_neighlist_size()
: Get number of elements in neighbor listlammps.get_neighlist_element_neighbors()
: Get element in neighbor list and its neighborslammps.find_pair_neighlist()
: Find neighbor list of pair stylelammps.find_fix_neighlist()
: Find neighbor list of pair stylelammps.find_compute_neighlist()
: Find neighbor list of pair style
NumPy Methods:
lammps.numpy.get_neighlist()
: Get neighbor list for given index, which uses NumPy arrays for its element neighbor arrayslammps.numpy.get_neighlist_element_neighbors()
: Get element in neighbor list and its neighbors (as numpy array)