def action_hopping_second(x, y, **args): ll = args.get("ll") BASE_bin = args.get("BASE_bin") t = args.get("t") state_x = BASE_bin[x] bosecon_x = ff.TO_bose_conf(state_x, ll) state_y = BASE_bin[y] bosecon_y = ff.TO_bose_conf(state_y, ll) jump_cd = np.argmin(bosecon_x - bosecon_y) jump_c = np.argmax(bosecon_x - bosecon_y) rem = (jump_c + 1) % ll if rem == jump_cd: direction = 'right' hop = np.conjugate(t) elif jump_c == jump_cd: direction = 'stand' else: direction = 'left' hop = t # print(bosecon_x,bosecon_y,direction) result = np.sqrt((bosecon_x[jump_cd] + 1) * (bosecon_x[jump_c])) return hop * result
def action_interactions(state, **args): ll = args.get("ll") U = args.get("U") bosecon = ff.TO_bose_conf(state, ll) int_val = 0.5 * U * np.dot(bosecon, bosecon - 1.) return int_val
def action_potential(state, **args): ll = args.get("ll") bar = args.get("bar") pot = np.zeros(ll, dtype=np.float) pot[0] = bar bosecon = ff.TO_bose_conf(state, ll) bar_val = np.dot(pot, bosecon) # print(pot) # print(bosecon) # print(bar_val) return bar_val