Hi Tibor,

The number of projectors is the same as the number of distinct eigenvalues
in the specified conservation law. Note that the eigenvalues themselves are
not important, only the order in which they appear and whether they are
distinct or not. In your case, you could set conservation_law =
np.diag([-2, -1, 1, 2]) to get projectors onto e_up, e_down, h_up and
h_down, respectively, using lead.discrete_symmetry().projectors.To get
subblocks of the scattering matrix between conservation law values, you can
use the submatrix(lead_out, lead_in) method of kwant.solvers.common.SMatrix
<https://kwant-project.org/doc/1/reference/generated/kwant.solvers.common.SMatrix#kwant.solvers.common.SMatrix>,
where lead_in and lead_out can be tuples of (lead index, projector index).

Best,
Tómas

On Fri, Dec 8, 2017 at 4:02 PM, Tibor Sekera <tibor.sek...@unibas.ch> wrote:

> Dear all,
>
> as is explained in
> https://kwant-project.org/doc/dev/tutorial/superconductors
> the conservation law argument in Builder (e.g. a lead) is
>
> conservation_law=-tau_z
>
> with eigenvalues -1 and 1 yields scattering states of electron and hole
> type, respectively.
> This leads to a block form of the scattering matrix. One can also get the
> electron and hole projectors as
>
> (projector_e, projector_h) = lead.discrete_symmetry().projectors
>
> In presence of spin (described by sigma matrices) and a magnetic field
> (giving rise to a Zeeman term) we could
> have a conservation law of the following form
>
> conservation_law=np.kron(-tau_z,-sigma_z)
>
> where the Hamiltonian is written in the Nambu basis (e up, e down, h up,
> -h down). Eigenvalues of this conservation law
> are now 1,-1,1,-1, which are degenerate.
>
> Question 1: How can one resolve the four-by-four block structure of the
> scattering matrix in the electron-hole ⊗ spin up-down space?
>
> Question 2: How can one get the four projectors? I am looking for
> something like:
>                     (projector_e_up, projector_e_down, projector_h_up,
> projector_h_down) = lead.discrete_symmetry().projectors
>
>
>

Reply via email to