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. So, you mean all the outgoning modes associated only one valley. But,actually, we should have the conductance G_K and G_K' and valley
Dear Joe, I am sorry to bother you again with this old topic. I have read a paper "Nature Physics 3,172-175 (2007)", and now I feel confused about your reply: polarization is obtained in Nature Physics 3,172-175 (2007). I have tried to calculate the conductance G_K by summing the outgoning modes with kx:0~pi, and G_K' by summing the outgoning modes with kx:-pi~0. Of course it gives wrong results. Any suggestion for my problem? Thanks! 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