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