neighborlist¶
-
class
javelin.neighborlist.
NeighborList
(vectors=None)[source]¶ The NeighborList class
Contains an n x 5 array of neighbor vectors each being [origin_site, target_site, i, j, k].
>>> nl = NeighborList() >>> print(nl) | site | vector index | origin target | i j k <BLANKLINE> >>> nl = NeighborList([[0,1,1,0,0],[0,1,0,1,0],[0,1,0,0,1]]) >>> print(nl) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 1 | 0 1 | 0 1 0 2 | 0 1 | 0 0 1
You can slice a NeighborList:
>>> print(nl[0]) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 >>> print(nl[-1]) | site | vector index | origin target | i j k 0 | 0 1 | 0 0 1 >>> print(nl[1:3]) | site | vector index | origin target | i j k 0 | 0 1 | 0 1 0 1 | 0 1 | 0 0 1 >>> print(nl[0,2]) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 1 | 0 1 | 0 0 1
You can set a vector:
>>> nl[0] = [5, 5, 5, 5, 5] >>> nl[-1] = [2, 2, 2, 2, 2] >>> print(nl) | site | vector index | origin target | i j k 0 | 5 5 | 5 5 5 1 | 0 1 | 0 1 0 2 | 2 2 | 2 2 2
You can add NeighborLists together:
>>> nl2 = NeighborList([[1,1,1,0,0],[1,1,0,1,0]]) >>> nl3 = nl + nl2 >>> print(nl3) | site | vector index | origin target | i j k 0 | 5 5 | 5 5 5 1 | 0 1 | 0 1 0 2 | 2 2 | 2 2 2 3 | 1 1 | 1 0 0 4 | 1 1 | 0 1 0
And finallly you can delete vectors from the NeighborList
>>> del nl3[-1] >>> print(nl3) | site | vector index | origin target | i j k 0 | 5 5 | 5 5 5 1 | 0 1 | 0 1 0 2 | 2 2 | 2 2 2 3 | 1 1 | 1 0 0 >>> del nl3[1:3] >>> print(nl3) | site | vector index | origin target | i j k 0 | 5 5 | 5 5 5 1 | 1 1 | 1 0 0
-
append
(vectors)[source]¶ Append one or more vectors to the NeighborList
>>> nl = NeighborList() >>> print(nl) | site | vector index | origin target | i j k <BLANKLINE> >>> nl.append([0,1,1,0,0]) >>> print(nl) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 >>> nl.append([[0,1,0,1,0],[0,1,0,0,1]]) >>> print(nl) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 1 | 0 1 | 0 1 0 2 | 0 1 | 0 0 1
-
values
¶ Returns the neighbor vectors as a
numpy.ndarray
This allows you to directly modify or set the vectors but be careful to maintain an (n, 5) array.
>>> nl = NeighborList([[0,1,1,0,0],[0,1,0,1,0],[0,1,0,0,1]]) >>> print(nl) | site | vector index | origin target | i j k 0 | 0 1 | 1 0 0 1 | 0 1 | 0 1 0 2 | 0 1 | 0 0 1 >>> nl.values array([[0, 1, 1, 0, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 1]]) >>> nl.values[:,1] = 2 >>> print(nl) | site | vector index | origin target | i j k 0 | 0 2 | 1 0 0 1 | 0 2 | 0 1 0 2 | 0 2 | 0 0 1
Returns: array of neighbor vectors Return type: numpy.ndarray
-