示例#1
0
        subdomains.mark(cell_domains, 1)

        if MPI.size(mpi_comm_world()) == 1:
            submesh = SubMesh(mesh, cell_domains, 1)
        else:
            submesh = create_submesh(mesh, cell_domains, 1)

        #MPI.barrier(mpi_comm_world())
        #continue
        V = FunctionSpace(submesh, "CG", 2)
        expr = Expression("x[0]*x[1]*x[1]+4*x[2]", degree=2)
        u = project(expr, V)

        MPI.barrier(mpi_comm_world())

        s0 = submesh.size_global(0)
        s3 = submesh.size_global(submesh.ufl_cell().topological_dimension())
        a = assemble(u * dx)
        v = assemble(Constant(1) * dx(domain=submesh))
        if MPI.rank(mpi_comm_world()) == 0:
            print("Num vertices: ", s0)
            print("Num cells: ", s3)
            print("assemble(u*dx): ", a)
            print("Volume: ", v)
        #u = Function(V)
    #File("u.pvd") << u
    #import ipdb; ipdb.set_trace()
    #print mesh.num_cells()
    #print dir(mesh)
    #print mesh.cells()