Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ItemTypeId.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* ItemTypeId.h (C) 2000-2025 */
9/* */
10/* Type d'une entité. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITEMTYPEID_H
13#define ARCANE_CORE_ITEMTYPEID_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \ingroup Mesh
29 * \brief Type d'une entité (Item).
30 */
31class ARCANE_CORE_EXPORT ItemTypeId
32{
33 public:
34
35 ItemTypeId() = default;
36 constexpr ARCCORE_HOST_DEVICE explicit ItemTypeId(Int16 id)
37 : m_type_id(id)
38 {}
39 constexpr ARCCORE_HOST_DEVICE operator Int16() const { return m_type_id; }
40
41 public:
42
43 constexpr ARCCORE_HOST_DEVICE Int16 typeId() const { return m_type_id; }
44 constexpr ARCCORE_HOST_DEVICE bool isNull() const { return m_type_id == IT_NullType; }
45 /*!
46 * \brief Créé une instance à partir d'un entier.
47 *
48 * Cette méthode lève une exception si \a v est supérieur à la valeur
49 * maximale autorisée qui est actuellement 2^15.
50 */
51 static ItemTypeId fromInteger(Int64 v);
52
53 private:
54
55 Int16 m_type_id = IT_NullType;
56};
57
58/*---------------------------------------------------------------------------*/
59/*---------------------------------------------------------------------------*/
60
61//! Numéro du type d'entité inconnu ou null
62static constexpr ItemTypeId ITI_NullType(IT_NullType);
63//! Numéro du type d'entité Noeud (1 sommet 1D, 2D et 3D)
64static constexpr ItemTypeId ITI_Vertex(IT_Vertex);
65//! Numéro du type d'entité Arête (2 sommets, 1D, 2D et 3D)
66static constexpr ItemTypeId ITI_Line2(IT_Line2);
67//! Numéro du type d'entité Triangle (3 sommets, 2D)
68static constexpr ItemTypeId ITI_Triangle3(IT_Triangle3);
69//! Numéro du type d'entité Quadrilatère (4 sommets, 2D)
70static constexpr ItemTypeId ITI_Quad4(IT_Quad4);
71//! Numéro du type d'entité Pentagone (5 sommets, 2D)
72static constexpr ItemTypeId ITI_Pentagon5(IT_Pentagon5);
73//! Numéro du type d'entité Hexagone (6 sommets, 2D)
74static constexpr ItemTypeId ITI_Hexagon6(IT_Hexagon6);
75//! Numéro du type d'entité Tetraèdre (4 sommets, 3D)
76static constexpr ItemTypeId ITI_Tetraedron4(IT_Tetraedron4);
77//! Numéro du type d'entité Pyramide (5 sommets, 3D)
78static constexpr ItemTypeId ITI_Pyramid5(IT_Pyramid5);
79//! Numéro du type d'entité Prisme (6 sommets, 3D)
80static constexpr ItemTypeId ITI_Pentaedron6(IT_Pentaedron6);
81//! Numéro du type d'entité Hexaèdre (8 sommets, 3D)
82static constexpr ItemTypeId ITI_Hexaedron8(IT_Hexaedron8);
83//! Numéro du type d'entité Heptaèdre (prisme à base pentagonale)
84static constexpr ItemTypeId ITI_Heptaedron10(IT_Heptaedron10);
85//! Numéro du type d'entité Octaèdre (prisme à base hexagonale)
86static constexpr ItemTypeId ITI_Octaedron12(IT_Octaedron12);
87//! Numéro du type d'entité HemiHexa7 (héxahèdre à 1 dégénérescence)
88static constexpr ItemTypeId ITI_HemiHexa7(IT_HemiHexa7);
89//! Numéro du type d'entité HemiHexa6 (héxahèdre à 2 dégénérescences non contigues)
90static constexpr ItemTypeId ITI_HemiHexa6(IT_HemiHexa6);
91//! Numéro du type d'entité HemiHexa5 (héxahèdres à 3 dégénérescences non contigues)
92static constexpr ItemTypeId ITI_HemiHexa5(IT_HemiHexa5);
93//! Numéro du type d'entité AntiWedgeLeft6 (héxahèdre à 2 dégénérescences contigues)
94static constexpr ItemTypeId ITI_AntiWedgeLeft6(IT_AntiWedgeLeft6);
95//! Numéro du type d'entité AntiWedgeRight6 (héxahèdre à 2 dégénérescences contigues (seconde forme))
96static constexpr ItemTypeId ITI_AntiWedgeRight6(IT_AntiWedgeRight6);
97//! Numéro du type d'entité DiTetra5 (héxahèdre à 3 dégénérescences orthogonales)
98static constexpr ItemTypeId ITI_DiTetra5(IT_DiTetra5);
99//! Numero du type d'entite noeud dual d'un sommet
100static constexpr ItemTypeId ITI_DualNode(IT_DualNode);
101//! Numero du type d'entite noeud dual d'une arête
102static constexpr ItemTypeId ITI_DualEdge(IT_DualEdge);
103//! Numero du type d'entite noeud dual d'une face
104static constexpr ItemTypeId ITI_DualFace(IT_DualFace);
105//! Numero du type d'entite noeud dual d'une cellule
106static constexpr ItemTypeId ITI_DualCell(IT_DualCell);
107//! Numéro du type d'entité liaison
108static constexpr ItemTypeId ITI_Link(IT_Link);
109//! Numéro du type d'entité Face pour les maillages 1D.
110static constexpr ItemTypeId ITI_FaceVertex(IT_FaceVertex);
111//! Numéro du type d'entité Cell pour les maillages 1D.
112static constexpr ItemTypeId ITI_CellLine2(IT_CellLine2);
113//! Numero du type d'entite noeud dual d'une particule
114static constexpr ItemTypeId ITI_DualParticle(IT_DualParticle);
115
116//! Numéro du type d'entité Enneèdre (prisme à base heptagonale)
117static constexpr ItemTypeId ITI_Enneedron14(IT_Enneedron14);
118//! Numéro du type d'entité Decaèdre (prisme à base Octogonale)
119static constexpr ItemTypeId ITI_Decaedron16(IT_Decaedron16);
120
121//! Numéro du type d'entité Heptagon 2D (heptagonale)
122static constexpr ItemTypeId ITI_Heptagon7(IT_Heptagon7);
123
124//! Numéro du type d'entité Octogon 2D (Octogonale)
125static constexpr ItemTypeId ITI_Octogon8(IT_Octogon8);
126
127//! Éléments quadratiques
128//@{
129//! Ligne d'ordre 2
130static constexpr ItemTypeId ITI_Line3(IT_Line3);
131//! Triangle d'ordre 2
132static constexpr ItemTypeId ITI_Triangle6(IT_Triangle6);
133//! Quadrangle d'ordre 2 (avec 4 noeuds sur les faces)
134static constexpr ItemTypeId ITI_Quad8(IT_Quad8);
135//! Tétraèdre d'ordre 2
136static constexpr ItemTypeId ITI_Tetraedron10(IT_Tetraedron10);
137//! Hexaèdre d'ordre 2
138static constexpr ItemTypeId ITI_Hexaedron20(IT_Hexaedron20);
139//@}
140
141/*!
142 * \brief Mailles 2D dans un maillage 3D.
143 * \warning Ces types sont expérimentaux et ne doivent
144 * pas être utilisés en dehors de %Arcane.
145 */
146//@{
147//! Maille Line2 dans un maillage 3D. EXPERIMENTAL !
148static constexpr ItemTypeId ITI_Cell3D_Line2(IT_Cell3D_Line2);
149//! Maille Triangulaire à 3 noeuds dans un maillage 3D. EXPERIMENTAL !
150static constexpr ItemTypeId ITI_Cell3D_Triangle3(IT_Cell3D_Triangle3);
151//! Maille Quadrangulaire à 5 noeuds dans un maillage 3D. EXPERIMENTAL !
152static constexpr ItemTypeId ITI_Cell3D_Quad4(IT_Cell3D_Quad4);
153//@}
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
157
158} // End namespace Arcane
159
160/*---------------------------------------------------------------------------*/
161/*---------------------------------------------------------------------------*/
162
163#endif
Déclarations de types sur les entités.
Type d'une entité (Item).
Definition ItemTypeId.h:32
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-