def overlap_func(theta, i, j, params): q = -params.Ej / (2 * params.Ec) if i % 2 == 0: bra = np.conjugate(special.mathieu_cem( i, q, theta * 180 / np.pi)[0]) * np.sqrt(2 / np.pi) else: bra = np.conjugate( special.mathieu_sem(i + 1, q, theta * 180 / np.pi)[0]) * np.sqrt( 2 / np.pi) if j % 2 == 0: ket = special.mathieu_cem(j, q, theta * 180 / np.pi)[1] * np.sqrt( 2 / np.pi) else: ket = special.mathieu_sem(j + 1, q, theta * 180 / np.pi)[1] * np.sqrt( 2 / np.pi) overlap_point = bra * ket return overlap_point
def mathieu_se_rad(m, q, x): return mathieu_sem(m, q, x*180/np.pi)[0]
def actfc(m, q, z): #z=degrad(z) return (sp.mathieu_cem(m, q, z)[0], sp.mathieu_sem(m, q, z)[0])