解析形式的无穷波函数,这里注意先归一化,在乘权重系数。
def get_V_infinite(nk):
V = np.zeros((6, nk), dtype = np.complex128)
V[:, 0] = np.array([1,-sqrt(3)/2,-sqrt(3)/2,1/2,-1/2,0])
V[:, 0] /= LA.norm(V[:, 0])
for i in range(1, nk):
k = i * 2 * pi / nk
x = np.exp(-1j*k)
t = np.sqrt(1+14*x+x*x)
val= (-1-x*x-6*x+(1+x)*t)/(2*x-2)
V[:, i] = np.array([(2+2*x+t)/sqrt(3),-(3+x+t)/2,-(1+3*x+t)/2,(5-x+t)/2/sqrt(3),(5*x-1+t)/2/sqrt(3),x-1])
V[:, i] /= LA.norm(V[:, i])
V[:, i] *= np.sqrt(1-np.absolute(val)**2)
return V
def solve_with_q(nk, Vk):
Ek, Sk = solve_Heff(nk, Vk)
boundary = solve_boundary(nk, Vk)
np.save("boundary_inf.npy", np.roll(boundary, nk // 2))
np.save("Ek_inf.npy", Ek)
np.save("Sk_inf.npy", Sk)