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()

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