class tkwant.leads.AnalyzeReflectionMonomial(lead, num_absorb_cells, strength, degree, params=None)[source]

Analyze the the reflection for a lead for the special case of a monomial absorbing potential.


The reflection amplitude is calculated with analytic expressions derived in 1. Good agreement with the exact numerical result (via AnalyzeReflection) can only be expected if \(k * l >> 1\). The length \(l\) corresponds to num_absorb_cells and the momentum \(k\) is the distance from a local extremum of the spectrum.


J. Weston and X. Waintal, Phys. Rev. B 93, 134506 (2016)

  • lead (kwant.system.InfiniteSystem or kwantspectrum.BandSketching) – Kwant lead or BandSketching instance of the lead, for which the reflection should be calculated.

  • num_absorb_cells (int) – number of cells for a finite lead taken into account

  • degree (int) – order of the moniminal absorbing boundary potential.

  • strength (float) – The strength of the boundary conditions. Formally this is the area underneath the monomial curve.

  • params (dict, optional) – Extra parameters for Hamiltonian value functions of lead. params is only considered if lead is an instance of kwant.system.InfiniteSystem.


around_extremum(kmin, kmax, band, nq=20, dq=0.001, gridtype='log')[source]

Calculate the reflection amplitude \(r\) within the momentum interval [kmin, kmax] around a local extremum of the dispersion.

  • kmax (kmin,) – momentum interval [kmin, kmax] including the a single local dispersion minimum or maximum located at k0.

  • band (int) – band index

  • nq (int, optional) – number of sample gridpoints between [kmin, k0 - dq] and between [k0 + dq, kmax]. The total number of sample points is 2 * nq.

  • dq (float, optional) – Offset around extrema located at momentum k0.

  • gridtype (string, optional) –

    lin : use a linear grid between [kmin, k0] and [k0, kmax]

    loguse a log grid between [kmin, k0] and [k0, kmax].

    The log-grid is choosen dense around k0.


  • reflect (numpy array, shape(2 * nq, )) – Reflection amplitude \(r\)

  • energies (numpy array, shape(2 * nq, )) – Mode energies

  • vel (numpy array, shape(2 * nq, )) – mode velocities

  • k (numpy array, shape(2 * nq, )) – mode momenta

  • e0 (float) – dispersion energy at the local minimum or maximum

  • k0 (float) – momentum of the local minimum or maximum


The local extremum of the dispersion k0 must be inside the interval [kmin, kmax], such that kmin <= k0 <= kmax. Otherwise, a ValueError is thrown.