class kwant.builder.FiniteSystem(builder)[source]

Bases: kwant.builder._FinalizedBuilderMixin, kwant.system.FiniteSystem

Finalized Builder with leads.

Usable as input for the solvers in kwant.solvers.


sites (sequence) sites[i] is the Site instance that corresponds to the integer-labeled site i of the low-level system. The sites are ordered first by their family and then by their tag.
id_by_site (dict) The inverse of sites; maps from i to sites[i].


discrete_symmetry(args=(), *, params=None)[source]
hamiltonian(i, j, *args, params=None)[source]
hamiltonian_submatrix(self, args=(), to_sites=None, from_sites=None, sparse=False, return_norb=False, *, params=None)[source]

Return a submatrix of the system Hamiltonian.


args : tuple, defaults to empty

Positional arguments to pass to the hamiltonian method. Mutually exclusive with ‘params’.

to_sites : sequence of sites or None (default)

from_sites : sequence of sites or None (default)

sparse : bool

Whether to return a sparse or a dense matrix. Defaults to False.

return_norb : bool

Whether to return arrays of numbers of orbitals. Defaults to False.

params : dict, optional

Dictionary of parameter names and their values. Mutually exclusive with ‘args’.


hamiltonian_part : numpy.ndarray or scipy.sparse.coo_matrix

Submatrix of Hamiltonian of the system.

to_norb : array of integers

Numbers of orbitals on each site in to_sites. Only returned when return_norb is true.

from_norb : array of integers

Numbers of orbitals on each site in from_sites. Only returned when return_norb is true.


The returned submatrix contains all the Hamiltonian matrix elements from from_sites to to_sites. The default for from_sites and to_sites is None which means to use all sites of the system in the order in which they appear.

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

Numbers 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 : FiniteSystem

A copy of the original system with some leads precalculated.


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’.

Previous topic


Next topic


This Page