tkwant.manybody.lead_occupation¶
-
tkwant.manybody.
lead_occupation
(chemical_potential=0, temperature=0, energy_range=None, bands=None, distribution=None, occupation_type=<class 'tkwant.manybody.Occupation'>)[source]¶ Set the occupation (\(T, \mu, f(E)\)) for one lead.
The main purpose of this routine is to obtain upper energy cutoffs, in order to calculate integrals of the form \(I = \int d E \, f(E) \ldots\). Energy cutoffs are estimated from the distribution function f(E) only, without knowledge of the band structure. Three cases can be distinguished:
Fermi dirac distribution \(f(E) = (1 + \exp((E - \mu)/T))^{-1}\)
For T = 0: \(f(E) = \theta(\mu - E)\) the chemical potential (Fermi energy) is a sharp upper cutoff, \(I = \int_{-\infty}^\mu d E \, \ldots\).
For T > 0 we estimate an effective upper cutoff Eeff, such that \(f(E) \leq \varepsilon\) for \(E \geq Eeff\), \(I = \int_{-\infty}^{Eeff} d E \, f(E) \ldots\).
- Arbitrary distribution function:
No cutoff is estimated, \(I = \int_{-\infty}^{\infty} d E \, f(E) \ldots\).
It is possible to overwrite all cutoffs by user given values, except the upper energy cutoff emax at T = 0, which is always set to min(\(\mu\), emax).
- Parameters
chemical_potential (float, optional) – chemical potential \(\mu\), zero by default
temperature (float, optional) – temperature \(T\), default: zero temperature
energy_range (sequence, optional) – Sequence of energy intervals, to overwrite the upper and lower cutoff chosen by the routine. Each interval has the form (emin, emax), with emin and emax being real numbers or None. It is required that
emin
\(\leq\)emax
in each interval, but the intervals are not required to be sorted in the sequence. Moreover, no check is performed if the intervals overlap. Settingemin
and/oremax
to None, means the absence of a lower (respect. upper) energy bound.energy_range = None
is interpreted asenergy_range = [(None, None)]
, meaning no energy bounds, which is the default behavior.bands (int or list of int, optional) – If present, only bands with band indices (n) present in the list are taken into account. (emin and emax still limit the energy range of these bands.). By default, all bands are considered.
distribution (callable, optional) – Distribution function f(E), over which the thermal average is taken. Calling signature must be (chemical_potential, temperature, energy). Default: non-interacting Fermi dirac distribution.
occupation_type (
dataclass
, optional) – Data format of the returndedoccupation
object to store the lead occupation. Default:tkwant.manybody.Occupation
.
- Returns
occupation – Lead occupation. Attributes of
occupation
that are modified by this routine:distribution : callable, distribution function f(E), calling signature (energy)
energy_range : sequence, energy cutoffs
bands : list of int, bands to be considered
If the lead is found to be not occupied (e.g.by setting
emin
>chemical_potential
at zero temperature), the routine returns None.- Return type
occupation_type
or None