Gestionnaire des types d'entités de maillage. Plus de détails...
#include <arcane/core/ItemTypeMng.h>
Fonctions membres publiques | |
void | build (IParallelSuperMng *parallel_mng, ITraceMng *trace) |
Constructeur effectif. | |
ConstArrayView< ItemTypeInfo * > | types () const |
Liste des types disponibles. | |
ItemTypeInfo * | typeFromId (Integer id) const |
Type correspondant au numéro id. | |
ItemTypeInfo * | typeFromId (ItemTypeId id) const |
Type correspondant au numéro id. | |
String | typeName (Integer id) const |
Nom du type correspondant au numéro id. | |
String | typeName (ItemTypeId id) const |
Nom du type correspondant au numéro id. | |
void | printTypes (std::ostream &ostr) |
Affiche les infos sur les types disponibles sur le flot ostr. | |
bool | hasGeneralCells (IMesh *mesh) const |
Indique si le maillage mesh contient des mailles génériques (en dehors des types intégrés ou additionnels) | |
void | setMeshWithGeneralCells (IMesh *mesh) noexcept |
Permet au maillage d'indiquer à l'ItemTypeMng s'il a des mailles génériques. | |
Fonctions membres publiques statiques | |
static ItemTypeMng * | singleton () |
Instance singleton du type. | |
static void | destroySingleton () |
Détruit le singleton. | |
static Integer | nbBasicItemType () |
nombre de types disponibles | |
static Integer | nbBuiltInItemType () |
nombre de types intégrés (hors types additionnels) | |
static Int32 | nbHChildrenByItemType (Integer type) |
AMR. | |
Attributs publics | |
UniqueArray< Integer > | m_ids_buffer |
Tampon d'allocation des données de type. | |
Fonctions membres protégées | |
ItemTypeMng () | |
Constructeur vide (non initialisé) | |
Fonctions membres privées | |
void | readTypes (IParallelSuperMng *parallel_mng, const String &filename) |
Lecture des types a partir d'un fichier de nom filename. | |
void | _build (IParallelSuperMng *parallel_mng, ITraceMng *trace) |
Fonctions membres privées statiques | |
static ItemTypeMng * | _singleton () |
Instance singleton du type. | |
static void | _destroySingleton () |
Détruit le singleton. | |
static String | _legacyTypeName (Integer t) |
Attributs privés | |
bool | m_initialized = false |
Flag d'initialisation. | |
std::atomic< Int32 > | m_initialized_counter |
ITraceMng * | m_trace = nullptr |
Gestionnaire de traces. | |
UniqueArray< ItemTypeInfo * > | m_types |
Liste des types. | |
MultiBufferT< ItemTypeInfoBuilder > * | m_types_buffer = nullptr |
Allocations des objets de type (il faut un pointeur pour eviter inclusion multiple) | |
std::set< IMesh * > | m_mesh_with_general_cells |
Ensemble des maillages contenant des mailles générales (sans type défini) | |
Attributs privés statiques | |
static ItemTypeMng * | singleton_instance = 0 |
Instance singleton. | |
static const Integer | m_nb_builtin_item_type = NB_BASIC_ITEM_TYPE |
Nombre de types intégrés (hors types additionnels) | |
Amis | |
class | mesh::DynamicMesh |
class | mesh::PolyhedralMesh |
class | Application |
class | ArcaneMain |
class | Item |
Gestionnaire des types d'entités de maillage.
Il n'existe qu'une seule instance de ce gestionnaire (singleton).
Les types souhaités (autre que les types par défaut) doivent être ajoutés avant que le premier maillage ne soit créé. Il n'est pas possible de créer de nouveaux types pendant l'exécution.
Les types disponibles doivent être strictement identiques pour tous les processus (i.e Tous les ItemTypeMng de tous les processus doivent avoir les mêmes types).
Définition à la ligne 65 du fichier ItemTypeMng.h.
|
protected |
Constructeur vide (non initialisé)
Définition à la ligne 51 du fichier ItemTypeMng.cc.
Référencé par _singleton().
|
protected |
Définition à la ligne 62 du fichier ItemTypeMng.cc.
|
private |
SDP: Pour les polygones les faces et les aretes sont identiques.
Définition à la ligne 96 du fichier ItemTypeMng.cc.
Références Arcane::ItemTypeInfoBuilder::addEdge(), Arcane::ItemTypeInfoBuilder::addFaceHeptagon(), Arcane::ItemTypeInfoBuilder::addFaceHexagon(), Arcane::ItemTypeInfoBuilder::addFaceLine(), Arcane::ItemTypeInfoBuilder::addFaceLine3(), Arcane::ItemTypeInfoBuilder::addFaceOctogon(), Arcane::ItemTypeInfoBuilder::addFacePentagon(), Arcane::ItemTypeInfoBuilder::addFaceQuad(), Arcane::ItemTypeInfoBuilder::addFaceQuad8(), Arcane::ItemTypeInfoBuilder::addFaceTriangle(), Arcane::ItemTypeInfoBuilder::addFaceTriangle6(), Arcane::ItemTypeInfoBuilder::addFaceVertex(), ARCANE_FATAL, Arcane::ItemTypeInfoBuilder::computeFaceEdgeInfos(), m_nb_builtin_item_type, m_trace, m_types, m_types_buffer, et readTypes().
Référencé par build().
|
staticprivate |
Détruit le singleton.
Le singleton peut ensuite être reconstruit par appel à destroySingleton()
Définition à la ligne 1084 du fichier ItemTypeMng.cc.
Références singleton_instance.
Référencé par Arcane::ArcaneMain::arcaneFinalize().
|
staticprivate |
Définition à la ligne 1146 du fichier ItemTypeMng.cc.
|
staticprivate |
Instance singleton du type.
Le singleton est créé lors du premier appel à cette fonction. Il reste valide tant que destroySingleton() n'a pas été appelé
Définition à la ligne 1076 du fichier ItemTypeMng.cc.
Références ItemTypeMng(), et singleton_instance.
Référencé par Arcane::ArcaneMain::arcaneInitialize(), Arcane::Application::initialize(), et nbBasicItemType().
void Arcane::ItemTypeMng::build | ( | IParallelSuperMng * | parallel_mng, |
ITraceMng * | trace | ||
) |
Constructeur effectif.
Définition à la ligne 71 du fichier ItemTypeMng.cc.
Références _build(), et m_initialized.
Détruit le singleton.
Le singleton peut ensuite être reconstruit par appel à singleton()
Définition à la ligne 122 du fichier ItemTypeMng.h.
Indique si le maillage mesh contient des mailles génériques (en dehors des types intégrés ou additionnels)
Définition à la ligne 1157 du fichier ItemTypeMng.cc.
Références m_mesh_with_general_cells.
|
static |
nombre de types disponibles
Définition à la ligne 1020 du fichier ItemTypeMng.cc.
Références _singleton().
Référencé par Arcane::ItemGroupImpl::_computeChildrenByType(), Arcane::ItemGroupImpl::_computeChildrenByTypeV2(), Arcane::DumpWEnsight7::_computeGroupParts(), Arcane::ItemGroupImpl::_initChildrenByType(), Arcane::ItemGroupImpl::_initChildrenByTypeV2(), et Arcane::VoronoiMeshIOService::_readCellsHybridGrid().
|
static |
nombre de types intégrés (hors types additionnels)
Définition à la ligne 1026 du fichier ItemTypeMng.cc.
Références m_nb_builtin_item_type.
Référencé par Arcane::DumpWEnsight7::_computeGroupParts(), Arcane::VoronoiMeshIOService::_readCellsHybridGrid(), et readTypes().
|
static |
void Arcane::ItemTypeMng::printTypes | ( | std::ostream & | ostr | ) |
Affiche les infos sur les types disponibles sur le flot ostr.
Définition à la ligne 846 du fichier ItemTypeMng.cc.
Références Arcane::ItemTypeInfo::localFace(), m_initialized, m_types, Arcane::ItemTypeInfo::nbLocalFace(), Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ItemTypeInfo::typeId(), et Arcane::ItemTypeInfo::typeName().
|
private |
Lecture des types a partir d'un fichier de nom filename.
Lecture d'un fichier de types voronoi.
Une cellule voronoi est un polytope dont le nombre de faces et de noeuds varie d'une cellule a l'autre. Ici, le type de chaque cellule est lu dans un fichier de types associe a un maillage d'entree donne. Ce fichier est passe dans la variable d'environnement: ARCANE_ITEM_TYPE_FILE Ex: setenv ARCANE_ITEM_TYPE_FILE PATH_TO_FILE/item_file Le format du fichier est la suivante:
nb_type type_id nb_faces nb_edges nb_node_face0 node0_face0 ... nodeN_face1 . . . . . . . . . nb_node_faceN node0_faceN ... nodeN_faceN
node0_edge0 node1_edge1 lefFace_edge0 rightFace_edge0 node0_edgeN node1_edge1 lefFace_edgeN rightFace_edgeN
Définition à la ligne 896 du fichier ItemTypeMng.cc.
Références Arcane::ItemTypeInfoBuilder::addEdge(), Arcane::ItemTypeInfoBuilder::addFaceGeneric(), Arcane::arcaneCheckArraySize(), Arcane::IParallelMng::commRank(), Arccore::ITraceMng::debug(), Arccore::Trace::High, Arccore::ITraceMng::info(), Arccore::String::localstr(), m_trace, m_types, m_types_buffer, nbBuiltInItemType(), et Arcane::ItemTypeInfo::typeName().
Référencé par _build().
Permet au maillage d'indiquer à l'ItemTypeMng s'il a des mailles génériques.
Définition à la ligne 1169 du fichier ItemTypeMng.cc.
|
inlinestatic |
Instance singleton du type.
Le singleton est créé lors du premier appel à cette fonction. Il reste valide tant que destroySingleton() n'a pas été appelé
Définition à la ligne 114 du fichier ItemTypeMng.h.
ItemTypeInfo * Arcane::ItemTypeMng::typeFromId | ( | Integer | id | ) | const |
Type correspondant au numéro id.
Définition à la ligne 1107 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
Référencé par Arcane::mesh::OneMeshItemAdder::addOneCell(), typeName(), et typeName().
ItemTypeInfo * Arcane::ItemTypeMng::typeFromId | ( | ItemTypeId | id | ) | const |
Type correspondant au numéro id.
Définition à la ligne 1117 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
String Arcane::ItemTypeMng::typeName | ( | Integer | id | ) | const |
Nom du type correspondant au numéro id.
Définition à la ligne 1127 du fichier ItemTypeMng.cc.
Références typeFromId(), et Arcane::ItemTypeInfo::typeName().
String Arcane::ItemTypeMng::typeName | ( | ItemTypeId | id | ) | const |
Nom du type correspondant au numéro id.
Définition à la ligne 1136 du fichier ItemTypeMng.cc.
Références typeFromId(), et Arcane::ItemTypeInfo::typeName().
ConstArrayView< ItemTypeInfo * > Arcane::ItemTypeMng::types | ( | ) | const |
Liste des types disponibles.
Définition à la ligne 1097 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
|
friend |
Définition à la ligne 70 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 71 du fichier ItemTypeMng.h.
Définition à la ligne 72 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 68 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 69 du fichier ItemTypeMng.h.
UniqueArray<Integer> Arcane::ItemTypeMng::m_ids_buffer |
Tampon d'allocation des données de type.
Ce champs est public en attendant d'affiner la gestion de l'accès.
Définition à la ligne 196 du fichier ItemTypeMng.h.
Référencé par Arcane::ItemTypeInfoBuilder::addEdge(), Arcane::ItemTypeInfoBuilder::addFaceGeneric(), Arcane::ItemTypeInfoBuilder::addFaceHeptagon(), Arcane::ItemTypeInfoBuilder::addFaceHexagon(), Arcane::ItemTypeInfoBuilder::addFaceLine(), Arcane::ItemTypeInfoBuilder::addFaceLine3(), Arcane::ItemTypeInfoBuilder::addFaceOctogon(), Arcane::ItemTypeInfoBuilder::addFacePentagon(), Arcane::ItemTypeInfoBuilder::addFaceQuad(), Arcane::ItemTypeInfoBuilder::addFaceQuad8(), Arcane::ItemTypeInfoBuilder::addFaceTriangle(), Arcane::ItemTypeInfoBuilder::addFaceTriangle6(), Arcane::ItemTypeInfoBuilder::addFaceVertex(), Arcane::ItemTypeInfoBuilder::computeFaceEdgeInfos(), Arcane::ItemTypeInfo::localEdge(), et Arcane::ItemTypeInfo::localFace().
Flag d'initialisation.
Définition à la ligne 173 du fichier ItemTypeMng.h.
Référencé par build(), printTypes(), typeFromId(), typeFromId(), et types().
|
private |
Définition à la ligne 175 du fichier ItemTypeMng.h.
|
private |
Ensemble des maillages contenant des mailles générales (sans type défini)
Définition à la ligne 187 du fichier ItemTypeMng.h.
Référencé par hasGeneralCells().
|
staticprivate |
Nombre de types intégrés (hors types additionnels)
Définition à la ligne 170 du fichier ItemTypeMng.h.
Référencé par _build(), et nbBuiltInItemType().
Gestionnaire de traces.
Définition à la ligne 178 du fichier ItemTypeMng.h.
Référencé par _build(), et readTypes().
|
private |
Liste des types.
Définition à la ligne 181 du fichier ItemTypeMng.h.
Référencé par _build(), printTypes(), readTypes(), typeFromId(), typeFromId(), et types().
|
private |
Allocations des objets de type (il faut un pointeur pour eviter inclusion multiple)
Définition à la ligne 184 du fichier ItemTypeMng.h.
Référencé par _build(), et readTypes().
|
staticprivate |
Instance singleton.
Définition à la ligne 167 du fichier ItemTypeMng.h.
Référencé par _destroySingleton(), et _singleton().