kwant.physics.
StabilizedModes
(vecs, vecslmbdainv, nmodes, sqrt_hop=None)¶Bases: object
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).
Attributes
vecs  (numpy array) Translation eigenvectors. 
vecslmbdainv  (numpy array) Translation eigenvectors divided by the corresponding eigenvalues. 
nmodes  (int) Number of leftmoving (or rightmoving) modes. 
sqrt_hop  (numpy array or None) Part of the SVD of h_hop, or None if the latter is invertible. 
Methods
selfenergy
()¶Compute the selfenergy generated by lead modes.
Returns:  Sigma : numpy array, real or complex, shape (M,M)

