Beispiel #1
0
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
Beispiel #2
0
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