
Dear all, I would like to simulate transport through a simple 1D structure, and i used chain() function to define the lattice but i dont know how to define leads. I tried to use transationalsymmetry() function but it does not work. Below i paste part of my simple code
def make_system(L=100,dx=1.0,m=0.0667):
lat=kwant.lattice.chain(dx) sys=kwant.Builder()
sys[(lat(i) for i in range(L))]=onsite sys[lat.neighbors()]=hopping
sym = kwant.TranslationalSymmetry((-dx,0)) #here i also tried to use kwant.TranslationalSymmetry((-dx)) l_lead=kwant.Builder(sym) l_lead[(lat(0,0))]=onsite l_lead[lat.neighbors()]=hopping sys.attach_lead(l_lead) sys.attach_lead(l_lead.reversed())
return sys.finalized()
I would be greatfull for advises. Thank you in advance Best Regards Pawel

Dear Pawel,
you have to write:
sym = kwant.TranslationalSymmetry((-dx,))
(and replace the lat(0, 0) by lat(0))
The extra comma is important! (-dx) is just a scalar, (-dx,) a tuple with one entry. TranslationalSymmetry needs a tuple/list/vector as input.
Best,
Michael
On 21.05.2014 09:57, Pawel Wojcik wrote:
Dear all, I would like to simulate transport through a simple 1D structure, and i used chain() function to define the lattice but i dont know how to define leads. I tried to use transationalsymmetry() function but it does not work. Below i paste part of my simple code
def make_system(L=100,dx=1.0,m=0.0667):
lat=kwant.lattice.chain(dx) sys=kwant.Builder()
sys[(lat(i) for i in range(L))]=onsite sys[lat.neighbors()]=hopping
sym = kwant.TranslationalSymmetry((-dx,0)) #here i also tried to use kwant.TranslationalSymmetry((-dx)) l_lead=kwant.Builder(sym) l_lead[(lat(0,0))]=onsite l_lead[lat.neighbors()]=hopping sys.attach_lead(l_lead) sys.attach_lead(l_lead.reversed())
return sys.finalized()
I would be greatfull for advises. Thank you in advance Best Regards Pawel
participants (2)
-
Michael Wimmer
-
Pawel Wojcik