Exemple #1
0
    def test_leggrid2d(self):
        x1, x2, x3 = self.x
        y1, y2, y3 = self.y

        #test values
        tgt = np.einsum('i,j->ij', y1, y2)
        res = leg.leggrid2d(x1, x2, self.c2d)
        assert_almost_equal(res, tgt)

        #test shape
        z = np.ones((2,3))
        res = leg.leggrid2d(z, z, self.c2d)
        assert_(res.shape == (2, 3)*2)
Exemple #2
0
    def test_leggrid2d(self):
        x1, x2, x3 = self.x
        y1, y2, y3 = self.y

        #test values
        tgt = np.einsum('i,j->ij', y1, y2)
        res = leg.leggrid2d(x1, x2, self.c2d)
        assert_almost_equal(res, tgt)

        #test shape
        z = np.ones((2, 3))
        res = leg.leggrid2d(z, z, self.c2d)
        assert_(res.shape == (2, 3)*2)
Exemple #3
0
    print 'Reading ', QMC_filename
    PQ_tot = loadtxt(QMC_filename)

    if os.path.exists(
            'qxb.npy'
    ):  # this is discrete run, hence no q-interpolation needed
        qx = load('qxb.npy')
        Pq_tot = zeros((len(tx), len(qx)))
        for iq in range(len(qx)):
            Pq_tot[:, iq] = legendre.legval(2 * tx / beta - 1., PQ_tot[iq, :])

        Pqlt = transpose(PQ_tot)
    else:
        #Nq=100
        qx = linspace(1e-3, cutoffq, p['Nq'])
        Pq_tot = legendre.leggrid2d(2 * tx / beta - 1., 2 * qx / cutoffq - 1.,
                                    PQ_tot)

        lmax_t = shape(PQ_tot)[0] - 1
        Pqlt = zeros((lmax_t + 1, len(qx)))
        for lt in range(lmax_t + 1):
            Pqlt[lt, :] = legendre.legval(2 * qx / cutoffq - 1., PQ_tot[lt, :])

    # saving data
    data = zeros((shape(Pq_tot)[0] + 1, len(qx)))
    data[0, :] = qx[:] / kF
    for it in range(len(tx)):
        data[it + 1, :] = Pq_tot[it, :]

    root, ext = os.path.splitext(QMC_filename)
    savetxt(root + '.tau', data.transpose())
Exemple #4
0
    norder = 1
    Corder = 0
    fname = dr + '/Pcof_' + str(norder) + '_corder_' + str(Corder) + '.txt'
    PQ = loadtxt(fname)
    Nlt, Nlq = shape(PQ)

    print 'shape0=', shape(PQ)
    for norder in range(3, MaxOrder + 1):
        for Corder in [0] + range(2, norder):
            fname = 'Pcof_' + str(norder) + '_corder_' + str(Corder) + '.txt'
            print 'fn=', fname
            PQt = loadtxt(fname)
            PQ += PQt[:, :Nlq]

    if CheckP0:
        Pqt = legendre.leggrid2d(2 * tx / beta - 1., 2 * qx / qx[-1] - 1., PQ)
        for it in range(0, len(tx), 2):
            plot(qx / kF, Pqt[it, :])
        show()

    Pqlt = zeros((Nlt, len(qx)))
    for lt in range(Nlt):
        Pqlt[lt, :] = legendre.legval(2 * qx / qx[-1] - 1., PQ[lt, :])

    lmax_t = Nlt - 1

    Ker = Get_P2Om_Transform(
        lmax_t, iOm,
        beta)  # Transforms from Legendre Basis to Matsubara Frequency basis.
    Pqw = dot(Ker, Pqlt)  # Pqw[iOm,iq] = \sum_lt Ker_even[iOm,lt]*Pqlt[lt,iq]
    ####