kwant.solvers.common.
SMatrix
(data, lead_info, out_leads, in_leads, current_conserving=False)[source]¶A scattering matrix.
Transport properties can be easily accessed using the
transmission
method (don’t be fooled by the name,
it can also compute reflection, which is just transmission from one
lead back into the same lead.)
SMatrix
however also allows for a more direct access to the result: The
data stored in SMatrix
is a scattering matrix with respect to lead modes
and these modes themselves. The details of this data can be directly
accessed through the instance variables data and lead_info. Subblocks
of data corresponding to particular leads are conveniently obtained by
submatrix
.
SMatrix
also respects the conservation laws present in the lead, such as
spin conservation, if they are declared during system construction. If
queried with length-2 sequence the first number is the number of the lead,
and the second number is the index of the corresponding conserved
quantity. For example smatrix.transmission((1, 3), (0, 2))
is
transmission from block 2 of the conserved quantity in lead 0 to the block
3 of the conserved quantity in lead 1.
a matrix containing all the requested matrix elements of the scattering matrix.
a list containing kwant.physics.PropagatingModes
for each lead.
indices of the leads where current is extracted (out) or injected (in). Only those are listed for which SMatrix contains the calculated result.
Methods
block_coords
(lead_out, lead_in)[source]¶Return slices corresponding to the block from lead_in to lead_out.
conductance_matrix
()[source]¶Return the conductance matrix.
This is the matrix \(C\) such that \(I = CV\) where \(I\) and \(V\) are, respectively, the vectors of currents and voltages for each lead.
This matrix is useful for calculating non-local resistances. See Section 2.4 of the book by S. Datta.
in_block_coords
(lead_in)[source]¶Return a slice with the columns in the block corresponding to lead_in.