Deep-MI / LaPy

Toolbox for Differential Geometry on Triangle and Tetrahedra Meshes (FEM, Laplace, Poisson, Heat Flow ...)
MIT License
60 stars 13 forks source link

Orthonormal eigenvectors #39

Closed sina-mansour closed 1 year ago

sina-mansour commented 1 year ago

Question/Support Request

Hi,

I'm using Lapy to generate Laplace Beltrami Operators of a surface mesh.

In my experience, the eigenvectors generated by lapy.solver.Solver(mesh).eigs are neither orthogonal, nor unit norm vectors. I wanted to check if this is expected behavior? Given that the mesh structure is a symmetric matrix, should the eigenvectors be orthonormal?

Screenshots

Here's a heatmap of the dot product of pairs of eigenvectors for the first 20 eigenvectors:

image

And here's what other tools (like numpy.linalg.eigs) would generate. Note that for orthonormal eigenvectors, the dot products on the diagonal are all one (because of the unit norm) and off-diagonal values are all zero (because of orthogonality). I think the Lapy eigenvectors should have ideally been orthonormal too:

image

Environment

m-reuter commented 1 year ago

Hi, this is a generalised eigenvalue problem A x=lambda B x (see https://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix#Generalized_eigenvalue_problem ) and the eigenvectors will be B-orthonormal: x1^t B x2 = 0 ...