Dear all, I am new to Kwant and python, and I am trying out Kwant by learning the examples. I have tried a simple squre scattering region like this: def make_system(a=1, t=-2.8, W=9, L=10): lat = kwant.lattice.honeycomb() def squre(pos): x, y = pos return 0<=x<=L and 0<=y<=W sys = kwant.Builder() i want to try more complicated shapes, for example 0<=x<=L, 0<=y<=W and 2L<=x<=3L,0<=y<=2W. how shoud i change my programme? i note that in the previous version Knit we can glue two regions easily,can we do this in Kwant similarly? Thanks! Regards, Qingtian Zhang
Dear Qingtian,
You can use shape with any function, not just a single rectangle, see
for example tutorial 2.3:
http://kwant-project.org/doc/1.0/tutorial/tutorial2#nontrivial-shapes
You can also add sites to the system in several steps by defining
several shape functions, and using something like
sys[lat.shape(shape1, ...)] = value1
sys[lat.shape(shape2, ...)] = value2
Please keep in mind that Kwant is not the next version of Knit, and it
is not guaranteed to have any particular feature of Knit interface.
However you can use things like
sys1 += sys2
in Kwant. This adds all the sites and hoppings from sys2 to sys1. Both
of these things are however explained in the documentation, and I
suggest to read it more attentively.
Best regards
Anton
On Mon, Feb 17, 2014 at 9:11 AM, Qingtian Zhang
Dear all, I am new to Kwant and python, and I am trying out Kwant by learning the examples. I have tried a simple squre scattering region like this: def make_system(a=1, t=-2.8, W=9, L=10): lat = kwant.lattice.honeycomb() def squre(pos): x, y = pos return 0<=x<=L and 0<=y<=W sys = kwant.Builder() i want to try more complicated shapes, for example 0<=x<=L, 0<=y<=W and 2L<=x<=3L,0<=y<=2W. how shoud i change my programme? i note that in the previous version Knit we can glue two regions easily,can we do this in Kwant similarly? Thanks! Regards, Qingtian Zhang
Dear Anton
I am sorry that I thought Kwant is the next version of Knit. Thanks for
your suggestions, and I will keep learning the documentation for Kwant.
Regards,
Qingtian
2014-02-18 4:08 GMT+08:00 Anton Akhmerov
Dear Qingtian,
You can use shape with any function, not just a single rectangle, see for example tutorial 2.3: http://kwant-project.org/doc/1.0/tutorial/tutorial2#nontrivial-shapes You can also add sites to the system in several steps by defining several shape functions, and using something like
sys[lat.shape(shape1, ...)] = value1 sys[lat.shape(shape2, ...)] = value2
Please keep in mind that Kwant is not the next version of Knit, and it is not guaranteed to have any particular feature of Knit interface. However you can use things like
sys1 += sys2
in Kwant. This adds all the sites and hoppings from sys2 to sys1. Both of these things are however explained in the documentation, and I suggest to read it more attentively.
Best regards Anton
On Mon, Feb 17, 2014 at 9:11 AM, Qingtian Zhang
wrote: Dear all, I am new to Kwant and python, and I am trying out Kwant by learning the examples. I have tried a simple squre scattering region like this: def make_system(a=1, t=-2.8, W=9, L=10): lat = kwant.lattice.honeycomb() def squre(pos): x, y = pos return 0<=x<=L and 0<=y<=W sys = kwant.Builder() i want to try more complicated shapes, for example 0<=x<=L, 0<=y<=W and 2L<=x<=3L,0<=y<=2W. how shoud i change my programme? i note that in the previous version Knit we can glue two regions easily,can we do this in Kwant similarly? Thanks! Regards, Qingtian Zhang
participants (2)
-
Anton Akhmerov
-
Qingtian Zhang