Arcane  v3.16.0.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-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/* CellConnectivity.h (C) 2000-2014 */
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/geometric/GeomType.h"
18#include "arcane/geometric/GeometricConnectic.h"
19#include "arcane/geometric/ItemStaticInfo.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24ARCANE_BEGIN_NAMESPACE
25GEOMETRIC_BEGIN_NAMESPACE
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30using namespace Arcane;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34/*!
35 * \ingroup ArcaneGeometric
36 * \brief Informations sur la connectivité d'une maille.
37 */
38class CellConnectivity
39{
40 public:
41 CellConnectivity(Integer nb_node,Integer nb_edge,Integer nb_face,GeomType cell_type)
42 : m_nb_node(nb_node), m_nb_edge(nb_edge), m_nb_face(nb_face), m_cell_type(cell_type)
43 {
44 }
45
46 public:
47
48 Integer nbNode() const { return m_nb_node; }
49 Integer nbEdge() const { return m_nb_edge; }
50 Integer nbFace() const { return m_nb_face; }
51
52 //! Nombre de sous volume de controle
53 Integer nbSubZone() const { return m_nb_sub_zone; }
54 //! Nombre de sous faces internes SVC
56 const Integer* nodeAssociation() const { return m_node_association; }
57 const NodeConnectic* nodeConnectic() const { return m_node_connectic; }
58 const EdgeConnectic* edgeConnectic() const { return m_edge_connectic; }
59 const FaceConnectic* faceConnectic() const { return m_face_connectic; }
60 const SVCFaceConnectic* SCVFaceConnectic() const { return m_svc_face_connectic; }
61 //! Type de la maille (GeomType::Quad4, GeomType::Hexaedron8, ...)
62 GeomType cellType() const { return m_cell_type; }
63
64 protected:
65
66 Integer m_nb_sub_zone = 0; //!< Nombre de sous volume de controle
67 Integer m_nb_svc_face = 0; //!< Nombre de sous faces internes SVC
68 //! Numero local du sommet associé au sous volume de controle
69 const Integer* m_node_association = nullptr;
70 const NodeConnectic* m_node_connectic = nullptr;
71 const EdgeConnectic* m_edge_connectic = nullptr;
72 const FaceConnectic* m_face_connectic = nullptr;
73 const SVCFaceConnectic* m_svc_face_connectic = nullptr;
74
75 public:
76
77 //! Numéro locaux dans le sous-volumes de contrôle
79 Integer m_face_node_sub_zone_id[3];
80 //! Connectique pour les arêtes
82
83 protected:
84
85 Integer m_nb_node;
86 Integer m_nb_edge;
87 Integer m_nb_face;
88 Int32* m_edge_first_node = nullptr;
89 Int32* m_edge_second_node = nullptr;
90 GeomType m_cell_type;
91
92 protected:
93
94 inline void _setEdgeDirectConnectic();
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99/*!
100 * \ingroup ArcaneGeometric
101 * \brief Informations de connectivité pour les éléments géométriques de type IT_NullType.
102 */
103class NullConnectivity
104: public CellConnectivity
105{
106 public:
107 NullConnectivity()
108 : CellConnectivity(0,0,0,GeomType::NullType)
109 { _init(); }
110 public:
111 Integer nbNode() const { return 0; }
112 Integer nbEdge() const { return 0; }
113 Integer nbFace() const { return 0; }
114 public:
115 private:
116 void _init();
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122#include "arcane/geometric/GeneratedConnectivity.h"
123
124/*---------------------------------------------------------------------------*/
125/*---------------------------------------------------------------------------*/
126
127GEOMETRIC_END_NAMESPACE
128ARCANE_END_NAMESPACE
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133#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
@ NullType
Élément nul.
Definition GeomType.h:50
-*- 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.