13#ifndef ARCANE_GEOMETRIC_GEOMETRICCONNECTIC_H
14#define ARCANE_GEOMETRIC_GEOMETRICCONNECTIC_H
20#include "arcane/geometry/GeometricGlobal.h"
23#define ARCANE_UNUSED_ATTRIBUTE __attribute__((unused))
25#define ARCANE_UNUSED_ATTRIBUTE
31namespace Arcane::geometric
83 Integer nbNode()
const {
return m_nb_node; }
91 m_node[0] = NULL_ITEM_ID;
92 m_node[1] = NULL_ITEM_ID;
93 m_node[2] = NULL_ITEM_ID;
94 m_node[3] = NULL_ITEM_ID;
95 m_node[4] = NULL_ITEM_ID;
96 m_node[5] = NULL_ITEM_ID;
103 m_node[0] = n0; m_node[1] = n1; m_node[2] = n2;
104 m_node[3] = n3; m_node[4] = n4; m_node[5] = n5;
110 m_node[0] = n0; m_node[1] = n1; m_node[2] = n2;
111 m_node[3] = n3; m_node[4] = n4;
117 m_node[0] = n0; m_node[1] = n1; m_node[2] = n2; m_node[3] = n3;
123 m_node[0] = n0; m_node[1] = n1; m_node[2] = n2;
129 m_node[0] = n0; m_node[1] = n1;
154 Integer nbNode()
const {
return 2; }
158 m_node[0] = NULL_ITEM_ID; m_node[1] = NULL_ITEM_ID;
159 m_face[0] = NULL_ITEM_ID; m_face[1] = NULL_ITEM_ID;
164 m_node[0] = n0; m_node[1] = n1;
165 m_face[0] = f0; m_face[1] = f1;
191 m_edge[0] = NULL_ITEM_ID; m_edge[1] = NULL_ITEM_ID; m_edge[2] = NULL_ITEM_ID;
192 m_face[0] = NULL_ITEM_ID; m_face[1] = NULL_ITEM_ID; m_face[2] = NULL_ITEM_ID;
193 m_node[0] = m_node[1] = m_node[2] = m_node[3] = NULL_ITEM_ID;
200 m_edge[0] = e0; m_edge[1] = e1; m_edge[2] = e2;
201 m_face[0] = f0; m_face[1] = f1; m_face[2] = f2;
202 m_node[0] = n0, m_node[1] = n1, m_node[2] = n2, m_node[3] = n3;
209 m_face[0] = f0; m_face[1] = f1;
210 m_node[0] = n0, m_node[1] = n1, m_node[2] = n2;
234struct SVCFaceConnectic
239 : m_edge(0), m_face1(0), m_face2(0), m_node_pos(0), m_node_neg(0)
245 : m_edge (edge), m_face1(face1), m_face2(face2), m_node_pos(node_pos),
246 m_node_neg (node_neg)
252 : m_edge(NULL_ITEM_LOCAL_ID), m_face1(face1),
253 m_face2(NULL_ITEM_LOCAL_ID), m_node_pos(node_pos),
254 m_node_neg (node_neg)
258 inline Integer edge()
const {
return m_edge; }
259 inline Integer firstFace()
const {
return m_face1; }
260 inline Integer secondFace()
const {
return m_face2; }
261 inline Integer positiveNode ()
const {
return m_node_pos;}
262 inline Integer negativeNode ()
const {
return m_node_neg;}
281const Integer hexa_node_association[8]={0,1,2,3,4,5,6,7};
284const NodeConnectic hexa_node_connectic[8] ARCANE_UNUSED_ATTRIBUTE =
286 NodeConnectic( 0, 3, 4, 0, 1, 2, 0, 1, 3, 4),
287 NodeConnectic( 1, 0, 5, 0, 2, 4, 1, 2, 0, 5),
288 NodeConnectic( 2, 1, 6, 0, 4, 5, 2, 3, 1, 6),
289 NodeConnectic( 3, 2, 7, 0, 5, 1, 3, 0, 2, 7),
290 NodeConnectic( 11, 8, 4, 3, 2, 1, 4, 7, 5, 0),
291 NodeConnectic( 8, 9, 5, 3, 4, 2, 5, 4, 6, 1),
292 NodeConnectic( 9, 10, 6, 3, 5, 4, 6, 5, 7, 2),
293 NodeConnectic( 10, 11, 7, 3, 1, 5, 7, 6, 4, 3)
297const EdgeConnectic hexa_edge_connectic[12] ARCANE_UNUSED_ATTRIBUTE =
299 EdgeConnectic(0,1,0,2),EdgeConnectic(1,2,0,4),EdgeConnectic(2,3,0,5),EdgeConnectic(3,0,0,1),
300 EdgeConnectic(0,4,2,1),EdgeConnectic(1,5,4,2),EdgeConnectic(2,6,5,4),EdgeConnectic(3,7,1,5),
301 EdgeConnectic(4,5,2,3),EdgeConnectic(5,6,4,3),EdgeConnectic(6,7,5,3),EdgeConnectic(7,4,1,3)
305const FaceConnectic hexa_face_connectic[6] ARCANE_UNUSED_ATTRIBUTE =
307 FaceConnectic(0,3,2,1),
FaceConnectic(0,4,7,3),
FaceConnectic(0,1,5,4),
308 FaceConnectic(4,5,6,7),
FaceConnectic(1,2,6,5),
FaceConnectic(2,3,7,6)
331const Integer pyra_node_association[8]={0,1,2,3,4,4,4,4};
333const NodeConnectic pyra_node_connectic[8] ARCANE_UNUSED_ATTRIBUTE =
335 NodeConnectic( 0, 3, 4, 0, 1, 2, 0, 1, 3, 4),
336 NodeConnectic( 1, 0, 5, 0, 2, 3, 1, 2, 0, 4),
337 NodeConnectic( 2, 1, 6, 0, 3, 4, 2, 3, 1, 4),
338 NodeConnectic( 3, 2, 7, 0, 4, 1, 3, 0, 2, 4),
339 NodeConnectic( 11, 8, 4, 5, 2, 1, 4, 1, 0, 3),
340 NodeConnectic( 8, 9, 5, 5, 3, 2, 4, 2, 1, 0),
341 NodeConnectic( 9, 10, 6, 5, 4, 3, 4, 3, 2, 1),
346const EdgeConnectic pyra_edge_connectic[12] ARCANE_UNUSED_ATTRIBUTE =
362const FaceConnectic pyra_face_connectic[6] ARCANE_UNUSED_ATTRIBUTE =
389const Integer penta_node_association[6]={0,1,2,3,4,5};
391const NodeConnectic penta_node_connectic[6] ARCANE_UNUSED_ATTRIBUTE =
393 NodeConnectic( 0, 2, 3, 0, 1, 2, 0, 1, 2, 3),
394 NodeConnectic( 1, 0, 4, 0, 2, 4, 1, 2, 0, 4),
395 NodeConnectic( 2, 1, 5, 0, 4, 1, 2, 0, 1, 5),
396 NodeConnectic( 8, 6, 3, 3, 2, 1, 3, 5, 4, 0),
397 NodeConnectic( 6, 7, 4, 3, 4, 2, 4, 3, 5, 1),
402const EdgeConnectic penta_edge_connectic[9] ARCANE_UNUSED_ATTRIBUTE =
404 EdgeConnectic(0,1,0,2),
EdgeConnectic(1,2,0,4),
EdgeConnectic(2,0,1,0),
EdgeConnectic(0,3,1,2),
405 EdgeConnectic(1,4,2,4),
EdgeConnectic(2,5,4,1),
EdgeConnectic(3,4,2,3),
EdgeConnectic(4,5,4,3),
409const FaceConnectic penta_face_connectic[5] ARCANE_UNUSED_ATTRIBUTE =
411 FaceConnectic(0,2,1),
FaceConnectic(0,3,5,2),
FaceConnectic(0,1,4,3),
433const Integer tetra_node_association[4]={0,1,2,3};
435const NodeConnectic tetra_node_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
437 NodeConnectic( 0, 2, 3, 0, 1, 2, 0, 1, 2, 3),
438 NodeConnectic( 1, 0, 4, 0, 2, 3, 1, 2, 0, 3),
439 NodeConnectic( 2, 1, 5, 0, 3, 1, 2, 0, 1, 3),
443const EdgeConnectic tetra_edge_connectic[6] ARCANE_UNUSED_ATTRIBUTE =
445 EdgeConnectic(0,1,0,2),
EdgeConnectic(1,2,0,3),
EdgeConnectic(2,0,0,1),
EdgeConnectic(0,3,1,2),
449const FaceConnectic tetra_face_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
469const Integer wedge7_node_association[10]={0,1,2,3,4,5,6,7,8,9};
471const NodeConnectic wedge7_node_connectic[10] ARCANE_UNUSED_ATTRIBUTE =
473 NodeConnectic( 0, 4, 10, 0, 6, 2, 0, 1, 4, 5),
474 NodeConnectic( 1, 0, 11, 0, 2, 3, 1, 2, 0, 6),
475 NodeConnectic( 2, 1, 12, 0, 3, 4, 2, 3, 1, 7),
476 NodeConnectic( 3, 2, 13, 0, 4, 5, 3, 4, 2, 8),
477 NodeConnectic( 4, 3, 14, 0, 5, 6, 4, 0, 3, 9),
478 NodeConnectic( 9, 5, 10, 1, 2, 6, 5, 9, 6, 0),
479 NodeConnectic( 5, 6, 11, 1, 3, 2, 6, 5, 7, 1),
480 NodeConnectic( 6, 7, 12, 1, 4, 3, 7, 6, 8, 2),
481 NodeConnectic( 7, 8, 13, 1, 5, 4, 8, 7, 9, 3),
485const EdgeConnectic wedge7_edge_connectic[15] ARCANE_UNUSED_ATTRIBUTE =
487 EdgeConnectic(0,1,0,2),
EdgeConnectic(1,2,0,3),
EdgeConnectic(2,3,0,4),
EdgeConnectic(3,4,0,5),
488 EdgeConnectic(4,0,0,6),
EdgeConnectic(5,6,2,1),
EdgeConnectic(6,7,3,1),
EdgeConnectic(7,8,4,1),
489 EdgeConnectic(8,9,5,1),
EdgeConnectic(9,5,6,1),
EdgeConnectic(0,5,6,2),
EdgeConnectic(1,6,2,3),
490 EdgeConnectic(2,7,3,4),
EdgeConnectic(3,8,4,5),
EdgeConnectic(4,9,5,6)
493const FaceConnectic wedge7_face_connectic[7] ARCANE_UNUSED_ATTRIBUTE =
495 FaceConnectic(0,4,3,2,1),
FaceConnectic(5,6,7,8,9),
FaceConnectic(0,1,6,5),
496 FaceConnectic(1,2,7,6),
FaceConnectic(2,3,8,7),
FaceConnectic(3,4,9,8),
501const SVCFaceConnectic wedge7_svc_face_connectic[15] ARCANE_UNUSED_ATTRIBUTE =
523const Integer wedge8_node_association[12]={0,1,2,3,4,5,6,7,8,9,10,11};
524const NodeConnectic wedge8_node_connectic[12] ARCANE_UNUSED_ATTRIBUTE =
526 NodeConnectic( 0, 5, 12, 0, 7, 2, 0, 1, 5, 6),
527 NodeConnectic( 1, 0, 13, 0, 2, 3, 1, 2, 0, 7),
528 NodeConnectic( 2, 1, 14, 0, 3, 4, 2, 3, 1, 8),
529 NodeConnectic( 3, 2, 15, 0, 4, 5, 3, 4, 2, 9),
530 NodeConnectic( 4, 3, 16, 0, 5, 6, 4, 5, 3, 10),
531 NodeConnectic( 5, 4, 17, 0, 6, 7, 5, 0, 4, 11),
532 NodeConnectic( 11, 6, 12, 1, 2, 7, 6, 11, 7, 0),
533 NodeConnectic( 6, 7, 13, 1, 3, 2, 7, 6, 8 ,1),
534 NodeConnectic( 7, 8, 14, 1, 4, 3, 8, 7, 9, 2),
535 NodeConnectic( 8, 9, 15, 1, 5, 4, 9, 8, 10, 3),
536 NodeConnectic( 9, 10, 16, 1, 6, 5, 10, 9, 11, 4),
540const EdgeConnectic wedge8_edge_connectic[18] ARCANE_UNUSED_ATTRIBUTE =
554const FaceConnectic wedge8_face_connectic[8] ARCANE_UNUSED_ATTRIBUTE =
556 FaceConnectic( 0, 5, 4, 3, 2, 1),
FaceConnectic( 6, 7, 8, 9,10,11),
563const SVCFaceConnectic wedge8_svc_face_connectic[18] ARCANE_UNUSED_ATTRIBUTE =
589const Integer quad_node_association[4]={0,1,2,3};
592const NodeConnectic quad_node_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
601const FaceConnectic quad_face_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
617const Integer triangle_node_association[4]={0,1,2,0};
619const NodeConnectic triangle_node_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
628const FaceConnectic triangle_face_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
638const SVCFaceConnectic triangle_svc_face_connectic[4] ARCANE_UNUSED_ATTRIBUTE =
653struct LocalCellNodeReal
658 inline Real node(
Integer i)
const {
return m_node[i]; }
665 m_node[0] = a0; m_node[1] = a1; m_node[ 2] = a2; m_node[ 3] = a3;
666 m_node[4] = a4; m_node[5] = a5; m_node[ 6] = a6; m_node[ 7] = a7;
667 m_node[8] = a8; m_node[9] = a9; m_node[10] = a10; m_node[11] = a11;
674 return (m_node[0] + m_node[1] + m_node[2] + m_node[3] + m_node[4]
675 + m_node[5] + m_node[6] + m_node[7]
676 + m_node[8] + m_node[9] + m_node[10] + m_node[11]);
Déclarations des types généraux de Arcane.
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.
Structures de connectique locale des mailles.
Structure de connectique locale.
Structures de connectique locale des mailles.
Structures de connectique locale des mailles et svc.