class kwant.physics.PropagatingModes(wave_functions, velocities, momenta)[source]#

Bases: object

The calculated propagating modes of a lead.


The wave functions of the propagating modes.


numpy array


Momenta of the modes.


numpy array


Velocities of the modes.


numpy array


Number of left or right moving propagating modes per conservation law block of the Hamiltonian.


list of integers


The sort order of all the three arrays is identical. The first half of the modes have negative velocity, the second half have positive velocity. Within these halves the modes are ordered by the eigenvalues of any declared conservation laws. Within blocks with the same conservation law eigenvalue the modes with negative velocity are ordered by increasing momentum, and the modes with positive velocity are ordered by decreasing momentum. Finally, modes are ordered by the magnitude of their velocity. To summarize, the modes are ordered according to the key (sign(v), conserved_quantity, sign(v) * k , abs(v)) where v is velocity, k is momentum and conserved_quantity is the conservation law eigenvalue.

In the above, the positive velocity and momentum directions are defined with respect to the translational symmetry direction of the system.

The first dimension of wave_functions corresponds to the orbitals of all the sites in a unit cell, the second one to the number of the mode. Each mode is normalized to carry unit current. If several modes have the same momentum and velocity, an arbitrary orthonormal basis in the subspace of these modes is chosen.

If a conservation law is specified to block diagonalize the Hamiltonian, then block_nmodes[i] is the number of left or right moving propagating modes in conservation law block i. The ordering of blocks is the same as the ordering of the projectors used to block diagonalize the Hamiltonian.