15#include "arcane/geometry/CellConnectivity.h"
19#include "arcane/core/AbstractItemOperationByBasicType.h"
24namespace Arcane::geometric
32inline void CellConnectivity::
33_setEdgeDirectConnectic()
35 if (m_edge_connectic){
37 for(
Integer i=0, n=nbEdge(); i<n; ++i ){
45 for(
Integer i=0, n=nbEdge(); i<n; ++i ){
55void NullConnectivity::
58 _setEdgeDirectConnectic();
61void VertexConnectivity::
64 _setEdgeDirectConnectic();
67void Line2Connectivity::
70 _setEdgeDirectConnectic();
73void Pentagon5Connectivity::
76 _setEdgeDirectConnectic();
80void Hexagon6Connectivity::
83 _setEdgeDirectConnectic();
87void Hexaedron8Connectivity::
90 using namespace Arcane::geometric;
93 m_node_connectic = hexa_node_connectic;
94 m_edge_connectic = hexa_edge_connectic;
95 m_face_connectic = hexa_face_connectic;
98 m_svc_face_connectic = hexa_svc_face_connectic;
99 m_nb_svc_face =
sizeof(hexa_svc_face_connectic) /
sizeof(hexa_svc_face_connectic[0]);
104 m_face_node_sub_zone_id[0] = 2;
105 m_face_node_sub_zone_id[1] = 7;
106 m_face_node_sub_zone_id[2] = 5;
108 _setEdgeDirectConnectic();
111void Pyramid5Connectivity::
114 using namespace Arcane::geometric;
117 m_node_connectic = pyra_node_connectic;
118 m_edge_connectic = pyra_edge_connectic;
119 m_face_connectic = pyra_face_connectic;
121 m_svc_face_connectic = pyra_svc_face_connectic;
122 m_nb_svc_face =
sizeof(pyra_svc_face_connectic) /
sizeof(pyra_svc_face_connectic[0]);
126 m_face_node_sub_zone_id[0] = 2;
127 m_face_node_sub_zone_id[1] = 7;
128 m_face_node_sub_zone_id[2] = 5;
130 _setEdgeDirectConnectic();
133void Pentaedron6Connectivity::
136 using namespace Arcane::geometric;
139 m_node_connectic = penta_node_connectic;
140 m_edge_connectic = penta_edge_connectic;
141 m_face_connectic = penta_face_connectic;
143 m_svc_face_connectic = penta_svc_face_connectic;
144 m_nb_svc_face =
sizeof(penta_svc_face_connectic) /
sizeof(penta_svc_face_connectic[0]);
148 m_face_node_sub_zone_id[0] = 2;
149 m_face_node_sub_zone_id[1] = 7;
150 m_face_node_sub_zone_id[2] = 5;
152 _setEdgeDirectConnectic();
155void Tetraedron4Connectivity::
158 using namespace Arcane::geometric;
161 m_node_connectic = tetra_node_connectic;
162 m_edge_connectic = tetra_edge_connectic;
163 m_face_connectic = tetra_face_connectic;
166 m_svc_face_connectic = tetra_svc_face_connectic;
167 m_nb_svc_face =
sizeof(tetra_svc_face_connectic) /
sizeof(tetra_svc_face_connectic[0]);
171 m_face_node_sub_zone_id[0] = 2;
172 m_face_node_sub_zone_id[1] = 7;
173 m_face_node_sub_zone_id[2] = 5;
175 _setEdgeDirectConnectic();
178void Heptaedron10Connectivity::
181 using namespace Arcane::geometric;
184 m_node_connectic = wedge7_node_connectic;
185 m_edge_connectic = wedge7_edge_connectic;
186 m_face_connectic = wedge7_face_connectic;
189 m_svc_face_connectic = wedge7_svc_face_connectic;
190 m_nb_svc_face =
sizeof(wedge7_svc_face_connectic) /
sizeof(wedge7_svc_face_connectic[0]);
194 m_face_node_sub_zone_id[0] = 2;
195 m_face_node_sub_zone_id[1] = 7;
196 m_face_node_sub_zone_id[2] = 5;
198 _setEdgeDirectConnectic();
201void Octaedron12Connectivity::
204 using namespace Arcane::geometric;
207 m_node_connectic = wedge8_node_connectic;
208 m_edge_connectic = wedge8_edge_connectic;
209 m_face_connectic = wedge8_face_connectic;
212 m_svc_face_connectic = wedge8_svc_face_connectic;
213 m_nb_svc_face =
sizeof(wedge8_svc_face_connectic) /
sizeof(wedge8_svc_face_connectic[0]);
217 m_face_node_sub_zone_id[0] = 2;
218 m_face_node_sub_zone_id[1] = 7;
219 m_face_node_sub_zone_id[2] = 5;
221 _setEdgeDirectConnectic();
224void Quad4Connectivity::
227 using namespace Arcane::geometric;
230 m_node_connectic = quad_node_connectic;
231 m_edge_connectic = 0;
232 m_face_connectic = quad_face_connectic;
235 m_svc_face_connectic = quad_svc_face_connectic;
236 m_nb_svc_face =
sizeof(quad_svc_face_connectic) /
sizeof(quad_svc_face_connectic[0]);
240 m_face_node_sub_zone_id[0] = 1;
241 m_face_node_sub_zone_id[1] = 3;
242 m_face_node_sub_zone_id[2] = 0;
244 _setEdgeDirectConnectic();
247void Triangle3Connectivity::
250 using namespace Arcane::geometric;
253 m_node_connectic = triangle_node_connectic;
254 m_edge_connectic = 0;
255 m_face_connectic = triangle_face_connectic;
258 m_svc_face_connectic = triangle_svc_face_connectic;
259 m_nb_svc_face =
sizeof(triangle_svc_face_connectic)/
sizeof(triangle_svc_face_connectic[0]);
263 m_face_node_sub_zone_id[0] = 1;
264 m_face_node_sub_zone_id[1] = 3;
265 m_face_node_sub_zone_id[2] = 0;
267 _setEdgeDirectConnectic();
Integer m_edge_direct_connectic[ItemStaticInfo::MAX_CELL_EDGE *2]
Connectique pour les arêtes.
Integer m_nb_sub_zone
Nombre de sous volume de controle.
const Integer * m_node_association
Numero local du sommet associé au sous volume de controle.
Integer m_edge_node_sub_zone_id[3]
Numéro locaux dans le sous-volumes de contrôle.
Int32 Integer
Type représentant un entier.