dear all

I want to plot two different structures in one system. Although it is easy to plot separate lattices with the same structure, I will not be able to solve the problem when the structures are different. For example, I plotted two lattices with the same diamond structure, but when I replaced one of them with a honeycomb structure, I got an error after plotting the system. Apparently and logically, I think there is no bug in my code.

Is there a way to solve this problem?

I ask you to take a look at my code and report any possible bugs to me.

Thanks

###################################################################

import kwant

from math import sqrt

lat = kwant.lattice.general([(0, 0.5, 0.5), (0.5, 0, 0.5), (0.5, 0.5, 0)],

[(15, 15, 15), (15.25, 15.25, 15.25)], name=['a1', 'a2'])

a1, a2 = lat.sublattices

honeycomb = kwant.lattice.general([(1, 0), (1 / 2, sqrt(3) / 2)],

[(0, 0), (0, 1 / sqrt(3))])

subA , subB = honeycomb.sublattices

def make_system(a=25, b=25, c=30):

syst = kwant.Builder()

def cuboid_shape(pos):

x, y, z = pos

return 15 <= x < a and 15 <= y < b and 15 <= z < c

syst[a1.shape(cuboid_shape, (15, 15, 15))] = 1

syst[a2.shape(cuboid_shape, (15, 15, 15))] = 1

syst[lat.neighbors()] = 1

def graphene_shape(pos):

x,y = pos

return 0 <= x < 10 and 0 <= y < 10

syst[honeycomb.shape(graphene_shape,(0,0))] = 1

syst[honeycomb.neighbors()] = 1

return syst

def main():

syst= make_system()

kwant.plot(syst)

syst = make_system(a=1.1, b=1.1, c=1.1)

if __name__ == '__main__':

main()

###################################################################