12#ifndef ARCANE_CORE_ITEMREFINEMENTPATTERN_H
13#define ARCANE_CORE_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"
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);
59 return asImp().getNbHChildren();
67 return static_cast<TypeImp&
>(*this);
69 const TypeImp&
asImp()
const
71 return static_cast<const TypeImp&
>(*this);
98class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Quad4>
103 ItemRefinementPatternT() {}
108 return _refine_matrix[i][j][k];
112 return _face_mapping[i][j];
114 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
116 return _face_mapping_topo[i][j];
118 Integer hChildrenTypeId(
const Integer)
const
124 return m_nb_hChildren;
129 static const Integer m_nb_hChildren = 4;
131 static const Real _refine_matrix[4][4][4];
132 static const Integer _face_mapping[4][4];
133 static const Integer _face_mapping_topo[4][4];
140class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Hexaedron8>
145 ItemRefinementPatternT() {}
150 return _refine_matrix[i][j][k];
154 return _face_mapping[i][j];
156 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
158 return _face_mapping_topo[i][j];
160 Integer hChildrenTypeId(
const Integer)
const
162 return IT_Hexaedron8;
166 return m_nb_hChildren;
171 static const Integer m_nb_hChildren = 8;
173 static const Real _refine_matrix[8][8][8];
174 static const Integer _face_mapping[8][6];
175 static const Integer _face_mapping_topo[8][6];
181class ARCANE_CORE_EXPORT HexRefinementPattern27Hex
186 HexRefinementPattern27Hex() {}
197 Integer hChildrenTypeId(
const Integer)
const
199 return IT_Hexaedron8;
203 return m_nb_hChildren;
208 static const Integer m_nb_hChildren = 27;
209 static const double _refine_matrix_1[27][8][8];
216class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Tetraedron4> :
public RefinementPatternT<ItemRefinementPatternT<IT_Tetraedron4>>
220 ItemRefinementPatternT() {}
226 return _refine_matrix_1[i][j][k];
228 return _refine_matrix_2[i - 2][j][k];
230 return _refine_matrix_3[i - 4][j][k];
231 return _refine_matrix_4[i - 6][j][k];
236 return _face_mapping_1[i][j];
238 return _face_mapping_2[i - 2][j];
240 return _face_mapping_3[i - 4][j];
241 return _face_mapping_4[i - 6][j];
243 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
246 return _face_mapping_topo_1[i][j];
248 return _face_mapping_topo_2[i - 2][j];
250 return _face_mapping_topo_3[i - 4][j];
251 return _face_mapping_topo_4[i - 6][j];
253 Integer hChildrenTypeId(
const Integer i)
const
256 return IT_Hexaedron8;
258 return IT_Pentaedron6;
261 return IT_Tetraedron4;
265 return m_nb_hChildren;
270 static const Integer m_nb_hChildren = 8;
272 static const double _refine_matrix_1[2][8][4];
273 static const Integer _face_mapping_1[2][6];
274 static const Integer _face_mapping_topo_1[2][6];
276 static const double _refine_matrix_2[2][6][4];
277 static const Integer _face_mapping_2[2][5];
278 static const Integer _face_mapping_topo_2[2][5];
280 static const double _refine_matrix_3[2][5][4];
281 static const Integer _face_mapping_3[2][5];
282 static const Integer _face_mapping_topo_3[2][5];
284 static const double _refine_matrix_4[2][4][4];
285 static const Integer _face_mapping_4[2][4];
286 static const Integer _face_mapping_topo_4[2][4];
292class ARCANE_CORE_EXPORT TetraRefinementPattern8T
297 TetraRefinementPattern8T() {}
302 return _refine_matrix_1[i][j][k];
308 Integer hChildrenTypeId(
const Integer)
const
310 return IT_Tetraedron4;
314 return m_nb_hChildren;
319 static const Integer m_nb_hChildren = 8;
320 static const double _refine_matrix_1[8][4][4];
326class ARCANE_CORE_EXPORT TetraRefinementPattern32T
331 TetraRefinementPattern32T() {}
342 Integer hChildrenTypeId(
const Integer)
const
344 return IT_Tetraedron4;
348 return m_nb_hChildren;
353 static const Integer m_nb_hChildren = 32;
354 static const double _refine_matrix_1[32][4][4];
361class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Pentaedron6> :
public RefinementPatternT<ItemRefinementPatternT<IT_Pentaedron6>>
365 ItemRefinementPatternT() {}
371 return _refine_matrix_1[i][j][k];
372 return _refine_matrix_2[i - 4][j][k];
377 return _face_mapping_1[i][j];
378 return _face_mapping_2[i - 4][j];
380 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
383 return _face_mapping_topo_1[i][j];
384 return _face_mapping_topo_2[i - 4][j];
386 Integer hChildrenTypeId(
const Integer i)
const
389 return IT_Hexaedron8;
390 return IT_Pentaedron6;
394 return m_nb_hChildren;
399 static const Integer m_nb_hChildren = 8;
401 static const double _refine_matrix_1[4][8][6];
402 static const Integer _face_mapping_1[4][6];
403 static const Integer _face_mapping_topo_1[4][6];
405 static const double _refine_matrix_2[4][6][6];
406 static const Integer _face_mapping_2[4][5];
407 static const Integer _face_mapping_topo_2[4][5];
413class ARCANE_CORE_EXPORT PrismRefinementPattern8Pr
418 PrismRefinementPattern8Pr() {}
423 return _refine_matrix_1[i][j][k];
429 Integer hChildrenTypeId(
const Integer)
const
431 return IT_Pentaedron6;
435 return m_nb_hChildren;
440 static const Integer m_nb_hChildren = 8;
441 static const double _refine_matrix_1[8][6][6];
447class ARCANE_CORE_EXPORT PrismRefinementPattern27Pr
452 PrismRefinementPattern27Pr() {}
463 Integer hChildrenTypeId(
const Integer)
const
465 return IT_Pentaedron6;
469 return m_nb_hChildren;
474 static const Integer m_nb_hChildren = 27;
476 static const double _refine_matrix_1[27][6][6];
483class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Pyramid5> :
public RefinementPatternT<ItemRefinementPatternT<IT_Pyramid5>>
487 ItemRefinementPatternT() {}
493 return _refine_matrix_1[i][j][k];
494 return _refine_matrix_2[i - 4][j][k];
499 return _face_mapping_1[i][j];
500 return _face_mapping_2[i - 4][j];
502 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
505 return _face_mapping_topo_1[i][j];
506 return _face_mapping_topo_2[i - 4][j];
508 Integer hChildrenTypeId(
const Integer i)
const
511 return IT_Hexaedron8;
516 return m_nb_hChildren;
521 static const Integer m_nb_hChildren = 8;
523 static const double _refine_matrix_1[4][8][5];
524 static const Integer _face_mapping_1[4][6];
525 static const Integer _face_mapping_topo_1[4][6];
527 static const double _refine_matrix_2[4][5][5];
528 static const Integer _face_mapping_2[4][5];
529 static const Integer _face_mapping_topo_2[4][5];
534class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py8T
539 PyramidRefinementPattern4Py8T() {}
545 return _refine_matrix_1[i][j][k];
546 return _refine_matrix_2[i - 4][j][k];
552 Integer hChildrenTypeId(
const Integer i)
const
556 return IT_Tetraedron4;
560 return m_nb_hChildren;
565 static const Integer m_nb_hChildren = 12;
567 static const double _refine_matrix_1[4][5][5];
569 static const double _refine_matrix_2[8][4][5];
575class ARCANE_CORE_EXPORT PyramidRefinementPattern6Py4T
580 PyramidRefinementPattern6Py4T() {}
586 return _refine_matrix_1[i][j][k];
587 return _refine_matrix_2[i - 6][j][k];
594 return IT_Tetraedron4;
596 Integer getNbHChildren()
const
598 return m_nb_hChildren;
603 static const Integer m_nb_hChildren = 10;
605 static const double _refine_matrix_1[6][5][5];
607 static const double _refine_matrix_2[4][4][5];
613class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py
618 PyramidRefinementPattern4Py() {}
629 Integer hChildrenTypeId(
const Integer)
const
635 return m_nb_hChildren;
640 static const Integer m_nb_hChildren = 4;
641 static const double _refine_matrix_1[4][5][5];
647class ARCANE_CORE_EXPORT PyramidRefinementPattern19Py12T
652 PyramidRefinementPattern19Py12T() {}
658 return _refine_matrix_1[i][j][k];
659 return _refine_matrix_2[i - 19][j][k];
666 Integer hChildrenTypeId(
const Integer i)
const
670 return IT_Tetraedron4;
674 return m_nb_hChildren;
679 static const Integer m_nb_hChildren = 31;
680 static const double _refine_matrix_1[19][5][5];
681 static const double _refine_matrix_2[12][4][5];
688class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa5> :
public RefinementPatternT<ItemRefinementPatternT<IT_HemiHexa5>>
692 ItemRefinementPatternT() {}
698 return _refine_matrix_1[i][j][k];
700 return _refine_matrix_2[i - 2][j][k];
701 return _refine_matrix_3[i - 6][j][k];
707 return _face_mapping_1[i][j];
709 return _face_mapping_2[i - 2][j];
710 return _face_mapping_3[i - 6][j];
715 return _face_mapping_topo_1[i][j];
717 return _face_mapping_topo_2[i - 2][j];
718 return _face_mapping_topo_3[i - 6][j];
720 Integer hChildrenTypeId(
const Integer i)
const
723 return IT_Hexaedron8;
725 return IT_Pentaedron6;
730 return m_nb_hChildren;
735 static const Integer m_nb_hChildren = 8;
737 static const double _refine_matrix_1[2][8][5];
738 static const Integer _face_mapping_1[2][6];
739 static const Integer _face_mapping_topo_1[2][6];
741 static const double _refine_matrix_2[4][6][5];
742 static const Integer _face_mapping_2[4][5];
743 static const Integer _face_mapping_topo_2[4][5];
745 static const double _refine_matrix_3[2][5][5];
746 static const Integer _face_mapping_3[2][4];
747 static const Integer _face_mapping_topo_3[2][4];
753class ARCANE_CORE_EXPORT HemiHex5RefinementPattern3HHex5_2Pr_1HHex7
758 HemiHex5RefinementPattern3HHex5_2Pr_1HHex7() {}
764 return _refine_matrix_1[i][j][k];
766 return _refine_matrix_2[i - 3][j][k];
767 return _refine_matrix_3[i - 5][j][k];
773 Integer hChildrenTypeId(
const Integer i)
const
778 return IT_Pentaedron6;
783 return m_nb_hChildren;
788 static const Integer m_nb_hChildren = 6;
790 static const double _refine_matrix_1[3][5][5];
792 static const double _refine_matrix_2[2][6][5];
794 static const double _refine_matrix_3[1][7][5];
800class ARCANE_CORE_EXPORT HemiHex5RefinementPattern7HHex5_4Pr_3HHex6_2HHex7_1Hex
805 HemiHex5RefinementPattern7HHex5_4Pr_3HHex6_2HHex7_1Hex() {}
811 return _refine_matrix_1[i][j][k];
813 return _refine_matrix_2[i - 7][j][k];
815 return _refine_matrix_3[i - 11][j][k];
817 return _refine_matrix_4[i - 14][j][k];
818 return _refine_matrix_5[i - 16][j][k];
824 Integer hChildrenTypeId(
const Integer i)
const
829 return IT_Pentaedron6;
834 return IT_Hexaedron8;
838 return m_nb_hChildren;
843 static const Integer m_nb_hChildren = 17;
844 static const double _refine_matrix_1[7][5][5];
845 static const double _refine_matrix_2[4][6][5];
846 static const double _refine_matrix_3[3][6][5];
847 static const double _refine_matrix_4[2][7][5];
848 static const double _refine_matrix_5[1][8][5];
855class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa6> :
public RefinementPatternT<ItemRefinementPatternT<IT_HemiHexa6>>
859 ItemRefinementPatternT() {}
865 return _refine_matrix_1[i][j][k];
866 return _refine_matrix_2[i - 4][j][k];
871 return _face_mapping_1[i][j];
872 return _face_mapping_2[i - 4][j];
874 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
877 return _face_mapping_topo_1[i][j];
878 return _face_mapping_topo_2[i - 4][j];
880 Integer hChildrenTypeId(
const Integer i)
const
883 return IT_Hexaedron8;
888 return m_nb_hChildren;
893 static const Integer m_nb_hChildren = 8;
895 static const double _refine_matrix_1[4][8][6];
896 static const Integer _face_mapping_1[4][6];
897 static const Integer _face_mapping_topo_1[4][6];
899 static const double _refine_matrix_2[4][7][6];
900 static const Integer _face_mapping_2[4][6];
901 static const Integer _face_mapping_topo_2[4][6];
907class ARCANE_CORE_EXPORT HemiHex6RefinementPattern4HHex5_4HHex7
912 HemiHex6RefinementPattern4HHex5_4HHex7() {}
918 return _refine_matrix_1[i][j][k];
919 return _refine_matrix_2[i - 4][j][k];
925 Integer hChildrenTypeId(
const Integer i)
const
933 return m_nb_hChildren;
938 static const Integer m_nb_hChildren = 8;
939 static const double _refine_matrix_1[4][5][6];
940 static const double _refine_matrix_2[4][7][6];
946class ARCANE_CORE_EXPORT HemiHex6RefinementPattern6HHex6_12HHex5_6HHex7_1Hex
951 HemiHex6RefinementPattern6HHex6_12HHex5_6HHex7_1Hex() {}
957 return _refine_matrix_1[i][j][k];
959 return _refine_matrix_2[i - 6][j][k];
961 return _refine_matrix_3[i - 18][j][k];
962 return _refine_matrix_4[i - 24][j][k];
968 Integer hChildrenTypeId(
const Integer i)
const
976 return IT_Hexaedron8;
980 return m_nb_hChildren;
985 static const Integer m_nb_hChildren = 25;
986 static const double _refine_matrix_1[6][6][6];
987 static const double _refine_matrix_2[12][5][6];
988 static const double _refine_matrix_3[6][7][6];
989 static const double _refine_matrix_4[1][8][6];
996class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa7> :
public RefinementPatternT<ItemRefinementPatternT<IT_HemiHexa7>>
1000 ItemRefinementPatternT() {}
1006 return _refine_matrix_1[i][j][k];
1007 return _refine_matrix_2[i - 6][j][k];
1013 return _face_mapping_1[i][j];
1014 return _face_mapping_2[i - 6][j];
1019 return _face_mapping_topo_1[i][j];
1020 return _face_mapping_topo_2[i - 6][j];
1022 Integer hChildrenTypeId(
const Integer i)
const
1025 return IT_Hexaedron8;
1026 return IT_HemiHexa7;
1028 Integer getNbHChildren()
const
1030 return m_nb_hChildren;
1035 static const Integer m_nb_hChildren = 8;
1037 static const double _refine_matrix_1[6][8][7];
1038 static const Integer _face_mapping_1[6][6];
1039 static const Integer _face_mapping_topo_1[6][6];
1041 static const double _refine_matrix_2[2][7][7];
1042 static const Integer _face_mapping_2[2][6];
1043 static const Integer _face_mapping_topo_2[2][6];
1049class ARCANE_CORE_EXPORT HemiHex7RefinementPattern4HHex7_4Pr_2HHex5_1Hex
1054 HemiHex7RefinementPattern4HHex7_4Pr_2HHex5_1Hex() {}
1060 return _refine_matrix_1[i][j][k];
1062 return _refine_matrix_2[i - 4][j][k];
1064 return _refine_matrix_3[i - 8][j][k];
1065 return _refine_matrix_4[i - 10][j][k];
1071 Integer hChildrenTypeId(
const Integer i)
const
1074 return IT_HemiHexa7;
1076 return IT_Pentaedron6;
1078 return IT_HemiHexa5;
1079 return IT_Hexaedron8;
1081 Integer getNbHChildren()
const
1083 return m_nb_hChildren;
1088 static const Integer m_nb_hChildren = 11;
1089 static const double _refine_matrix_1[4][7][7];
1090 static const double _refine_matrix_2[4][6][7];
1091 static const double _refine_matrix_3[2][5][7];
1092 static const double _refine_matrix_4[1][8][7];
1098class ARCANE_CORE_EXPORT HemiHex7RefinementPattern8HHex7_14Pr_9HHex5_7Hex
1103 HemiHex7RefinementPattern8HHex7_14Pr_9HHex5_7Hex() {}
1109 return _refine_matrix_1[i][j][k];
1111 return _refine_matrix_2[i - 8][j][k];
1113 return _refine_matrix_3[i - 22][j][k];
1114 return _refine_matrix_4[i - 31][j][k];
1120 Integer hChildrenTypeId(
const Integer i)
const
1123 return IT_HemiHexa7;
1125 return IT_Pentaedron6;
1127 return IT_HemiHexa5;
1128 return IT_Hexaedron8;
1130 Integer getNbHChildren()
const
1132 return m_nb_hChildren;
1137 static const Integer m_nb_hChildren = 38;
1138 static const double _refine_matrix_1[8][7][7];
1139 static const double _refine_matrix_2[14][6][7];
1140 static const double _refine_matrix_3[9][5][7];
1141 static const double _refine_matrix_4[7][8][7];
1148class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_AntiWedgeLeft6> :
public RefinementPatternT<ItemRefinementPatternT<IT_AntiWedgeLeft6>>
1152 ItemRefinementPatternT() {}
1158 return _refine_matrix_1[i][j][k];
1159 return _refine_matrix_2[i - 4][j][k];
1164 return _face_mapping_1[i][j];
1165 return _face_mapping_2[i - 4][j];
1167 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
1170 return _face_mapping_topo_1[i][j];
1171 return _face_mapping_topo_2[i - 4][j];
1173 Integer hChildrenTypeId(
const Integer i)
const
1176 return IT_Hexaedron8;
1177 return IT_HemiHexa7;
1179 Integer getNbHChildren()
const
1181 return m_nb_hChildren;
1186 static const Integer m_nb_hChildren = 8;
1187 static const double _refine_matrix_1[4][8][6];
1188 static const Integer _face_mapping_1[4][6];
1189 static const Integer _face_mapping_topo_1[4][6];
1190 static const double _refine_matrix_2[4][7][6];
1191 static const Integer _face_mapping_2[4][6];
1192 static const Integer _face_mapping_topo_2[4][6];
1197class ARCANE_CORE_EXPORT AntiWedgeLeft6RefinementPattern4AWL6_4Pr
1202 AntiWedgeLeft6RefinementPattern4AWL6_4Pr() {}
1208 return _refine_matrix_1[i][j][k];
1209 return _refine_matrix_2[i - 4][j][k];
1215 Integer hChildrenTypeId(
const Integer i)
const
1218 return IT_AntiWedgeLeft6;
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 AntiWedgeLeft6RefinementPattern9AWL6_18Pr
1241 AntiWedgeLeft6RefinementPattern9AWL6_18Pr() {}
1247 return _refine_matrix_1[i][j][k];
1248 return _refine_matrix_2[i - 9][j][k];
1254 Integer hChildrenTypeId(
const Integer i)
const
1257 return IT_AntiWedgeLeft6;
1258 return IT_Pentaedron6;
1260 Integer getNbHChildren()
const
1262 return m_nb_hChildren;
1267 static const Integer m_nb_hChildren = 27;
1268 static const double _refine_matrix_1[9][6][6];
1269 static const double _refine_matrix_2[18][6][6];
1276class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_AntiWedgeRight6> :
public RefinementPatternT<ItemRefinementPatternT<IT_AntiWedgeRight6>>
1280 ItemRefinementPatternT() {}
1286 return _refine_matrix_1[i][j][k];
1287 return _refine_matrix_2[i - 4][j][k];
1292 return _face_mapping_1[i][j];
1293 return _face_mapping_2[i - 4][j];
1295 Integer face_mapping_topo(
const Integer i,
const Integer j)
const
1298 return _face_mapping_topo_1[i][j];
1299 return _face_mapping_topo_2[i - 4][j];
1301 Integer hChildrenTypeId(
const Integer i)
const
1304 return IT_Hexaedron8;
1305 return IT_HemiHexa7;
1307 Integer getNbHChildren()
const
1309 return m_nb_hChildren;
1314 static const Integer m_nb_hChildren = 8;
1315 static const double _refine_matrix_1[4][8][6];
1316 static const Integer _face_mapping_1[4][6];
1317 static const Integer _face_mapping_topo_1[4][6];
1318 static const double _refine_matrix_2[4][7][6];
1319 static const Integer _face_mapping_2[4][6];
1320 static const Integer _face_mapping_topo_2[4][6];
1325class ARCANE_CORE_EXPORT AntiWedgeRight6RefinementPattern4AWR6_4Pr
1330 AntiWedgeRight6RefinementPattern4AWR6_4Pr() {}
1336 return _refine_matrix_1[i][j][k];
1337 return _refine_matrix_2[i - 4][j][k];
1343 Integer hChildrenTypeId(
const Integer i)
const
1346 return IT_AntiWedgeRight6;
1347 return IT_Pentaedron6;
1349 Integer getNbHChildren()
const
1351 return m_nb_hChildren;
1356 static const Integer m_nb_hChildren = 8;
1357 static const double _refine_matrix_1[4][6][6];
1358 static const double _refine_matrix_2[4][6][6];
1364class ARCANE_CORE_EXPORT AntiWedgeRight6RefinementPattern9AWR6_18Pr
1369 AntiWedgeRight6RefinementPattern9AWR6_18Pr() {}
1375 return _refine_matrix_1[i][j][k];
1376 return _refine_matrix_2[i - 9][j][k];
1383 Integer hChildrenTypeId(
const Integer i)
const
1386 return IT_AntiWedgeRight6;
1387 return IT_Pentaedron6;
1389 Integer getNbHChildren()
const
1391 return m_nb_hChildren;
1396 static const Integer m_nb_hChildren = 27;
1397 static const double _refine_matrix_1[9][6][6];
1398 static const double _refine_matrix_2[18][6][6];
1405class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_DiTetra5> :
public RefinementPatternT<ItemRefinementPatternT<IT_DiTetra5>>
1409 ItemRefinementPatternT() {}
1415 return _refine_matrix_1[i][j][k];
1416 return _refine_matrix_2[i - 2][j][k];
1422 return _face_mapping_1[i][j];
1423 return _face_mapping_2[i - 2][j];
1428 return _face_mapping_topo_1[i][j];
1429 return _face_mapping_topo_2[i - 2][j];
1431 Integer hChildrenTypeId(
const Integer i)
const
1434 return IT_Hexaedron8;
1435 return IT_HemiHexa7;
1437 Integer getNbHChildren()
const
1439 return m_nb_hChildren;
1444 static const Integer m_nb_hChildren = 8;
1445 static const double _refine_matrix_1[2][8][5];
1446 static const Integer _face_mapping_1[2][6];
1447 static const Integer _face_mapping_topo_1[2][6];
1448 static const double _refine_matrix_2[6][7][5];
1449 static const Integer _face_mapping_2[6][6];
1450 static const Integer _face_mapping_topo_2[6][6];
1456class ARCANE_CORE_EXPORT DiTetra5RefinementPattern3DT_4Py_2T
1461 DiTetra5RefinementPattern3DT_4Py_2T() {}
1467 return _refine_matrix_1[i][j][k];
1469 return _refine_matrix_2[i - 3][j][k];
1470 return _refine_matrix_3[i - 7][j][k];
1476 Integer hChildrenTypeId(
const Integer i)
const
1482 return IT_Tetraedron4;
1484 Integer getNbHChildren()
const
1486 return m_nb_hChildren;
1491 static const Integer m_nb_hChildren = 9;
1492 static const double _refine_matrix_1[3][5][5];
1493 static const double _refine_matrix_2[4][5][5];
1494 static const double _refine_matrix_3[2][4][5];
1500class ARCANE_CORE_EXPORT DiTetra5RefinementPattern7DT_2T
1505 DiTetra5RefinementPattern7DT_2T() {}
1511 return _refine_matrix_1[i][j][k];
1512 return _refine_matrix_2[i - 7][j][k];
1518 Integer hChildrenTypeId(
const Integer i)
const
1522 return IT_Tetraedron4;
1524 Integer getNbHChildren()
const
1526 return m_nb_hChildren;
1531 static const Integer m_nb_hChildren = 9;
1532 static const double _refine_matrix_1[7][5][5];
1533 static const double _refine_matrix_2[2][4][5];
1539class ARCANE_CORE_EXPORT DiTetra5RefinementPattern64T
1544 DiTetra5RefinementPattern64T() {}
1555 Integer hChildrenTypeId(
const Integer)
const
1557 return IT_Tetraedron4;
1559 Integer getNbHChildren()
const
1561 return m_nb_hChildren;
1566 static const Integer m_nb_hChildren = 64;
1567 static const double _refine_matrix_1[64][4][5];
1573class ARCANE_CORE_EXPORT DiTetra5RefinementPattern32DT
1578 DiTetra5RefinementPattern32DT() {}
1589 Integer hChildrenTypeId(
const Integer)
const
1591 return IT_Tetraedron4;
1593 Integer getNbHChildren()
const
1595 return m_nb_hChildren;
1600 static const Integer m_nb_hChildren = 32;
1601 static const double _refine_matrix_1[32][5][5];
Arcane configuration file.
Declarations of Arcane's general types.
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Exception when a fatal error has occurred.
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Integer face_mapping(const Integer i, const Integer j) const
mapping of child cell face orientations with parent cell faces
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes into child cell nodes
Integer face_mapping(const Integer i, const Integer j) const
mapping of the orientations of the faces of the child cells with the faces of the parent cell
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Integer face_mapping(const Integer i, const Integer j) const
mapping of the orientations of the faces of the child cells with the faces of the parent cell
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the nodes of the parent cell to the nodes of the child cells
TypeImp & asImp()
Barton & Nackman Trick.
Real refine_matrix(const Integer, const Integer, const Integer) const
transformation matrix of the parent cell nodes to the child cell nodes
Real refine_matrix(const Integer i, const Integer j, const Integer k) const
transformation matrix of the parent cell nodes to the child cell nodes
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
double Real
Type representing a real number.