Construction des infos d'un type d'entité du maillage. Plus de détails...
#include <arcane/core/ItemTypeInfoBuilder.h>
Types publics | |
enum class | Dimension : Int16 { DimUnknown = -1 , Dim0 = 0 , Dim1 = 1 , Dim2 = 2 , Dim3 = 3 } |
Dimension du type. Plus de détails... | |
Fonctions membres publiques | |
ItemTypeInfoBuilder ()=default | |
Constructeur par défaut. | |
void | setInfos (ItemTypeMng *mng, Int16 type_id, String type_name, Int32 nb_node, Int32 nb_edge, Int32 nb_face) |
void | setInfos (ItemTypeMng *mng, ItemTypeId type_id, String type_name, Int32 nb_node, Int32 nb_edge, Int32 nb_face) |
void | setInfos (ItemTypeMng *mng, ItemTypeId type_id, String type_name, Int16 dimension, Int32 nb_node, Int32 nb_edge, Int32 nb_face) |
Positionne les informations d'un type. | |
void | setInfos (ItemTypeMng *mng, ItemTypeId type_id, String type_name, Dimension dimension, Int32 nb_node, Int32 nb_edge, Int32 nb_face) |
Positionne les informations d'un type. | |
void | setInfos (ItemTypeMng *mng, Int16 type_id, String type_name, Dimension dimension, Int32 nb_node, Int32 nb_edge, Int32 nb_face) |
Positionne les informations d'un type. | |
void | setOrder (Int16 order, ItemTypeId linear_type) |
Positionne l'ordre du type. | |
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 | 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 | addEdge2D (Integer edge_index, Integer n0, Integer n1) |
Ajoute une arête pour une maille 2D. | |
void | addFaceVertex (Integer face_index, Integer n0) |
Ajoute un sommet à la liste des faces (pour les elements 1D) | |
void | addFaceLine (Integer face_index, Integer n0, Integer n1) |
Ajoute une ligne à la liste des faces (pour les elements 2D) | |
void | addFaceLine3 (Integer face_index, Integer n0, Integer n1, Integer n2) |
Ajoute une ligne quadratique à la liste des faces (pour les elements 2D) | |
void | addFaceTriangle (Integer face_index, Integer n0, Integer n1, Integer n2) |
Ajoute un triangle à la liste des faces. | |
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. | |
void | addFaceQuad (Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3) |
Ajoute un quadrilatère à 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 | addFacePentagon (Integer face_index, Integer n0, Integer n1, Integer n2, Integer n3, Integer n4) |
Ajoute un pentagone à la liste des faces. | |
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 | 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 | 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 | computeFaceEdgeInfos () |
Calcule les relations face->arêtes. | |
void | setIsValidForCell (bool is_valid) |
![]() | |
Int16 | typeId () const |
Numéro du type. | |
ItemTypeId | itemTypeId () const |
Numéro du type. | |
Integer | nbLocalNode () const |
Nombre de noeuds de l'entité | |
Integer | nbLocalFace () const |
Nombre de faces de l'entité | |
Integer | nbLocalEdge () const |
Nombre d'arêtes de l'entité | |
String | typeName () const |
Nom du type. | |
Int16 | dimension () const |
Dimension de l'élément (<0 si inconnu) | |
bool | isValidForCell () const |
Indique si le type est valide pour créér une maille (Cell) | |
Int32 | order () const |
Ordre du type. | |
Int16 | linearTypeId () const |
Type de l'élément linéaire correspondant. | |
ItemTypeId | linearItemTypeId () const |
Type de l'élément linéaire correspondant. | |
const ItemTypeInfo * | linearTypeInfo () const |
Type de l'élément linéaire correspondant. | |
LocalEdge | localEdge (Integer id) const |
Connectivité locale de la i-ème arête de la maille. | |
LocalFace | localFace (Integer id) const |
Connectivité locale de la i-ème face de la maille. | |
Fonctions membres privées | |
void | _setNbEdgeAndFace (Integer nb_edge, Integer nb_face) |
void | _checkDimension (Int16 dim) |
Membres hérités additionnels | |
![]() | |
ItemTypeInfo ()=default | |
Constructeur par défaut. | |
![]() | |
ItemTypeMng * | m_mng = nullptr |
ItemTypeId | m_type_id { IT_NullType } |
ItemTypeId | m_linear_type_id { IT_NullType } |
Int16 | m_dimension = (-1) |
Dimension (-1) si pas initialisé. | |
bool | m_is_valid_for_cell = true |
Indique si le type est valide pour une maille. | |
Integer | m_nb_node = 0 |
Integer | m_nb_edge = 0 |
Integer | m_nb_face = 0 |
Int32 | m_order = 1 |
Integer | m_first_item_index = 0 |
Indice de ce type dans la liste des index de m_mng. | |
String | m_type_name |
Construction des infos d'un type d'entité du maillage.
Pour des raisons de performances, on essaie de stocker ces informations de manière contigue en mémoire car elles seront accédées très souvent. Pour cela, on utilise un Buffer dans ItemTypeMng.
La méthode setInfos() permet d'indiquer le type et le nombre de noeuds, d'arêtes et de faces du type. Il faut ensuite appeler les méthodes addEdge() et addFace...()
Une fois le type complètement défini, il ne doit plus être modifié.
Pour un numéro de type donné, il n'existe qu'une instance de ItemTypeInfo et cette instance reste valide tant que le gestionnaire de type (ItemTypeMng) n'est pas détruit. Par conséquent, il est possible de stocker le pointeur sur l'instance et de comparer deux types uniquement en comparant les pointeurs
Définition à la ligne 48 du fichier ItemTypeInfoBuilder.h.
|
strong |
Dimension du type.
Définition à la ligne 54 du fichier ItemTypeInfoBuilder.h.
|
private |
Définition à la ligne 29 du fichier ItemTypeInfoBuilder.cc.
Définition à la ligne 430 du fichier ItemTypeInfoBuilder.cc.
void Arcane::ItemTypeInfoBuilder::addEdge | ( | Integer | edge_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | f_left, | ||
Integer | f_right ) |
Ajoute une arête à la liste des arêtes.
n0 noeud origine n1 noeud extrémité f_left numéro local de la face à gauche f_right numéro local de la face à droite
Définition à la ligne 100 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), Arcane::ItemTypeMng::_readTypes(), addEdgeAndFaceLine(), et setInfos().
Ajoute une arête pour une maille 2D.
n0 noeud origine n1 noeud extrémité
Définition à la ligne 114 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::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.
edge_face_index index local de l'arête et de la face. begin_end_node couple (noeud origine,noeud extrémité) de l'arête et la face à ajouter. left_and_right_face couple numéro local (face à gauche, face à droite) de l'arête à ajouter
Définition à la ligne 159 du fichier ItemTypeInfoBuilder.cc.
Références addEdge(), et addFaceLine().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceGeneric | ( | Integer | face_index, |
Integer | type_id, | ||
ConstArrayView< Integer > | n ) |
Ajoute une face générique à la liste des faces.
Définition à la ligne 371 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, Arcane::AbstractArray< T >::size(), et Arcane::ConstArrayView< T >::size().
Référencé par Arcane::ItemTypeMng::_readTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::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.
Définition à la ligne 322 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceHexagon | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2, | ||
Integer | n3, | ||
Integer | n4, | ||
Integer | n5 ) |
Ajoute un hexagone à la liste des faces.
Définition à la ligne 299 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
Ajoute une ligne à la liste des faces (pour les elements 2D)
Définition à la ligne 143 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), Arcane::ItemTypeMng::_readTypes(), addEdgeAndFaceLine(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceLine3 | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2 ) |
Ajoute une ligne quadratique à la liste des faces (pour les elements 2D)
Définition à la ligne 174 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::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.
Définition à la ligne 346 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFacePentagon | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2, | ||
Integer | n3, | ||
Integer | n4 ) |
Ajoute un pentagone à la liste des faces.
Définition à la ligne 278 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceQuad | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2, | ||
Integer | n3 ) |
Ajoute un quadrilatère à la liste des faces.
Définition à la ligne 233 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::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.
Définition à la ligne 253 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceTriangle | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2 ) |
Ajoute un triangle à la liste des faces.
Définition à la ligne 191 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::addFaceTriangle6 | ( | Integer | face_index, |
Integer | n0, | ||
Integer | n1, | ||
Integer | n2, | ||
Integer | n3, | ||
Integer | n4, | ||
Integer | n5 ) |
Ajoute un triangle quadratique à la liste des faces.
Définition à la ligne 210 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
Ajoute un sommet à la liste des faces (pour les elements 1D)
Définition à la ligne 128 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::Array< DataType >::add(), Arcane::ItemTypeInfo::m_first_item_index, et Arcane::AbstractArray< T >::size().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::computeFaceEdgeInfos | ( | ) |
Calcule les relations face->arêtes.
Définition à la ligne 392 du fichier ItemTypeInfoBuilder.cc.
Références ARCANE_FATAL, Arcane::ItemTypeInfo::LocalEdge::beginNode(), Arcane::ItemTypeInfo::LocalFace::edge(), Arcane::ItemTypeInfo::LocalEdge::endNode(), Arcane::ItemTypeInfo::localEdge(), Arcane::ItemTypeInfo::m_first_item_index, Arcane::ItemTypeInfo::LocalFace::nbEdge(), Arcane::ItemTypeInfo::nbLocalEdge(), Arcane::ItemTypeInfo::nbLocalFace(), Arcane::ItemTypeInfo::LocalFace::nbNode(), Arcane::ItemTypeInfo::LocalFace::node(), Arcane::ItemTypeInfo::typeId(), et Arcane::ItemTypeInfo::typeName().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().
void Arcane::ItemTypeInfoBuilder::setInfos | ( | ItemTypeMng * | mng, |
Int16 | type_id, | ||
String | type_name, | ||
Dimension | dimension, | ||
Int32 | nb_node, | ||
Int32 | nb_edge, | ||
Int32 | nb_face ) |
Positionne les informations d'un type.
Définition à la ligne 80 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::ItemTypeInfo::dimension().
void Arcane::ItemTypeInfoBuilder::setInfos | ( | ItemTypeMng * | mng, |
Int16 | type_id, | ||
String | type_name, | ||
Int32 | nb_node, | ||
Int32 | nb_edge, | ||
Int32 | nb_face ) |
Définition à la ligne 70 du fichier ItemTypeInfoBuilder.cc.
void Arcane::ItemTypeInfoBuilder::setInfos | ( | ItemTypeMng * | mng, |
ItemTypeId | type_id, | ||
String | type_name, | ||
Dimension | dimension, | ||
Int32 | nb_node, | ||
Int32 | nb_edge, | ||
Int32 | nb_face ) |
Positionne les informations d'un type.
Définition à la ligne 44 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::ItemTypeInfo::dimension(), et Arcane::ItemTypeInfo::m_dimension.
void Arcane::ItemTypeInfoBuilder::setInfos | ( | ItemTypeMng * | mng, |
ItemTypeId | type_id, | ||
String | type_name, | ||
Int32 | nb_node, | ||
Int32 | nb_edge, | ||
Int32 | nb_face ) |
Définition à la ligne 60 du fichier ItemTypeInfoBuilder.cc.
|
inline |
Définition à la ligne 178 du fichier ItemTypeInfoBuilder.h.
void Arcane::ItemTypeInfoBuilder::setOrder | ( | Int16 | order, |
ItemTypeId | linear_type ) |
Positionne l'ordre du type.
Si pas appelé, on considère que le type est pour les entités d'ordre 1. Le premier argument est l'ordre de l'entité et le deuxième l'élément d'ordre 1 correspondant.
Définition à la ligne 90 du fichier ItemTypeInfoBuilder.cc.
Références Arcane::ItemTypeInfo::order().
Référencé par Arcane::ItemTypeMng::_buildTypes(), et setInfos().