Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _compute_edges_cells(self):
"""This creates interior edge->cells relations. While it's not
necessary for many applications, it sometimes does come in handy.
"""
if self.edges is None:
self.create_edges()
num_edges = len(self.edges["nodes"])
count = numpy.bincount(self.cells["edges"].reshape(-1), minlength=num_edges)
#
edges_flat = self.cells["edges"].flat
idx_sort = numpy.argsort(edges_flat)
idx_start, count = grp_start_len(edges_flat[idx_sort])
res1 = idx_sort[idx_start[count == 1]][:, numpy.newaxis]
idx = idx_start[count == 2]
res2 = numpy.column_stack([idx_sort[idx], idx_sort[idx + 1]])
self._edges_cells = [
[], # no edges with zero adjacent cells
res1 // 3,
res2 // 3,
]
# self._edges_local = [
# [], # no edges with zero adjacent cells
# res1 % 3,
# res2 % 3,
# ]
# For each edge, store the number of adjacent cells plus the index into
# the respective edge array.