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