12#ifndef ARCANE_ITEMREFINEMENTPATTERN_H
13#define ARCANE_ITEMREFINEMENTPATTERN_H
18#include "arcane/utils/Real3.h"
19#include "arcane/utils/TraceInfo.h"
20#include "arcane/utils/NotSupportedException.h"
21#include "arcane/utils/NotImplementedException.h"
23#include "arcane/ArcaneTypes.h"
24#include "arcane/utils/FatalErrorException.h"
25#include "arcane/utils/StringBuilder.h"
36template <
class TypeImp>
43 return asImp().refine_matrix(i,j,k);
47 return asImp().face_mapping(i,j);
51 return asImp().face_mapping_topo(i,j);
55 return asImp().hChildrenTypeId(i);
57 Integer getNbHChildren ()
const {
58 return asImp().getNbHChildren();
65 return static_cast<TypeImp&
> (*this);
67 const TypeImp&
asImp()
const
69 return static_cast<const TypeImp&
> (*this);
105 return _refine_matrix[i][j][k];
107 Integer face_mapping (
const Integer i,
const Integer j)
const
109 return _face_mapping[i][j];
111 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
113 return _face_mapping_topo[i][j];
115 Integer hChildrenTypeId (
const Integer)
const
119 Integer getNbHChildren ()
const
121 return m_nb_hChildren;
126 static const Integer m_nb_hChildren = 4;
128 static const Real _refine_matrix[4][4][4];
129 static const Integer _face_mapping[4][4];
130 static const Integer _face_mapping_topo[4][4];
141 ItemRefinementPatternT() {}
144 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
146 return _refine_matrix [i][j][k];
148 Integer face_mapping (
const Integer i,
const Integer j)
const
150 return _face_mapping [i][j];
152 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
154 return _face_mapping_topo [i][j];
156 Integer hChildrenTypeId (
const Integer)
const
158 return IT_Hexaedron8;
160 Integer getNbHChildren ()
const
162 return m_nb_hChildren;
165 static const Integer m_nb_hChildren = 8;
167 static const Real _refine_matrix[8][8][8];
168 static const Integer _face_mapping[8][6];
169 static const Integer _face_mapping_topo[8][6];
175class ARCANE_CORE_EXPORT HexRefinementPattern27Hex
179 HexRefinementPattern27Hex() {}
190 Integer hChildrenTypeId (
const Integer)
const
192 return IT_Hexaedron8;
194 Integer getNbHChildren ()
const
196 return m_nb_hChildren;
199 static const Integer m_nb_hChildren = 27;
200 static const double _refine_matrix_1[27][8][8];
211 ItemRefinementPatternT() {}
214 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
216 if (i < 2)
return _refine_matrix_1 [i][j][k];
217 if (i < 4)
return _refine_matrix_2 [i-2][j][k];
218 if (i < 6)
return _refine_matrix_3 [i-4][j][k];
219 return _refine_matrix_4 [i-6][j][k];
221 Integer face_mapping (
const Integer i,
const Integer j)
const
223 if (i < 2)
return _face_mapping_1 [i][j];
224 if (i < 4)
return _face_mapping_2 [i-2][j];
225 if (i < 6)
return _face_mapping_3 [i-4][j];
226 return _face_mapping_4 [i-6][j];
228 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
230 if (i < 2)
return _face_mapping_topo_1 [i][j];
231 if (i < 4)
return _face_mapping_topo_2 [i-2][j];
232 if (i < 6)
return _face_mapping_topo_3 [i-4][j];
233 return _face_mapping_topo_4 [i-6][j];
235 Integer hChildrenTypeId (
const Integer i)
const {
236 if (i < 2)
return IT_Hexaedron8;
237 if (i < 4)
return IT_Pentaedron6;
238 if (i < 6)
return IT_Pyramid5;
239 return IT_Tetraedron4;
241 Integer getNbHChildren ()
const
243 return m_nb_hChildren;
248 static const Integer m_nb_hChildren = 8;
250 static const double _refine_matrix_1[2][8][4];
251 static const Integer _face_mapping_1[2][6];
252 static const Integer _face_mapping_topo_1[2][6];
254 static const double _refine_matrix_2[2][6][4];
255 static const Integer _face_mapping_2[2][5];
256 static const Integer _face_mapping_topo_2[2][5];
258 static const double _refine_matrix_3[2][5][4];
259 static const Integer _face_mapping_3[2][5];
260 static const Integer _face_mapping_topo_3[2][5];
262 static const double _refine_matrix_4[2][4][4];
263 static const Integer _face_mapping_4[2][4];
264 static const Integer _face_mapping_topo_4[2][4];
270class ARCANE_CORE_EXPORT TetraRefinementPattern8T
274 TetraRefinementPattern8T() {}
279 return _refine_matrix_1 [i][j][k];
285 Integer hChildrenTypeId (
const Integer)
const
287 return IT_Tetraedron4;
289 Integer getNbHChildren ()
const
291 return m_nb_hChildren;
296 static const Integer m_nb_hChildren = 8;
297 static const double _refine_matrix_1[8][4][4];
303class ARCANE_CORE_EXPORT TetraRefinementPattern32T
307 TetraRefinementPattern32T() {}
318 Integer hChildrenTypeId (
const Integer)
const
320 return IT_Tetraedron4;
322 Integer getNbHChildren ()
const
324 return m_nb_hChildren;
329 static const Integer m_nb_hChildren = 32;
330 static const double _refine_matrix_1[32][4][4];
341 ItemRefinementPatternT() {}
344 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
346 if (i<4)
return _refine_matrix_1 [i][j][k];
347 return _refine_matrix_2 [i-4][j][k];
349 Integer face_mapping (
const Integer i,
const Integer j)
const
351 if (i<4)
return _face_mapping_1 [i][j];
352 return _face_mapping_2 [i-4][j];
354 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
356 if (i<4)
return _face_mapping_topo_1 [i][j];
357 return _face_mapping_topo_2 [i-4][j];
359 Integer hChildrenTypeId (
const Integer i)
const
361 if (i<4)
return IT_Hexaedron8;
362 return IT_Pentaedron6;
364 Integer getNbHChildren ()
const
366 return m_nb_hChildren;
371 static const Integer m_nb_hChildren = 8;
373 static const double _refine_matrix_1[4][8][6];
374 static const Integer _face_mapping_1[4][6];
375 static const Integer _face_mapping_topo_1[4][6];
377 static const double _refine_matrix_2[4][6][6];
378 static const Integer _face_mapping_2[4][5];
379 static const Integer _face_mapping_topo_2[4][5];
385class ARCANE_CORE_EXPORT PrismRefinementPattern8Pr
389 PrismRefinementPattern8Pr() {}
394 return _refine_matrix_1 [i][j][k];
400 Integer hChildrenTypeId (
const Integer)
const
402 return IT_Pentaedron6;
404 Integer getNbHChildren ()
const
406 return m_nb_hChildren;
411 static const Integer m_nb_hChildren = 8;
412 static const double _refine_matrix_1[8][6][6];
418class ARCANE_CORE_EXPORT PrismRefinementPattern27Pr
422 PrismRefinementPattern27Pr() {}
433 Integer hChildrenTypeId (
const Integer)
const
435 return IT_Pentaedron6;
437 Integer getNbHChildren ()
const
439 return m_nb_hChildren;
442 static const Integer m_nb_hChildren = 27;
444 static const double _refine_matrix_1[27][6][6];
455 ItemRefinementPatternT() {}
458 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const {
459 if (i < 4)
return _refine_matrix_1 [i][j][k];
460 return _refine_matrix_2 [i-4][j][k];
462 Integer face_mapping (
const Integer i,
const Integer j)
const {
463 if (i < 4)
return _face_mapping_1 [i][j];
464 return _face_mapping_2 [i-4][j];
466 Integer face_mapping_topo (
const Integer i,
const Integer j)
const {
467 if (i < 4)
return _face_mapping_topo_1 [i][j];
468 return _face_mapping_topo_2 [i-4][j];
470 Integer hChildrenTypeId (
const Integer i)
const {
471 if (i < 4)
return IT_Hexaedron8;
474 Integer getNbHChildren ()
const {
475 return m_nb_hChildren;
478 static const Integer m_nb_hChildren = 8;
480 static const double _refine_matrix_1[4][8][5];
481 static const Integer _face_mapping_1[4][6];
482 static const Integer _face_mapping_topo_1[4][6];
484 static const double _refine_matrix_2[4][5][5];
485 static const Integer _face_mapping_2[4][5];
486 static const Integer _face_mapping_topo_2[4][5];
492class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py8T
496 PyramidRefinementPattern4Py8T() {}
501 if (i < 4)
return _refine_matrix_1 [i][j][k];
502 return _refine_matrix_2 [i-4][j][k];
508 Integer hChildrenTypeId (
const Integer i)
const
510 if (i < 4)
return IT_Pyramid5;
511 return IT_Tetraedron4;
513 Integer getNbHChildren ()
const {
514 return m_nb_hChildren;
517 static const Integer m_nb_hChildren = 12;
519 static const double _refine_matrix_1[4][5][5];
521 static const double _refine_matrix_2[8][4][5];
528class ARCANE_CORE_EXPORT PyramidRefinementPattern6Py4T
532 PyramidRefinementPattern6Py4T() {}
537 if (i < 6)
return _refine_matrix_1 [i][j][k];
538 return _refine_matrix_2 [i-6][j][k];
542 if (i < 6)
return IT_Pyramid5;
543 return IT_Tetraedron4;
545 Integer getNbHChildren ()
const {
546 return m_nb_hChildren;
549 static const Integer m_nb_hChildren = 10;
551 static const double _refine_matrix_1[6][5][5];
553 static const double _refine_matrix_2[4][4][5];
560class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py
564 PyramidRefinementPattern4Py() {}
575 Integer hChildrenTypeId (
const Integer)
const
579 Integer getNbHChildren ()
const
581 return m_nb_hChildren;
586 static const Integer m_nb_hChildren = 4;
587 static const double _refine_matrix_1[4][5][5];
593class ARCANE_CORE_EXPORT PyramidRefinementPattern19Py12T
597 PyramidRefinementPattern19Py12T() {}
602 if (i < 19)
return _refine_matrix_1 [i][j][k];
603 return _refine_matrix_2 [i-19][j][k];
610 Integer hChildrenTypeId (
const Integer i)
const
612 if (i < 19)
return IT_Pyramid5;
613 return IT_Tetraedron4;
615 Integer getNbHChildren ()
const
617 return m_nb_hChildren;
622 static const Integer m_nb_hChildren = 31;
623 static const double _refine_matrix_1[19][5][5];
624 static const double _refine_matrix_2[12][4][5];
635 ItemRefinementPatternT() {}
638 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
640 if (i < 2)
return _refine_matrix_1 [i][j][k];
641 if (i < 6)
return _refine_matrix_2 [i-2][j][k];
642 return _refine_matrix_3 [i-6][j][k];
645 Integer face_mapping (
const Integer i,
const Integer j)
const
647 if (i < 2)
return _face_mapping_1 [i][j];
648 if (i < 6)
return _face_mapping_2 [i-2][j];
649 return _face_mapping_3 [i-6][j];
651 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
653 if (i < 2)
return _face_mapping_topo_1 [i][j];
654 if (i < 6)
return _face_mapping_topo_2 [i-2][j];
655 return _face_mapping_topo_3 [i-6][j];
657 Integer hChildrenTypeId (
const Integer i)
const
659 if (i < 2)
return IT_Hexaedron8;
660 if (i < 6)
return IT_Pentaedron6;
663 Integer getNbHChildren ()
const
665 return m_nb_hChildren;
668 static const Integer m_nb_hChildren = 8;
670 static const double _refine_matrix_1[2][8][5];
671 static const Integer _face_mapping_1[2][6];
672 static const Integer _face_mapping_topo_1[2][6];
674 static const double _refine_matrix_2[4][6][5];
675 static const Integer _face_mapping_2[4][5];
676 static const Integer _face_mapping_topo_2[4][5];
678 static const double _refine_matrix_3[2][5][5];
679 static const Integer _face_mapping_3[2][4];
680 static const Integer _face_mapping_topo_3[2][4];
686class ARCANE_CORE_EXPORT HemiHex5RefinementPattern3HHex5_2Pr_1HHex7
690 HemiHex5RefinementPattern3HHex5_2Pr_1HHex7() {}
696 return _refine_matrix_1 [i][j][k];
698 return _refine_matrix_2 [i-3][j][k];
699 return _refine_matrix_3 [i-5][j][k];
705 Integer hChildrenTypeId (
const Integer i)
const
710 return IT_Pentaedron6;
713 Integer getNbHChildren ()
const
715 return m_nb_hChildren;
718 static const Integer m_nb_hChildren = 6;
720 static const double _refine_matrix_1[3][5][5];
722 static const double _refine_matrix_2[2][6][5];
724 static const double _refine_matrix_3[1][7][5];
731class ARCANE_CORE_EXPORT HemiHex5RefinementPattern7HHex5_4Pr_3HHex6_2HHex7_1Hex
735 HemiHex5RefinementPattern7HHex5_4Pr_3HHex6_2HHex7_1Hex() {}
740 if (i < 7)
return _refine_matrix_1 [i][j][k];
741 if (i < 11)
return _refine_matrix_2 [i-7][j][k];
742 if (i < 14)
return _refine_matrix_3 [i-11][j][k];
743 if (i < 16)
return _refine_matrix_4 [i-14][j][k];
744 return _refine_matrix_5 [i-16][j][k];
750 Integer hChildrenTypeId (
const Integer i)
const
752 if (i < 7)
return IT_HemiHexa5;
753 if (i < 11)
return IT_Pentaedron6;
754 if (i < 14)
return IT_HemiHexa6;
755 if (i < 16)
return IT_HemiHexa7;
756 return IT_Hexaedron8;
758 Integer getNbHChildren ()
const
760 return m_nb_hChildren;
763 static const Integer m_nb_hChildren = 17;
764 static const double _refine_matrix_1[7][5][5];
765 static const double _refine_matrix_2[4][6][5];
766 static const double _refine_matrix_3[3][6][5];
767 static const double _refine_matrix_4[2][7][5];
768 static const double _refine_matrix_5[1][8][5];
779 ItemRefinementPatternT() {}
782 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
784 if (i < 4)
return _refine_matrix_1 [i][j][k];
785 return _refine_matrix_2 [i-4][j][k];
787 Integer face_mapping (
const Integer i,
const Integer j)
const
789 if (i < 4)
return _face_mapping_1 [i][j];
790 return _face_mapping_2 [i-4][j];
792 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
794 if (i < 4)
return _face_mapping_topo_1 [i][j];
795 return _face_mapping_topo_2 [i-4][j];
797 Integer hChildrenTypeId (
const Integer i)
const
799 if (i < 4)
return IT_Hexaedron8;
802 Integer getNbHChildren ()
const
804 return m_nb_hChildren;
807 static const Integer m_nb_hChildren = 8;
809 static const double _refine_matrix_1[4][8][6];
810 static const Integer _face_mapping_1[4][6];
811 static const Integer _face_mapping_topo_1[4][6];
813 static const double _refine_matrix_2[4][7][6];
814 static const Integer _face_mapping_2[4][6];
815 static const Integer _face_mapping_topo_2[4][6];
821class ARCANE_CORE_EXPORT HemiHex6RefinementPattern4HHex5_4HHex7
825 HemiHex6RefinementPattern4HHex5_4HHex7() {}
830 if (i < 4)
return _refine_matrix_1 [i][j][k];
831 return _refine_matrix_2 [i-4][j][k];
837 Integer hChildrenTypeId (
const Integer i)
const
839 if (i < 4)
return IT_HemiHexa5;
842 Integer getNbHChildren ()
const
844 return m_nb_hChildren;
849 static const Integer m_nb_hChildren = 8;
850 static const double _refine_matrix_1[4][5][6];
851 static const double _refine_matrix_2[4][7][6];
857class ARCANE_CORE_EXPORT HemiHex6RefinementPattern6HHex6_12HHex5_6HHex7_1Hex
861 HemiHex6RefinementPattern6HHex6_12HHex5_6HHex7_1Hex() {}
866 if (i < 6)
return _refine_matrix_1 [i][j][k];
867 if (i < 18)
return _refine_matrix_2 [i-6][j][k];
868 if (i < 24)
return _refine_matrix_3 [i-18][j][k];
869 return _refine_matrix_4 [i-24][j][k];
875 Integer hChildrenTypeId (
const Integer i)
const
877 if (i < 6)
return IT_HemiHexa6;
878 if (i < 18)
return IT_HemiHexa5;
879 if (i < 24)
return IT_HemiHexa7;
880 return IT_Hexaedron8;
882 Integer getNbHChildren ()
const
884 return m_nb_hChildren;
889 static const Integer m_nb_hChildren = 25;
890 static const double _refine_matrix_1[6][6][6];
891 static const double _refine_matrix_2[12][5][6];
892 static const double _refine_matrix_3[6][7][6];
893 static const double _refine_matrix_4[1][8][6];
904 ItemRefinementPatternT() {}
907 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
909 if (i < 6)
return _refine_matrix_1 [i][j][k];
910 return _refine_matrix_2 [i-6][j][k];
913 Integer face_mapping (
const Integer i,
const Integer j)
const
915 if (i < 6)
return _face_mapping_1 [i][j];
916 return _face_mapping_2 [i-6][j];
918 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
920 if (i < 6)
return _face_mapping_topo_1 [i][j];
921 return _face_mapping_topo_2 [i-6][j];
923 Integer hChildrenTypeId (
const Integer i)
const
925 if (i < 6)
return IT_Hexaedron8;
928 Integer getNbHChildren ()
const
930 return m_nb_hChildren;
935 static const Integer m_nb_hChildren = 8;
937 static const double _refine_matrix_1[6][8][7];
938 static const Integer _face_mapping_1[6][6];
939 static const Integer _face_mapping_topo_1[6][6];
941 static const double _refine_matrix_2[2][7][7];
942 static const Integer _face_mapping_2[2][6];
943 static const Integer _face_mapping_topo_2[2][6];
950class ARCANE_CORE_EXPORT HemiHex7RefinementPattern4HHex7_4Pr_2HHex5_1Hex
954 HemiHex7RefinementPattern4HHex7_4Pr_2HHex5_1Hex() {}
959 if (i < 4)
return _refine_matrix_1 [i][j][k];
960 if (i < 8)
return _refine_matrix_2 [i-4][j][k];
961 if (i < 10)
return _refine_matrix_3 [i-8][j][k];
962 return _refine_matrix_4 [i-10][j][k];
968 Integer hChildrenTypeId (
const Integer i)
const
970 if (i < 4)
return IT_HemiHexa7;
971 if (i < 8)
return IT_Pentaedron6;
972 if (i < 10)
return IT_HemiHexa5;
973 return IT_Hexaedron8;
975 Integer getNbHChildren ()
const
977 return m_nb_hChildren;
982 static const Integer m_nb_hChildren = 11;
983 static const double _refine_matrix_1[4][7][7];
984 static const double _refine_matrix_2[4][6][7];
985 static const double _refine_matrix_3[2][5][7];
986 static const double _refine_matrix_4[1][8][7];
992class ARCANE_CORE_EXPORT HemiHex7RefinementPattern8HHex7_14Pr_9HHex5_7Hex
996 HemiHex7RefinementPattern8HHex7_14Pr_9HHex5_7Hex() {}
1001 if (i < 8)
return _refine_matrix_1 [i][j][k];
1002 if (i < 22)
return _refine_matrix_2 [i-8][j][k];
1003 if (i < 31)
return _refine_matrix_3 [i-22][j][k];
1004 return _refine_matrix_4 [i-31][j][k];
1010 Integer hChildrenTypeId (
const Integer i)
const
1012 if (i < 8)
return IT_HemiHexa7;
1013 if (i < 22)
return IT_Pentaedron6;
1014 if (i < 31)
return IT_HemiHexa5;
1015 return IT_Hexaedron8;
1017 Integer getNbHChildren ()
const
1019 return m_nb_hChildren;
1024 static const Integer m_nb_hChildren = 38;
1025 static const double _refine_matrix_1[8][7][7];
1026 static const double _refine_matrix_2[14][6][7];
1027 static const double _refine_matrix_3[9][5][7];
1028 static const double _refine_matrix_4[7][8][7];
1039 ItemRefinementPatternT() {}
1042 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
1044 if (i < 4)
return _refine_matrix_1 [i][j][k];
1045 return _refine_matrix_2 [i-4][j][k];
1047 Integer face_mapping (
const Integer i,
const Integer j)
const
1049 if (i < 4)
return _face_mapping_1 [i][j];
1050 return _face_mapping_2 [i-4][j];
1052 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
1054 if (i < 4)
return _face_mapping_topo_1 [i][j];
1055 return _face_mapping_topo_2 [i-4][j];
1057 Integer hChildrenTypeId (
const Integer i)
const
1059 if (i < 4)
return IT_Hexaedron8;
1060 return IT_HemiHexa7;
1062 Integer getNbHChildren ()
const
1064 return m_nb_hChildren;
1069 static const Integer m_nb_hChildren = 8;
1070 static const double _refine_matrix_1[4][8][6];
1071 static const Integer _face_mapping_1[4][6];
1072 static const Integer _face_mapping_topo_1[4][6];
1073 static const double _refine_matrix_2[4][7][6];
1074 static const Integer _face_mapping_2[4][6];
1075 static const Integer _face_mapping_topo_2[4][6];
1081class ARCANE_CORE_EXPORT AntiWedgeLeft6RefinementPattern4AWL6_4Pr
1085 AntiWedgeLeft6RefinementPattern4AWL6_4Pr() {}
1090 if (i < 4)
return _refine_matrix_1 [i][j][k];
1091 return _refine_matrix_2 [i-4][j][k];
1097 Integer hChildrenTypeId (
const Integer i)
const
1099 if (i < 4)
return IT_AntiWedgeLeft6;
1100 return IT_Pentaedron6;
1102 Integer getNbHChildren ()
const
1104 return m_nb_hChildren;
1109 static const Integer m_nb_hChildren = 8;
1110 static const double _refine_matrix_1[4][6][6];
1111 static const double _refine_matrix_2[4][6][6];
1117class ARCANE_CORE_EXPORT AntiWedgeLeft6RefinementPattern9AWL6_18Pr
1121 AntiWedgeLeft6RefinementPattern9AWL6_18Pr() {}
1126 if (i < 9)
return _refine_matrix_1 [i][j][k];
1127 return _refine_matrix_2 [i-9][j][k];
1133 Integer hChildrenTypeId (
const Integer i)
const
1135 if (i < 9)
return IT_AntiWedgeLeft6;
1136 return IT_Pentaedron6;
1138 Integer getNbHChildren ()
const
1140 return m_nb_hChildren;
1145 static const Integer m_nb_hChildren = 27;
1146 static const double _refine_matrix_1[9][6][6];
1147 static const double _refine_matrix_2[18][6][6];
1158 ItemRefinementPatternT() {}
1161 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
1163 if (i < 4)
return _refine_matrix_1 [i][j][k];
1164 return _refine_matrix_2 [i-4][j][k];
1166 Integer face_mapping (
const Integer i,
const Integer j)
const
1168 if (i < 4)
return _face_mapping_1 [i][j];
1169 return _face_mapping_2 [i-4][j];
1171 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
1173 if (i < 4)
return _face_mapping_topo_1 [i][j];
1174 return _face_mapping_topo_2 [i-4][j];
1176 Integer hChildrenTypeId (
const Integer i)
const
1178 if (i < 4)
return IT_Hexaedron8;
1179 return IT_HemiHexa7;
1181 Integer getNbHChildren ()
const
1183 return m_nb_hChildren;
1188 static const Integer m_nb_hChildren = 8;
1189 static const double _refine_matrix_1[4][8][6];
1190 static const Integer _face_mapping_1[4][6];
1191 static const Integer _face_mapping_topo_1[4][6];
1192 static const double _refine_matrix_2[4][7][6];
1193 static const Integer _face_mapping_2[4][6];
1194 static const Integer _face_mapping_topo_2[4][6];
1200class ARCANE_CORE_EXPORT AntiWedgeRight6RefinementPattern4AWR6_4Pr
1204 AntiWedgeRight6RefinementPattern4AWR6_4Pr() {}
1209 if (i < 4)
return _refine_matrix_1 [i][j][k];
1210 return _refine_matrix_2 [i-4][j][k];
1216 Integer hChildrenTypeId (
const Integer i)
const
1218 if (i < 4)
return IT_AntiWedgeRight6;
1219 return IT_Pentaedron6;
1221 Integer getNbHChildren ()
const
1223 return m_nb_hChildren;
1228 static const Integer m_nb_hChildren = 8;
1229 static const double _refine_matrix_1[4][6][6];
1230 static const double _refine_matrix_2[4][6][6];
1236class ARCANE_CORE_EXPORT AntiWedgeRight6RefinementPattern9AWR6_18Pr
1240 AntiWedgeRight6RefinementPattern9AWR6_18Pr() {}
1245 if (i < 9)
return _refine_matrix_1 [i][j][k];
1246 return _refine_matrix_2 [i-9][j][k];
1253 Integer hChildrenTypeId (
const Integer i)
const
1255 if (i < 9)
return IT_AntiWedgeRight6;
1256 return IT_Pentaedron6;
1258 Integer getNbHChildren ()
const
1260 return m_nb_hChildren;
1265 static const Integer m_nb_hChildren = 27;
1266 static const double _refine_matrix_1[9][6][6];
1267 static const double _refine_matrix_2[18][6][6];
1278 ItemRefinementPatternT() {}
1281 Real refine_matrix (
const Integer i,
const Integer j,
const Integer k)
const
1283 if (i < 2)
return _refine_matrix_1 [i][j][k];
1284 return _refine_matrix_2 [i-2][j][k];
1287 Integer face_mapping (
const Integer i,
const Integer j)
const
1289 if (i < 2)
return _face_mapping_1 [i][j];
1290 return _face_mapping_2 [i-2][j];
1292 Integer face_mapping_topo (
const Integer i,
const Integer j)
const
1294 if (i < 2)
return _face_mapping_topo_1 [i][j];
1295 return _face_mapping_topo_2 [i-2][j];
1297 Integer hChildrenTypeId (
const Integer i)
const
1299 if (i < 2)
return IT_Hexaedron8;
1300 return IT_HemiHexa7;
1302 Integer getNbHChildren ()
const
1304 return m_nb_hChildren;
1309 static const Integer m_nb_hChildren = 8;
1310 static const double _refine_matrix_1[2][8][5];
1311 static const Integer _face_mapping_1[2][6];
1312 static const Integer _face_mapping_topo_1[2][6];
1313 static const double _refine_matrix_2[6][7][5];
1314 static const Integer _face_mapping_2[6][6];
1315 static const Integer _face_mapping_topo_2[6][6];
1321class ARCANE_CORE_EXPORT DiTetra5RefinementPattern3DT_4Py_2T
1325 DiTetra5RefinementPattern3DT_4Py_2T() {}
1330 if (i < 3)
return _refine_matrix_1 [i][j][k];
1331 if (i < 7)
return _refine_matrix_2 [i-3][j][k];
1332 return _refine_matrix_3 [i-7][j][k];
1338 Integer hChildrenTypeId (
const Integer i)
const
1340 if (i < 3)
return IT_DiTetra5;
1341 if (i < 7)
return IT_Pyramid5;
1342 return IT_Tetraedron4;
1344 Integer getNbHChildren ()
const
1346 return m_nb_hChildren;
1351 static const Integer m_nb_hChildren = 9;
1352 static const double _refine_matrix_1[3][5][5];
1353 static const double _refine_matrix_2[4][5][5];
1354 static const double _refine_matrix_3[2][4][5];
1360class ARCANE_CORE_EXPORT DiTetra5RefinementPattern7DT_2T
1364 DiTetra5RefinementPattern7DT_2T() {}
1369 if (i < 7)
return _refine_matrix_1 [i][j][k];
1370 return _refine_matrix_2 [i-7][j][k];
1376 Integer hChildrenTypeId (
const Integer i)
const
1380 return IT_Tetraedron4;
1382 Integer getNbHChildren ()
const
1384 return m_nb_hChildren;
1387 static const Integer m_nb_hChildren = 9;
1388 static const double _refine_matrix_1[7][5][5];
1389 static const double _refine_matrix_2[2][4][5];
1395class ARCANE_CORE_EXPORT DiTetra5RefinementPattern64T
1399 DiTetra5RefinementPattern64T() {}
1410 Integer hChildrenTypeId (
const Integer)
const
1412 return IT_Tetraedron4;
1414 Integer getNbHChildren ()
const
1416 return m_nb_hChildren;
1419 static const Integer m_nb_hChildren = 64;
1420 static const double _refine_matrix_1[64][4][5];
1426class ARCANE_CORE_EXPORT DiTetra5RefinementPattern32DT
1430 DiTetra5RefinementPattern32DT() {}
1441 Integer hChildrenTypeId (
const Integer)
const
1443 return IT_Tetraedron4;
1445 Integer getNbHChildren ()
const
1447 return m_nb_hChildren;
1450 static const Integer m_nb_hChildren = 32;
1451 static const double _refine_matrix_1[32][5][5];
Fichier de configuration d'Arcane.
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Exception lorsqu'une erreur fatale est survenue.
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
TypeImp & asImp()
Barton & Nackman Trick.
Real refine_matrix(const Integer, const Integer, const Integer) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.