14#include "arcane/utils/FatalErrorException.h"
15#include "arcane/utils/TraceInfo.h"
17#include "arcane/ArcaneTypes.h"
18#include "arcane/ItemTypeInfoBuilder.h"
29void ItemTypeInfoBuilder::
30_checkDimension(
Int16 dim)
37 ARCANE_FATAL(
"Incoherent dimension for ItemType: current='{0}' new='{1}'",
44void ItemTypeInfoBuilder::
59void ItemTypeInfoBuilder::
69void ItemTypeInfoBuilder::
70setInfos(ItemTypeMng* mng,
71 Integer type_id, String type_name,
72 Integer nb_node, Integer nb_edge, Integer nb_face)
84 buf[m_first_item_index +
edge_index] = buf.size();
99 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
100 buf.add(IT_FaceVertex);
114 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
128 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
145 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
146 buf.add(IT_Triangle3);
152 for (Integer i = 0; i < 3; ++i)
161 Integer
n3, Integer
n4, Integer
n5)
165 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
166 buf.add(IT_Triangle6);
175 for (Integer i = 0; i < 3; ++i)
187 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
195 for (Integer i = 0; i < 4; ++i)
204 Integer
n4, Integer
n5, Integer
n6, Integer
n7)
208 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
220 for (Integer i = 0; i < 4; ++i)
232 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
233 buf.add(IT_Pentagon5);
241 for (Integer i = 0; i < 5; ++i)
250 Integer
n3, Integer
n4, Integer
n5)
254 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
255 buf.add(IT_Hexagon6);
264 for (Integer i = 0; i < 6; ++i)
273 Integer
n4, Integer
n5, Integer
n6)
277 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
278 buf.add(IT_Heptagon7);
288 for (Integer i = 0; i < 7; ++i)
297 Integer
n4, Integer
n5, Integer
n6, Integer
n7)
301 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
302 buf.add(IT_Octogon8);
313 for (Integer i = 0; i < 8; ++i)
327 buf[m_first_item_index + m_nb_edge + face_index] = buf.size();
347 Integer
fi = buf[m_first_item_index + m_nb_edge +
i_face];
348 Integer* index = &buf[
fi];
362 ARCANE_FATAL(
"Conflicting item definition : duplicated edge [{0}:{1}] found as edge {2} and {3} of item {4}({5})",
368 ARCANE_FATAL(
"Undefined edge [{0}:{1}] found as edge of item {2}({3})",
379void ItemTypeInfoBuilder::
384 Integer total = m_nb_face+m_nb_edge;
387 m_first_item_index = buf.size();
388 buf.resize(m_first_item_index + total);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Type d'une entité (Item).
static ItemTypeId fromInteger(Int64 v)
Créé une instance à partir d'un entier.
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 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 addFaceVertex(Integer face_index, Integer n0)
Ajoute un sommet à la liste des faces (pour les elements 1D)
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 addFaceLine(Integer face_index, Integer n0, Integer n1)
Ajoute une ligne à la liste des faces (pour les elements 2D)
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.
Informations locales sur une arête d'une maille.
Informations locales sur une face d'une maille.
LocalEdge localEdge(Integer id) const
Connectivité locale de la i-ème arête de la maille.
Int16 m_dimension
Dimension (-1) si pas initialisé.
Integer nbLocalEdge() const
Nombre d'arêtes de l'entité
Int16 dimension() const
Dimension de l'élément (<0 si inconnu)
String typeName() const
Nom du type.
Integer nbLocalFace() const
Nombre de faces de l'entité
Int16 typeId() const
Numéro du type.
Gestionnaire des types d'entités de maillage.
UniqueArray< Integer > m_ids_buffer
Tampon d'allocation des données de type.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-