kwant.system.
FiniteSystemMixin
[source]¶Bases: object
Abstract finite low-level system, possibly with leads.
leads
[source]¶Each lead has to provide a method selfenergy
that has
the same signature as InfiniteSystem.selfenergy
(without the
self
parameter), and must have property parameters
:
a collection of strings that name the system parameters (
though this requirement is provisional and may be removed in
a future version of Kwant).
It may also provide modes
that has the
same signature as InfiniteSystem.modes
(without the self
parameter).
sequence of leads
lead_interfaces
[source]¶Each sub-sequence contains the indices of the system sites to which the lead is connected.
sequence of sequences of integers
lead_paddings
[source]¶Each sub-sequence contains the indices of the system sites that belong to the lead, and therefore have the same onsite as the lead sites, and are connected by the same hoppings as the lead sites.
sequence of sequences of integers
parameters
[source]¶The names of the parameters on which the system depends. This does not include the parameters for any leads. This attribute is provisional and may be changed in a future version of Kwant
frozenset of strings
Notes
The length of leads
must be equal to the length of lead_interfaces
and lead_paddings
.
For lead n
, the method leads[n].selfenergy must return a square
matrix whose size is sum(len(self.hamiltonian(site, site)) for
site in self.lead_interfaces[n])
. The output of leads[n].modes
has to be a tuple of PropagatingModes
,
StabilizedModes
.
Often, the elements of leads will be instances of InfiniteSystem
. If
this is the case for lead n
, the sites lead_interfaces[n]
match
the first len(lead_interfaces[n])
sites of the InfiniteSystem.
Methods
precalculate
(energy=0, args=(), leads=None, what='modes', *, params=None)[source]¶Precalculate modes or self-energies in the leads.
Construct a copy of the system, with the lead modes precalculated, which may significantly speed up calculations where only the system is changing.
energy (float) – Energy at which the modes or self-energies have to be evaluated.
args (sequence) – Additional parameters required for calculating the Hamiltionians. Deprecated in favor of ‘params’ (and mutually exclusive with it).
leads (sequence of integers or None) – Indices of the leads to be precalculated. If None
, all are
precalculated.
what ('modes', 'selfenergy', 'all') – The quantitity to precompute. ‘all’ will compute both modes and self-energies. Defaults to ‘modes’.
params (dict, optional) – Dictionary of parameter names and their values. Mutually exclusive with ‘args’.
syst – A copy of the original system with some leads precalculated.
Notes
If the leads are precalculated at certain energy or args values, they might give wrong results if used to solve the system with different parameter values. Use this function with caution.
validate_symmetries
(args=(), *, params=None)[source]¶Check that the Hamiltonian satisfies discrete symmetries.
Applies validate
to the
Hamiltonian, see its documentation for details on the return
format.
Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.