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)
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)
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())
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] ####