diff --git a/src/sisl/_core/sparse_geometry.py b/src/sisl/_core/sparse_geometry.py index faff2ff16..8ff3570fa 100644 --- a/src/sisl/_core/sparse_geometry.py +++ b/src/sisl/_core/sparse_geometry.py @@ -1077,6 +1077,13 @@ def fromsp(cls, geometry: Geometry, P, **kwargs): return p + def trace_with_S(self): + """Trace of the multiplication of the sparse matrix with the overlap matrix.""" + if self.orthogonal: + return self._csr.diagonal().sum(axis=0) + else: + return (self._csr.data[:, :-1] * self._csr.data[:, [-1]]).sum(axis=0) + # numpy dispatch methods (same priority as SparseCSR!) __array_priority__ = 14