kwant.system.
InfiniteVectorizedSystem
[source]¶Bases: kwant.system.VectorizedSystem
, kwant.system.InfiniteSystemMixin
Abstract vectorized infinite low-level system.
An infinite system consists of an infinite series of identical cells. Adjacent cells are connected by identical inter-cell hoppings.
Notes
Unlike InfiniteSystem
, vectorized infinite systems do
not explicitly store the sites in the previous unit cell; only the
sites in the fundamental domain are stored. Nevertheless, the
SiteArrays of InfiniteVectorizedSystem
are ordered
in an analogous way, in order to facilitate the representation of
inter-cell hoppings. The ordering is as follows. The interface sites
of a unit cell are the sites that have hoppings to the next unit cell
(along the symmetry direction). Interface sites are always in different
SiteArrays than non-interface sites, i.e. the sites in a given SiteArray
are either all interface sites, or all non-interface sites.
The SiteArrays consisting of interface sites always appear before the
SiteArrays consisting of non-interface sites in self.site_arrays
.
This is backwards compatible with kwant.system.InfiniteSystem
.
For backwards compatibility, InfiniteVectorizedSystem
maintains a graph
, that includes nodes for the sites
in the previous unit cell.
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.
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 i
and j
.
If i == j
, return the on-site Hamiltonian of site i
.
if i != j
, return the hopping between site i
and j
.
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
(args=(), sparse=False, return_norb=False, *, params=None)[source]¶Return The system Hamiltonian.
args (tuple, defaults to empty) – Positional arguments to pass to hamiltonian_term
. Mutually
exclusive with ‘params’.
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) – The Hamiltonian of the system.
norb (array of integers) – Numbers of orbitals on each site. Only returned when return_norb
is true.
Notes
Providing positional arguments via ‘args’ is deprecated, instead, provide named parameters as a dictionary via ‘params’.
hamiltonian_term
(index, selector=slice(None, None, None), args=(), params=None)[source]¶Return the Hamiltonians for hamiltonian term number k.
index (int) – The index of the term to evaluate.
selector (slice or sequence of int, default: slice(None)) – The elements of the term to evaluate.
args (tuple) – Positional arguments to the term. (Deprecated)
params (dict) – Keyword parameters to the term
hamiltonian (3d complex array) – Has shape (N, P, Q)
where N
is the number of matrix
elements in this term (or the number selected by ‘selector’
if provided), P
and Q
are the number of orbitals in the
‘to’ and ‘from’ site arrays associated with this term.
Providing positional arguments via ‘args’ is deprecated,
instead, provide named parameters as a dictionary via ‘params’.
inter_cell_hopping
(args=(), sparse=False, *, params=None)[source]¶Hopping Hamiltonian between two cells of the infinite system.
This method returns a complex matrix that represents the hopping from
the interface sites of unit cell n - 1
to all the sites of
unit cell n
. It is therefore generally a rectangular matrix of
shape (N_uc, N_iface)
where N_uc
is the number of orbitals
in the unit cell, and N_iface
is the number of orbitals on the
interface sites (i.e. the sites with hoppings to the next unit cell).
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
See documentation of PropagatingModes
and
StabilizedModes
for the return format details.
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_sites
sites 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 validate
applied
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’.
Attributes