kwant.greens_function and kwant.smatrix give different results when computing reflection at energies with no open modes
AFAICT this is because GreensFunction._transmission
computes the number of open modes by counting the nonzero eigenvalues of the broadening matrix Γ = i(Σ^R - Σ^A)
.
Eigenvalues of Γ
are compared against 1000ε\Vert Γ \Vert
where ε
is floating point epsilon (\sim 10^{-15}
), however when there are no open modes \Vert Γ \Vert \sim 10^{-15}
. Eigenvalues are then compared against \sim 10^{-28}
, and it looks like all the modes are open, even though there are 0 open.
Edited by Joseph Weston