Source code for cellcomplex.property_topomesh.utils.matrix_tools
import numpy as np
[docs]def adjacency_matrix(topomesh, degree):
n = topomesh.nb_wisps(degree)
adj = np.zeros((n, n))
if degree != 0:
for i in range(n):
neighbors = list(topomesh.border_neighbors(degree, i))
adj[i, neighbors] = 1
else:
for i in range(n):
neighbors = list(topomesh.region_neighbors(degree, i))
adj[i, neighbors] = 1
return adj
[docs]def degree_matrix(topomesh, degree):
n = topomesh.nb_wisps(degree)
deg = np.zeros((n, n))
if degree != 0:
for i in range(n):
deg[i, i] = topomesh.nb_border_neighbors(degree, i)
else:
for i in range(n):
deg[i, i] = topomesh.nb_region_neighbors(degree, i)
return deg
[docs]def laplacian_matrix(topomesh, degree):
adj = adjacency_matrix(topomesh, degree)
deg = degree_matrix(topomesh, degree)
lap = deg - adj
return lap