StabilizedModes(vecs, vecslmbdainv, nmodes, sqrt_hop)¶
Stabilized eigendecomposition of the translation operator.
Due to the lack of Hermiticity of the translation operator, its
eigendecomposition is frequently poorly conditioned. Solvers in Kwant use
this stabilized decomposition of the propagating and evanescent modes in
the leads. If the hopping between the unit cells of an infinite system is
invertible, the translation eigenproblem is written in the basis psi_n,
h_hop^+ * psi_(n+1), with
h_hop the hopping between unit cells. If
h_hop is not invertible, and has the singular value decomposition u s
v^+, then the eigenproblem is written in the basis sqrt(s) v^+ psi_n,
sqrt(s) u^+ psi_(n+1). In this basis we calculate the eigenvectors of the
propagating modes, and the Schur vectors (an orthogonal basis) in the space
of evanescent modes.
vecs and vecslmbdainv are the first and the second halves of the wave functions. The first nmodes are eigenmodes moving in the negative direction (hence they are incoming into the system in Kwant convention), the second nmodes are eigenmodes moving in the positive direction. The remaining modes are the Schur vectors of the modes evanescent in the positive direction. Propagating modes with the same eigenvalue are orthogonalized, and all the propagating modes are normalized to carry unit current. Finally the sqrt_hop attribute is v sqrt(s).
Translation eigenvectors divided by the corresponding eigenvalues.
Number of left-moving (or right-moving) modes.
Part of the SVD of h_hop.
Compute the self-energy generated by lead modes.
Sigma – The computed self-energy. Note that even if h_cell and h_hop are both real, Sigma will typically be complex. (More precisely, if there is a propagating mode, Sigma will definitely be complex.)
numpy array, real or complex, shape (M,M)