# root_refs = find_root_refs(np.array([3,0]),np.array([3,1]),H,sector_refs,from_sector,pxp) # for n in range(0,np.size(root_refs,axis=0)): # goes_to = maps_to(root_refs[n],np.array([0,1])) # print(pxp.basis[pxp.keys[root_refs[n]]],goes_to) # for m in range(0,np.size(goes_to,axis=0)): # Hp,Hm = fsa_ops_root_to_target(root_refs[n],goes_to[m]) # refs = sector_refs[perm_key(np.array([3,0]),pxp)] # for n in range(0,np.size(refs,axis=0)): # print(maps_to(refs[n],[0,3])) # # psi = bin_state(np.array([])) # # print(maps_to(0,[3,0])) # N=8 root_refs = find_root_refs(np.array([2, 0]), np.array([2, 1]), H, sector_refs, from_sector, pxp) basis = subcube_basis(root_refs, "Left", 3) root_refs = find_root_refs(np.array([0, 2]), np.array([1, 2]), H, sector_refs, from_sector, pxp) basis = subcube_basis(root_refs, "Right", 3) # # N=10 # root_refs = find_root_refs(np.array([3,0]),np.array([3,1]),H,sector_refs,from_sector,pxp) # basis = subcube_basis(root_refs,"Left",4) # print("\n") # root_refs = find_root_refs(np.array([0,3]),np.array([1,3]),H,sector_refs,from_sector,pxp) # basis = np.hstack((basis,subcube_basis(root_refs,"Right",4))) # print("\n")
# refs_found = np.sort(np.unique(np.append(refs_found,non_zero_ref_in_basis(temp)))) # basis = np.hstack((basis,temp)) # print(np.size(root_refs)) # print("\n") # print(1,5) # root_refs = find_root_refs(np.array([1,0]),np.array([1,5]),H,sector_refs,from_sector,pxp,refs_found) # if np.size(root_refs)>0: # temp = subcube_basis(root_refs,"Left",6,equal_supp=False) # refs_found = np.sort(np.unique(np.append(refs_found,non_zero_ref_in_basis(temp)))) # basis = np.hstack((basis,temp)) # print(np.size(root_refs)) # #N=16 print(6, 1) root_refs = find_root_refs(np.array([6, 0]), np.array([6, 1]), H, sector_refs, from_sector, pxp, []) basis = subcube_basis(root_refs, "Left", 7) refs_found = non_zero_ref_in_basis(basis) print(np.size(root_refs)) print("\n") print(5, 2) root_refs = find_root_refs(np.array([5, 0]), np.array([5, 2]), H, sector_refs, from_sector, pxp, refs_found) if np.size(root_refs) > 0: temp = subcube_basis(root_refs, "Left", 7) refs_found = np.sort( np.unique(np.append(refs_found, non_zero_ref_in_basis(temp)))) basis = np.hstack((basis, temp)) print(np.size(root_refs))
# basis = subcube_basis(root_refs,"Left",4) # print("\n") # root_refs = find_root_refs(np.array([0,3]),np.array([1,3]),H,sector_refs,from_sector,pxp) # basis = np.hstack((basis,subcube_basis(root_refs,"Right",4))) # print("\n") # root_refs = find_root_refs(np.array([2,1]),np.array([2,2]),H,sector_refs,from_sector,pxp) # basis = np.hstack((basis,subcube_basis(root_refs,"Left",4))) # print("\n") # root_refs = find_root_refs(np.array([1,2]),np.array([2,2]),H,sector_refs,from_sector,pxp) # basis = np.hstack((basis,subcube_basis(root_refs,"Right",4))) # #N=12 root_refs = find_root_refs(np.array([4, 0]), np.array([4, 1]), H, sector_refs, from_sector, pxp) basis = subcube_basis(root_refs, "Left", 5) print("\n") root_refs = find_root_refs(np.array([3, 0]), np.array([3, 2]), H, sector_refs, from_sector, pxp) basis = np.hstack((basis, subcube_basis(root_refs, "Left", 5))) print("\n") root_refs = find_root_refs(np.array([0, 3]), np.array([2, 3]), H, sector_refs, from_sector, pxp) basis = np.hstack((basis, subcube_basis(root_refs, "Right", 5))) print("\n") root_refs = find_root_refs(np.array([2, 0]), np.array([2, 2]), H, sector_refs, from_sector, pxp)
V = Hamiltonian(pxp) V.site_ops[1] = np.array([[0,1/2],[1/2,0]]) # V.site_ops[2] = np.array([[-1/2,0],[0,1/2]]) V.model = np.array([[0,1,0,0],[0,0,1,0]]) V.model_coef = np.array([1,1]) H0.gen() V.gen() H = H_operations.add(H0,V,np.array([1,0.05])) H.sector.find_eig() # H = spin_Hamiltonian(pxp,"x") # H.gen() # H.sector.find_eig() # N=10 root_refs = find_root_refs(np.array([3,0]),np.array([3,1]),H,sector_refs,from_sector,pxp,[]) basis = subcube_basis(root_refs,"Left",4) refs_found = non_zero_ref_in_basis(basis) print("\n") root_refs = find_root_refs(np.array([0,3]),np.array([1,3]),H,sector_refs,from_sector,pxp,refs_found) if np.size(root_refs)>0: temp = subcube_basis(root_refs,"Right",4) refs_found = np.sort(np.unique(np.append(refs_found,non_zero_ref_in_basis(temp)))) basis = np.hstack((basis,temp)) print("\n") root_refs = find_root_refs(np.array([2,0]),np.array([2,2]),H,sector_refs,from_sector,pxp,refs_found) if np.size(root_refs)>0: temp = subcube_basis(root_refs,"Left",4) refs_found = np.sort(np.unique(np.append(refs_found,non_zero_ref_in_basis(temp))))