kwant.solvers.common.SMatrix#
- class kwant.solvers.common.SMatrix(data, lead_info, out_leads, in_leads, current_conserving=False)[source]#
Bases:
BlockResult
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 inSMatrix
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 bysubmatrix
.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 examplesmatrix.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.- data[source]#
a matrix containing all the requested matrix elements of the scattering matrix.
- Type:
NumPy array
- lead_info[source]#
a list containing
kwant.physics.PropagatingModes
for each lead. If a lead is a selfenergy lead, then the corresponding entry in lead_info is a selfenergy.- Type:
list of data
- out_leads, in_leads
indices of the leads where current is extracted (out) or injected (in). Only those are listed for which SMatrix contains the calculated result.
- Type:
sequence of integers
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.