Exemplo n.º 1
0
    pl.points3d(x[:,0],x[:,1],x[:,2],c,mode='point')

if __name__ == '__main__':
    opt = {'M':50,'m':10,'d':3}
    surface = MeshWrapper()
    pl.triangular_mesh(surface.v[:,0],surface.v[:,1],surface.v[:,2],surface.f,opacity = 0.2)
    comm = MPI.COMM_WORLD
    band = Band(surface,comm,opt)
    la,lv,gv,wv = band.createGLVectors()
    v = band.getCoordinates() 
    dt = 0.3*band.dx**2
    vv = sp.array([[0,0,0],[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]])
    weights = sp.array([-6,1,1,1,1,1,1])*(dt/band.dx**2)
    L = band.createAnyMat(vv, weights, (7,3))
    PETSc.Sys.Print('Laplacian')
    band.test_initialu(test_initialu)
    L.mult(gv,wv)
    c = wv.getArray()
#    wv.view()
    plot3d(v,c,title='Lu')
#    wv.view()
    
    M = band.createExtensionMat()
    PETSc.Sys.Print('ExtensionMat built')
#    band.initialu(initialu)
    
    M.mult(gv,wv)
    c = wv.getArray()
    plot3d(v,c,title='Mu')
#    (ind,) = sp.where(c>1.000000000001)
#    print 'nonzero terms>>1'
Exemplo n.º 2
0

if __name__ == "__main__":
    opt = {"M": 50, "m": 10, "d": 3}
    surface = MeshWrapper()
    pl.triangular_mesh(surface.v[:, 0], surface.v[:, 1], surface.v[:, 2], surface.f, opacity=0.2)
    comm = MPI.COMM_WORLD
    band = Band(surface, comm, opt)
    la, lv, gv, wv = band.createGLVectors()
    v = band.getCoordinates()
    dt = 0.3 * band.dx ** 2
    vv = sp.array([[0, 0, 0], [1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]])
    weights = sp.array([-6, 1, 1, 1, 1, 1, 1]) * (dt / band.dx ** 2)
    L = band.createAnyMat(vv, weights, (7, 3))
    PETSc.Sys.Print("Laplacian")
    band.test_initialu(test_initialu)
    L.mult(gv, wv)
    c = wv.getArray()
    #    wv.view()
    plot3d(v, c, title="Lu")
    #    wv.view()

    M = band.createExtensionMat()
    PETSc.Sys.Print("ExtensionMat built")
    #    band.initialu(initialu)

    M.mult(gv, wv)
    c = wv.getArray()
    plot3d(v, c, title="Mu")
    #    (ind,) = sp.where(c>1.000000000001)
    #    print 'nonzero terms>>1'