kwant.system.
InfiniteSystem
¶Bases: kwant.system.System
Abstract 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
The system graph of an infinite systems contains a single cell, as well as
the part of the previous cell which is connected to it. The first
cell_size sites form one complete single cell. The remaining N sites of
the graph (N equals graph.num_nodes - cell_size
) belong to the
previous cell. They are included so that hoppings between cells can be
represented. The N sites of the previous cell correspond to the first N
sites of the fully included cell. When an InfiniteSystem is used as a lead,
N acts also as the number of interface sites to which it must be
connected.
The drawing shows three cells of an infinite system. Each cell consists of three sites. Numbers denote sites which are included into the system graph. Stars denote sites which are not included. Hoppings are included in the graph if and only if they occur between two sites which are part of the graph:
* 2 *
... | | | ...
* 0 3
|/|/|
*-1-4
<-- order of cells
The numbering of sites in the drawing is one of the two valid ones for that infinite system. The other scheme has the numbers of site 0 and 1 exchanged, as well as of site 3 and 4.
Attributes
cell_size | (integer) The number of sites in a single cell of the system. |
Methods
cell_hamiltonian
(args=(), sparse=False)¶Hamiltonian of a single cell of the infinite system.
hamiltonian
(i, j, *args)¶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
hamiltonian_submatrix
(self, args=(), to_sites=None, from_sites=None, sparse=False, return_norb=False)¶Return a submatrix of the system Hamiltonian.
Parameters: | args : tuple, defaults to empty
to_sites : sequence of sites or None (default) from_sites : sequence of sites or None (default) sparse : bool
return_norb : bool
|
---|---|
Returns: | hamiltonian_part : numpy.ndarray or scipy.sparse.coo_matrix
to_norb : array of integers
from_norb : array of integers
|
Notes
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.
inter_cell_hopping
(args=(), sparse=False)¶Hopping Hamiltonian between two cells of the infinite system.
modes
(energy=0, args=())¶Return mode decomposition of the lead
See documentation of PropagatingModes
and
StabilizedModes
for the return format details.
selfenergy
(energy=0, args=())¶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))
.