def prebub(n,h,kappa2,alpha,xwl): a = -mpf(0.5)*h b = mpf(0.5)*h mom0,mom1 = bwmom(n,a,b,kappa2,alpha,xwl) ab0,n2 = chebyshev(n,mom0) ab1,n2 = chebyshev(n,mom1) xw0 = gauss(ab0) xw1 = gauss(ab1) XW = row_join( row_join(xw0[:,0],xw1[:,0]), row_join(xw0[:,1],xw1[:,1]) ) B,normsq = dstis1(n,XW,[n, n],0) P = r_to_poly(B) bwaff = polyaff(bw(alpha),a,b,mpf(-1),mpf(1)) P = convm(P, bwaff) # H1-normalize #for k in range(n): # h1ni = mpf(1)/sqrt(h1norm2ab(P[k,:],a,b,xwl)) # P[k,:] *= h1ni return P
kappa2 = mpf(10) n = 5 alpha = 1 gln = n + 2 * alpha a = mpf(-10) b = mpf(10) mp.dps = 50 print ">>>> Generating Gauss-Legendre quadrature rules for n =", gln xwl = gauss(r_jacobi(gln)) mp.dps = 20 print ">>>> Generating Bubble polynomials for kappa2={0:s}, n={1:d}, alpha={2:d}".format(nstr(kappa2), n, alpha) mom0, mom1 = bwmom(n, kappa2, alpha, xwl) ab0, n2 = chebyshev(n, mom0) ab1, n2 = chebyshev(n, mom1) xw0 = gauss(ab0) xw1 = gauss(ab1) XW = row_join(row_join(xw0[:, 0], xw1[:, 0]), row_join(xw0[:, 1], xw1[:, 1])) B, n2 = dstis1(n, XW, [n, n], 0) P = r_to_poly(B) P = convm(P, bw(alpha)) # H1-normalize for k in range(n): h1ni = mpf(1) / sqrt(h1norm2(P[k, :], xwl)) P[k, :] *= h1ni