Arcane  v4.1.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CellConnectivity.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* CellConnectivity.h (C) 2000-2026 */
9/* */
10/* Informations sur la connectivité d'une maille. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_GEOMETRIC_CELLCONNECTIVITY_H
13#define ARCANE_GEOMETRIC_CELLCONNECTIVITY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/geometry/GeomType.h"
18#include "arcane/geometry/GeometricConnectic.h"
19#include "arcane/geometry/ItemStaticInfo.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::geometric
25{
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29using namespace Arcane;
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \ingroup ArcaneGeometric
35 * \brief Informations sur la connectivité d'une maille.
36 */
37class CellConnectivity
38{
39 public:
40 CellConnectivity(Integer nb_node,Integer nb_edge,Integer nb_face,GeomType cell_type)
41 : m_nb_node(nb_node), m_nb_edge(nb_edge), m_nb_face(nb_face), m_cell_type(cell_type)
42 {
43 }
44
45 public:
46
47 Integer nbNode() const { return m_nb_node; }
48 Integer nbEdge() const { return m_nb_edge; }
49 Integer nbFace() const { return m_nb_face; }
50
51 //! Nombre de sous volume de controle
52 Integer nbSubZone() const { return m_nb_sub_zone; }
53 //! Nombre de sous faces internes SVC
55 const Integer* nodeAssociation() const { return m_node_association; }
56 const NodeConnectic* nodeConnectic() const { return m_node_connectic; }
57 const EdgeConnectic* edgeConnectic() const { return m_edge_connectic; }
58 const FaceConnectic* faceConnectic() const { return m_face_connectic; }
59 const SVCFaceConnectic* SCVFaceConnectic() const { return m_svc_face_connectic; }
60 //! Type de la maille (GeomType::Quad4, GeomType::Hexaedron8, ...)
61 GeomType cellType() const { return m_cell_type; }
62
63 protected:
64
65 Integer m_nb_sub_zone = 0; //!< Nombre de sous volume de controle
66 Integer m_nb_svc_face = 0; //!< Nombre de sous faces internes SVC
67 //! Numero local du sommet associé au sous volume de controle
68 const Integer* m_node_association = nullptr;
69 const NodeConnectic* m_node_connectic = nullptr;
70 const EdgeConnectic* m_edge_connectic = nullptr;
71 const FaceConnectic* m_face_connectic = nullptr;
72 const SVCFaceConnectic* m_svc_face_connectic = nullptr;
73
74 public:
75
76 //! Numéro locaux dans le sous-volumes de contrôle
78 Integer m_face_node_sub_zone_id[3];
79 //! Connectique pour les arêtes
81
82 protected:
83
84 Integer m_nb_node;
85 Integer m_nb_edge;
86 Integer m_nb_face;
87 Int32* m_edge_first_node = nullptr;
88 Int32* m_edge_second_node = nullptr;
89 GeomType m_cell_type;
90
91 protected:
92
93 inline void _setEdgeDirectConnectic();
94};
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98/*!
99 * \ingroup ArcaneGeometric
100 * \brief Informations de connectivité pour les éléments géométriques de type IT_NullType.
101 */
102class NullConnectivity
103: public CellConnectivity
104{
105 public:
107 : CellConnectivity(0,0,0,GeomType::NullType)
108 { _init(); }
109 public:
110 Integer nbNode() const { return 0; }
111 Integer nbEdge() const { return 0; }
112 Integer nbFace() const { return 0; }
113 public:
114 private:
115 void _init();
116};
117
118/*---------------------------------------------------------------------------*/
119/*---------------------------------------------------------------------------*/
120
121#include "arcane/geometry/GeneratedConnectivity.h"
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
126} // namespace Arcane::geometric
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131#endif
static const Integer MAX_CELL_EDGE
Nombre maximum d'arêtes par maille.
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.
GeomType cellType() const
Type de la maille (GeomType::Quad4, GeomType::Hexaedron8, ...)
const Integer * m_node_association
Numero local du sommet associé au sous volume de controle.
Integer nbSubZoneFace() const
Nombre de sous faces internes SVC.
Integer m_edge_node_sub_zone_id[3]
Numéro locaux dans le sous-volumes de contrôle.
Integer nbSubZone() const
Nombre de sous volume de controle.
Enumération spécifiant le type de polygone ou polyèdre associé à un élément ou une forme géométrique.
Definition GeomType.h:45
Informations de connectivité pour les éléments géométriques de type IT_NullType.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.
Structures de connectique locale des mailles.
Structure de connectique locale.
Structures de connectique locale des mailles.
Structures de connectique locale des mailles et svc.