kwant.builder.InfiniteVectorizedSystem

class kwant.builder.InfiniteVectorizedSystem(builder, interface_order=None)[source]

Bases: kwant.builder._VectorizedFinalizedBuilderMixin, kwant.system.InfiniteVectorizedSystem

Finalized infinite system, extracted from a Builder.

Notes

In infinite systems sites and site_arrays consists 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.

Attributes
site_arrayssequence of SiteArray

The sites of the system.

sitessequence

sites[i] is the Site instance that corresponds to the integer-labeled site i of the low-level system.

id_by_sitemapping

The inverse of sites; maps high-level Site instances to their integer label. Satisfies id_by_site[sites[i]] == i.

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.

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.

Parameters
argstuple, defaults to empty

Positional arguments to pass to hamiltonian_term. Mutually exclusive with ‘params’.

sparsebool

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

return_norbbool

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

paramsdict, optional

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

Returns
hamiltonian_partnumpy.ndarray or scipy.sparse.coo_matrix

The Hamiltonian of the system.

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

Parameters
indexint

The index of the term to evaluate.

selectorslice or sequence of int, default: slice(None)

The elements of the term to evaluate.

argstuple

Positional arguments to the term. (Deprecated)

paramsdict

Keyword parameters to the term

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

pos(i)[source]
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

site_ranges[source]

Previous topic

kwant.builder.FiniteVectorizedSystem

Next topic

kwant.builder.Lead

This Page