예제 #1
0
vecs_0_c = np.conjugate(vecs_0)

H0, Hq, Hqq, DELTA, Hgam, MU = kp.Hq(coor, ax, ay, NN, NNb = NNb, Wj = Wj, cutx = cutx, cuty = cuty, V = V, mu = mu, alpha = alpha, delta = delta, phi = phi, periodicX = True)
H0_DB = np.dot(vecs_0_hc, H0.dot(vecs_0))
Hq_DB = np.dot(vecs_0_hc, Hq.dot(vecs_0))
Hqq_DB = np.dot(vecs_0_hc, Hqq.dot(vecs_0))
DELTA_DB = np.dot(vecs_0_hc, DELTA.dot(vecs_0))
Hgam_DB = np.dot(vecs_0_hc, Hgam.dot(vecs_0))
MU_DB = np.dot(vecs_0_hc, MU.dot(vecs_0))

start = time.perf_counter()
for i in range(steps):
    print(steps - i)
    #eigs = spop.EBDG(coor, ax, ay, NN, NNb=NNb, Wj=Wj, cutx=cutx, cuty=cuty, alpha=alpha, delta=delta, phi = phi, V=V, gammax=gx, mu=mu, qx=qx[i], periodicX=True, k=k_full)

    H = kp.HBDG_LE(H0_DB, Hq_DB, Hqq_DB, DELTA_DB, Hgam_DB, MU_DB, q = qx[i], gx = gx)

    eigs_kp, U_kp = LA.eigh(H)
    if i == 0:
        bands_kp = np.zeros((steps, eigs_kp.shape[0]))
        #bands = np.zeros((steps, eigs.shape[0]))

    #bands[i, :] = eigs
    bands_kp[i, :] = eigs_kp
end = time.perf_counter()
print("Time: ", end-start)

if nod_bool:
    x = "Present"
else:
    x = "Not Present"
예제 #2
0
            H0_DB = np.dot(vecs_0_hc, H0.dot(vecs_0))
            Hq_DB = np.dot(vecs_0_hc, Hq.dot(vecs_0))
            Hqq_DB = np.dot(vecs_0_hc, Hqq.dot(vecs_0))
            DELTA_DB = np.dot(vecs_0_hc, DELTA.dot(vecs_0_c))
            Hgam_DB = np.dot(vecs_0_hc, Hgam.dot(vecs_0))
            MU = np.eye(H0_DB.shape[0])
        for j in range(gx.shape[0]):
            start = time.perf_counter()
            for m in range(qx.shape[0]):
                print(mu.shape[0] - i, gx.shape[0] - j, qx.shape[0] - m)
                H = kp.HBDG_LE(H0_DB,
                               Hq_DB,
                               Hqq_DB,
                               DELTA_DB,
                               Hgam_DB,
                               MU,
                               q=qx[m],
                               d_mu=mu[i] - mu_cp,
                               gx=gx[j])

                eigs_DB, U_DB = LA.eigh(H)
                if m == 0:
                    bands = np.zeros((steps_k, eigs_DB.shape[0]))
                bands[m, :] = eigs_DB
                #print(eigs_DB, eigs_DB[int(k)])
                LE_bands[i, j, m] = eigs_DB[int(k)]
            end = time.perf_counter()
            print("Time: ", end - start)
            print(min(LE_bands[i, j, :]))
            for n in range(12):  #bands.shape[1]):
예제 #3
0
            vecs_0_hc = np.conjugate(
                np.transpose(vecs_0))  #hermitian conjugate
            vecs_0_c = np.conjugate(vecs_0)

            H0_DB = np.dot(vecs_0_hc, H0.dot(vecs_0))
            Hq_DB = np.dot(vecs_0_hc, Hq.dot(vecs_0))
            Hqq_DB = np.dot(vecs_0_hc, Hqq.dot(vecs_0))
            DELTA_DB = np.dot(vecs_0_hc, DELTA.dot(vecs_0_c))
            Hgam_DB = np.dot(vecs_0_hc, Hgam.dot(vecs_0))
            MU = np.eye(H0_DB.shape[0])

        H = kp.HBDG_LE(H0_DB,
                       Hq_DB,
                       Hqq_DB,
                       DELTA_DB,
                       Hgam_DB,
                       MU,
                       mu[i] - mu_cp,
                       q=0,
                       gx=0)
        eigs_DB, U_DB = LA.eigh(H)
        idx_sort = np.argsort(eigs_DB)
        eigs_DB = eigs_DB[idx_sort]

        bands[i, :] = eigs_DB

    np.save(
        "%s/bands Lx = %.1f Ly = %.1f Wsc = %.1f Wj = %.1f nodx = %.1f nody = %.1f alpha = %.1f delta = %.2f V_sc = %.1f  mu_i = %.1f mu_f = %.1f.npy"
        % (dirS, Lx * .1, Ly * .1, SC_width, Junc_width, Nod_widthx,
           Nod_widthy, alpha, delta, V0, mu_i, mu_f), bands)
    np.save(
예제 #4
0
Hqq_DB = np.dot(vecs_0_hc, Hqq.dot(vecs_0))
DELTA_DB = np.dot(vecs_0_hc, DELTA.dot(vecs_0_c))
Hgam_DB = np.dot(vecs_0_hc, Hgam.dot(vecs_0))
MU = np.eye(H0_DB.shape[0])

eig_arr_DB = np.zeros((gx.shape[0], 2 * k))
eig_arr = np.zeros((gx.shape[0], 44))
for i in range(gx.shape[0]):
    print(gx.shape[0] - i, gx[i])
    #energy = spop.EBDG(coor, ax, ay, NN, NNb=NNb, Wj=Wj, cutx=cutx, cuty=cuty, alpha=alpha, delta=delta, phi = phi, V=V, gammax=gx[i], mu=mu, qx=0, periodicX=True, k=44)

    H = kp.HBDG_LE(H0_DB,
                   Hq_DB,
                   Hqq_DB,
                   DELTA_DB,
                   Hgam_DB,
                   MU,
                   0,
                   q=0,
                   gx=gx[i])

    eigs_DB, U_DB = LA.eigh(H)
    idx_sort = np.argsort(eigs_DB)
    eigs_DB = eigs_DB[idx_sort]

    eig_arr_DB[i, :] = eigs_DB
    #eig_arr[i, :] = energy

for i in range(44):
    #if i % 2 == 0:
    #plt.plot(gx, eig_arr[:, i], c = 'r')