Dear Joe,
Thanks a lot for your help. I think my problems can be solved now.
Best wishes,
Kwok-Long Lee



On Tue, Feb 10, 2015 at 6:00 PM, Joseph Weston <joseph.weston@cea.fr> wrote:
Hi again, sorry for the delay in replying.

> Dear Joe,
> Thanks, it is very useful for me. I want to know more about how the
> transmission is related to the wave vector kx, because I want to
> calculate the transmission contributed from some scale like  kx=0~pi.
> So, how can i know the wave vector for "2" in S10[3, 2] ? I tried "modes
> = Smatrix.lead_info", it seems that it does not give the kx information.

So lead info is ``a list containing kwant.physics.PropagatingModes for
each lead''. Each `PropagatingModes` object (http://kwant-project.org
/doc/1.0/reference/generated/kwant.physics.PropagatingModes) has an
array of wavefunctions, an array of momenta and an array of velocities.
The sort order of all three arrays is identical: the first half are
the -ve velocity modes (incoming), and the second half are the +ve
velocity modes (outgoing). The modes with negative velocity are ordered
from larger to lower momenta, the modes with positive velocity vice
versa. If there are no band crossings this will correspond to "lowest
mode first", otherwise you will need to inspect the band structure
yourself. Concretely, for the example where we want the momenta of
incoming mode 2 in lead 0 and outgoing mode 3 in lead 1:

        S = kwant.smatrix(fsys, energy=0.2)
        n_modes = [len(li.momenta) for li in S.lead_info]
        incoming_momentum = S.lead_info[0].momenta[2]
        # outgoing modes in second half of array
        outgoing_momentum = S.lead_info[1].momenta[nmodes[1]//2 + 3]

Note the 0-based numbering of the modes.


> I can take graphene as an example, we have two valleys K and K' in
> graphene. Since the wave vectors kx for the two valleys are different,
> we can calculate the transmission contributed from K valley and K'
> valley separately, but of course we need to know "transmission-mode-kx"
> first. Maybe this can be easily solved in another way.
> Kwok-Long Lee

For the time being kwant can only handle translational symmetries in
at most 1 dimension at a time, i.e. only graphene ribbons are possible,
not graphene planes (it can still be done but it is a bit fiddly).
In the 1D case the K and K' points are found at opposite edges of the
Brillouin zone with opposite velocity, so I would expect incoming modes
to be associated with one valley and outgoing modes associated with the
other.

Hope that clarifies a bit,

Joe