6#include <kernel/geometry/test_aux/standard_hexa.hpp>
7#include <kernel/geometry/test_aux/copy_comp_set.hpp>
15 HexaMesh* create_hexa_mesh_3d(
int orientation)
17 Index num_entities[] =
26 HexaMesh* mesh =
new HexaMesh(num_entities);
56 static const Real vtx0[3*8] =
69 static const Index v_e0[12*2] =
86 static const Index v_q0[6*4] =
97 static const Index v_c0[1*8] =
99 0, 1, 2, 3, 4, 5, 6, 7
103 static const Index e_q0[6*4] =
114 static const Index e_c0[1*12] =
116 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
120 static const Index q_c0[1*6] =
153 static const Real vtx1[3*8] =
166 static const Index v_e1[12*2] =
185 static const Index v_q1[6*4] =
196 static const Index v_c1[1*8] =
198 1, 2, 6, 7, 4, 5, 0, 3
202 static const Index e_q1[6*4] =
213 static const Index e_c1[1*12] =
215 4, 1, 6, 3, 11, 9, 8, 10, 5, 7, 0, 2
219 static const Index q_c1[1*6] =
252 static const Real vtx2[3*8] =
265 static const Index v_e2[12*2] =
284 static const Index v_q2[6*4] =
295 static const Index v_c2[1*8] =
297 0, 7, 4, 1, 2, 3, 6, 5
301 static const Index e_q2[6*4] =
312 static const Index e_c2[1*12] =
314 0, 4, 3, 5, 11, 9, 8, 10, 1, 2, 7, 6
318 static const Index q_c2[1*6] =
326 copy_vtx(mesh->get_vertex_set(), vtx0);
327 copy_idx(mesh->get_index_set<1,0>(), v_e0);
328 copy_idx(mesh->get_index_set<2,0>(), v_q0);
329 copy_idx(mesh->get_index_set<3,0>(), v_c0);
330 copy_idx(mesh->get_index_set<2,1>(), e_q0);
331 copy_idx(mesh->get_index_set<3,1>(), e_c0);
332 copy_idx(mesh->get_index_set<3,2>(), q_c0);
335 copy_vtx(mesh->get_vertex_set(), vtx1);
336 copy_idx(mesh->get_index_set<1,0>(), v_e1);
337 copy_idx(mesh->get_index_set<2,0>(), v_q1);
338 copy_idx(mesh->get_index_set<3,0>(), v_c1);
339 copy_idx(mesh->get_index_set<2,1>(), e_q1);
340 copy_idx(mesh->get_index_set<3,1>(), e_c1);
341 copy_idx(mesh->get_index_set<3,2>(), q_c1);
344 copy_vtx(mesh->get_vertex_set(), vtx2);
345 copy_idx(mesh->get_index_set<1,0>(), v_e2);
346 copy_idx(mesh->get_index_set<2,0>(), v_q2);
347 copy_idx(mesh->get_index_set<3,0>(), v_c2);
348 copy_idx(mesh->get_index_set<2,1>(), e_q2);
349 copy_idx(mesh->get_index_set<3,1>(), e_c2);
350 copy_idx(mesh->get_index_set<3,2>(), q_c2);
359 void validate_refined_hexa_mesh_3d(
const HexaMesh& mesh,
int orientation)
362 if(mesh.get_num_entities(0) != 27)
363 throw String(
"Vertex count mismatch");
364 if(mesh.get_num_entities(1) != 54)
365 throw String(
"Edge count mismatch");
366 if(mesh.get_num_entities(2) != 36)
367 throw String(
"Quad count mismatch");
368 if(mesh.get_num_entities(3) != 8)
369 throw String(
"Cube count mismatch");
400 static const Real vtx0[] =
435 static const Index v_e0[] =
496 static const Index v_q0[] =
539 static const Index v_c0[] =
541 0, 8, 12, 20, 16, 22, 24, 26,
542 8, 1, 20, 13, 22, 17, 26, 25,
543 12, 20, 2, 9, 24, 26, 18, 23,
544 20, 13, 9, 3, 26, 25, 23, 19,
545 16, 22, 24, 26, 4, 10, 14, 21,
546 22, 17, 26, 25, 10, 5, 21, 15,
547 24, 26, 18, 23, 14, 21, 6, 11,
548 26, 25, 23, 19, 21, 15, 11, 7
552 static const Index e_q0[] =
601 static const Index e_c0[] =
603 0, 26, 34, 52, 8, 24, 42, 50, 16, 32, 40, 48,
604 1, 27, 35, 53, 24, 10, 50, 46, 32, 18, 48, 44,
605 26, 2, 52, 38, 9, 25, 43, 51, 40, 48, 20, 36,
606 27, 3, 53, 39, 25, 11, 51, 47, 48, 44, 36, 22,
607 34, 52, 4, 30, 42, 50, 12, 28, 17, 33, 41, 49,
608 35, 53, 5, 31, 50, 46, 28, 14, 33, 19, 49, 45,
609 52, 38, 30, 6, 43, 51, 13, 29, 41, 49, 21, 37,
610 53, 39, 31, 7, 51, 47, 29, 15, 49, 45, 37, 23
614 static const Index q_c0[] =
616 0, 32, 8, 28, 16, 24,
617 1, 33, 9, 29, 24, 20,
618 2, 34, 28, 12, 17, 25,
619 3, 35, 29, 13, 25, 21,
620 32, 4, 10, 30, 18, 26,
621 33, 5, 11, 31, 26, 22,
622 34, 6, 30, 14, 19, 27,
623 35, 7, 31, 15, 27, 23
654 static const Real vtx1[] =
689 static const Index v_e1[] =
750 static const Index v_q1[] =
799 static const Index v_c1[] =
801 1, 12, 19, 21, 13, 22, 24, 26,
802 12, 2, 21, 17, 22, 15, 26, 25,
803 19, 21, 6, 9, 24, 26, 8, 20,
804 21, 17, 9, 7, 26, 25, 20, 10,
805 13, 22, 24, 26, 4, 14, 16, 23,
806 22, 15, 26, 25, 14, 5, 23, 18,
807 24, 26, 8, 20, 16, 23, 0, 11,
808 26, 25, 20, 10, 23, 18, 11, 3
812 static const Index e_q1[] =
861 static const Index e_c1[] =
863 9, 31, 33, 52, 22, 29, 43, 50, 10, 34, 40, 48,
864 8, 30, 32, 53, 29, 18, 50, 46, 34, 15, 48, 45,
865 31, 2, 52, 25, 23, 28, 42, 51, 40, 48, 1, 26,
866 30, 3, 53, 24, 28, 19, 51, 47, 48, 45, 26, 4,
868 33, 52, 12, 38, 43, 50, 16, 37, 11, 35, 41, 49,
869 32, 53, 13, 39, 50, 46, 37, 20, 35, 14, 49, 44,
870 52, 25, 38, 7, 42, 51, 17, 36, 41, 49, 0, 27,
871 53, 24, 39, 6, 51, 47, 36, 21, 49, 44, 27, 5
875 static const Index q_c1[] =
877 7, 32, 10, 28, 17, 24,
878 6, 33, 8, 29, 24, 22,
879 5, 34, 28, 2, 16, 25,
880 4, 35, 29, 0, 25, 23,
881 32, 14, 11, 30, 19, 26,
882 33, 15, 9, 31, 26, 20,
883 34, 12, 30, 3, 18, 27,
884 35, 13, 31, 1, 27, 21
915 static const Real vtx2[] =
950 static const Index v_e2[] =
1011 static const Index v_q2[] =
1060 static const Index v_c2[] =
1062 0, 8, 19, 24, 9, 20, 23, 26,
1063 8, 7, 24, 17, 20, 10, 26, 22,
1064 19, 24, 4, 12, 23, 26, 15, 21,
1065 24, 17, 12, 1, 26, 22, 21, 14,
1066 9, 20, 23, 26, 2, 11, 16, 25,
1067 20, 10, 26, 22, 11, 3, 25, 18,
1068 23, 26, 15, 21, 16, 25, 6, 13,
1069 26, 22, 21, 14, 25, 18, 13, 5
1073 static const Index e_q2[] =
1122 static const Index e_c2[] =
1124 0, 43, 24, 52, 22, 40, 37, 50, 3, 27, 39, 48,
1125 1, 42, 25, 53, 40, 19, 50, 32, 27, 5, 48, 34,
1126 43, 8, 52, 29, 23, 41, 36, 51, 39, 48, 14, 31,
1127 42, 9, 53, 28, 41, 18, 51, 33, 48, 34, 31, 12,
1129 24, 52, 7, 46, 37, 50, 17, 45, 2, 26, 38, 49,
1130 25, 53, 6, 47, 50, 32, 45, 20, 26, 4, 49, 35,
1131 52, 29, 46, 11, 36, 51, 16, 44, 38, 49, 15, 30,
1132 53, 28, 47, 10, 51, 33, 44, 21, 49, 35, 30, 13
1136 static const Index q_c2[] =
1138 17, 32, 1, 28, 15, 24,
1139 16, 33, 3, 29, 24, 8,
1140 19, 34, 28, 7, 13, 25,
1141 18, 35, 29, 5, 25, 10,
1142 32, 22, 0, 30, 14, 26,
1143 33, 23, 2, 31, 26, 9,
1144 34, 20, 30, 6, 12, 27,
1145 35, 21, 31, 4, 27, 11
1152 if(!comp_vtx(mesh.get_vertex_set(), vtx0))
1153 throw String(
"Vertex coordinate refinement failure");
1156 if(!comp_idx(mesh.get_index_set<1,0>(), v_e0))
1157 throw String(
"Vertex-At-Edge index set refinement failure");
1160 if(!comp_idx(mesh.get_index_set<2,0>(), v_q0))
1161 throw String(
"Vertex-At-Quad index set refinement failure");
1164 if(!comp_idx(mesh.get_index_set<3,0>(), v_c0))
1165 throw String(
"Vertex-At-Cube index set refinement failure");
1168 if(!comp_idx(mesh.get_index_set<2,1>(), e_q0))
1169 throw String(
"Edge-At-Quad index set refinement failure");
1172 if(!comp_idx(mesh.get_index_set<3,1>(), e_c0))
1173 throw String(
"Edge-At-Cube index set refinement failure");
1176 if(!comp_idx(mesh.get_index_set<3,2>(), q_c0))
1177 throw String(
"Quad-At-Cube index set refinement failure");
1182 if(!comp_vtx(mesh.get_vertex_set(), vtx1))
1183 throw String(
"Vertex coordinate refinement failure");
1186 if(!comp_idx(mesh.get_index_set<1,0>(), v_e1))
1187 throw String(
"Vertex-At-Edge index set refinement failure");
1190 if(!comp_idx(mesh.get_index_set<2,0>(), v_q1))
1191 throw String(
"Vertex-At-Quad index set refinement failure");
1194 if(!comp_idx(mesh.get_index_set<3,0>(), v_c1))
1195 throw String(
"Vertex-At-Cube index set refinement failure");
1198 if(!comp_idx(mesh.get_index_set<2,1>(), e_q1))
1199 throw String(
"Edge-At-Quad index set refinement failure");
1202 if(!comp_idx(mesh.get_index_set<3,1>(), e_c1))
1203 throw String(
"Edge-At-Cube index set refinement failure");
1206 if(!comp_idx(mesh.get_index_set<3,2>(), q_c1))
1207 throw String(
"Quad-At-Cube index set refinement failure");
1212 if(!comp_vtx(mesh.get_vertex_set(), vtx2))
1213 throw String(
"Vertex coordinate refinement failure");
1216 if(!comp_idx(mesh.get_index_set<1,0>(), v_e2))
1217 throw String(
"Vertex-At-Edge index set refinement failure");
1220 if(!comp_idx(mesh.get_index_set<2,0>(), v_q2))
1221 throw String(
"Vertex-At-Quad index set refinement failure");
1224 if(!comp_idx(mesh.get_index_set<3,0>(), v_c2))
1225 throw String(
"Vertex-At-Cube index set refinement failure");
1228 if(!comp_idx(mesh.get_index_set<2,1>(), e_q2))
1229 throw String(
"Edge-At-Quad index set refinement failure");
1232 if(!comp_idx(mesh.get_index_set<3,1>(), e_c2))
1233 throw String(
"Edge-At-Cube index set refinement failure");
1236 if(!comp_idx(mesh.get_index_set<3,2>(), q_c2))
1237 throw String(
"Quad-At-Cube index set refinement failure");
#define XABORTM(msg)
Abortion macro definition with custom message.
double Real
Real data type.
String stringify(const T_ &item)
Converts an item into a String.
std::uint64_t Index
Index data type.