tkwant.manybody.calc_intervals(spectra, occupations, interval_type=<class 'tkwant.manybody.Interval'>, tol=1e-05)[source]

Return a list of momentum intervals to perform the manybody integration.

  • spectra (kwantspectrum.spectrum or sequence thereof) – Energy dispersion \(E_n(k)\) of one lead or sequence thereof in case of several leads.

  • occupations (tkwant.manybody.Occupation or sequence thereof) –

    Each sequence element represents the occupation of a lead. If occupations consistst of only one element or if the sequence has only one element, the occupation is assumed to be identical in each lead. If occupations is a sequence with more than one element, such that the occupation for each lead is different, occupations must have the same length as spectra. If a lead is occupied, the corresponding occupations element must have the following two attributes:

    • energy_range : sequence of energy bounds in form (emin, emax) (emin \(\leq E_n(k) \leq\) emax), no bound if emin and/or emax is set to None.

    • bands : list of int, bands to be considered, all bands considered if None

    If a lead is not occupied, the corresponding element of occupations must be None or False.

  • interval_type (dataclass, optional) – Data format to store an interval in the returned intervals list. Default: tkwant.manybody.Interval

  • tol (intervals below width k < tol might be dropped, optional) –


intervals – All momentum intervals to perform the statistical average. Attributes of each intervals element that are modified by this routine:

  • lead : int, lead index

  • band : int, band index (n)

  • kmin : float, lower momentum (\(k\)) bound

  • kmax : float, upper momentum (\(k\)) bound

Return type

list of interval_type