Hello, I'm trying to add disorder in the NNN hopping term at the Haldane model. a, b = graphene.sublattices nnn_hoppings_a = (((-1, 0), a, a), ((0, 1), a, a), ((1, -1), a, a)) nnn_hoppings_b = (((1, 0), b, b), ((0, -1), b, b), ((-1, 1), b, b)) nnn_hoppings = nnn_hoppings_a + nnn_hoppings_b def nnn(site1, site2): return 1j * (1-2*uniform(repr(site1),salt)) sys[[kwant.builder.HoppingKind(*hopping) for hopping in nnn_hoppings]] = nnn I want to vary the strength of nnn hopping in different unit cell, and keep them to be the same in the same unit cell. But here, even the site a/b is in one unitcell, the nnn term for a and b are different, is there any way to solve it? Thank you in advance! Best, yuhao
Hi Yuhao,
The function "uniform" that you're using produces random numbers based
on its input. Therefore if you want these to be the same for two sites
in the same unit cell, you need to pass the unit cell coordinates as
input. These are available as site.tag . So combining everything
together you need
def nnn(site1, site2): return 1j * (1-2*uniform(repr(site1.tag),salt))
Best,
Anton
On Fri, Mar 1, 2019 at 9:05 AM yuhao kang
Hello,
I'm trying to add disorder in the NNN hopping term at the Haldane model.
a, b = graphene.sublattices nnn_hoppings_a = (((-1, 0), a, a), ((0, 1), a, a), ((1, -1), a, a)) nnn_hoppings_b = (((1, 0), b, b), ((0, -1), b, b), ((-1, 1), b, b)) nnn_hoppings = nnn_hoppings_a + nnn_hoppings_b
def nnn(site1, site2): return 1j * (1-2*uniform(repr(site1),salt))
sys[[kwant.builder.HoppingKind(*hopping) for hopping in nnn_hoppings]] = nnn
I want to vary the strength of nnn hopping in different unit cell, and keep them to be the same in the same unit cell. But here, even the site a/b is in one unitcell, the nnn term for a and b are different, is there any way to solve it?
Thank you in advance!
Best, yuhao
Thank you so much!
yuhao
On Fri, Mar 1, 2019 at 3:08 AM Anton Akhmerov
Hi Yuhao,
The function "uniform" that you're using produces random numbers based on its input. Therefore if you want these to be the same for two sites in the same unit cell, you need to pass the unit cell coordinates as input. These are available as site.tag . So combining everything together you need
def nnn(site1, site2): return 1j * (1-2*uniform(repr(site1.tag),salt))
Best, Anton
On Fri, Mar 1, 2019 at 9:05 AM yuhao kang
wrote: Hello,
I'm trying to add disorder in the NNN hopping term at the Haldane model.
a, b = graphene.sublattices nnn_hoppings_a = (((-1, 0), a, a), ((0, 1), a, a), ((1, -1), a, a)) nnn_hoppings_b = (((1, 0), b, b), ((0, -1), b, b), ((-1, 1), b, b)) nnn_hoppings = nnn_hoppings_a + nnn_hoppings_b
def nnn(site1, site2): return 1j * (1-2*uniform(repr(site1),salt))
sys[[kwant.builder.HoppingKind(*hopping) for hopping in nnn_hoppings]] =
nnn
I want to vary the strength of nnn hopping in different unit cell, and
keep them to be the same in the same unit cell.
But here, even the site a/b is in one unitcell, the nnn term for a and b are different, is there any way to solve it?
Thank you in advance!
Best, yuhao
participants (2)
-
Anton Akhmerov
-
yuhao kang