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 56 du fichier ItemTypeMng.cc.
Référencé par _singleton(), et singleton().
|
protected |
Définition à la ligne 64 du fichier ItemTypeMng.cc.
|
private |
Définition à la ligne 98 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 127 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::addFaceQuad9(), 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(), Arcane::ItemTypeInfoBuilder::setHasCenterNode(), Arcane::ItemTypeInfoBuilder::setIsValidForCell(), 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 1352 du fichier ItemTypeMng.cc.
Références singleton_instance.
Référencé par Arcane::ArcaneMain::arcaneFinalize(), et destroySingleton().
Définition à la ligne 1414 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 1164 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 1344 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 73 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 89 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 1425 du fichier ItemTypeMng.cc.
Références m_mesh_with_general_cells.
|
static |
nombre de types disponibles
Définition à la ligne 1288 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 1294 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 1303 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 1114 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 1437 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 1375 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 1385 du fichier ItemTypeMng.cc.
Références m_initialized, et m_types.
Nom du type correspondant au numéro id.
Définition à la ligne 1395 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 1404 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 1365 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().