Lecteur de fichiers de maillage au format msh.
Plus de détails...
Graphe d'héritage de Arcane::MshParallelMeshReader:
Graphe de collaboration de Arcane::MshParallelMeshReader:Classes | |
| struct | MshElementBlock |
| Infos d'un bloc pour $Elements pour la version 4. Plus de détails... | |
| class | MshItemKindInfo |
| Informations pour créer les entités d'un genre. Plus de détails... | |
| class | MshMeshAllocateInfo |
| Informations pour créer les entités Arcane. Plus de détails... | |
| struct | MshNodeBlock |
| Infos d'un bloc pour $Nodes. Plus de détails... | |
| class | MshToArcaneTypeInfo |
| Informations de correspondance entre le type MSH et le type Arcane. Plus de détails... | |
Fonctions membres publiques | |
| MshParallelMeshReader (ITraceMng *tm) | |
| eReturnType | readMeshFromMshFile (IMesh *mesh, const String &filename, bool use_internal_partition) override |
| Lit le maillage contenu dans le fichier filename et le construit dans mesh. | |
Fonctions membres publiques hérités de Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Construit un accesseur via le gestionnaire de trace m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Constructeur par recopie. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Opérateur de recopie. | |
| virtual | ~TraceAccessor () |
| Libère les ressources. | |
| ITraceMng * | traceMng () const |
| Gestionnaire de trace. | |
| TraceMessage | info () const |
| Flot pour un message d'information. | |
| TraceMessage | pinfo () const |
| Flot pour un message d'information en parallèle. | |
| TraceMessage | info (char category) const |
| Flot pour un message d'information d'une catégorie donnée. | |
| TraceMessage | pinfo (char category) const |
| Flot pour un message d'information parallèle d'une catégorie donnée. | |
| TraceMessage | info (bool v) const |
| Flot pour un message d'information. | |
| TraceMessage | warning () const |
| Flot pour un message d'avertissement. | |
| TraceMessage | pwarning () const |
| TraceMessage | error () const |
| Flot pour un message d'erreur. | |
| TraceMessage | perror () const |
| TraceMessage | log () const |
| Flot pour un message de log. | |
| TraceMessage | plog () const |
| Flot pour un message de log. | |
| TraceMessage | logdate () const |
| Flot pour un message de log précédé de la date. | |
| TraceMessage | fatal () const |
| Flot pour un message d'erreur fatale. | |
| TraceMessage | pfatal () const |
| Flot pour un message d'erreur fatale en parallèle. | |
| TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
| Flot pour un message de debug. | |
| Trace::eDebugLevel | configDbgLevel () const |
| Niveau debug du fichier de configuration. | |
| TraceMessage | info (Int32 verbose_level) const |
| Flot pour un message d'information d'un niveau donné | |
| TraceMessage | linfo () const |
| Flot pour un message d'information avec le niveau d'information local à cette instance. | |
| TraceMessage | linfo (Int32 relative_level) const |
| Flot pour un message d'information avec le niveau d'information local à cette instance. | |
| void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres privées | |
| void | _readNodesFromFile () |
| Lecture des noeuds du maillage. | |
| void | _readNodesOneEntity (MshNodeBlock &node_block) |
| Integer | _readElementsFromFile () |
| Lecture des éléments (mailles,faces,...) | |
| void | _readMeshFromFile () |
| void | _setNodesCoordinates () |
| Positionne les coordonnées des noeuds. | |
| void | _allocateCells () |
| void | _allocateGroups () |
| void | _addFaceGroup (const MshElementBlock &block, const String &group_name) |
| Ajoute des faces au groupe group_name. | |
| void | _addFaceGroupOnePart (const MshElementBlock &block, ConstArrayView< Int64 > connectivities, const String &group_name) |
| void | _addCellOrNodeGroup (ArrayView< Int64 > block_uids, Int32 block_index, const String &group_name, IItemFamily *family, bool filter_invalid) |
| Ajoute des mailles ou noeuds au groupe group_name. | |
| void | _addCellOrNodeGroupOnePart (ConstArrayView< Int64 > uids, const String &group_name, Int32 block_index, IItemFamily *family, bool filter_invalid) |
| void | _readPhysicalNames () |
| void | _readEntities () |
| Lecture des entités. | |
| void | _readPeriodic () |
| Lecture des informations périodiques. | |
| void | _readOneEntity (Int32 entity_dim, Int32 entity_index_in_dim) |
| bool | _getIsEndOfFileAndBroadcast () |
| Retourne true si on est à la fin du fichier. | |
| String | _getNextLineAndBroadcast () |
| Lis la valeur de la prochaine ligne et la broadcast aux autres rangs. | |
| Int32 | _getIntegerAndBroadcast () |
| Int64 | _getInt64AndBroadcast () |
| void | _getInt64ArrayAndBroadcast (ArrayView< Int64 > values) |
| void | _getInt32ArrayAndBroadcast (ArrayView< Int32 > values) |
| void | _getDoubleArrayAndBroadcast (ArrayView< double > values) |
| void | _readOneElementBlock (MshElementBlock &block) |
| Lit un bloc d'entité de type 'Element'. | |
| void | _computeNodesPartition () |
| void | _computeOwnItems (MshElementBlock &block, MshItemKindInfo &item_kind_info, bool is_generate_uid) |
| Real3 | _getReal3 () |
| Int32 | _getInt32 () |
| Int64 | _getInt64 () |
| void | _goToNextLine () |
| void | _readAndCheck (const String &expected_value) |
| Tente de lire la valeur value. | |
| void | _addMshTypeInfo (Int32 msh_type, ItemTypeId arcane_type, ConstArrayView< Int16 > reorder_infos={}) |
| const MshToArcaneTypeInfo & | mshToArcaneTypeInfo (Int32 msh_type) const |
| void | _initTypes () |
Attributs privés | |
| IMesh * | m_mesh = nullptr |
| IParallelMng * | m_parallel_mng = nullptr |
| Int32 | m_master_io_rank = A_NULL_RANK |
| bool | m_is_parallel = false |
| Ref< IosFile > | m_ios_file |
| impl::MshMeshGenerationInfo * | m_mesh_info = nullptr |
| MshMeshAllocateInfo | m_mesh_allocate_info |
| Int32 | m_nb_part = 4 |
| Nombre de partitions pour la lecture des noeuds et blocs. | |
| UniqueArray< Int32 > | m_parts_rank |
| Liste des rangs qui participent à la conservation des données. | |
| bool | m_is_binary = false |
| Vrai si le format est binaire. | |
| UniqueArray< MshToArcaneTypeInfo > | m_msh_to_arcane_type_infos |
| Informations de conversion entre les types MSH et Arcane pour les entités. | |
| Int32 | m_verbosity_level = 0 |
| Niveau de verbosité | |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Lecteur de fichiers de maillage au format msh.
Le format msh est celui utilisé par la bibliothèque gmsh.
Le lecteur supporte la version 4.1 de ce format.
Actuellement, les balises suivantes sont gérées:
$PhysicalNames$Entities$Nodes$Elements$Periodic (en cours) Définition à la ligne 82 du fichier MshParallelMeshReader.cc.
| using Arcane::MshParallelMeshReader::eReturnType = typename IMeshReader::eReturnType |
Définition à la ligne 96 du fichier MshParallelMeshReader.cc.
| using Arcane::MshParallelMeshReader::MshEntitiesNodes = impl::MshMeshGenerationInfo::MshEntitiesNodes |
Définition à la ligne 89 du fichier MshParallelMeshReader.cc.
| using Arcane::MshParallelMeshReader::MshEntitiesWithNodes = impl::MshMeshGenerationInfo::MshEntitiesWithNodes |
Définition à la ligne 90 du fichier MshParallelMeshReader.cc.
Définition à la ligne 92 du fichier MshParallelMeshReader.cc.
| using Arcane::MshParallelMeshReader::MshPeriodicOneInfo = impl::MshMeshGenerationInfo::MshPeriodicOneInfo |
Définition à la ligne 91 du fichier MshParallelMeshReader.cc.
Définition à la ligne 88 du fichier MshParallelMeshReader.cc.
|
explicit |
Définition à la ligne 293 du fichier MshParallelMeshReader.cc.
|
private |
Ajoute des mailles ou noeuds au groupe group_name.
Définition à la ligne 1410 du fichier MshParallelMeshReader.cc.
Références m_parts_rank.
|
private |
Définition à la ligne 1426 du fichier MshParallelMeshReader.cc.
|
private |
Ajoute des faces au groupe group_name.
Définition à la ligne 1304 du fichier MshParallelMeshReader.cc.
Références Arcane::MshParallelMeshReader::MshElementBlock::connectivities, Arcane::MshParallelMeshReader::MshElementBlock::item_nb_node, m_parts_rank, et Arcane::Array< DataType >::view().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 1320 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1904 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1191 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1213 du fichier MshParallelMeshReader.cc.
|
private |
Rank auquel appartient les noeuds de ma partie.
Définition à la ligne 510 du fichier MshParallelMeshReader.cc.
Références Arcane::TraceAccessor::info(), Arcane::math::isNearlyEqual(), m_nb_part, m_parts_rank, Arcane::math::max(), Arcane::math::min(), Arcane::IParallelMng::reduce(), Arcane::MessagePassing::ReduceMax, Arcane::MessagePassing::ReduceMin, Arcane::MessagePassing::ReduceSum, et Arcane::Real3POD::x.
Référencé par _readNodesFromFile().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
private |
Définition à la ligne 1068 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 427 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 468 du fichier MshParallelMeshReader.cc.
Définition à la ligne 407 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 484 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 371 du fichier MshParallelMeshReader.cc.
Définition à la ligne 387 du fichier MshParallelMeshReader.cc.
|
private |
Retourne true si on est à la fin du fichier.
Définition à la ligne 332 du fichier MshParallelMeshReader.cc.
Références Arcane::TraceAccessor::info().
Voici le graphe d'appel pour cette fonction :
|
private |
Lis la valeur de la prochaine ligne et la broadcast aux autres rangs.
Définition à la ligne 310 du fichier MshParallelMeshReader.cc.
Références Arcane::TraceAccessor::info().
Référencé par _readAndCheck(), _readPeriodic(), et readMeshFromMshFile().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
private |
Définition à la ligne 447 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 500 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1863 du fichier MshParallelMeshReader.cc.
|
private |
Tente de lire la valeur value.
Définition à la ligne 1727 du fichier MshParallelMeshReader.cc.
Références _getNextLineAndBroadcast(), ARCANE_FATAL, Arcane::String::bytes(), Arcane::TraceAccessor::info(), m_is_binary, Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size(), Arcane::FixedArray< T, NbElement >::span(), et Arcane::CheckedConvert::toInt32().
Référencé par _readEntities().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
private |
Lecture des éléments (mailles,faces,...)
Voici la description du format:
* $Elements * numEntityBlocks(size_t) numElements(size_t) * minElementTag(size_t) maxElementTag(size_t) * entityDim(int) entityTag(int) elementType(int; see below) * numElementsInBlock(size_t) * elementTag(size_t) nodeTag(size_t) ... * ... * ... * $EndElements *
Dans la version 4, les éléments sont rangés par genre (eItemKind). Chaque bloc d'entité peut-être de dimension différente Il n'y a pas de dimension associé au maillage. On considère donc que la dimension du maillage est la dimension la plus élevée des blocs qu'on lit. Cela signifie aussi qu'on est obligé de lire tous les blocs avant de pouvoir connaitre la dimension du maillage.
En parallèle, chaque bloc est distribué sur les rangs de m_parts_rank.
Définition à la ligne 857 du fichier MshParallelMeshReader.cc.
Références _readOneElementBlock(), ARCANE_FATAL, ARCANE_THROW, Arcane::TraceAccessor::info(), Arcane::ItemTypeInfo::itemTypeId(), m_is_binary, m_verbosity_level, Arcane::math::max(), Arcane::ItemTypeInfo::nbLocalNode(), Arcane::Array< DataType >::resize(), Arcane::ItemTypeMng::typeFromId(), Arcane::ItemTypeInfo::typeName(), et Arcane::FixedArray< T, NbElement >::view().
Voici le graphe d'appel pour cette fonction :
|
private |
Lecture des entités.
Le format est:
* $Entities * numPoints(size_t) numCurves(size_t) * numSurfaces(size_t) numVolumes(size_t) * pointTag(int) X(double) Y(double) Z(double) * numPhysicalTags(size_t) physicalTag(int) ... * ... * curveTag(int) minX(double) minY(double) minZ(double) * maxX(double) maxY(double) maxZ(double) * numPhysicalTags(size_t) physicalTag(int) ... * numBoundingPoints(size_t) pointTag(int) ... * ... * surfaceTag(int) minX(double) minY(double) minZ(double) * maxX(double) maxY(double) maxZ(double) * numPhysicalTags(size_t) physicalTag(int) ... * numBoundingCurves(size_t) curveTag(int) ... * ... * volumeTag(int) minX(double) minY(double) minZ(double) * maxX(double) maxY(double) maxZ(double) * numPhysicalTags(size_t) physicalTag(int) ... * numBoundngSurfaces(size_t) surfaceTag(int) ... * ... * $EndEntities *
Définition à la ligne 1530 du fichier MshParallelMeshReader.cc.
Références _readAndCheck(), ARCANE_FATAL, Arcane::TraceAccessor::info(), m_is_binary, m_verbosity_level, et Arcane::FixedArray< T, NbElement >::view().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 1761 du fichier MshParallelMeshReader.cc.
|
private |
Lecture des noeuds du maillage.
Lit les uniqueId() des noeuds et les coordonnées associées.
Le format est le suivant:
Définition à la ligne 588 du fichier MshParallelMeshReader.cc.
Références _computeNodesPartition(), ARCANE_THROW, Arcane::MshParallelMeshReader::MshNodeBlock::index, Arcane::TraceAccessor::info(), m_is_binary, m_nb_part, Arcane::Array< DataType >::resize(), et Arcane::FixedArray< T, NbElement >::view().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 630 du fichier MshParallelMeshReader.cc.
|
private |
Lit un bloc d'entité de type 'Element'.
Définition à la ligne 753 du fichier MshParallelMeshReader.cc.
Références Arcane::Array< DataType >::addRange(), Arcane::IParallelMng::commRank(), Arcane::MshParallelMeshReader::MshElementBlock::connectivities, Arcane::TraceAccessor::info(), Arcane::MshParallelMeshReader::MshElementBlock::item_nb_node, m_is_binary, m_nb_part, m_parts_rank, m_verbosity_level, Arcane::MshParallelMeshReader::MshElementBlock::nb_entity, Arcane::IParallelMng::recv(), Arcane::Array< DataType >::resize(), et Arcane::Array< DataType >::view().
Référencé par _readElementsFromFile().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
private |
Définition à la ligne 1587 du fichier MshParallelMeshReader.cc.
|
private |
Lecture des informations périodiques.
Le format est:
* $Periodic * numPeriodicLinks(size_t) * entityDim(int) entityTag(int) entityTagMaster(int) * numAffine(size_t) value(double) ... * numCorrespondingNodes(size_t) * nodeTag(size_t) nodeTagMaster(size_t) * ... * ... * $EndPeriodic *
Définition à la ligne 1677 du fichier MshParallelMeshReader.cc.
Références _getNextLineAndBroadcast(), ARCANE_FATAL, Arcane::TraceAccessor::info(), Arcane::impl::MshMeshGenerationInfo::MshPeriodicOneInfo::m_affine_values, Arcane::impl::MshMeshGenerationInfo::MshPeriodicOneInfo::m_corresponding_nodes, m_verbosity_level, Arcane::Array< DataType >::resize(), Arccore::Array< DataType >::resize(), Arcane::CheckedConvert::toInt32(), et Arcane::FixedArray< T, NbElement >::view().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 1466 du fichier MshParallelMeshReader.cc.
|
private |
Positionne les coordonnées des noeuds.
La liste est répartie sur les processeurs des rangs de m_parts_rank. On boucle sur les rangs de cette liste et chaque rang envoie aux autres la liste des coordonnées des noeuds qu'il contient. Chaque rang regarde si des noeuds de cette liste lui appartiennent et si c'est le cas positionnent les coordonnées.
Définition à la ligne 1157 du fichier MshParallelMeshReader.cc.
Références Arcane::IItemFamily::itemsUniqueIdToLocalId(), m_parts_rank, Arcane::Array< DataType >::resize(), et Arcane::ConstArrayView< T >::size().
Voici le graphe d'appel pour cette fonction :
|
private |
Définition à la ligne 1920 du fichier MshParallelMeshReader.cc.
|
overridevirtual |
Lit le maillage contenu dans le fichier filename et le construit dans mesh.
Implémente Arcane::IMshMeshReader.
Définition à la ligne 1936 du fichier MshParallelMeshReader.cc.
Références _getNextLineAndBroadcast(), Arcane::IParallelMng::commSize(), Arcane::TraceAccessor::error(), Arcane::TraceAccessor::info(), Arcane::platform::isFileReadable(), Arcane::IParallelMng::isMasterIO(), Arcane::IParallelMng::isParallel(), Arcane::String::localstr(), m_nb_part, m_parts_rank, Arcane::makeRef(), Arcane::IParallelMng::masterIORank(), Arcane::IMeshReader::RTError, Arcane::IMeshReader::RTOk, Arcane::IParallelMng::sequentialParallelMng(), et Arcane::FixedArray< T, NbElement >::view().
Voici le graphe d'appel pour cette fonction :Définition à la ligne 211 du fichier MshParallelMeshReader.cc.
|
private |
Vrai si le format est binaire.
Définition à la ligne 219 du fichier MshParallelMeshReader.cc.
Référencé par _readAndCheck(), _readElementsFromFile(), _readEntities(), _readNodesFromFile(), et _readOneElementBlock().
|
private |
Définition à la ligne 210 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 209 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 207 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 213 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 212 du fichier MshParallelMeshReader.cc.
|
private |
Informations de conversion entre les types MSH et Arcane pour les entités.
Définition à la ligne 221 du fichier MshParallelMeshReader.cc.
|
private |
Nombre de partitions pour la lecture des noeuds et blocs.
Définition à la ligne 215 du fichier MshParallelMeshReader.cc.
Référencé par _computeNodesPartition(), _readNodesFromFile(), _readOneElementBlock(), et readMeshFromMshFile().
|
private |
Définition à la ligne 208 du fichier MshParallelMeshReader.cc.
|
private |
Liste des rangs qui participent à la conservation des données.
Définition à la ligne 217 du fichier MshParallelMeshReader.cc.
Référencé par _addCellOrNodeGroup(), _addFaceGroup(), _computeNodesPartition(), _readOneElementBlock(), _setNodesCoordinates(), et readMeshFromMshFile().
|
private |
Niveau de verbosité
Définition à la ligne 223 du fichier MshParallelMeshReader.cc.
Référencé par _readElementsFromFile(), _readEntities(), _readOneElementBlock(), et _readPeriodic().