I'm trying to implement my own model and run TEBD on it with non-nearest neighbour interactions. To do this, I've split my lattice into unit cells of 4 sites, which then are all nearest-neighbour (the sites are hardcore bosons, which I've created by simply removing the JW entries in the FermionSite class, I hope this is correct?)
As such, I need to apply a series of operators using the add_coupling method in the model initialisation. Here is the initialisation of the sites (and the lattice);
Python: Select all
site = [Hardcore_Boson(conserve='N'), Hardcore_Boson(conserve='N'), Hardcore_Boson(conserve='N'), Hardcore_Boson(conserve='N')]
site2 = GroupedSite(site)
lat = Lattice([U], site, bc='open', bc_MPS='finite')I want to try and use add_coupling with operators defined by the kroneckerproduct of the 'C' and 'Cd' operators already defined in the site class. However, when I try to run
Python: Select all
C0 = site2.get_op('C0')
Cd1 = site2.get_op('Cd1')
C2 = site2.get_op('C2')
Cd3 = site2.get_op('Cd3')
site2.kroneckerproduct([C0, Cd1, C2, Cd3])Python: Select all
ValueError: incompatible LegCharge
self                                  | other  
LegPipe(shape (2, 2, 2, 2)->16,       |  +1    
    qconj (+1, +1, +1, +1)->+1;       | 0 [[0] 
    block numbers (2, 2, 2, 2)->5)    | 1  [1]]
 +1     |  +1     |  +1     |  +1     | 2      
0 [[0]  | 0 [[0]  | 0 [[0]  | 0 [[0]  |        
1  [1]] | 1  [1]] | 1  [1]] | 1  [1]] |        
2       | 2       | 2       | 2       |        
)  Kind Regards,
Jack.