Arcane  v4.1.11.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemTypeInfoBuilder.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/* ItemTypeInfoBuilder.h (C) 2000-2026 */
9/* */
10/* Construction d'un type d'entité du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITEMTYPEINFOBUILDER_H
13#define ARCANE_CORE_ITEMTYPEINFOBUILDER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/ItemTypeInfo.h"
18
19#include <array>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
48: public ItemTypeInfo
49{
50 public:
51
53 enum class Dimension : Int16
54 {
55 DimUnknown = -1,
56 Dim0 = 0,
57 Dim1 = 1,
58 Dim2 = 2,
59 Dim3 = 3
60 };
61
62 public:
63
66
67 public:
68
69 ARCANE_DEPRECATED_REASON("Y2025: Use setInfo(...,Dimension dimension, ...) instead")
70 void setInfos(ItemTypeMng* mng, Int16 type_id, String type_name,
71 Int32 nb_node, Int32 nb_edge, Int32 nb_face);
72
73 ARCANE_DEPRECATED_REASON("Y2025: Use setInfo(...,Dimension dimension, ...) instead")
74 void setInfos(ItemTypeMng* mng, ItemTypeId type_id, String type_name,
75 Int32 nb_node, Int32 nb_edge, Int32 nb_face);
76
80 ARCANE_DEPRECATED_REASON("Y2025: Use setInfo(...,Dimension dimension, ...) instead")
81 void setInfos(ItemTypeMng* mng, ItemTypeId type_id, String type_name, Int16 dimension,
82 Int32 nb_node, Int32 nb_edge, Int32 nb_face);
83
87 void setInfos(ItemTypeMng* mng, ItemTypeId type_id, String type_name, Dimension dimension,
88 Int32 nb_node, Int32 nb_edge, Int32 nb_face);
89
93 void setInfos(ItemTypeMng* mng, Int16 type_id, String type_name, Dimension dimension,
94 Int32 nb_node, Int32 nb_edge, Int32 nb_face);
95
102 void setOrder(Int16 order, ItemTypeId linear_type);
103
112 void addEdge(Integer edge_index, Integer n0, Integer n1, Integer f_left, Integer f_right);
113
121 void addEdgeAndFaceLine(Int32 edge_face_index,
122 std::array<Int16, 2> begin_end_node,
123 std::array<Int16, 2> left_and_right_face);
124
131 void addEdge2D(Integer edge_index, Integer n0, Integer n1);
132
134 void addFaceVertex(Integer face_index, Integer n0);
135
137 void addFaceLine(Integer face_index, Integer n0, Integer n1);
138
140 void addFaceLine3(Integer face_index, Integer n0, Integer n1, Integer n2);
141
143 void addFaceLine4(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3);
144
146 void addFaceTriangle(Integer face_index, Integer n0, Integer n1, Integer n2);
147
149 void addFaceTriangle6(Integer face_index, Integer n0, Integer n1, Integer n2,
150 Integer n3, Integer n4, Integer n5);
151
153 void addFaceQuad(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3);
154
156 void addFaceQuad8(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3,
157 Integer n4, Integer n5, Integer n6, Integer n7);
158
160 void addFaceQuad9(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3,
161 Integer n4, Integer n5, Integer n6, Integer n7, Integer n8);
162
164 void addFacePentagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4);
165
167 void addFaceHexagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3,
168 Integer n4, Integer n5);
169
171 void addFaceHeptagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3,
172 Integer n4, Integer n5, Integer n6);
173
175 void addFaceOctogon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3,
176 Integer n4, Integer n5, Integer n6, Integer n7);
177
179 void addFaceGeneric(Integer face_index, Integer type_id, ConstArrayView<Integer> n);
180
183
185 void setIsValidForCell(bool is_valid)
186 {
187 m_is_valid_for_cell = is_valid;
188 }
189
191 void setHasCenterNode(bool has_center_node)
192 {
193 m_has_center_node = has_center_node;
194 }
195
196 private:
197
198 void _setNbEdgeAndFace(Integer nb_edge,Integer nb_face);
199 void _checkDimension(Int16 dim);
200 void _checkSetIsPolygon();
201};
202
203/*---------------------------------------------------------------------------*/
204/*---------------------------------------------------------------------------*/
205
206} // End namespace Arcane
207
208/*---------------------------------------------------------------------------*/
209/*---------------------------------------------------------------------------*/
210
211#endif
212
Vue constante d'un tableau de type T.
Type d'une entité (Item).
Definition ItemTypeId.h:32
void setOrder(Int16 order, ItemTypeId linear_type)
Positionne l'ordre du type.
void addFaceHexagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5)
Ajoute un hexagone à la liste des faces.
void addEdge(Integer edge_index, Integer n0, Integer n1, Integer f_left, Integer f_right)
Ajoute une arête à la liste des arêtes.
void addFacePentagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4)
Ajoute un pentagone à la liste des faces.
void addFaceHeptagon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5, Integer n6)
Ajoute un heptagone à la liste des faces.
void addFaceLine4(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3)
Ajoute une ligne d'ordre 3 à la liste des faces (pour les elements 2D)
void addFaceQuad8(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5, Integer n6, Integer n7)
Ajoute un quadrilatère quadratique à la liste des faces.
void addFaceLine3(Integer face_index, Integer n0, Integer n1, Integer n2)
Ajoute une ligne quadratique à la liste des faces (pour les elements 2D)
void addFaceOctogon(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5, Integer n6, Integer n7)
Ajoute un heptagone à la liste des faces.
void addFaceGeneric(Integer face_index, Integer type_id, ConstArrayView< Integer > n)
Ajoute une face générique à la liste des faces.
void addEdge2D(Integer edge_index, Integer n0, Integer n1)
Ajoute une arête pour une maille 2D d'un maillage en 3D.
void addFaceVertex(Integer face_index, Integer n0)
Ajoute un sommet à la liste des faces (pour les elements 1D)
ItemTypeInfoBuilder()=default
Constructeur par défaut.
void addFaceTriangle(Integer face_index, Integer n0, Integer n1, Integer n2)
Ajoute un triangle à la liste des faces.
void computeFaceEdgeInfos()
Calcule les relations face->arêtes.
void addFaceQuad(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3)
Ajoute un quadrilatère à la liste des faces.
void addFaceQuad9(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5, Integer n6, Integer n7, Integer n8)
Ajoute un quadrilatère quadratique à la liste des faces.
void addEdgeAndFaceLine(Int32 edge_face_index, std::array< Int16, 2 > begin_end_node, std::array< Int16, 2 > left_and_right_face)
Ajoute une arête et une face.
void addFaceLine(Integer face_index, Integer n0, Integer n1)
Ajoute une ligne à la liste des faces (pour les elements 2D)
void setHasCenterNode(bool has_center_node)
Positionne l'information indiquant si le type a un nœud au centre.
void setIsValidForCell(bool is_valid)
Positionne l'information indiquant si le type est valide pour une maille.
void addFaceTriangle6(Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4, Integer n5)
Ajoute un triangle quadratique à la liste des faces.
bool m_has_center_node
Indique si le type a un nœud au centre (pour les faces ou les mailles)
Int32 order() const
Ordre du type.
Int16 dimension() const
Dimension de l'élément (<0 si inconnu)
bool m_is_valid_for_cell
Indique si le type est valide pour une maille.
ItemTypeInfo()=default
Constructeur par défaut.
Gestionnaire des types d'entités d'un maillage.
Definition ItemTypeMng.h:65
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
std::int16_t Int16
Type entier signé sur 16 bits.
std::int32_t Int32
Type entier signé sur 32 bits.