12 const RefEl ref_el = e.
RefEl();
13 const dim_t dimension = ref_el.
Dimension();
21 for (dim_t sub_codim = 1; sub_codim <= dimension; sub_codim++) {
23 const size_type num_sub_entities = ref_el.NumSubEntities(sub_codim);
27 size_type sub_ent_cnt{0};
28 for (
const Entity *sub_ent : sub_ent_range) {
29 const RefEl sub_ref_el = sub_ent->RefEl();
30 const dim_t sub_dim = sub_ref_el.Dimension();
31 EXPECT_EQ(sub_dim, dimension - sub_codim) <<
"Dim/Co-dim mismatch";
33 for (dim_t sub_sub_codim = 1; sub_sub_codim <= sub_dim; sub_sub_codim++) {
34 auto sub_sub_ent_range = sub_ent->SubEntities(sub_sub_codim);
35 for (
const Entity *sub_sub_ent : sub_sub_ent_range) {
39 auto e_sub_sub_range = e.
SubEntities(sub_codim + sub_sub_codim);
42 for (
const Entity *e_sub_sub : e_sub_sub_range) {
43 if (e_sub_sub == sub_sub_ent) {
47 EXPECT_EQ(found, 1) <<
"Sub-sub-entity hit " << found <<
" times";
52 EXPECT_EQ(num_sub_entities, sub_ent_cnt)
53 <<
"Subent cnt mismatch " << num_sub_entities <<
" <-> " << sub_ent_cnt;
64 const RefEl ref_el = e.
RefEl();
65 const dim_t dimension = ref_el.
Dimension();
67 for (dim_t sub_codim = 1; sub_codim <= dimension; ++sub_codim) {
69 std::span<const lf::mesh::Entity *const> sub_ent_array{
72 const size_type num_subent = ref_el.NumSubEntities(sub_codim);
74 for (
int sub_ent_idx = 0; sub_ent_idx < num_subent; ++sub_ent_idx) {
77 dimension - sub_ent_array[sub_ent_idx]->RefEl().Dimension())
78 <<
"Dimension mismatch: " << e <<
" <-> subent(" << sub_ent_idx <<
")"