kwant.solvers.default.wave_function(sys, energy=0, args=(), check_hermiticity=True, *, params=None)[source]#

Return a callable object for the computation of the wave function inside the scattering region.

An alias exists for this common name: kwant.wave_function.

  • sys (kwant.system.FiniteSystem) – The low level system for which the wave functions are to be calculated.

  • args (tuple of arguments, or empty tuple) – Positional arguments to pass to the function(s) which evaluate the hamiltonian matrix elements. Deprecated in favor of ‘params’ (and mutually exclusive with it).

  • check_hermiticity (bool) – Check if the Hamiltonian matrices are Hermitian.

  • params (dict, optional) – Dictionary of parameter names and their values. Mutually exclusive with ‘args’.


The returned object can be itself called like a function. Given a lead number, it returns a 2d NumPy array that contains the wave function within the scattering region due to each incoming mode of the given lead. Index 0 is the mode number, index 1 is the orbital number.

The modes appear in the same order as the negative velocity modes in kwant.physics.PropagatingModes. In Kwant’s convention leads are attached so that their translational symmetry points away from the scattering region:

left lead    SR   right lead
/---------\ /---\ /---------\

This means that incoming modes (coming from infinity towards the scattering region) have negative velocity with respect to the lead’s symmetry direction.


>>> wf = kwant.solvers.default.wave_function(some_syst, some_energy)
>>> wfs_of_lead_2 = wf(2)