sisl.geom.PartialNeighborList
- class sisl.geom.PartialNeighborList(geometry: Geometry, finder_results, atoms: ndarray, split_indices=None)
Bases:
AtomsNeighborList
Neighbors list containing only the neighbors of some atoms.
Examples
You can get a partial neighbors list from the find_neighbors method of a
NeighborFinder
object if you pass the atoms argument. Then, you can retreive the neighbors from it:import sisl # Build a graphene supercell with a vacancy graphene = sisl.geom.graphene().tile(2, 0).tile(2, 1) graphene = graphene.remove(2).translate2uc() # Initialize a finder for neighbors that are within 1.5 Angstrom finder = sisl.geom.NeighborFinder(graphene, R=1.5) # Get a partial neighbors list neighbors = finder.find_neighbors(atoms=[2, 4]) # You can loop through atoms to get their neighbors # In this case, the loop will go through atoms 2 and 4 for at_neighs in neighbors: print() print(f"NEIGHBORS OF ATOM {at_neighs.atom} ({at_neighs.n_neighbors} neighbors): ") print("J", at_neighs.j) print("ISC", at_neighs.isc) # Or get the neighbors of a particular atom neighbors[0].atom # This will be 2 neighbors[0].j
See also
AtomNeighborList
The object returned by this list when iterating or indexing.
Attributes
For each neighbor pair (i, j), the first index.
For each neighbor pair (i, j), the supercell indices of
j
.For each neighbor pair (i, j), the second index.
The minimum nsc for an auxiliary supercell to contain all neighbors in this object.
Number of neighbors that each atom has.
Indices to split the interactions of each atom.
- atoms: np.ndarray