def test_sub_bbtree_box(ct, N): """ Test that the bounding box of the stem of the bounding box tree is what we expect """ mesh = UnitCubeMesh(MPI.COMM_WORLD, N, N, N, cell_type=ct) tdim = mesh.topology.dim fdim = tdim - 1 def marker(x): return numpy.isclose(x[1], 1.0) facets = locate_entities_boundary(mesh, fdim, marker) f_to_c = mesh.topology.connectivity(fdim, tdim) cells = numpy.unique([f_to_c.links(f)[0] for f in facets]) bbtree = BoundingBoxTree(mesh, tdim, cells) num_boxes = bbtree.num_bboxes() if num_boxes > 0: bbox = bbtree.get_bbox(num_boxes - 1) assert(numpy.isclose(bbox[0][1], (N - 1) / N)) tree = BoundingBoxTree(mesh, tdim) all_boxes = tree.num_bboxes() assert(num_boxes < all_boxes)
def test_empty_tree(): mesh = UnitIntervalMesh(MPI.COMM_WORLD, 16) bbtree = BoundingBoxTree(mesh, mesh.topology.dim, []) assert bbtree.num_bboxes() == 0