Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ItemRefinementPattern.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ItemRefinementPattern.h (C) 2000-2020 */
9/* */
10/* Fonctions utilitaires pour AMR. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITEMREFINEMENTPATTERN_H
13#define ARCANE_ITEMREFINEMENTPATTERN_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/Real3.h"
19#include "arcane/utils/TraceInfo.h"
20#include "arcane/utils/NotSupportedException.h"
21#include "arcane/utils/NotImplementedException.h"
22
23#include "arcane/ArcaneTypes.h"
24#include "arcane/utils/FatalErrorException.h"
25#include "arcane/utils/StringBuilder.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35// Barton & Nackman Trick
36template <class TypeImp>
38{
39public:
40
41 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
42 {
43 return asImp().refine_matrix(i,j,k);
44 }
45 Integer face_mapping (const Integer i,const Integer j) const
46 {
47 return asImp().face_mapping(i,j);
48 }
49 Integer face_mapping_topo (const Integer i,const Integer j) const
50 {
51 return asImp().face_mapping_topo(i,j);
52 }
53 Integer hChildrenTypeId (const Integer i) const
54 {
55 return asImp().hChildrenTypeId(i);
56 }
57 Integer getNbHChildren () const {
58 return asImp().getNbHChildren();
59 }
60
61 protected:
62 //! Barton & Nackman Trick
63 TypeImp& asImp()
64 {
65 return static_cast<TypeImp&> (*this);
66 }
67 const TypeImp& asImp() const
68 {
69 return static_cast<const TypeImp&> (*this);
70 }
71};
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76template <int type_id> class ItemRefinementPatternT;
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95template <>
96class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Quad4>
97: public RefinementPatternT< ItemRefinementPatternT< IT_Quad4 > >
98{
99 public:
101
102 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
103 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
104 {
105 return _refine_matrix[i][j][k];
106 }
107 Integer face_mapping (const Integer i,const Integer j) const
108 {
109 return _face_mapping[i][j];
110 }
111 Integer face_mapping_topo (const Integer i,const Integer j) const
112 {
113 return _face_mapping_topo[i][j];
114 }
115 Integer hChildrenTypeId (const Integer) const
116 {
117 return IT_Quad4;
118 }
119 Integer getNbHChildren () const
120 {
121 return m_nb_hChildren;
122 }
123
124 private:
125
126 static const Integer m_nb_hChildren = 4;
127
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];
131};
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
135
136template <>
137class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Hexaedron8>
138: public RefinementPatternT< ItemRefinementPatternT< IT_Hexaedron8 > >
139{
140 public:
142
143 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
144 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
145 {
146 return _refine_matrix [i][j][k];
147 }
148 Integer face_mapping (const Integer i,const Integer j) const
149 {
150 return _face_mapping [i][j];
151 }
152 Integer face_mapping_topo (const Integer i,const Integer j) const
153 {
154 return _face_mapping_topo [i][j];
155 }
156 Integer hChildrenTypeId (const Integer) const
157 {
158 return IT_Hexaedron8;
159 }
160 Integer getNbHChildren () const
161 {
162 return m_nb_hChildren;
163 }
164 private:
165 static const Integer m_nb_hChildren = 8;
166
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];
170};
171
172/*---------------------------------------------------------------------------*/
173/*---------------------------------------------------------------------------*/
174
175class ARCANE_CORE_EXPORT HexRefinementPattern27Hex
176: public RefinementPatternT<HexRefinementPattern27Hex>
177{
178 public:
180
181 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
182 Real refine_matrix (const Integer,const Integer,const Integer) const
183 {
184 throw NotSupportedException(A_FUNCINFO);
185 }
186 Integer face_mapping (const Integer,const Integer) const
187 {
188 throw FatalErrorException(A_FUNCINFO,"not implemented");
189 }
190 Integer hChildrenTypeId (const Integer) const
191 {
192 return IT_Hexaedron8;
193 }
194 Integer getNbHChildren () const
195 {
196 return m_nb_hChildren;
197 }
198 private:
199 static const Integer m_nb_hChildren = 27;
200 static const double _refine_matrix_1[27][8][8];
201};
202
203/*---------------------------------------------------------------------------*/
204/*---------------------------------------------------------------------------*/
205
206template <>
207class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Tetraedron4> :
208public RefinementPatternT< ItemRefinementPatternT< IT_Tetraedron4 > >
209{
210 public:
212
213 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
214 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
215 {
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];
220 }
221 Integer face_mapping (const Integer i,const Integer j) const
222 {
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];
227 }
228 Integer face_mapping_topo (const Integer i,const Integer j) const
229 {
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];
234 }
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;
240 }
241 Integer getNbHChildren () const
242 {
243 return m_nb_hChildren;
244 }
245
246 private:
247
248 static const Integer m_nb_hChildren = 8;
249
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];
253
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];
257
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];
261
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];
265};
266
267/*---------------------------------------------------------------------------*/
268/*---------------------------------------------------------------------------*/
269
270class ARCANE_CORE_EXPORT TetraRefinementPattern8T
271: public RefinementPatternT<TetraRefinementPattern8T>
272{
273 public:
275
276 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
277 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
278 {
279 return _refine_matrix_1 [i][j][k];
280 }
281 Integer face_mapping (const Integer,const Integer) const
282 {
283 throw FatalErrorException(A_FUNCINFO,"not implemented");
284 }
285 Integer hChildrenTypeId (const Integer) const
286 {
287 return IT_Tetraedron4;
288 }
289 Integer getNbHChildren () const
290 {
291 return m_nb_hChildren;
292 }
293
294 private:
295
296 static const Integer m_nb_hChildren = 8;
297 static const double _refine_matrix_1[8][4][4];
298};
299
300/*---------------------------------------------------------------------------*/
301/*---------------------------------------------------------------------------*/
302
303class ARCANE_CORE_EXPORT TetraRefinementPattern32T
304: public RefinementPatternT<TetraRefinementPattern32T>
305{
306 public:
308
309 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
310 Real refine_matrix (const Integer,const Integer,const Integer) const
311 {
312 throw NotSupportedException(A_FUNCINFO);
313 }
314 Integer face_mapping (const Integer,const Integer) const
315 {
316 throw FatalErrorException(A_FUNCINFO,"not implemented");
317 }
318 Integer hChildrenTypeId (const Integer) const
319 {
320 return IT_Tetraedron4;
321 }
322 Integer getNbHChildren () const
323 {
324 return m_nb_hChildren;
325 }
326
327 private:
328
329 static const Integer m_nb_hChildren = 32;
330 static const double _refine_matrix_1[32][4][4];
331};
332
333/*---------------------------------------------------------------------------*/
334/*---------------------------------------------------------------------------*/
335
336template <>
337class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Pentaedron6> :
338public RefinementPatternT< ItemRefinementPatternT< IT_Pentaedron6 > >
339{
340 public:
342
343 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
344 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
345 {
346 if (i<4) return _refine_matrix_1 [i][j][k];
347 return _refine_matrix_2 [i-4][j][k];
348 }
349 Integer face_mapping (const Integer i,const Integer j) const
350 {
351 if (i<4) return _face_mapping_1 [i][j];
352 return _face_mapping_2 [i-4][j];
353 }
354 Integer face_mapping_topo (const Integer i,const Integer j) const
355 {
356 if (i<4) return _face_mapping_topo_1 [i][j];
357 return _face_mapping_topo_2 [i-4][j];
358 }
359 Integer hChildrenTypeId (const Integer i) const
360 {
361 if (i<4) return IT_Hexaedron8;
362 return IT_Pentaedron6;
363 }
364 Integer getNbHChildren () const
365 {
366 return m_nb_hChildren;
367 }
368
369 private:
370
371 static const Integer m_nb_hChildren = 8;
372
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];
376
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];
380};
381
382/*---------------------------------------------------------------------------*/
383/*---------------------------------------------------------------------------*/
384
385class ARCANE_CORE_EXPORT PrismRefinementPattern8Pr
386: public RefinementPatternT<PrismRefinementPattern8Pr>
387{
388 public:
390
391 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
392 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
393 {
394 return _refine_matrix_1 [i][j][k];
395 }
396 Integer face_mapping (const Integer,const Integer) const
397 {
398 throw FatalErrorException(A_FUNCINFO,"not implemented");
399 }
400 Integer hChildrenTypeId (const Integer) const
401 {
402 return IT_Pentaedron6;
403 }
404 Integer getNbHChildren () const
405 {
406 return m_nb_hChildren;
407 }
408
409 private:
410
411 static const Integer m_nb_hChildren = 8;
412 static const double _refine_matrix_1[8][6][6];
413};
414
415/*---------------------------------------------------------------------------*/
416/*---------------------------------------------------------------------------*/
417
418class ARCANE_CORE_EXPORT PrismRefinementPattern27Pr
419: public RefinementPatternT<PrismRefinementPattern27Pr>
420{
421 public:
423
424 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
425 Real refine_matrix (const Integer,const Integer,const Integer) const
426 {
427 throw NotSupportedException(A_FUNCINFO);
428 }
429 Integer face_mapping (const Integer,const Integer) const
430 {
431 throw FatalErrorException(A_FUNCINFO,"not implemented");
432 }
433 Integer hChildrenTypeId (const Integer) const
434 {
435 return IT_Pentaedron6;
436 }
437 Integer getNbHChildren () const
438 {
439 return m_nb_hChildren;
440 }
441 private:
442 static const Integer m_nb_hChildren = 27;
443
444 static const double _refine_matrix_1[27][6][6];
445};
446
447/*---------------------------------------------------------------------------*/
448/*---------------------------------------------------------------------------*/
449
450template <>
451class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_Pyramid5> :
452public RefinementPatternT< ItemRefinementPatternT< IT_Pyramid5 > >
453{
454 public:
456
457 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
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];
461 }
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];
465 }
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];
469 }
470 Integer hChildrenTypeId (const Integer i) const {
471 if (i < 4) return IT_Hexaedron8;
472 return IT_Pyramid5;
473 }
474 Integer getNbHChildren () const {
475 return m_nb_hChildren;
476 }
477 private:
478 static const Integer m_nb_hChildren = 8;
479
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];
483
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];
487
488};
489/*---------------------------------------------------------------------------*/
490/*---------------------------------------------------------------------------*/
491
492class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py8T
493: public RefinementPatternT<PyramidRefinementPattern4Py8T>
494{
495 public:
497
498 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
499 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
500 {
501 if (i < 4) return _refine_matrix_1 [i][j][k];
502 return _refine_matrix_2 [i-4][j][k];
503 }
504 Integer face_mapping (const Integer,const Integer) const
505 {
506 throw FatalErrorException(A_FUNCINFO,"not implemented");
507 }
508 Integer hChildrenTypeId (const Integer i) const
509 {
510 if (i < 4) return IT_Pyramid5;
511 return IT_Tetraedron4;
512 }
513 Integer getNbHChildren () const {
514 return m_nb_hChildren;
515 }
516 private:
517 static const Integer m_nb_hChildren = 12;
518
519 static const double _refine_matrix_1[4][5][5];
520
521 static const double _refine_matrix_2[8][4][5];
522
523};
524
525/*---------------------------------------------------------------------------*/
526/*---------------------------------------------------------------------------*/
527
528class ARCANE_CORE_EXPORT PyramidRefinementPattern6Py4T
529: public RefinementPatternT<PyramidRefinementPattern6Py4T>
530{
531 public:
533
534 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
535 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
536 {
537 if (i < 6) return _refine_matrix_1 [i][j][k];
538 return _refine_matrix_2 [i-6][j][k];
539 throw NotSupportedException(A_FUNCINFO);
540 }
541 Integer hChildrenTypeId (const Integer i) const {
542 if (i < 6) return IT_Pyramid5;
543 return IT_Tetraedron4;
544 }
545 Integer getNbHChildren () const {
546 return m_nb_hChildren;
547 }
548 private:
549 static const Integer m_nb_hChildren = 10;
550
551 static const double _refine_matrix_1[6][5][5];
552
553 static const double _refine_matrix_2[4][4][5];
554
555};
556
557/*---------------------------------------------------------------------------*/
558/*---------------------------------------------------------------------------*/
559
560class ARCANE_CORE_EXPORT PyramidRefinementPattern4Py
561: public RefinementPatternT<PyramidRefinementPattern4Py>
562{
563 public:
565
566 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
567 Real refine_matrix (const Integer,const Integer,const Integer) const
568 {
569 throw NotSupportedException(A_FUNCINFO);
570 }
571 Integer face_mapping (const Integer,const Integer) const
572 {
573 throw FatalErrorException(A_FUNCINFO,"not implemented");
574 }
575 Integer hChildrenTypeId (const Integer) const
576 {
577 return IT_Pyramid5;
578 }
579 Integer getNbHChildren () const
580 {
581 return m_nb_hChildren;
582 }
583
584 private:
585
586 static const Integer m_nb_hChildren = 4;
587 static const double _refine_matrix_1[4][5][5];
588};
589
590/*---------------------------------------------------------------------------*/
591/*---------------------------------------------------------------------------*/
592
593class ARCANE_CORE_EXPORT PyramidRefinementPattern19Py12T
594: public RefinementPatternT<PyramidRefinementPattern19Py12T>
595{
596 public:
598
599 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
600 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
601 {
602 if (i < 19) return _refine_matrix_1 [i][j][k];
603 return _refine_matrix_2 [i-19][j][k];
604 throw NotSupportedException(A_FUNCINFO);
605 }
606 Integer face_mapping (const Integer,const Integer) const
607 {
608 throw FatalErrorException(A_FUNCINFO,"not implemented");
609 }
610 Integer hChildrenTypeId (const Integer i) const
611 {
612 if (i < 19) return IT_Pyramid5;
613 return IT_Tetraedron4;
614 }
615 Integer getNbHChildren () const
616 {
617 return m_nb_hChildren;
618 }
619
620 private:
621
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];
625};
626
627/*---------------------------------------------------------------------------*/
628/*---------------------------------------------------------------------------*/
629
630template <>
631class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa5> :
632public RefinementPatternT< ItemRefinementPatternT< IT_HemiHexa5 > >
633{
634 public:
636
637 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
638 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
639 {
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];
643 }
644 //! mapping des orientations des faces des mailles filles avec les faces de la la maille mère
645 Integer face_mapping (const Integer i,const Integer j) const
646 {
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];
650 }
651 Integer face_mapping_topo (const Integer i,const Integer j) const
652 {
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];
656 }
657 Integer hChildrenTypeId (const Integer i) const
658 {
659 if (i < 2) return IT_Hexaedron8;
660 if (i < 6) return IT_Pentaedron6;
661 return IT_HemiHexa5;
662 }
663 Integer getNbHChildren () const
664 {
665 return m_nb_hChildren;
666 }
667 private:
668 static const Integer m_nb_hChildren = 8;
669
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];
673
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];
677
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];
681};
682
683/*---------------------------------------------------------------------------*/
684/*---------------------------------------------------------------------------*/
685
687: public RefinementPatternT<HemiHex5RefinementPattern3HHex5_2Pr_1HHex7>
688{
689 public:
691
692 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
693 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
694 {
695 if (i < 3)
696 return _refine_matrix_1 [i][j][k];
697 if (i < 5)
698 return _refine_matrix_2 [i-3][j][k];
699 return _refine_matrix_3 [i-5][j][k];
700 }
701 Integer face_mapping (const Integer,const Integer) const
702 {
703 throw NotImplementedException(A_FUNCINFO);
704 }
705 Integer hChildrenTypeId (const Integer i) const
706 {
707 if (i < 3)
708 return IT_HemiHexa5;
709 if (i < 5)
710 return IT_Pentaedron6;
711 return IT_HemiHexa7;
712 }
713 Integer getNbHChildren () const
714 {
715 return m_nb_hChildren;
716 }
717 private:
718 static const Integer m_nb_hChildren = 6;
719
720 static const double _refine_matrix_1[3][5][5];
721
722 static const double _refine_matrix_2[2][6][5];
723
724 static const double _refine_matrix_3[1][7][5];
725
726};
727
728/*---------------------------------------------------------------------------*/
729/*---------------------------------------------------------------------------*/
730
732: public RefinementPatternT<HemiHex5RefinementPattern7HHex5_4Pr_3HHex6_2HHex7_1Hex>
733{
734 public:
736
737 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
738 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
739 {
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];
745 }
746 Integer face_mapping (const Integer,const Integer) const
747 {
748 throw NotImplementedException(A_FUNCINFO);
749 }
750 Integer hChildrenTypeId (const Integer i) const
751 {
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;
757 }
758 Integer getNbHChildren () const
759 {
760 return m_nb_hChildren;
761 }
762 private:
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];
769};
770
771/*---------------------------------------------------------------------------*/
772/*---------------------------------------------------------------------------*/
773
774template <>
775class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa6> :
776public RefinementPatternT< ItemRefinementPatternT< IT_HemiHexa6 > >
777{
778 public:
780
781 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
782 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
783 {
784 if (i < 4) return _refine_matrix_1 [i][j][k];
785 return _refine_matrix_2 [i-4][j][k];
786 }
787 Integer face_mapping (const Integer i,const Integer j) const
788 {
789 if (i < 4) return _face_mapping_1 [i][j];
790 return _face_mapping_2 [i-4][j];
791 }
792 Integer face_mapping_topo (const Integer i,const Integer j) const
793 {
794 if (i < 4) return _face_mapping_topo_1 [i][j];
795 return _face_mapping_topo_2 [i-4][j];
796 }
797 Integer hChildrenTypeId (const Integer i) const
798 {
799 if (i < 4) return IT_Hexaedron8;
800 return IT_HemiHexa7;
801 }
802 Integer getNbHChildren () const
803 {
804 return m_nb_hChildren;
805 }
806 private:
807 static const Integer m_nb_hChildren = 8;
808
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];
812
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];
816};
817
818/*---------------------------------------------------------------------------*/
819/*---------------------------------------------------------------------------*/
820
822: public RefinementPatternT<HemiHex6RefinementPattern4HHex5_4HHex7>
823{
824 public:
826
827 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
828 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
829 {
830 if (i < 4) return _refine_matrix_1 [i][j][k];
831 return _refine_matrix_2 [i-4][j][k];
832 }
833 Integer face_mapping (const Integer,const Integer) const
834 {
835 throw FatalErrorException(A_FUNCINFO,"not implemented");
836 }
837 Integer hChildrenTypeId (const Integer i) const
838 {
839 if (i < 4) return IT_HemiHexa5;
840 return IT_HemiHexa7;
841 }
842 Integer getNbHChildren () const
843 {
844 return m_nb_hChildren;
845 }
846
847 private:
848
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];
852};
853
854/*---------------------------------------------------------------------------*/
855/*---------------------------------------------------------------------------*/
856
858: public RefinementPatternT<HemiHex6RefinementPattern6HHex6_12HHex5_6HHex7_1Hex>
859{
860 public:
862
863 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
864 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
865 {
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];
870 }
871 Integer face_mapping (const Integer,const Integer) const
872 {
873 throw NotImplementedException(A_FUNCINFO);
874 }
875 Integer hChildrenTypeId (const Integer i) const
876 {
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;
881 }
882 Integer getNbHChildren () const
883 {
884 return m_nb_hChildren;
885 }
886
887 private:
888
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];
894};
895
896/*---------------------------------------------------------------------------*/
897/*---------------------------------------------------------------------------*/
898
899template <>
900class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_HemiHexa7> :
901public RefinementPatternT< ItemRefinementPatternT< IT_HemiHexa7 > >
902{
903 public:
905
906 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
907 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
908 {
909 if (i < 6) return _refine_matrix_1 [i][j][k];
910 return _refine_matrix_2 [i-6][j][k];
911 }
912 //! mapping des orientations des faces des mailles filles avec les faces de la la maille mère
913 Integer face_mapping (const Integer i,const Integer j) const
914 {
915 if (i < 6) return _face_mapping_1 [i][j];
916 return _face_mapping_2 [i-6][j];
917 }
918 Integer face_mapping_topo (const Integer i,const Integer j) const
919 {
920 if (i < 6) return _face_mapping_topo_1 [i][j];
921 return _face_mapping_topo_2 [i-6][j];
922 }
923 Integer hChildrenTypeId (const Integer i) const
924 {
925 if (i < 6) return IT_Hexaedron8;
926 return IT_HemiHexa7;
927 }
928 Integer getNbHChildren () const
929 {
930 return m_nb_hChildren;
931 }
932
933 private:
934
935 static const Integer m_nb_hChildren = 8;
936
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];
940
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];
944
945};
946
947/*---------------------------------------------------------------------------*/
948/*---------------------------------------------------------------------------*/
949
951: public RefinementPatternT<HemiHex7RefinementPattern4HHex7_4Pr_2HHex5_1Hex>
952{
953 public:
955
956 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
957 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
958 {
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];
963 }
964 Integer face_mapping (const Integer,const Integer) const
965 {
966 throw FatalErrorException(A_FUNCINFO,"not implemented");
967 }
968 Integer hChildrenTypeId (const Integer i) const
969 {
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;
974 }
975 Integer getNbHChildren () const
976 {
977 return m_nb_hChildren;
978 }
979
980 private:
981
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];
987};
988
989/*---------------------------------------------------------------------------*/
990/*---------------------------------------------------------------------------*/
991
993: public RefinementPatternT<HemiHex7RefinementPattern8HHex7_14Pr_9HHex5_7Hex>
994{
995 public:
997
998 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
999 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1000 {
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];
1005 }
1006 Integer face_mapping (const Integer,const Integer) const
1007 {
1008 throw FatalErrorException(A_FUNCINFO,"not implemented");
1009 }
1010 Integer hChildrenTypeId (const Integer i) const
1011 {
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;
1016 }
1017 Integer getNbHChildren () const
1018 {
1019 return m_nb_hChildren;
1020 }
1021
1022 private:
1023
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];
1029};
1030
1031/*---------------------------------------------------------------------------*/
1032/*---------------------------------------------------------------------------*/
1033
1034template <>
1035class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_AntiWedgeLeft6> :
1036public RefinementPatternT< ItemRefinementPatternT< IT_AntiWedgeLeft6 > >
1037{
1038 public:
1040
1041 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1042 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1043 {
1044 if (i < 4) return _refine_matrix_1 [i][j][k];
1045 return _refine_matrix_2 [i-4][j][k];
1046 }
1047 Integer face_mapping (const Integer i,const Integer j) const
1048 {
1049 if (i < 4) return _face_mapping_1 [i][j];
1050 return _face_mapping_2 [i-4][j];
1051 }
1052 Integer face_mapping_topo (const Integer i,const Integer j) const
1053 {
1054 if (i < 4) return _face_mapping_topo_1 [i][j];
1055 return _face_mapping_topo_2 [i-4][j];
1056 }
1057 Integer hChildrenTypeId (const Integer i) const
1058 {
1059 if (i < 4) return IT_Hexaedron8;
1060 return IT_HemiHexa7;
1061 }
1062 Integer getNbHChildren () const
1063 {
1064 return m_nb_hChildren;
1065 }
1066
1067 private:
1068
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];
1076
1077};
1078/*---------------------------------------------------------------------------*/
1079/*---------------------------------------------------------------------------*/
1080
1082: public RefinementPatternT<AntiWedgeLeft6RefinementPattern4AWL6_4Pr>
1083{
1084 public:
1086
1087 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1088 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1089 {
1090 if (i < 4) return _refine_matrix_1 [i][j][k];
1091 return _refine_matrix_2 [i-4][j][k];
1092 }
1093 Integer face_mapping (const Integer,const Integer) const
1094 {
1095 throw FatalErrorException(A_FUNCINFO,"not implemented");
1096 }
1097 Integer hChildrenTypeId (const Integer i) const
1098 {
1099 if (i < 4) return IT_AntiWedgeLeft6;
1100 return IT_Pentaedron6;
1101 }
1102 Integer getNbHChildren () const
1103 {
1104 return m_nb_hChildren;
1105 }
1106
1107 private:
1108
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];
1112};
1113
1114/*---------------------------------------------------------------------------*/
1115/*---------------------------------------------------------------------------*/
1116
1118: public RefinementPatternT<AntiWedgeLeft6RefinementPattern9AWL6_18Pr>
1119{
1120 public:
1122
1123 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1124 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1125 {
1126 if (i < 9) return _refine_matrix_1 [i][j][k];
1127 return _refine_matrix_2 [i-9][j][k];
1128 }
1129 Integer face_mapping (const Integer,const Integer) const
1130 {
1131 throw FatalErrorException(A_FUNCINFO,"not implemented");
1132 }
1133 Integer hChildrenTypeId (const Integer i) const
1134 {
1135 if (i < 9) return IT_AntiWedgeLeft6;
1136 return IT_Pentaedron6;
1137 }
1138 Integer getNbHChildren () const
1139 {
1140 return m_nb_hChildren;
1141 }
1142
1143 private:
1144
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];
1148};
1149
1150/*---------------------------------------------------------------------------*/
1151/*---------------------------------------------------------------------------*/
1152
1153template <>
1154class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_AntiWedgeRight6> :
1155public RefinementPatternT< ItemRefinementPatternT< IT_AntiWedgeRight6 > >
1156{
1157 public:
1159
1160 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1161 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1162 {
1163 if (i < 4) return _refine_matrix_1 [i][j][k];
1164 return _refine_matrix_2 [i-4][j][k];
1165 }
1166 Integer face_mapping (const Integer i,const Integer j) const
1167 {
1168 if (i < 4) return _face_mapping_1 [i][j];
1169 return _face_mapping_2 [i-4][j];
1170 }
1171 Integer face_mapping_topo (const Integer i,const Integer j) const
1172 {
1173 if (i < 4) return _face_mapping_topo_1 [i][j];
1174 return _face_mapping_topo_2 [i-4][j];
1175 }
1176 Integer hChildrenTypeId (const Integer i) const
1177 {
1178 if (i < 4) return IT_Hexaedron8;
1179 return IT_HemiHexa7;
1180 }
1181 Integer getNbHChildren () const
1182 {
1183 return m_nb_hChildren;
1184 }
1185
1186 private:
1187
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];
1195
1196};
1197/*---------------------------------------------------------------------------*/
1198/*---------------------------------------------------------------------------*/
1199
1201: public RefinementPatternT<AntiWedgeRight6RefinementPattern4AWR6_4Pr>
1202{
1203 public:
1205
1206 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1207 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1208 {
1209 if (i < 4) return _refine_matrix_1 [i][j][k];
1210 return _refine_matrix_2 [i-4][j][k];
1211 }
1212 Integer face_mapping (const Integer,const Integer) const
1213 {
1214 throw FatalErrorException(A_FUNCINFO,"not implemented");
1215 }
1216 Integer hChildrenTypeId (const Integer i) const
1217 {
1218 if (i < 4) return IT_AntiWedgeRight6;
1219 return IT_Pentaedron6;
1220 }
1221 Integer getNbHChildren () const
1222 {
1223 return m_nb_hChildren;
1224 }
1225
1226 private:
1227
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];
1231};
1232
1233/*---------------------------------------------------------------------------*/
1234/*---------------------------------------------------------------------------*/
1235
1237: public RefinementPatternT<AntiWedgeRight6RefinementPattern9AWR6_18Pr>
1238{
1239 public:
1241
1242 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1243 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1244 {
1245 if (i < 9) return _refine_matrix_1 [i][j][k];
1246 return _refine_matrix_2 [i-9][j][k];
1247 throw NotSupportedException(A_FUNCINFO);
1248 }
1249 Integer face_mapping (const Integer,const Integer) const
1250 {
1251 throw FatalErrorException(A_FUNCINFO,"not implemented");
1252 }
1253 Integer hChildrenTypeId (const Integer i) const
1254 {
1255 if (i < 9) return IT_AntiWedgeRight6;
1256 return IT_Pentaedron6;
1257 }
1258 Integer getNbHChildren () const
1259 {
1260 return m_nb_hChildren;
1261 }
1262
1263 private:
1264
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];
1268};
1269
1270/*---------------------------------------------------------------------------*/
1271/*---------------------------------------------------------------------------*/
1272
1273template <>
1274class ARCANE_CORE_EXPORT ItemRefinementPatternT<IT_DiTetra5> :
1275public RefinementPatternT< ItemRefinementPatternT< IT_DiTetra5 > >
1276{
1277 public:
1279
1280 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1281 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1282 {
1283 if (i < 2) return _refine_matrix_1 [i][j][k];
1284 return _refine_matrix_2 [i-2][j][k];
1285 }
1286 //! mapping des orientations des faces des mailles filles avec les faces de la la maille mère
1287 Integer face_mapping (const Integer i,const Integer j) const
1288 {
1289 if (i < 2) return _face_mapping_1 [i][j];
1290 return _face_mapping_2 [i-2][j];
1291 }
1292 Integer face_mapping_topo (const Integer i,const Integer j) const
1293 {
1294 if (i < 2) return _face_mapping_topo_1 [i][j];
1295 return _face_mapping_topo_2 [i-2][j];
1296 }
1297 Integer hChildrenTypeId (const Integer i) const
1298 {
1299 if (i < 2) return IT_Hexaedron8;
1300 return IT_HemiHexa7;
1301 }
1302 Integer getNbHChildren () const
1303 {
1304 return m_nb_hChildren;
1305 }
1306
1307 private:
1308
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];
1316};
1317
1318/*---------------------------------------------------------------------------*/
1319/*---------------------------------------------------------------------------*/
1320
1322: public RefinementPatternT<DiTetra5RefinementPattern3DT_4Py_2T>
1323{
1324 public:
1326
1327 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1328 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1329 {
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];
1333 }
1334 Integer face_mapping (const Integer,const Integer) const
1335 {
1336 throw FatalErrorException(A_FUNCINFO,"not implemented");
1337 }
1338 Integer hChildrenTypeId (const Integer i) const
1339 {
1340 if (i < 3) return IT_DiTetra5;
1341 if (i < 7) return IT_Pyramid5;
1342 return IT_Tetraedron4;
1343 }
1344 Integer getNbHChildren () const
1345 {
1346 return m_nb_hChildren;
1347 }
1348
1349 private:
1350
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];
1355};
1356
1357/*---------------------------------------------------------------------------*/
1358/*---------------------------------------------------------------------------*/
1359
1360class ARCANE_CORE_EXPORT DiTetra5RefinementPattern7DT_2T
1361: public RefinementPatternT<DiTetra5RefinementPattern7DT_2T>
1362{
1363 public:
1365
1366 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1367 Real refine_matrix (const Integer i,const Integer j,const Integer k) const
1368 {
1369 if (i < 7) return _refine_matrix_1 [i][j][k];
1370 return _refine_matrix_2 [i-7][j][k];
1371 }
1372 Integer face_mapping (const Integer,const Integer) const
1373 {
1374 throw FatalErrorException(A_FUNCINFO,"not implemented");
1375 }
1376 Integer hChildrenTypeId (const Integer i) const
1377 {
1378 if (i < 7)
1379 return IT_DiTetra5;
1380 return IT_Tetraedron4;
1381 }
1382 Integer getNbHChildren () const
1383 {
1384 return m_nb_hChildren;
1385 }
1386 private:
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];
1390};
1391
1392/*---------------------------------------------------------------------------*/
1393/*---------------------------------------------------------------------------*/
1394
1395class ARCANE_CORE_EXPORT DiTetra5RefinementPattern64T
1396: public RefinementPatternT<DiTetra5RefinementPattern64T>
1397{
1398 public:
1400
1401 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1402 Real refine_matrix (const Integer,const Integer,const Integer) const
1403 {
1404 throw NotSupportedException(A_FUNCINFO);
1405 }
1406 Integer face_mapping (const Integer,const Integer) const
1407 {
1408 throw FatalErrorException(A_FUNCINFO,"not implemented");
1409 }
1410 Integer hChildrenTypeId (const Integer) const
1411 {
1412 return IT_Tetraedron4;
1413 }
1414 Integer getNbHChildren () const
1415 {
1416 return m_nb_hChildren;
1417 }
1418 private:
1419 static const Integer m_nb_hChildren = 64;
1420 static const double _refine_matrix_1[64][4][5];
1421};
1422
1423/*---------------------------------------------------------------------------*/
1424/*---------------------------------------------------------------------------*/
1425
1426class ARCANE_CORE_EXPORT DiTetra5RefinementPattern32DT
1427: public RefinementPatternT<DiTetra5RefinementPattern32DT>
1428{
1429 public:
1431
1432 //! matrice de transformation des noeuds de la maille mère en noeuds des mailles filles
1433 Real refine_matrix (const Integer,const Integer,const Integer) const
1434 {
1435 throw NotSupportedException(A_FUNCINFO);
1436 }
1437 Integer face_mapping (const Integer,const Integer) const
1438 {
1439 throw NotSupportedException(A_FUNCINFO);
1440 }
1441 Integer hChildrenTypeId (const Integer) const
1442 {
1443 return IT_Tetraedron4;
1444 }
1445 Integer getNbHChildren () const
1446 {
1447 return m_nb_hChildren;
1448 }
1449 private:
1450 static const Integer m_nb_hChildren = 32;
1451 static const double _refine_matrix_1[32][5][5];
1452};
1453
1454/*---------------------------------------------------------------------------*/
1455/*---------------------------------------------------------------------------*/
1456
1457} // End namespace Arcane
1458
1459/*---------------------------------------------------------------------------*/
1460/*---------------------------------------------------------------------------*/
1461
1462#endif /* ARCANE_ITEMREFINEMENTPATTERN_H */
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
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 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
Integer face_mapping(const Integer i, const Integer j) const
mapping des orientations des faces des mailles filles avec les faces de la la maille mère
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
Integer face_mapping(const Integer i, const Integer j) const
mapping des orientations des faces des mailles filles avec les faces de la la maille mère
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
Integer face_mapping(const Integer i, const Integer j) const
mapping des orientations des faces des mailles filles avec les faces de la la maille mère
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 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
Exception lorsqu'une erreur fatale est survenue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.
Int32 Integer
Type représentant un entier.