message: Update IntersectionShaper to use new BVH API
diff: @@ -593,12 +593,11 @@ public:
  "{:-^80}",
  " Finding octahedra candidates for each hexahedral element "));
  - axom::IndexType* offsets = axom::allocate<axom::IndexType>(NE);
  - axom::IndexType* counts = axom::allocate<axom::IndexType>(NE);
  - axom::IndexType* candidates = nullptr;
  + axom::Array<IndexType> offsets(NE);
  + axom::Array<IndexType> counts(NE);
  + axom::Array<IndexType> candidates =
  bvh.findBoundingBoxes(offsets,
  counts,
  - candidates,
  NE,
  reinterpret_cast<BoundingBoxType*>(m_hex_bbs));
  @@ -609,10 +608,11 @@ public:
  using REDUCE_POL = typename axom::execution_space<ExecSpace>::reduce_policy;
  using ATOMIC_POL = typename axom::execution_space<ExecSpace>::atomic_policy;
  + const auto counts_v = counts.view();
  RAJA::ReduceSum<REDUCE_POL, int> totalCandidates(0);
  axom::for_all<ExecSpace>(
  NE,
  - AXOM_LAMBDA(axom::IndexType i) { totalCandidates += counts[i]; });
  + AXOM_LAMBDA(axom::IndexType i) { totalCandidates += counts_v[i]; });
  // Initialize hexahedron indices and octahedra candidates
  axom::IndexType* hexIndices =
  @@ -653,14 +653,16 @@ public:
  "{:-^80}",
  " Linearizing each tetrahedron, octahedron candidate pair "));
  + const auto offsets_v = offsets.view();
  + const auto candidates_v = candidates.view();
  AXOM_PERF_MARK_SECTION(
  "init_candidates",
  axom::for_all<ExecSpace>(
  NE,
  AXOM_LAMBDA(axom::IndexType i) {
  - for(int j = 0; j < counts[i]; j++)
  + for(int j = 0; j < counts_v[i]; j++)
  {
  - int octIdx = candidates[offsets[i] + j];
  + int octIdx = candidates_v[offsets_v[i] + j];
  if(!oct_has_duplicate_verts(m_octs[octIdx]))
  {
  for(int k = 0; k < NUM_TETS_PER_HEX; k++)
  @@ -747,9 +749,6 @@ public:
  axom::deallocate(ZERO);
  axom::deallocate(m_hexes);
  axom::deallocate(m_hex_bbs);
  - axom::deallocate(offsets);
  - axom::deallocate(counts);
  - axom::deallocate(candidates);
  axom::deallocate(hexIndices);
  axom::deallocate(octCandidates);
  axom::deallocate(tets);
  