Arcane  v3.14.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-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 */
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
55 Integer nbSubZoneFace() const { return m_nb_svc_face; }
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
78 Integer m_edge_node_sub_zone_id[3];
79 Integer m_face_node_sub_zone_id[3];
80 //! Connectique pour les arêtes
81 Integer m_edge_direct_connectic[ItemStaticInfo::MAX_CELL_EDGE*2];
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 */
104: public CellConnectivity
105{
106 public:
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
Informations sur la connectivité d'une maille.
GeomType cellType() const
Type de la maille (GeomType::Quad4, GeomType::Hexaedron8, ...)
Integer nbSubZoneFace() const
Nombre de sous faces internes SVC.
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 -*-
Structures de connectique locale des mailles.
Structure de connectique locale.
Structures de connectique locale des mailles.
Structures de connectique locale des mailles et svc.