kwant.builder.InfiniteSystem#
- class kwant.builder.InfiniteSystem(builder, interface_order=None)[source]#
Bases:
_FinalizedBuilderMixin,InfiniteSystemFinalized infinite system, extracted from a
Builder.- sites[source]#
sites[i]is theSiteinstance that corresponds to the integer-labeled siteiof the low-level system.- Type:
sequence
- id_by_site[source]#
The inverse of
sites; maps high-levelSiteinstances to their integer label. Satisfiesid_by_site[sites[i]] == i.- Type:
dict
Notes
In infinite systems
sitesconsists of 3 parts: sites in the fundamental domain (FD) with hoppings to neighboring cells, sites in the FD with no hoppings to neighboring cells, and sites in FD+1 attached to the FD by hoppings. Each of these three subsequences is individually sorted.Finalize a builder instance which has to have exactly a single symmetry direction.
If interface_order is not set, the order of the interface sites in the finalized system will be arbitrary. If interface_order is set to a sequence of interface sites, this order will be kept.
Methods
- cell_hamiltonian(args=(), sparse=False, *, params=None)[source]#
Hamiltonian of a single cell of the infinite system.
Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- discrete_symmetry(args=(), *, params=None)[source]#
Return the discrete symmetry of the system.
The returned object is an instance of
DiscreteSymmetry.Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- hamiltonian(i, j, *args, params=None)[source]#
Return the hamiltonian matrix element for sites
iandj.If
i == j, return the on-site Hamiltonian of sitei.if
i != j, return the hopping between siteiandj.Hamiltonians may depend (optionally) on positional and keyword arguments.
Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- 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.
- Parameters:
args (tuple, defaults to empty) – Positional arguments to pass to the
hamiltonianmethod. 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’.
- Returns:
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_norbis true.from_norb (array of integers) – Numbers of orbitals on each site in from_sites. Only returned when
return_norbis true.
Notes
The returned submatrix contains all the Hamiltonian matrix elements from
from_sitestoto_sites. The default forfrom_sitesandto_sitesisNonewhich means to use all sites of the system in the order in which they appear.
- inter_cell_hopping(args=(), sparse=False, *, params=None)[source]#
Hopping Hamiltonian between two cells of the infinite system.
Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- modes(energy=0, args=(), *, params=None)[source]#
Return mode decomposition of the lead
This is a wrapper around
kwant.physics.modes. The said function is applied to the infinite system at hand. Any discrete symmetries that are declared for the system are validated, and, if present, passed on as well. (Warnings are emitted for declared symmetries that are broken.)The result of the wrapped function (an instance of
PropagatingModesalong with an instance ofStabilizedModes) is returned unchanged.The wave functions of the returned modes are defined over the unit cell of the system, which corresponds to the degrees of freedom on the first
cell_sitessites of the system (recall that infinite systems store first the sites in the unit cell, then connected sites in the neighboring unit cell).Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- selfenergy(energy=0, args=(), *, params=None)[source]#
Return self-energy of a lead.
The returned matrix has the shape (s, s), where s is
sum(len(self.hamiltonian(i, i)) for i in range(self.graph.num_nodes - self.cell_size)).Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
- validate_symmetries(args=(), *, params=None)[source]#
Check that the Hamiltonian satisfies discrete symmetries.
Returns
validateapplied to the onsite matrix and the hopping. 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’.