return np.linalg.inv( z(omega) * np.eye(np.shape(H)[0], dtype=np.complex) - H) def tmm(A, B, C): return np.dot(A, np.dot(B, C)) # Generate required sectors sectorlist = [] basis = bg.createbasis(N, n, S_z) for l_n in range(0, n + 1): l_Sz = 0.5 * l_n sector = bg.createsubbasis(basis, l_n, l_Sz) sectorlist.append(sector) # for sector in sectorlist: # for s in sector: # print(s.getstate(), '\t', getunn(s)) # print('*'*50) b1 = sectorlist[1] H_list = [] for sector in sectorlist: H = overlap(sector, sector) H_list.append(H)
#i = 0 #for state in uobasis: # print(i, '\t', state.getstate()) # i += 1 # #print("*" * 80) basis = [] i = 0 for n_l in range(n + 1)[::-1]: j = 0 spins = 0.5 * np.array(list(range(-n_l, n_l + 1))) for Sz_l in spins: tempbasis = bg.createsubbasis(uobasis, n_l, Sz_l) basis += tempbasis for state in tempbasis: print(i, j, (n_l, Sz_l), state.getstate(),\ state.intequiv(), sep = '\t') i += 1 j += 1 # #print(n_l, '\t', Sz_l) # print("*" * 80) #i= 0 #for state in uobasis: # print(i, state.getstate(), state.intequiv(), sep = '\t') # i += 1