コード例 #1
0
def si_anderson_imp_ext_ni_h(t,u,nocc,nimp,nsites):
    ncore=2*nocc-2*nimp
    cocc=range(4*nimp,4*nimp+ncore)
    #cb_edge = 1.
    #gap = 2.0*cb_edge/(nsites-2)
    hlat=utils.zeros([nsites,nsites])
    hlat[0,1:] = t
    hlat[1:,0] = t
    cbstates = [0, 1./3, -1./3, 2./3, -2./3, 1., -1.]
    for i in xrange(nsites-1):
        hlat[i+1,i+1] = cbstates[i]
    '''    
    for i in xrange(nsites-1):
        hlat[i+1,i+1] = -cb_edge + i*gap
        hlat[0,i+1] = t
        hlat[i+1,0] = t
    #hlat[0,0] += u/2
    #hlat[0,0] = -0.5*u
    hu=utils.zeros([nsites,nsites])
    #hu[0,0] = 0.5*u
    '''       
    hlat_sp=_spinify(hlat)    
    pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc)    
    pall=N.hstack([pemb,pcore,pvirt])
    hall=N.dot(pall.T,N.dot(hlat,pall))
    hall_sp=_spinify(hall)
    hall_sp_diag=N.diag(hall_sp)
    e0=sum(hall_sp_diag[cocc])
    return hlat, hall, hlat_sp, hall_sp, e0
コード例 #2
0
ファイル: ps8.py プロジェクト: owingit/chaos
def embed_run(dset='data1',
              delay=150,
              vdim=7,
              xdim=0,
              ydim=1,
              file_prefix=None):
    '''
    Renders a parameterized delay coordinate embedding.

    '''
    data = numpy.loadtxt('data/ps8/{0}'.format(dset), dtype=numpy.float64)
    vs = embed.embed(data[:, 0], delay, vdim)
    plot.embedded(vs,
                  xdim,
                  ydim,
                  'k.',
                  markersize=0.6,
                  ybound=(0, 2 * numpy.pi),
                  yticks=(0, numpy.pi / 2, numpy.pi, 3 * numpy.pi / 2,
                          2 * numpy.pi),
                  yticklabels=('0', r'$\frac{\pi}{2}$', r'$\pi$',
                               r'$\frac{3\pi}{2}$', r'$2\pi$'),
                  title=r'Delay Coordinate Embedding: {0}, $\tau={1}$'.format(
                      dset, _get_actual_delay(dset, 1, delay)),
                  xlabel=r'$\theta(t + {0})$'.format(
                      _get_actual_delay(dset, xdim, delay)),
                  ylabel=r'$\theta(t + {0})$'.format(
                      _get_actual_delay(dset, ydim, delay)),
                  aspect='equal',
                  file_prefix=file_prefix)
コード例 #3
0
def si_anderson_imp_ext_ni_h(t, u, nocc, nimp, nsites):
    ncore = 2 * nocc - 2 * nimp
    cocc = range(4 * nimp, 4 * nimp + ncore)
    #cb_edge = 1.
    #gap = 2.0*cb_edge/(nsites-2)
    hlat = utils.zeros([nsites, nsites])
    '''
    hlat[0,1:] = t
    hlat[1:,0] = t
    cbstates = [0.]
    for i in xrange(1,nsites/2):
        cbstates.append(i/(nsites/2-1.))
        cbstates.append(-i/(nsites/2-1.))
    for i in xrange(nsites-1):
        hlat[i+1,i+1] = cbstates[i]
    '''
    cb_edge = 1.
    lamda = 1.05

    def FindScaledt(n, z):
        return cb_edge * (1 + lamda**(-1)) * (1 - lamda**(-(n - z) - 1)) * (
            lamda**(-0.5 * (n - z))) / (2 * N.sqrt(
                (1 - lamda**(-2 * (n - z) - 1)) * (1 - lamda**(-2 *
                                                               (n - z) - 3))))

    hlat[0, 1] = hlat[1, 0] = t
    #for n in xrange(1,nsites-1):
    for n in xrange(2, nsites - 1):
        #hlat[n,n+1]=hlat[n+1,n]=FindScaledt(n,0.)
        hlat[n, n + 1] = hlat[n + 1, n] = FindScaledt(nsites - n, 0.)
    hlat[1, nsites - 1] = hlat[nsites - 1, 1] = FindScaledt(1, 0.)
    print t
    print hlat
    #hlat[0,0] = 0.5*u
    hlat_sp = _spinify(hlat)
    pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)
    pall = N.hstack([pemb, pcore, pvirt])
    hall = N.dot(pall.T, N.dot(hlat, pall))
    hall_sp = _spinify(hall)
    hall_sp_diag = N.diag(hall_sp)
    e0 = sum(hall_sp_diag[cocc])
    return hlat, hall, hlat_sp, hall_sp, e0
コード例 #4
0
ファイル: models_embed.py プロジェクト: BB-Goldstein/LRDMET
def si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites):
    ncore=2*nocc-2*nimp
    cocc=range(4*nimp,4*nimp+ncore)

    hlat=utils.zeros([nsites,nsites])
    for i in xrange(nsites):
        for j in xrange(nsites):
            if abs(i-j)==1:
                hlat[i,j]=t

    hlat_sp=_spinify(hlat)    

    pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc)
    
    pall=N.hstack([pemb,pcore,pvirt])
    hall=N.dot(pall.T,N.dot(hlat,pall))
    hall_sp=_spinify(hall)

    hall_sp_diag=N.diag(hall_sp)
    e0=sum(hall_sp_diag[cocc])

    return hlat, hall, hlat_sp, hall_sp, e0
コード例 #5
0
def hubbard_imp_ext_ni_h(t, u, nocc, nimp, nsites):
    ncore = 2 * nocc - 2 * nimp
    cocc = range(4 * nimp, 4 * nimp + ncore)

    hlat = utils.zeros([nsites, nsites])
    for i in xrange(nsites):
        hlat[i, i] = +u / 2
        for j in xrange(nsites):
            if abs(i - j) == 1:
                hlat[i, j] = t

    hlat_sp = _spinify(hlat)

    pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)

    pall = N.hstack([pemb, pcore, pvirt])
    hall = N.dot(pall.T, N.dot(hlat, pall))
    hall_sp = _spinify(hall)

    hall_sp_diag = N.diag(hall_sp)
    e0 = sum(hall_sp_diag[cocc])
    return hlat, hall, hlat_sp, hall_sp, e0
コード例 #6
0
ファイル: embedfilt.py プロジェクト: tbs1980/KeplerGP
def embedfilt(x):

    # D = len(x)
    D = 20
    L = len(x)
    d = int((D-1)/2) # finds the middle of the embedding dimension
    w = D - 1 - d
    
    x = list(x)
    xx = x[:d]
    [xx.append(x[i]) for i in range(len(x))]
    [xx.append(x[L - w + 1:L][i]) for i in range(len(x[L - w + 1:L]))]
    print len(xx)

    embedded_matrix = embed.embed(xx, D, 1)
    
    u, s, v = np.linalg.svd(embedded_matrix)
    U = u[0]
    print U, len(U)
    print x, len(x)
    c = U*x

    return s
コード例 #7
0
ファイル: ps8.py プロジェクト: ksheedlo/chaos
def embed_run(dset='data1', delay=150, vdim=7, xdim=0, ydim=1, file_prefix=None):
    '''
    Renders a parameterized delay coordinate embedding.

    '''
    data = numpy.loadtxt('data/ps8/{0}'.format(dset), dtype=numpy.float64)
    vs = embed.embed(data[:,0], delay, vdim)
    plot.embedded(
                vs, 
                xdim, 
                ydim, 
                'k.', 
                markersize=0.6, 
                ybound=(0, 2*numpy.pi),
                yticks=(
                        0,
                        numpy.pi/2,
                        numpy.pi,
                        3*numpy.pi/2,
                        2*numpy.pi
                    ),
                yticklabels=(
                        '0',
                        r'$\frac{\pi}{2}$',
                        r'$\pi$',
                        r'$\frac{3\pi}{2}$',
                        r'$2\pi$'
                    ),
                title=r'Delay Coordinate Embedding: {0}, $\tau={1}$'.format(
                                                dset, 
                                                _get_actual_delay(dset, 1, delay)),
                xlabel=r'$\theta(t + {0})$'.format(_get_actual_delay(dset, xdim, delay)),
                ylabel=r'$\theta(t + {0})$'.format(_get_actual_delay(dset, ydim, delay)),
                aspect='equal',
                file_prefix=file_prefix
            )
コード例 #8
0
ファイル: run_greens.py プロジェクト: BB-Goldstein/LRDMET
def sp_greens():
    # main loop for single-particle GF
    utils.dtype=N.complex128

    nimp=1
    nimp_sp=2*nimp
    nocc=20
    nsites=40
    nsites_sp=nsites*2
    ndim=2
    sz=0
    # sites numbered in order as imp+bath ... ext
    sites_imp=range(0,2*nimp_sp)
    sites_ext=range(2*nimp_sp,nsites_sp)
    ncore=2*nocc-2*nimp
    cocc=range(2*nimp_sp,2*nimp_sp+ncore)
    vocc=range(2*nimp_sp+ncore,nsites_sp)

    N.set_printoptions(precision=3)

    t=-1. # hopping
    delta=0.2 # broadening

#    for u in [0.0,4.0,10.0]:
    for u in [1.0]:

        # Single impurity Anderson model
        mu=0.
        hlat,hall,hlat_sp,hall_sp,e0=models_embed.si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites)
        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.si_anderson_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

#        single site Hubbard in DMET basis
#        mu=u/2
#        hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
#        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc)

        # perturbation operator
        perturb=utils.zeros([nsites])
        perturb[0]=1.
        p_coeffs=N.array([1])
        perturb_dop=models.ContractedD(N.array([0]),p_coeffs)
        perturb_cop=models.ContractedC(N.array([0]),p_coeffs)

        fd=file("ph_siam.out."+str(u),"w")
        for omega in N.arange(-2,2,0.1):
    
            ops_dict=response_embed.mb_sp_ops(hlat,perturb,omega+1j*delta,nimp,nocc,pemb,pcore,pvirt)
            configs_dict=response_embed.mb_configs(nsites,nimp,nimp_sp,2*nocc-nimp_sp,0)
            neutral_ops_configs,plus_ops_configs,minus_ops_configs=response_embed.mb_sp_ops_configs(ops_dict,configs_dict)

            # basis is setup, now build matrix representations
            perturb_dop_mat=opbasis_ni.oimp_matrix_bra_ket_form(perturb_dop,minus_ops_configs,neutral_ops_configs,cocc,vocc)
            perturb_cop_mat=opbasis_ni.oimp_matrix_bra_ket_form(perturb_cop,plus_ops_configs,neutral_ops_configs,cocc,vocc)

            # h, N-1 configs
            himp_mat_minus=opbasis_ni.oimp_matrix_form(himp,minus_ops_configs,cocc,vocc)
            himp_ext_mat_minus=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,minus_ops_configs,cocc,vocc)
            hext_mat_minus=opbasis_ni.hext_matrix_form(hext,minus_ops_configs,cocc,vocc,e0)
            hmat_minus=himp_mat_minus+himp_ext_mat_minus+hext_mat_minus
            unit_mat_minus=opbasis_ni.oimp_matrix_form(models.Unit(),minus_ops_configs,cocc,vocc)

            # h, N+1 configs
            himp_mat_plus=opbasis_ni.oimp_matrix_form(himp,plus_ops_configs,cocc,vocc)
            himp_ext_mat_plus=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,plus_ops_configs,cocc,vocc)
            hext_mat_plus=opbasis_ni.hext_matrix_form(hext,plus_ops_configs,cocc,vocc,e0)
            hmat_plus=himp_mat_plus+himp_ext_mat_plus+hext_mat_plus
            unit_mat_plus=opbasis_ni.oimp_matrix_form(models.Unit(),plus_ops_configs,cocc,vocc)

            # h, neutral configs
            himp_mat=opbasis_ni.oimp_matrix_form(himp,neutral_ops_configs,cocc,vocc)
            himp_ext_mat=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,neutral_ops_configs,cocc,vocc)
            hext_mat=opbasis_ni.hext_matrix_form(hext,neutral_ops_configs,cocc,vocc,e0)
            hmat=himp_mat+himp_ext_mat+hext_mat
            unit_mat=opbasis_ni.oimp_matrix_form(models.Unit(),neutral_ops_configs,cocc,vocc)

            # get neutral ground-state energy
            es,cs=la.peigh(hmat,unit_mat)
            e0=es[0]
            psi0=cs[:,0]

            print e0
            print psi0
            # all matrices setup, solve linear response (complex)
            psi1_minus=la.solve_perturb(omega+1j*delta,unit_mat_minus,hmat_minus,e0,psi0,perturb_dop_mat,
                                        project=False,sign_ham=-1.)

            gfminus=N.dot(psi1_minus,N.dot(perturb_dop_mat,psi0))

            psi1_plus=la.solve_perturb(omega+1j*delta,unit_mat_plus,hmat_plus,e0,psi0,perturb_cop_mat,project=False)
        
            gfplus=N.dot(psi1_plus,N.dot(perturb_cop_mat,psi0))

            d_gf,c_gf=_sp_gf(hlat,omega+1j*delta,perturb,nocc)

            print omega, gfplus.imag,c_gf.imag, gfminus.imag,d_gf.imag
            print >>fd, omega-mu, gfplus.imag+gfminus.imag,c_gf.imag+d_gf.imag
コード例 #9
0
ファイル: run_greens.py プロジェクト: hungpham2017/LRDMET
def ph_greens():
    # main loop for general density-density (ph) response functions
    utils.dtype = N.complex128

    nimp = 1
    nimp_sp = 2 * nimp
    nocc = 10
    nsites = 20
    nsites_sp = nsites * 2
    ndim = 2
    sz = 0
    # sites numbered in order as imp+bath ... ext
    sites_imp = range(0, 2 * nimp_sp)
    sites_ext = range(2 * nimp_sp, nsites_sp)
    ncore = 2 * nocc - 2 * nimp
    cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore)
    vocc = range(2 * nimp_sp + ncore, nsites_sp)

    N.set_printoptions(precision=3)

    t = -1.  # hopping
    delta = 0.0  #25 # broadening

    #    for u in [0.0,4.0,10.0]:
    for u in [0.0, 0.5, 1.0, 2.0, 4.0, 8.0]:  #,1.0,4.0,8.0]:

        # Single impurity Anderson model
        mu = 0.
        hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h(
            t, nocc, nimp, nsites)
        hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h(
            hall_sp, u, nocc, nimp, nsites)

        #        single site Hubbard in DMET basis
        #        mu=u/2
        #        hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
        #        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)

        # perturbation operator
        perturb = utils.zeros([nsites, nsites])
        perturb[0, 0] = 1.

        p_coeffs = {}
        p_coeffs[0, 0] = 1.
        p_coeffs[1, 1] = 1.
        perturbop = models.ContractedCD(p_coeffs)

        fd = file("ph_siam.out." + str(u), "w")
        for omega in N.arange(0, 4, 0.01):

            if abs(omega - 2.0) < 0.00001:
                continue

            ops_dict = response_embed.mb_ph_ops(hlat, perturb,
                                                omega + 1j * delta, nimp, nocc,
                                                pemb, pcore, pvirt)
            configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp,
                                                     2 * nocc - nimp_sp, 0)
            neutral_ops_configs = response_embed.mb_ph_ops_configs(
                ops_dict, configs_dict)

            # basis is setup, now build matrix representations
            perturb_mat = opbasis_ni.oimp_matrix_form(perturbop,
                                                      neutral_ops_configs,
                                                      cocc, vocc)

            # h, neutral configs
            himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs,
                                                   cocc, vocc)
            himp_ext_mat = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc,
                vocc)
            hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs,
                                                   cocc, vocc, e0)

            #print 'himp_mat size: ',himp_mat.shape
            #print 'himp_mat',himp_mat[:,0]
            #print 'hext_mat size: ',hext_mat.shape
            #print 'himp_ext_mat size: ',himp_ext_mat.shape

            hmat = himp_mat + himp_ext_mat + hext_mat

            #print 'total size hmat: ',hmat.shape

            unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(),
                                                   neutral_ops_configs, cocc,
                                                   vocc)

            # get neutral ground-state energy
            es, cs = la.peigh(hmat, unit_mat)
            e0 = es[0]
            psi0 = cs[:, 0]
            # all matrices setup, solve linear response (complex)
            psi1 = la.solve_perturb(omega - 1j * delta,
                                    unit_mat,
                                    hmat,
                                    e0,
                                    psi0,
                                    perturb_mat,
                                    project=True)

            ph_gf = N.dot(N.conj(psi1), N.dot(perturb_mat, psi0))

            ph_gf0 = _second_order_energy(hlat, nocc, perturb,
                                          omega + 1j * delta)

            #print 'hlat size: ',hlat.shape
            #print 'hlat: '
            #print hlat

            #print omega, ph_gf.imag,ph_gf0.imag
            print omega, ph_gf, 2 * ph_gf0
            print >> fd, omega - mu, ph_gf.imag, ph_gf0.imag, ph_gf.real, 2 * ph_gf0.real
コード例 #10
0
ファイル: run_greens.py プロジェクト: hungpham2017/LRDMET
def sp_greens():
    # main loop for single-particle GF
    utils.dtype = N.complex128

    nimp = 1
    nimp_sp = 2 * nimp
    nocc = 20
    nsites = 40
    nsites_sp = nsites * 2
    ndim = 2
    sz = 0
    # sites numbered in order as imp+bath ... ext
    sites_imp = range(0, 2 * nimp_sp)
    sites_ext = range(2 * nimp_sp, nsites_sp)
    ncore = 2 * nocc - 2 * nimp
    cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore)
    vocc = range(2 * nimp_sp + ncore, nsites_sp)

    N.set_printoptions(precision=3)

    t = -1.  # hopping
    delta = 0.2  # broadening

    #    for u in [0.0,4.0,10.0]:
    for u in [1.0]:

        # Single impurity Anderson model
        mu = 0.
        hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h(
            t, nocc, nimp, nsites)
        hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h(
            hall_sp, u, nocc, nimp, nsites)

        #        single site Hubbard in DMET basis
        #        mu=u/2
        #        hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
        #        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)

        # perturbation operator
        perturb = utils.zeros([nsites])
        perturb[0] = 1.
        p_coeffs = N.array([1])
        perturb_dop = models.ContractedD(N.array([0]), p_coeffs)
        perturb_cop = models.ContractedC(N.array([0]), p_coeffs)

        fd = file("ph_siam.out." + str(u), "w")
        for omega in N.arange(-2, 2, 0.1):

            ops_dict = response_embed.mb_sp_ops(hlat, perturb,
                                                omega + 1j * delta, nimp, nocc,
                                                pemb, pcore, pvirt)
            configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp,
                                                     2 * nocc - nimp_sp, 0)
            neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs(
                ops_dict, configs_dict)

            # basis is setup, now build matrix representations
            perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_dop, minus_ops_configs, neutral_ops_configs, cocc,
                vocc)
            perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc)

            # h, N-1 configs
            himp_mat_minus = opbasis_ni.oimp_matrix_form(
                himp, minus_ops_configs, cocc, vocc)
            himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc,
                vocc)
            hext_mat_minus = opbasis_ni.hext_matrix_form(
                hext, minus_ops_configs, cocc, vocc, e0)
            hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus
            unit_mat_minus = opbasis_ni.oimp_matrix_form(
                models.Unit(), minus_ops_configs, cocc, vocc)

            # h, N+1 configs
            himp_mat_plus = opbasis_ni.oimp_matrix_form(
                himp, plus_ops_configs, cocc, vocc)
            himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc,
                vocc)
            hext_mat_plus = opbasis_ni.hext_matrix_form(
                hext, plus_ops_configs, cocc, vocc, e0)
            hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus
            unit_mat_plus = opbasis_ni.oimp_matrix_form(
                models.Unit(), plus_ops_configs, cocc, vocc)

            # h, neutral configs
            himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs,
                                                   cocc, vocc)
            himp_ext_mat = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc,
                vocc)
            hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs,
                                                   cocc, vocc, e0)
            hmat = himp_mat + himp_ext_mat + hext_mat
            unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(),
                                                   neutral_ops_configs, cocc,
                                                   vocc)

            # get neutral ground-state energy
            es, cs = la.peigh(hmat, unit_mat)
            e0 = es[0]
            psi0 = cs[:, 0]

            print e0
            print psi0
            # all matrices setup, solve linear response (complex)
            psi1_minus = la.solve_perturb(omega + 1j * delta,
                                          unit_mat_minus,
                                          hmat_minus,
                                          e0,
                                          psi0,
                                          perturb_dop_mat,
                                          project=False,
                                          sign_ham=-1.)

            gfminus = N.dot(psi1_minus, N.dot(perturb_dop_mat, psi0))

            psi1_plus = la.solve_perturb(omega + 1j * delta,
                                         unit_mat_plus,
                                         hmat_plus,
                                         e0,
                                         psi0,
                                         perturb_cop_mat,
                                         project=False)

            gfplus = N.dot(psi1_plus, N.dot(perturb_cop_mat, psi0))

            d_gf, c_gf = _sp_gf(hlat, omega + 1j * delta, perturb, nocc)

            print omega, gfplus.imag, c_gf.imag, gfminus.imag, d_gf.imag
            print >> fd, omega - mu, gfplus.imag + gfminus.imag, c_gf.imag + d_gf.imag
# methods = ['None', 'MNN', 'SeuratV3', 'ScAlign', 'ICP', 'ICP2', 'ICP2_xentropy']
#arguments = '--methods SeuratV3 --datasets panc8 --input_space GENE --epochs=5 --no_standardize'
arguments = '--methods SeuratV3 --datasets panc8 --input_space GENE --epochs=10 --seurat_env_path C:\\Users\\Amir\\Anaconda3\\envs\\seuratV3'
#arguments = '--methods SeuratV3 --datasets panc8-all --input_space GENE --epochs=10 --seurat_env_path C:\\Users\\Amir\\Anaconda3\\envs\\seuratV3'
args = parser.parse_args(arguments.split())

#%%
datasets = {}
alignment_tasks = []

#%%
if 'Kowalcyzk' in args.datasets:
    datasets['Kowalcyzk'] = data.get_data('Kowalcyzk')
    embed.embed(datasets,
                'Kowalcyzk',
                args.n_PC,
                do_standardize=not args.no_standardize)
    embed.visualize(datasets,
                    'Kowalcyzk',
                    cell_type_key='cell_type',
                    batch_key='cell_age')
    alignment_tasks.append(
        alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type',
                                     'young', 'old'))
    alignment_tasks.append(
        alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type',
                                     'young', 'old', 'LT'))
    alignment_tasks.append(
        alignment_task.AlignmentTask('Kowalcyzk', 'cell_age', 'cell_type',
                                     'young', 'old', 'MPP'))
    alignment_tasks.append(
コード例 #12
0
def run(graph_type, nnodes, k, f):
    base_dir = '/dfs/scratch0/manans/rewire-exp-' + graph_type
    
    # clean directories
    os.system('rm ' + base_dir + '/train/*')
    os.system('rm ' + base_dir + '/test/*')
    os.system('rm ' + base_dir + '-emb/train/*')
    os.system('rm ' + base_dir + '-emb/test/*')

    e = GraphEvaluator(graph_type = graph_type,
                        nnodes = nnodes, k = k, 
                        graph_directory = base_dir)
    e.initialize()

    header = graph_type + \
            '_k=' + str(k) + \
            '_n=' + str(nnodes) + \
            '_e=' + str(e.graph().GetEdges()) + \
            '_t=' + datetime.datetime.now().isoformat().split('.')[0] + ','

    means = " ,"
    stds  = " ,"

    '''
    # method 1: random
    header += "random,"
    v = stats([accuracy(e.evaluate_random()) for i in xrange(100)])
    means += v[0] + "," 
    stds  += v[1] + ","

    # method 2-11: node2vec
    for i in tqdm([10, 20, 30, 40, 50, 60, 70, 80, 90, -1]):
        header += ("n2v-0." + str(i) + "," if i > 0 else "n2v-1.0,")

        embeddings = embed(train_input_directory    = None,
                            train_label_mapping     = None,
                            test_input_directory    = base_dir + '/test',
                            test_output_directory   = base_dir + '-emb/test',
                            method = 'n2v', 
                            sample = int((float(i) / 100) * nnodes) if i > 0 else -1, 
                            verbose = False)

        v = stats([accuracy(e.evaluate(embeddings)) for i in xrange(100)])
        means += v[0] + "," 
        stds  += v[1] + ","

        os.system('rm ' + base_dir + '-emb/train/*')
        os.system('rm ' + base_dir + '-emb/test/*')
    '''
    # method 12: nf-original
    header += "nf-original,"
    train_labels = {}
    for fl in os.listdir(base_dir + '/train'):
        train_labels[fl] = float(fl.split('.')[0])/k

    embeddings = embed(train_input_directory    = base_dir + '/train',
                        train_label_mapping     = train_labels,
                        test_input_directory    = base_dir + '/test', 
                        test_output_directory   = base_dir + '-emb/test/',
                        method = 'nf-original', 
                        train = True,
                        verbose = False)

    v = stats([accuracy(e.evaluate(embeddings)) for i in xrange(100)])
    means += v[0] + ","
    stds  += v[1] + ","

    # remove ending comma
    header = header[:-1]
    means = means[:-1]
    stds = stds[:-1]

    f.write(header + "\n")
    f.write(means + "\n")
    f.write(stds + "\n")

    print(header)
    print(means)
    print(stds)
    print(">>>------")
コード例 #13
0
def main():
    # main loop for single-particle GF
    utils.dtype = N.complex128

    nimp = 4
    nimp_sp = 2 * nimp
    nsites = 8
    nocc = nsites / 2
    nsites_sp = nsites * 2
    ndim = 2
    sz = 0
    # sites numbered in order as imp+bath ... ext
    sites_imp = range(0, 2 * nimp_sp)
    sites_ext = range(2 * nimp_sp, nsites_sp)
    ncore = 2 * nocc - 2 * nimp
    cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore)
    vocc = range(2 * nimp_sp + ncore, nsites_sp)

    N.set_printoptions(precision=3)

    #t=1. # hopping
    gamma = 0.005
    rho0 = (nsites - 2) / 2.
    t = 0.1  #N.sqrt(gamma/(rho0*N.pi))
    #gamma = (t**2)*pi*0.1
    delta = 0.005  # broadening
    #a=12.5
    #    for u in [0.0,4.0,10.0]:
    for u in [0., 2.5, 5., 7.5]:
        u *= t
        # Single impurity Anderson model
        mu = 0.
        hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h(
            t, u, nocc, nimp, nsites)
        hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h(
            hall_sp, u, nocc, nimp, nsites)
        #print hext
        #        single site Hubbard in DMET basis
        #mu=u/2
        #hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
        #hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)

        # perturbation operator
        perturb = utils.zeros([nsites])
        perturb[0] = 1.
        p_coeffs = N.array([1])
        perturb_dop = models.ContractedD(N.array([0]), p_coeffs)
        perturb_cop = models.ContractedC(N.array([0]), p_coeffs)

        fd = file(
            "siam_emb_dos_nsites" + str(nsites) + '_U' + str(u) + '_nimp' +
            str(nimp) + '_eta' + str(delta), "w")

        for omega in N.arange(-1., 1., 0.01):

            ops_dict = response_embed.mb_sp_ops(hlat, perturb,
                                                omega + 1j * delta, nimp, nocc,
                                                pemb, pcore, pvirt)

            configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp,
                                                     2 * nocc - nimp_sp, 0)

            neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs(
                ops_dict, configs_dict)

            #print minus_ops_configs
            # basis is setup, now build matrix representations
            perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_dop, minus_ops_configs, neutral_ops_configs, cocc,
                vocc)
            perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc)
            #print plus_ops_configs
            # h, N-1 configs

            #print minus_ops_configs
            himp_mat_minus = opbasis_ni.oimp_matrix_form(
                himp, minus_ops_configs, cocc, vocc)
            himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc,
                vocc)
            #print himp_ext_mat_minus
            hext_mat_minus = opbasis_ni.hext_matrix_form(
                hext, minus_ops_configs, cocc, vocc, e0)
            hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus
            unit_mat_minus = opbasis_ni.oimp_matrix_form(
                models.Unit(), minus_ops_configs, cocc, vocc)
            #print hext_mat_minus

            # h, N+1 configs
            himp_mat_plus = opbasis_ni.oimp_matrix_form(
                himp, plus_ops_configs, cocc, vocc)
            himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc,
                vocc)
            hext_mat_plus = opbasis_ni.hext_matrix_form(
                hext, plus_ops_configs, cocc, vocc, e0)
            hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus
            unit_mat_plus = opbasis_ni.oimp_matrix_form(
                models.Unit(), plus_ops_configs, cocc, vocc)

            # h, neutral configs
            himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs,
                                                   cocc, vocc)
            himp_ext_mat = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc,
                vocc)
            hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs,
                                                   cocc, vocc, e0)
            hmat = himp_mat + himp_ext_mat + hext_mat
            unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(),
                                                   neutral_ops_configs, cocc,
                                                   vocc)

            # get neutral ground-state energy
            es, cs = la.peigh(hmat, unit_mat)
            e_gs = es[0]
            psi0 = cs[:, 0]

            #print e0
            #print psi0
            #print N.dot(perturb_dop_mat,psi0)
            # all matrices setup, solve linear response (complex)

            psi1_minus = la.solve_perturb(omega + 1j * delta,
                                          unit_mat_minus,
                                          hmat_minus,
                                          e_gs,
                                          psi0,
                                          perturb_dop_mat,
                                          project=False,
                                          sign_ham=-1.)

            gfminus = N.dot(psi1_minus, N.dot(perturb_dop_mat, psi0))

            psi1_plus = la.solve_perturb(omega + 1j * delta,
                                         unit_mat_plus,
                                         hmat_plus,
                                         e_gs,
                                         psi0,
                                         perturb_cop_mat,
                                         project=False)

            #print N.dot(perturb_cop_mat,psi0)

            #print hmat

            gfplus = N.dot(psi1_plus, N.dot(perturb_cop_mat, psi0))

            d_gf, c_gf = _sp_gf(hlat, omega + 1j * delta, perturb, nocc)

            #print omega, gfplus.imag,c_gf.imag, gfminus.imag,d_gf.imag
            #print >>fd, omega-mu, -1.*(gfplus.imag),-1.*(c_gf.imag+d_gf.imag)
            print >> fd, omega - mu, -(1 / N.pi) * (gfplus.imag + gfminus.imag)
コード例 #14
0
ファイル: run_greens.py プロジェクト: BB-Goldstein/LRDMET
def ph_greens():
    # main loop for general density-density (ph) response functions
    utils.dtype=N.complex128
    nimp=2

    nimp_sp=2*nimp
    nocc=12
    nsites=24
    nsites_sp=nsites*2
    ndim=2
    sz=0
    # sites numbered in order as imp+bath ... ext
    sites_imp=range(0,2*nimp_sp)
    sites_ext=range(2*nimp_sp,nsites_sp)
    ncore=2*nocc-2*nimp
    cocc=range(2*nimp_sp,2*nimp_sp+ncore)
    vocc=range(2*nimp_sp+ncore,nsites_sp)

    N.set_printoptions(precision=3)

    t=-1. # hopping
    delta=0.01 # broadening

#    for u in [0.0,4.0,10.0]:
    for u in [4.0]:

        # Single impurity Anderson model
        mu=0.
        hlat,hall,hlat_sp,hall_sp,e0=models_embed.si_anderson_imp_ext_ni_h(t,nocc,nimp,nsites)
        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.si_anderson_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

#        single site Hubbard in DMET basis
#        mu=u/2
#        hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
#        hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb,pcore,pvirt=embed.embed(hlat,nimp,nocc)

        # perturbation operator
        perturb=utils.zeros([nsites,nsites])
        perturb[0,0]=1.

        p_coeffs={}
        p_coeffs[0,0]=1.
        p_coeffs[1,1]=1.
        perturbop=models.ContractedCD(p_coeffs)

        fd=file("ph_siam.out."+str(u),"w")
        for omega in N.arange(2.0,8.0,0.1):
    
            ops_dict=response_embed.mb_ph_ops(hlat,perturb,omega+1j*delta,nimp,nocc,pemb,pcore,pvirt)
            configs_dict=response_embed.mb_configs(nsites,nimp,nimp_sp,2*nocc-nimp_sp,0)
            neutral_ops_configs=response_embed.mb_ph_ops_configs(ops_dict,configs_dict)

            # basis is setup, now build matrix representations
            perturb_mat=opbasis_ni.oimp_matrix_form(perturbop,neutral_ops_configs,cocc,vocc)

            # h, neutral configs
            himp_mat=opbasis_ni.oimp_matrix_form(himp,neutral_ops_configs,cocc,vocc)
            himp_ext_mat=opbasis_ni.himp_ext_matrix_form(hcs_imp,hds_ext,hds_imp,hcs_ext,neutral_ops_configs,cocc,vocc)
            hext_mat=opbasis_ni.hext_matrix_form(hext,neutral_ops_configs,cocc,vocc,e0)
            
            hmat=himp_mat+himp_ext_mat+hext_mat

            unit_mat=opbasis_ni.oimp_matrix_form(models.Unit(),neutral_ops_configs,cocc,vocc)

            # get neutral ground-state energy
#            print 'overlap: '
#            for i,w in enumerate(unit_mat):
#                for j,v in enumerate(w):
#                    if abs(unit_mat[i,j]) > 1.e-12:
#                        print i+1,j+1,unit_mat[i,j]
            #hmat[4:,:] = 0.
            #hmat[:,4:] = 0.
            #print 'hamil: '
            #for i,w in enumerate(hmat):
            #    for j,v in enumerate(w):
            #        if abs(hmat[i,j]) > 1.e-12:
            #            print i+1,j+1,hmat[i,j]
#
            es,cs=la.peigh(hmat,unit_mat,thresh=1.e-10)
            e0=es[0]
            psi0=cs[:,0]
            #print 'psi0:' 
            #print psi0
            #print 'energy: ',e0
            # all matrices setup, solve linear response (complex)
            psi1=la.solve_perturb(omega-1j*delta,unit_mat,hmat,e0,psi0,perturb_mat,project=True)

            ph_gf=N.dot(N.conj(psi1),N.dot(perturb_mat,psi0))

            ph_gf0=_second_order_energy(hlat,nocc,perturb,omega+1j*delta)

            #print omega, ph_gf.imag,ph_gf0.imag
            print omega, ph_gf,2*ph_gf0,e0
            print >>fd, omega-mu, -ph_gf.imag,-2*ph_gf0.imag
コード例 #15
0
    with open(log_dir / 'args.txt', 'w') as f:
        f.write('\n'.join(sys.argv[1:]))
    with open(log_dir / 'args.pickle', 'wb') as f:
        pickle.dump(args.__dict__, f)

    #%%
    datasets = {}
    datasets[args.dataset] = data.get_data(args.dataset, args)
    crosstab = data.get_data_crosstabulation(datasets[args.dataset], args)
    crosstab.to_latex(join(log_dir, 'data_crosstab.tex'))

    # if args.input_space == 'PCA' or args.method == 'None':
    embed.embed(datasets,
                args.dataset,
                args.n_PC,
                do_standardize=args.standardize,
                log_dir=log_dir)
    embed.visualize(datasets,
                    args.dataset,
                    cell_type_key=celltype_columns[args.dataset],
                    batch_key=batch_columns[args.dataset],
                    log_dir=log_dir)

    #%%
    task = alignment_task.AlignmentTask(args.dataset,
                                        batch_columns[args.dataset],
                                        celltype_columns[args.dataset],
                                        args.source, args.target,
                                        args.leaveOut, args.leaveOutSource)
コード例 #16
0
                    type=str,
                    help="labels file to be used in metadata")

# tensorboard
parser.add_argument("--log_dir",
                    nargs='?',
                    default=os.path.join(output_dir, "tensorboard"),
                    type=str,
                    help="log directory for TensorBoard")

params = parser.parse_args()

if __name__ == "__main__":

    if params.mode == "embed":
        embed(params)

    if params.mode == "sif":
        sif(params)

    if params.mode == "cluster":
        if params.kmeans:
            kmeans(params)
        if params.opt_k:
            opt_k(params)
        if params.hierarch_k:
            hierarch_k(params)

    if params.mode == "project":
        if params.pca:
            pca(params)
コード例 #17
0
def main():
    # main loop for single-particle GF
    utils.dtype = N.complex128

    nimp = 1
    nimp_sp = 2 * nimp
    nsites = 300
    nocc = nsites / 2
    nsites_sp = nsites * 2
    ndim = 2
    sz = 0
    # sites numbered in order as imp+bath ... ext
    sites_imp = range(0, 2 * nimp_sp)
    sites_ext = range(2 * nimp_sp, nsites_sp)
    ncore = 2 * nocc - 2 * nimp
    cocc = range(2 * nimp_sp, 2 * nimp_sp + ncore)
    vocc = range(2 * nimp_sp + ncore, nsites_sp)

    N.set_printoptions(precision=3)

    #t=1. # hopping
    gamma = 0.05
    rho0 = (nsites - 2) / 2.
    t = N.sqrt(gamma / (rho0 * N.pi))
    #t = 0.1
    #gamma = (t**2)*pi*0.1
    delta = 1e-12  # broadening
    #a=12.5
    #    for u in [0.0,4.0,10.0]:
    for u in [10.]:
        u *= gamma
        # Single impurity Anderson model
        mu = 0.
        hlat, hall, hlat_sp, hall_sp, e0 = models_embed.si_anderson_imp_ext_ni_h(
            t, u, nocc, nimp, nsites)
        hop, himp, hcs_imp, hds_imp, hcs_ext, hds_ext, hext = models_embed.si_anderson_imp_ext_h(
            hall_sp, u, nocc, nimp, nsites)
        #print hext
        #        single site Hubbard in DMET basis
        #mu=u/2
        #hlat,hall,hlat_sp,hall_sp,e0=models_embed.hubbard_imp_ext_ni_h(t,u,nocc,nimp,nsites)
        #hop,himp,hcs_imp,hds_imp,hcs_ext,hds_ext,hext=models_embed.hubbard_imp_ext_h(hall_sp,u,nocc,nimp,nsites)

        # g.s embedding basis
        pemb, pcore, pvirt = embed.embed(hlat, nimp, nocc)

        # perturbation operator
        perturb = utils.zeros([nsites])
        perturb[0] = 1.
        p_coeffs = N.array([1])
        perturb_dop = models.ContractedD(N.array([0]), p_coeffs)

        perturb_cop = models.ContractedC(N.array([0]), p_coeffs)

        #fd=file("siam_emb_dos_nsites"+str(nsites)+'_U'+str(u)+'_nimp'+str(nimp)+'_eta'+str(delta),"w")
        fdEnminus = file("En_minus", "w")
        fdCnminus = file("Cn_minus", "w")
        fdEnplus = file("En_plus", "w")
        fdCnplus = file("Cn_plus", "w")
        for omega in [1e-08]:  #N.arange(-1.,1.,0.1):
            #print omega
            ops_dict = response_embed.mb_sp_ops(hlat, perturb,
                                                omega + 1j * delta, nimp, nocc,
                                                pemb, pcore, pvirt)

            configs_dict = response_embed.mb_configs(nsites, nimp, nimp_sp,
                                                     2 * nocc - nimp_sp, 0)

            neutral_ops_configs, plus_ops_configs, minus_ops_configs = response_embed.mb_sp_ops_configs(
                ops_dict, configs_dict)

            #print _ops_configs
            # basis is setup, now build matrix representations
            perturb_dop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_dop, minus_ops_configs, neutral_ops_configs, cocc,
                vocc)
            perturb_cop_mat = opbasis_ni.oimp_matrix_bra_ket_form(
                perturb_cop, plus_ops_configs, neutral_ops_configs, cocc, vocc)

            # h, N-1 configs

            #print ops_dict['d'][0]
            himp_mat_minus = opbasis_ni.oimp_matrix_form(
                himp, minus_ops_configs, cocc, vocc)
            himp_ext_mat_minus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, minus_ops_configs, cocc,
                vocc)
            #print himp_ext_mat_minus
            hext_mat_minus = opbasis_ni.hext_matrix_form(
                hext, minus_ops_configs, cocc, vocc, e0)
            hmat_minus = himp_mat_minus + himp_ext_mat_minus + hext_mat_minus
            unit_mat_minus = opbasis_ni.oimp_matrix_form(
                models.Unit(), minus_ops_configs, cocc, vocc)
            #print hext_mat_minus

            # h, N+1 configs
            himp_mat_plus = opbasis_ni.oimp_matrix_form(
                himp, plus_ops_configs, cocc, vocc)
            himp_ext_mat_plus = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, plus_ops_configs, cocc,
                vocc)
            hext_mat_plus = opbasis_ni.hext_matrix_form(
                hext, plus_ops_configs, cocc, vocc, e0)
            hmat_plus = himp_mat_plus + himp_ext_mat_plus + hext_mat_plus
            unit_mat_plus = opbasis_ni.oimp_matrix_form(
                models.Unit(), plus_ops_configs, cocc, vocc)

            # h, neutral configs
            himp_mat = opbasis_ni.oimp_matrix_form(himp, neutral_ops_configs,
                                                   cocc, vocc)
            himp_ext_mat = opbasis_ni.himp_ext_matrix_form(
                hcs_imp, hds_ext, hds_imp, hcs_ext, neutral_ops_configs, cocc,
                vocc)
            hext_mat = opbasis_ni.hext_matrix_form(hext, neutral_ops_configs,
                                                   cocc, vocc, e0)
            hmat = himp_mat + himp_ext_mat + hext_mat
            unit_mat = opbasis_ni.oimp_matrix_form(models.Unit(),
                                                   neutral_ops_configs, cocc,
                                                   vocc)

            #print hext_mat_minus

            # get neutral ground-state energy
            es, cs = la.peigh(hmat, unit_mat)
            e_gs = es[0]
            psi0 = cs[:, 0]

            es_minus, cs_minus = la.peigh(hmat_minus, unit_mat_minus)

            Enarray = es_minus - e_gs * N.ones(len(es_minus))
            print >> fdEnminus, omega, str(list(Enarray))[1:-1].translate(
                None, ',')
            es_plus, cs_plus = la.peigh(hmat_plus, unit_mat_plus)

            Enarray = es_plus - e_gs * N.ones(len(es_minus))
            print >> fdEnplus, omega, str(list(Enarray))[1:-1].translate(
                None, ',')

            gfminus = 0.
            mat_el_list_minus = []
            for i in xrange(len(es_minus)):
                ket = N.dot(perturb_dop_mat, psi0)
                bra = N.transpose(cs_minus[:, i].conjugate())
                mat_el = N.dot(bra, ket)
                mat_el *= mat_el.conjugate()
                mat_el_list_minus.append(mat_el.real)
                den = omega + 1j * delta - e_gs + es_minus[i]
                gfminus += (mat_el / den)

            print >> fdCnminus, omega, str(mat_el_list_minus)[1:-1].translate(
                None, ',')

            gfplus = 0.
            mat_el_list_plus = []
            for i in xrange(len(es_plus)):
                ket = N.dot(perturb_cop_mat, psi0)
                bra = N.transpose(cs_plus[:, i].conjugate())
                mat_el = N.dot(bra, ket)
                mat_el *= mat_el.conjugate()
                mat_el_list_plus.append(mat_el.real)
                den = omega + 1j * delta + e_gs - es_plus[i]
                gfplus += (mat_el / den)

            print >> fdCnplus, omega, str(mat_el_list_plus)[1:-1].translate(
                None, ',')
コード例 #18
0
import os, sys
sys.path.append("../embed")

from embed import embed

# Directories with stored graph edgelist representations
train_graph_directory = 'train_graphs/'
train_graph_labels = {
    x: int(x.split('.')[0]) % 2
    for x in os.listdir(train_graph_directory)
}
test_graph_directory = 'test_graphs/'
test_graph_output = 'test_graph_embeddings/'

embeddings = \
    embed(train_input_directory     = train_graph_directory, # nf is supervised
            train_label_mapping     = train_graph_labels,
            test_input_directory    = test_graph_directory,
            test_output_directory   = test_graph_output,
            method                  = 'nf-o',
            tmp_dir                 = 'bin/tmp.csv',
            weights                 = 'bin/weights.pkl',
            train                   = True,
            n_epochs                = 1)