|
Marcin Dulak |
4768a2c |
--- ase/neighborlist.py.orig 2020-04-03 23:41:21.000000000 +0000
|
|
Marcin Dulak |
4768a2c |
+++ ase/neighborlist.py 2020-05-07 19:35:07.257677128 +0000
|
|
Marcin Dulak |
4768a2c |
@@ -2,6 +2,7 @@
|
|
Marcin Dulak |
4768a2c |
import itertools
|
|
Marcin Dulak |
4768a2c |
from scipy import sparse as sp
|
|
Marcin Dulak |
4768a2c |
from scipy.spatial import cKDTree
|
|
Marcin Dulak |
4768a2c |
+import scipy.sparse.csgraph as csgraph
|
|
Marcin Dulak |
4768a2c |
|
|
Marcin Dulak |
4768a2c |
from ase.data import atomic_numbers, covalent_radii
|
|
Marcin Dulak |
4768a2c |
from ase.geometry import complete_cell, find_mic, wrap_positions
|
|
Marcin Dulak |
4768a2c |
@@ -74,7 +75,7 @@
|
|
Marcin Dulak |
4768a2c |
Why not dok_matrix like the connectivity-matrix? Because row-picking
|
|
Marcin Dulak |
4768a2c |
is most likely and this is super fast with csr.
|
|
Marcin Dulak |
4768a2c |
"""
|
|
Marcin Dulak |
4768a2c |
- mat = sp.csgraph.dijkstra(graph, directed=False, limit=limit)
|
|
Marcin Dulak |
4768a2c |
+ mat = csgraph.dijkstra(graph, directed=False, limit=limit)
|
|
Marcin Dulak |
4768a2c |
mat[mat == np.inf] = 0
|
|
Marcin Dulak |
4768a2c |
return sp.csr_matrix(mat, dtype=np.int8)
|
|
Marcin Dulak |
4768a2c |
|
|
Marcin Dulak |
4768a2c |
@@ -1050,6 +1051,10 @@
|
|
Marcin Dulak |
4768a2c |
See :meth:`ase.neighborlist.PrimitiveNeighborList.get_neighbors` or
|
|
Marcin Dulak |
4768a2c |
:meth:`ase.neighborlist.PrimitiveNeighborList.get_neighbors`.
|
|
Marcin Dulak |
4768a2c |
"""
|
|
Marcin Dulak |
4768a2c |
+ if self.nl.nupdates <= 0:
|
|
Marcin Dulak |
4768a2c |
+ raise RuntimeError('Must call update(atoms) on your neighborlist '
|
|
Marcin Dulak |
4768a2c |
+ 'first!')
|
|
Marcin Dulak |
4768a2c |
+
|
|
Marcin Dulak |
4768a2c |
return self.nl.get_neighbors(a)
|
|
Marcin Dulak |
4768a2c |
|
|
Marcin Dulak |
4768a2c |
def get_connectivity_matrix(self, sparse=True):
|