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