Arcane  v3.14.10.0
Documentation développeur
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 }
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
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
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
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
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
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
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 }
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
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
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
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
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
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
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
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
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
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 }
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
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
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
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
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
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
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.
Exception lorsqu'une fonction n'est pas implémentée.
Exception lorsqu'une opération n'est pas supportée.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.