Gestionnaire des types d'entités d'un maillage. Plus de détails...
#include <arcane/core/ItemTypeMng.h>
Fonctions membres publiques | |
void | build (IParallelSuperMng *parallel_mng, ITraceMng *trace) |
Constructeur effectif. | |
void | build (IMesh *mesh) |
Construit l'instance associée au maillage mesh. | |
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. | |
Fonctions membres protégées | |
ItemTypeMng () | |
Constructeur vide (non initialisé) | |
Fonctions membres privées | |
void | _buildSingleton (IParallelSuperMng *parallel_mng, ITraceMng *trace) |
void | _buildTypes (IMesh *mesh, IParallelSuperMng *parallel_mng, ITraceMng *trace) |
Construit les types des entités. | |
void | _readTypes (IParallelSuperMng *parallel_mng, const String &filename) |
Lecture des types a partir d'un fichier de nom filename. | |
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 | |
friend | ItemTypeInfo |
friend | ItemTypeInfoBuilder |
bool | m_initialized = false |
Flag d'initialisation. | |
std::atomic< Int32 > | m_initialized_counter = 0 |
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 éviter inclusion multiple) | |
std::set< IMesh * > | m_mesh_with_general_cells |
Ensemble des maillages contenant des mailles générales (sans type défini) | |
UniqueArray< Integer > | m_ids_buffer |
Tableau contenant les données de type. | |
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 d'un maillage.
Il faut appeler build(IMesh*) avant de pouvoir utiliser cette instance.
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 64 du fichier ItemTypeMng.h.
|
protected |
Constructeur vide (non initialisé)
Définition à la ligne 55 du fichier ItemTypeMng.cc.
Référencé par _singleton(), et singleton().
|
protected |
Définition à la ligne 63 du fichier ItemTypeMng.cc.
|
private |
Définition à la ligne 97 du fichier ItemTypeMng.cc.
|
private |
Construit les types des entités.
SDP: Pour les polygones les faces et les arêtes sont identiques.
Définition à la ligne 126 du fichier ItemTypeMng.cc.
Références _readTypes(), Arcane::ItemTypeInfoBuilder::addEdge(), Arcane::ItemTypeInfoBuilder::addEdge2D(), Arcane::ItemTypeInfoBuilder::addEdgeAndFaceLine(), 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(), Arcane::platform::getEnvironmentVariable(), m_nb_builtin_item_type, m_trace, m_types, m_types_buffer, Arcane::String::null(), et Arcane::ItemTypeInfoBuilder::setOrder().
Référencé par build().
|
staticprivate |
Détruit le singleton.
Le singleton peut ensuite être reconstruit par appel à destroySingleton()
Définition à la ligne 1153 du fichier ItemTypeMng.cc.
Références singleton_instance.
Référencé par Arcane::ArcaneMain::arcaneFinalize(), et destroySingleton().
Définition à la ligne 1215 du fichier ItemTypeMng.cc.
|
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 965 du fichier ItemTypeMng.cc.
Références Arcane::ItemTypeInfoBuilder::addEdge(), Arcane::ItemTypeInfoBuilder::addFaceGeneric(), Arcane::ItemTypeInfoBuilder::addFaceLine(), Arcane::arcaneCheckArraySize(), Arcane::IParallelSuperMng::broadcast(), Arcane::IParallelSuperMng::commRank(), Arcane::Array< DataType >::data(), Arcane::platform::getFileLength(), Arcane::Trace::High, Arcane::String::localstr(), m_trace, m_types, m_types_buffer, nbBuiltInItemType(), Arcane::Array< DataType >::resize(), Arcane::AbstractArray< T >::size(), Arcane::ItemTypeInfo::typeName(), et Arcane::Array< DataType >::unguardedBasePointer().
Référencé par _buildTypes().
|
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 1145 du fichier ItemTypeMng.cc.
Références ItemTypeMng(), et singleton_instance.
Référencé par Arcane::ArcaneMain::arcaneInitialize(), Arcane::Application::initialize(), nbBasicItemType(), et singleton().
void Arcane::ItemTypeMng::build | ( | IMesh * | mesh | ) |
Construit l'instance associée au maillage mesh.
Définition à la ligne 72 du fichier ItemTypeMng.cc.
Références _buildTypes(), ARCANE_FATAL, et m_initialized.
void Arcane::ItemTypeMng::build | ( | IParallelSuperMng * | parallel_mng, |
ITraceMng * | trace ) |
Constructeur effectif.
Cette méthode ne doit être appelée que pout initialiser l'instance singleton qui est obsolète.
Définition à la ligne 88 du fichier ItemTypeMng.cc.
Référencé par Arcane::Application::initialize().
|
inlinestatic |
Détruit le singleton.
Le singleton peut ensuite être reconstruit par appel à singleton()
Définition à la ligne 136 du fichier ItemTypeMng.h.
Références _destroySingleton(), et destroySingleton().
Référencé par destroySingleton().
bool Arcane::ItemTypeMng::hasGeneralCells | ( | IMesh * | mesh | ) | const |
Indique si le maillage mesh contient des mailles génériques (en dehors des types intégrés ou additionnels)
Définition à la ligne 1226 du fichier ItemTypeMng.cc.
Références m_mesh_with_general_cells.
|
static |
nombre de types disponibles
Définition à la ligne 1089 du fichier ItemTypeMng.cc.
Références _singleton(), et types().
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 1095 du fichier ItemTypeMng.cc.
Références m_nb_builtin_item_type.
Référencé par Arcane::DumpWEnsight7::_computeGroupParts(), Arcane::VoronoiMeshIOService::_readCellsHybridGrid(), et _readTypes().
AMR.
Définition à la ligne 1104 du fichier ItemTypeMng.cc.
Références ARCANE_FATAL.
Référencé par Arcane::mesh::MeshRefinement::init(), et Arcane::mesh::ItemRefinement::refineOneCell().
void Arcane::ItemTypeMng::printTypes | ( | std::ostream & | ostr | ) |
Affiche les infos sur les types disponibles sur le flot ostr.
Définition à la ligne 915 du fichier ItemTypeMng.cc.
Références Arcane::ItemTypeInfo::localFace(), m_initialized, m_types, Arcane::ItemTypeInfo::nbLocalFace(), Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ItemTypeInfo::LocalFace::nbNode(), Arcane::ItemTypeInfo::LocalFace::node(), Arcane::ItemTypeInfo::typeId(), et Arcane::ItemTypeInfo::typeName().
|
noexcept |
Permet au maillage d'indiquer à l'ItemTypeMng s'il a des mailles génériques.
Définition à la ligne 1238 du fichier ItemTypeMng.cc.
Références m_mesh_with_general_cells.
|
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 128 du fichier ItemTypeMng.h.
Références _singleton(), ItemTypeMng(), et singleton().
Référencé par singleton().
ItemTypeInfo * Arcane::ItemTypeMng::typeFromId | ( | Integer | id | ) | const |
Type correspondant au numéro id.
Définition à la ligne 1176 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
Référencé par Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::VoronoiMeshIOService::_readCellsHybridGrid(), Arcane::MshParallelMeshReader::_readElementsFromFile(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::VtkMeshIOService::_readUnstructuredGrid(), Arcane::mesh::DynamicMeshIncrementalBuilder::addCells(), Arcane::mesh::DynamicMeshIncrementalBuilder::addFaces(), Arcane::mesh::DynamicMeshIncrementalBuilder::addHChildrenCells(), Arcane::mesh::OneMeshItemAdder::addOneParentItem(), Arcane::mesh::FullCellInfo::FullCellInfo(), Arcane::UnstructuredMeshUtilities::getFacesLocalIdFromConnectivity(), Arcane::mesh::ItemFamily::readFromDump(), typeName(), et typeName().
ItemTypeInfo * Arcane::ItemTypeMng::typeFromId | ( | ItemTypeId | id | ) | const |
Type correspondant au numéro id.
Définition à la ligne 1186 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
Nom du type correspondant au numéro id.
Définition à la ligne 1196 du fichier ItemTypeMng.cc.
Références typeFromId(), et Arcane::ItemTypeInfo::typeName().
Référencé par Arcane::ItemGroupImpl::_computeChildrenByTypeV2(), et Arcane::ItemGroupImpl::_initChildrenByType().
String Arcane::ItemTypeMng::typeName | ( | ItemTypeId | id | ) | const |
Nom du type correspondant au numéro id.
Définition à la ligne 1205 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 1166 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
Référencé par nbBasicItemType().
|
friend |
Définition à la ligne 69 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 70 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 71 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 67 du fichier ItemTypeMng.h.
|
friend |
Définition à la ligne 68 du fichier ItemTypeMng.h.
|
private |
Définition à la ligne 72 du fichier ItemTypeMng.h.
|
private |
Définition à la ligne 73 du fichier ItemTypeMng.h.
|
private |
Tableau contenant les données de type.
Définition à la ligne 199 du fichier ItemTypeMng.h.
|
private |
Flag d'initialisation.
Définition à la ligne 182 du fichier ItemTypeMng.h.
Référencé par build(), printTypes(), typeFromId(), typeFromId(), et types().
|
private |
Définition à la ligne 184 du fichier ItemTypeMng.h.
|
private |
Ensemble des maillages contenant des mailles générales (sans type défini)
Définition à la ligne 196 du fichier ItemTypeMng.h.
Référencé par hasGeneralCells(), et setMeshWithGeneralCells().
|
staticprivate |
Nombre de types intégrés (hors types additionnels)
Définition à la ligne 179 du fichier ItemTypeMng.h.
Référencé par _buildTypes(), et nbBuiltInItemType().
|
private |
Gestionnaire de traces.
Définition à la ligne 187 du fichier ItemTypeMng.h.
Référencé par _buildTypes(), et _readTypes().
|
private |
Liste des types.
Définition à la ligne 190 du fichier ItemTypeMng.h.
Référencé par _buildTypes(), _readTypes(), printTypes(), typeFromId(), typeFromId(), et types().
|
private |
Allocations des objets de type (il faut un pointeur pour éviter inclusion multiple)
Définition à la ligne 193 du fichier ItemTypeMng.h.
Référencé par _buildTypes(), et _readTypes().
|
staticprivate |
Instance singleton.
Définition à la ligne 176 du fichier ItemTypeMng.h.
Référencé par _destroySingleton(), et _singleton().