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.