40 assert(cells.size() == num_cells);
41 std::array<std::int32_t, 2 * num_cells> cell_local_facet_pairs;
42 for (
int c = 0; c < num_cells; ++c)
45 std::int32_t
cell = cells[c];
47 auto facet_it = std::find(cell_facets.begin(), cell_facets.end(), f);
48 assert(facet_it != cell_facets.end());
49 int local_f = std::ranges::distance(cell_facets.begin(), facet_it);
50 cell_local_facet_pairs[2 * c] =
cell;
51 cell_local_facet_pairs[2 * c + 1] = local_f;
54 return cell_local_facet_pairs;
69 static_assert(num_cells == 1);
71 assert(cells.size() > 0);
74 std::int32_t
cell = cells[0];
78 auto it = std::ranges::find(cell_entities, e);
79 assert(it != cell_entities.end());
80 std::int32_t local_index = std::ranges::distance(cell_entities.begin(), it);
82 return {
cell, local_index};
std::array< std::int32_t, 2 *num_cells > get_cell_facet_pairs(std::int32_t f, std::span< const std::int32_t > cells, const graph::AdjacencyList< std::int32_t > &c_to_f)
Definition integration_domains.h:36
std::array< std::int32_t, 2 *num_cells > get_cell_entity_pairs(std::int32_t e, std::span< const std::int32_t > cells, const graph::AdjacencyList< std::int32_t > &c_to_e)
Definition integration_domains.h:66
std::vector< std::int32_t > compute_integration_domains(IntegralType integral_type, const mesh::Topology &topology, std::span< const std::int32_t > entities)
Given an integral type and a set of entities, computes and return data for the entities that should b...
Definition utils.cpp:156