6#include <kernel/geometry/test_aux/validate_structured_meshes.hpp>
7#include <kernel/geometry/test_aux/copy_comp_set.hpp>
15 void validate_structured_mesh_2d(
const StructuredMesh<2>* mesh)
19 if(mesh->get_num_entities(0) != 21)
20 throw String(
"Vertex count mismatch");
21 if(mesh->get_num_entities(1) != 32)
22 throw String(
"Edge count mismatch");
23 if(mesh->get_num_entities(2) != 12)
24 throw String(
"Quad count mismatch");
27 static const Index v_e[] =
65 static const Index v_q[] =
82 static const Index e_q[] =
100 const StructIndexSet<2,1,0>& set_v_e = mesh->get_index_set<1,0>();
101 const StructIndexSet<2,2,0>& set_v_q = mesh->get_index_set<2,0>();
102 const StructIndexSet<2,2,1>& set_e_q = mesh->get_index_set<2,1>();
106 for(
Index j(0); j < 32; ++j)
108 for(
int k(0); k < 2; ++k)
110 if(set_v_e(j,k) != v_e[i])
112 throw String(
"Vertex-At-Edge index set error");
120 for(
Index j(0); j < 12; ++j)
122 for(
int k(0); k < 4; ++k)
124 if(set_v_q(j,k) != v_q[i])
126 throw String(
"Vertex-At-Quad index set error");
134 for(
Index j(0); j < 12; ++j)
136 for(
int k(0); k < 4; ++k)
138 if(set_e_q(j,k) != e_q[i])
140 throw String(
"Edge-At-Quad index set error");
147 void validate_structured_mesh_3d(
const StructuredMesh<3>* mesh)
151 if(mesh->get_num_entities(0) != 60)
152 throw String(
"Vertex count mismatch");
153 if(mesh->get_num_entities(1) != 133)
154 throw String(
"Edge count mismatch");
155 if(mesh->get_num_entities(2) != 98)
156 throw String(
"Quad count mismatch");
157 if(mesh->get_num_entities(3) != 24)
158 throw String(
"Hexa count mismatch");
161 static const Index v_e[] =
317 static const Index v_q[] =
429 static const Index v_h[] =
431 0, 1, 5, 6, 15, 16, 20, 21,
432 1, 2, 6, 7, 16, 17, 21, 22,
433 2, 3, 7, 8, 17, 18, 22, 23,
434 3, 4, 8, 9, 18, 19, 23, 24,
435 5, 6, 10, 11, 20, 21, 25, 26,
436 6, 7, 11, 12, 21, 22, 26, 27,
437 7, 8, 12, 13, 22, 23, 27, 28,
438 8, 9, 13, 14, 23, 24, 28, 29,
440 15, 16, 20, 21, 30, 31, 35, 36,
441 16, 17, 21, 22, 31, 32, 36, 37,
442 17, 18, 22, 23, 32, 33, 37, 38,
443 18, 19, 23, 24, 33, 34, 38, 39,
444 20, 21, 25, 26, 35, 36, 40, 41,
445 21, 22, 26, 27, 36, 37, 41, 42,
446 22, 23, 27, 28, 37, 38, 42, 43,
447 23, 24, 28, 29, 38, 39, 43, 44,
449 30, 31, 35, 36, 45, 46, 50, 51,
450 31, 32, 36, 37, 46, 47, 51, 52,
451 32, 33, 37, 38, 47, 48, 52, 53,
452 33, 34, 38, 39, 48, 49, 53, 54,
453 35, 36, 40, 41, 50, 51, 55, 56,
454 36, 37, 41, 42, 51, 52, 56, 57,
455 37, 38, 42, 43, 52, 53, 57, 58,
456 38, 39, 43, 44, 53, 54, 58, 59
460 static const Index e_q[] =
568 static const Index e_h[] =
570 0, 4, 12, 16, 48, 50, 58, 60, 88, 91, 103, 106,
571 1, 5, 13, 17, 50, 52, 60, 62, 91, 94, 106, 109,
572 2, 6, 14, 18, 52, 54, 62, 64, 94, 97, 109, 112,
573 3, 7, 15, 19, 54, 56, 64, 66, 97, 100, 112, 115,
574 4, 8, 16, 20, 49, 51, 59, 61, 103, 106, 118, 121,
575 5, 9, 17, 21, 51, 53, 61, 63, 106, 109, 121, 124,
576 6, 10, 18, 22, 53, 55, 63, 65, 109, 112, 124, 127,
577 7, 11, 19, 23, 55, 57, 65, 67, 112, 115, 127, 130,
578 12, 16, 24, 28, 58, 60, 68, 70, 89, 92, 104, 107,
579 13, 17, 25, 29, 60, 62, 70, 72, 92, 95, 107, 110,
580 14, 18, 26, 30, 62, 64, 72, 74, 95, 98, 110, 113,
581 15, 19, 27, 31, 64, 66, 74, 76, 98, 101, 113, 116,
582 16, 20, 28, 32, 59, 61, 69, 71, 104, 107, 119, 122,
583 17, 21, 29, 33, 61, 63, 71, 73, 107, 110, 122, 125,
584 18, 22, 30, 34, 63, 65, 73, 75, 110, 113, 125, 128,
585 19, 23, 31, 35, 65, 67, 75, 77, 113, 116, 128, 131,
586 24, 28, 36, 40, 68, 70, 78, 80, 90, 93, 105, 108,
587 25, 29, 37, 41, 70, 72, 80, 82, 93, 96, 108, 111,
588 26, 30, 38, 42, 72, 74, 82, 84, 96, 99, 111, 114,
589 27, 31, 39, 43, 74, 76, 84, 86, 99, 102, 114, 117,
590 28, 32, 40, 44, 69, 71, 79, 81, 105, 108, 120, 123,
591 29, 33, 41, 45, 71, 73, 81, 83, 108, 111, 123, 126,
592 30, 34, 42, 46, 73, 75, 83, 85, 111, 114, 126, 129,
593 31, 35, 43, 47, 75, 77, 85, 87, 114, 117, 129, 132
597 static const Index q_h[] =
599 0, 8, 32, 44, 68, 74,
600 1, 9, 33, 45, 74, 80,
601 2, 10, 34, 46, 80, 86,
602 3, 11, 35, 47, 86, 92,
603 4, 12, 44, 56, 69, 75,
604 5, 13, 45, 57, 75, 81,
605 6, 14, 46, 58, 81, 87,
606 7, 15, 47, 59, 87, 93,
607 8, 16, 36, 48, 70, 76,
608 9, 17, 37, 49, 76, 82,
609 10, 18, 38, 50, 82, 88,
610 11, 19, 39, 51, 88, 94,
611 12, 20, 48, 60, 71, 77,
612 13, 21, 49, 61, 77, 83,
613 14, 22, 50, 62, 83, 89,
614 15, 23, 51, 63, 89, 95,
615 16, 24, 40, 52, 72, 78,
616 17, 25, 41, 53, 78, 84,
617 18, 26, 42, 54, 84, 90,
618 19, 27, 43, 55, 90, 96,
619 20, 28, 52, 64, 73, 79,
620 21, 29, 53, 65, 79, 85,
621 22, 30, 54, 66, 85, 91,
622 23, 31, 55, 67, 91, 97
626 const StructIndexSet<3,1,0>& set_v_e = mesh->get_index_set<1,0>();
627 const StructIndexSet<3,2,0>& set_v_q = mesh->get_index_set<2,0>();
628 const StructIndexSet<3,3,0>& set_v_h = mesh->get_index_set<3,0>();
629 const StructIndexSet<3,2,1>& set_e_q = mesh->get_index_set<2,1>();
630 const StructIndexSet<3,3,1>& set_e_h = mesh->get_index_set<3,1>();
631 const StructIndexSet<3,3,2>& set_q_h = mesh->get_index_set<3,2>();
635 for(
Index j(0); j < 133; ++j)
637 for(
int k(0); k < 2; ++k)
639 if(set_v_e(j,k) != v_e[i])
641 throw String(
"Vertex-At-Edge index set error");
649 for(
Index j(0); j < 98; ++j)
651 for(
int k(0); k < 4; ++k)
653 if(set_v_q(j,k) != v_q[i])
655 throw String(
"Vertex-At-Quad index set error");
663 for(
Index j(0); j < 24; ++j)
665 for(
int k(0); k < 8; ++k)
667 if(set_v_h(j,k) != v_h[i])
669 throw String(
"Vertex-At-Hexa index set error");
677 for(
Index j(0); j < 98; ++j)
679 for(
int k(0); k < 4; ++k)
681 if(set_e_q(j,k) != e_q[i])
683 throw String(
"Edge-At-Quad index set error");
691 for(
Index j(0); j < 24; ++j)
693 for(
int k(0); k < 12; ++k)
695 if(set_e_h(j,k) != e_h[i])
697 throw String(
"Edge-At-Hexa index set error");
705 for(
Index j(0); j < 24; ++j)
707 for(
int k(0); k < 6; ++k)
709 if(set_q_h(j,k) != q_h[i])
711 throw String(
"Quad-At-Hexa index set error");
std::uint64_t Index
Index data type.