Matrix creation, if area of triangle is zero replace with small number, not with average triangle area
Use negative sigma to shift spectrum away from zero to avoid instability with zero eigenvalue (e.g. closed surfaces or Neumann boundary condition)
Area normalization needs multiplication not division by area!
The first two bugs increase stability, but the last caused previous results to be totally wrong when using area normalization!