Mesh.laplacian_matrix

Mesh.laplacian_matrix(rtype='array')[source]

Compute the Laplacian matrix of the mesh.

Parameters:
rtypeLiteral[‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’], optional

Format of the result.

Returns:
array-like

The Laplacian matrix.

Notes

The n×n uniform Laplacian matrix L of a mesh with vertices V and edges E is defined as follows [1]

Lij={1i=j1deg(i)(i,j)E0otherwise

with deg(i) the degree of vertex i.

Therefore, the uniform Laplacian of a vertex vi points to the centroid of its neighboring vertices.

References

[1]

Nealen A., Igarashi T., Sorkine O. and Alexa M. Laplacian Mesh Optimization.

Examples

>>> from compas.datastructures import Mesh
>>> mesh = Mesh.from_polyhedron(6)
>>> L = mesh.laplacian_matrix(rtype='array')
>>> type(L)
<class 'numpy.ndarray'>
>>> from numpy import asarray
>>> xyz = asarray(mesh.vertices_attributes('xyz'))
>>> L = mesh.laplacian_matrix(mesh)
>>> d = L.dot(xyz)