py.guanjihuan.com/Tutorial/Wilson_loop.py
2021-05-19 09:21:50 +08:00

20 lines
578 B
Python
Executable File

import gjh
import numpy as np
import cmath
from math import *
def hamiltonian_function(k): # SSH model
gamma = 0.5
lambda0 = 1
delta = 0
hamiltonian = np.zeros((2, 2), dtype=complex)
hamiltonian[0,0] = delta
hamiltonian[1,1] = -delta
hamiltonian[0,1] = gamma+lambda0*cmath.exp(-1j*k)
hamiltonian[1,0] = gamma+lambda0*cmath.exp(1j*k)
return hamiltonian
wilson_loop_array = gjh.calculate_wilson_loop(hamiltonian_function)
print('wilson loop =', wilson_loop_array)
p = np.log(wilson_loop_array)/2/pi/1j
print('p =', p, '\n')