示例#1
0
def F3i_I_eigs_list(E_list, L, F3_list, I, flip=False):
    out = []
    for i in range(len(E_list)):
        E = E_list[i]
        F3 = F3_list[i]

        if flip == False:  # project before inverting F3
            F3_I = proj.irrep_proj(F3, E, L, I)  # works for all shells
            if F3_I.shape == ():
                F3i_I = 1 / F3_I
                F3i_I_eigs = F3i_I
            else:
                F3_I_eigs = defns.chop(
                    np.array(sorted(LA.eigvals(F3_I), key=abs,
                                    reverse=True)).real)
                #F3i_I = defns.chop(LA.inv(F3_I))
                if F3_I_eigs[-1] == 0:
                    print(E, F3_I_eigs)
                    sys.exit()
                else:
                    F3i_I_eigs = np.array([1 / x for x in F3_I_eigs])

        elif flip == True:  # invert F3 before projecting
            F3i = defns.chop(LA.inv(F3))
            F3i_I = proj.irrep_proj(F3i, E, L, I)
            F3i_I_eigs = defns.chop(np.array(sorted(LA.eigvals(F3i_I))).real)

        out.append(F3i_I_eigs)
    return out
示例#2
0
def K33Bmat(E, L, a0, a2):
    nnk_list = list_nnk(E, L)
    N = len(nnk_list)
    #print(nnk_list)
    #print(N)
    Gfull = []
    for p in range(N):
        nnp = list(nnk_list[p])
        Gp = []
        for k in range(N):
            nnk = list(nnk_list[k])

            Gpk = np.zeros((6, 6))
            for i1 in range(6):
                [l1, m1] = Gmatrix.lm_idx(i1)
                for i2 in range(6):
                    [l2, m2] = Gmatrix.lm_idx(i2)
                    Gpk[i1,
                        i2] = K33B.K3cubicB(E, 2 * math.pi / L * np.array(nnp),
                                            l1, m1,
                                            2 * math.pi / L * np.array(nnk),
                                            l2, m2)

            Gp.append(Gpk)

        Gfull.append(Gp)

    matrix = np.ones_like(chop(np.block(Gfull)))

    print(matrix.shape)

    return pr.irrep_proj(matrix, E, L, "A1")
示例#3
0
def F3i(e, L, a0, r, P, a2):

    K0 = 1000 * 5
    K1 = 3 * 270 / 9 * 0
    K2 = 40. / 81 * 0
    A = 40 / 81 * 0
    B = 400 * 0
    Kdf = K3.K3mat(e, L, K0, K1, K2, A, B)
    f3mat = F3_mat.F3i_mat(e, L, a0, r, P, a2, 0.3)
    return pr.irrep_proj(f3mat + Kdf, e, L, "T2+")
示例#4
0
def F3i(e, L, a0, a2):

    K0 = -1000 * 0
    K1 = -100 * 0
    K2 = -50 * 0
    A = -470 * 0
    B = 0.
    Kdf = K3.K3mat(e, L, K0, K1, K2, A, B)
    f3mat = F3_mat.F3i_mat(e, L, a0, 0., 0., a2, 0.3)
    return pr.irrep_proj(f3mat + Kdf, e, L, "E+")
示例#5
0
def F3iK(e, L, a0, a2):
    r = 0.
    P = 0.
    K0 = 100 * 0
    K1 = 10 * 0
    K2 = 200. / 81 * -1 * 0
    A = 200 / 81 * 0
    B = 40 / 81 * -20000 * 0
    Kdf = K3.K3mat(e, L, K0, K1, K2, A, B)
    f3mat = F3_mat.F3i_mat(e, L, a0, r, P, a2, 0.3)
    return pr.irrep_proj(f3mat + Kdf, e, L, "E+")
示例#6
0
def F3_I_mat(E, L, a0, r0, P0, a2, alpha, I):
    return proj.irrep_proj(F3mat(E, L, a0, r0, P0, a2, alpha), E, L, I)
示例#7
0
def F3i(e, L, a0, a2):
    f3mat = F3_mat.F3i_mat(e, L, a0, 0., 0., a2, 0.3)
    return pr.irrep_proj(f3mat, e, L, "A1")
示例#8
0
def H2proj(e, L, a, a2):
    return pr.irrep_proj(H_mat.Hmat(e, L, a, 0., 0., a2, 0.5), e, L, "E+")
示例#9
0
P0 = 0

E = 4.24216326
L = 5

I = 'E+'

if a2 == 0:
    F3 = F3_mat.F3mat00(E, L, a0, r0, P0, a2, alpha)
    F3_I = proj.irrep_proj_00(F3, E, L, I)
elif a0 == r0 == P0 == 0:
    F3 = F3_mat.F3mat22(E, L, a0, r0, P0, a2, alpha)
    F3_I = proj.irrep_proj_22(F3, E, L, I)
else:
    F3 = F3_mat.F3mat(E, L, a0, r0, P0, a2, alpha)
    F3_I = proj.irrep_proj(F3, E, L, I)

F3i_I = defns.chop(LA.inv(F3_I))
w_list, v_list = LA.eig(F3i_I)

F3i = defns.chop(LA.inv(F3))

w0, v0 = AD.smallest_eig_evec(
    F3i)  # Need to make evec_decomp() for 00 and 22 cases

proj.evec_decomp(v0, E, L, I)

s = 0
for I in GT.irrep_list():
    s += proj.evec_decomp(v0, E, L, I)
print('Total:', s)