Lecteur de fichiers de maillage au format msh
.
Plus de détails...
Classes | |
class | MeshInfo |
Informations sur le maillage créé Plus de détails... | |
struct | MeshPhysicalName |
Infos sur un nom physique. Plus de détails... | |
struct | MeshPhysicalNameList |
Infos du bloc '$PhysicalNames'. Plus de détails... | |
struct | MeshV4ElementsBlock |
Infos d'un bloc pour $Elements pour la version 4. Plus de détails... | |
struct | MeshV4EntitiesNodes |
Infos pour les entités 0D. Plus de détails... | |
struct | MeshV4EntitiesWithNodes |
Infos pour les entités 1D, 2D et 3D. Plus de détails... | |
Types publics | |
using | eReturnType = typename IMeshReader::eReturnType |
Fonctions membres publiques | |
MshParallelMeshReader (ITraceMng *tm) | |
eReturnType | readMeshFromMshFile (IMesh *mesh, const String &file_name) override |
Lit le maillage contenu dans le fichier filename et le construit dans mesh. | |
Fonctions membres publiques hérités de Arccore::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 |
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 |
MeshInfo | m_mesh_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. | |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::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 les versions 2.0
et 4.1
de ce format.
Seules une partie des fonctionnalités du format sont supportées:
$Nodes
et $Entities
sont lues Définition à la ligne 75 du fichier MshParallelMeshReader.cc.
using Arcane::MshParallelMeshReader::eReturnType = typename IMeshReader::eReturnType |
Définition à la ligne 81 du fichier MshParallelMeshReader.cc.
|
inlineexplicit |
Définition à la ligne 211 du fichier MshParallelMeshReader.cc.
|
private |
Ajoute des faces au groupe group_name.
Définition à la ligne 1175 du fichier MshParallelMeshReader.cc.
Références Arcane::MshParallelMeshReader::MeshV4ElementsBlock::index, et m_parts_rank.
|
private |
Définition à la ligne 1190 du fichier MshParallelMeshReader.cc.
|
private |
Ajoute des faces au groupe group_name.
Définition à la ligne 1080 du fichier MshParallelMeshReader.cc.
Références Arcane::MshParallelMeshReader::MeshV4ElementsBlock::connectivities, Arcane::MshParallelMeshReader::MeshV4ElementsBlock::index, Arcane::MshParallelMeshReader::MeshV4ElementsBlock::item_nb_node, et m_parts_rank.
|
private |
Définition à la ligne 1096 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 969 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1015 du fichier MshParallelMeshReader.cc.
|
private |
Rank auquel appartient les noeuds de ma partie.
Définition à la ligne 425 du fichier MshParallelMeshReader.cc.
Références Arccore::TraceAccessor::info(), Arcane::math::isNearlyEqual(), Arccore::AbstractArray< T >::largeSize(), m_nb_part, m_parts_rank, Arcane::math::max(), Arcane::math::min(), Arcane::MshParallelMeshReader::MeshInfo::nodes_coordinates, Arcane::MshParallelMeshReader::MeshInfo::nodes_rank_map, Arcane::MshParallelMeshReader::MeshInfo::nodes_unique_id, et Arcane::IParallelMng::reduce().
Référencé par _readNodesFromFileAscii().
|
private |
Définition à la ligne 864 du fichier MshParallelMeshReader.cc.
Définition à la ligne 322 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 306 du fichier MshParallelMeshReader.cc.
|
private |
Lis la valeur de la prochaine ligne et la broadcast aux autres rangs.
Définition à la ligne 287 du fichier MshParallelMeshReader.cc.
Références Arccore::TraceAccessor::info().
Référencé par _readEntities(), et readMeshFromMshFile().
|
private |
Définition à la ligne 336 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 349 du fichier MshParallelMeshReader.cc.
|
private |
Lecture des éléments (mailles,faces,...)
Voici la description du format:
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 724 du fichier MshParallelMeshReader.cc.
Références _readOneElementBlock(), ARCANE_FATAL, ARCANE_THROW, Arccore::TraceAccessor::info(), Arcane::math::max(), et Arcane::CheckedConvert::toInt32().
|
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 1291 du fichier MshParallelMeshReader.cc.
Références _getNextLineAndBroadcast(), ARCANE_FATAL, et Arccore::TraceAccessor::info().
|
private |
Définition à la ligne 1399 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 505 du fichier MshParallelMeshReader.cc.
Références _computeNodesPartition(), ARCANE_THROW, Arcane::IParallelMng::commSize(), Arccore::TraceAccessor::info(), et m_nb_part.
|
private |
Définition à la ligne 538 du fichier MshParallelMeshReader.cc.
|
private |
Lit un bloc d'entité de type 'Element'.
Définition à la ligne 643 du fichier MshParallelMeshReader.cc.
Références Arccore::Array< T >::addRange(), Arcane::IParallelMng::commRank(), Arcane::MshParallelMeshReader::MeshV4ElementsBlock::connectivities, Arccore::TraceAccessor::info(), Arcane::MshParallelMeshReader::MeshV4ElementsBlock::item_nb_node, m_nb_part, m_parts_rank, Arcane::MshParallelMeshReader::MeshV4ElementsBlock::nb_entity, et Arcane::IParallelMng::recv().
Référencé par _readElementsFromFileAscii().
|
private |
Définition à la ligne 1340 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 1227 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 935 du fichier MshParallelMeshReader.cc.
Références m_parts_rank, Arcane::IMeshBase::nodeFamily(), Arcane::MshParallelMeshReader::MeshInfo::nodes_coordinates, Arcane::MshParallelMeshReader::MeshInfo::nodes_unique_id, et Arcane::IMesh::nodesCoordinates().
|
private |
Définition à la ligne 359 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 1477 du fichier MshParallelMeshReader.cc.
Références _getNextLineAndBroadcast(), Arcane::IParallelMng::commSize(), Arccore::TraceAccessor::error(), Arccore::TraceAccessor::info(), Arcane::IParallelMng::isMasterIO(), Arcane::IParallelMng::isParallel(), Arccore::String::localstr(), m_nb_part, m_parts_rank, Arcane::IParallelMng::masterIORank(), Arcane::IMesh::parallelMng(), Arccore::Array< T >::resize(), Arcane::IMeshReader::RTError, et Arcane::IMeshReader::RTOk.
Définition à la ligne 223 du fichier MshParallelMeshReader.cc.
Définition à la ligne 222 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 221 du fichier MshParallelMeshReader.cc.
Définition à la ligne 219 du fichier MshParallelMeshReader.cc.
|
private |
Définition à la ligne 224 du fichier MshParallelMeshReader.cc.
|
private |
Nombre de partitions pour la lecture des noeuds et blocs.
Définition à la ligne 226 du fichier MshParallelMeshReader.cc.
Référencé par _computeNodesPartition(), _readNodesFromFileAscii(), _readOneElementBlock(), et readMeshFromMshFile().
|
private |
Définition à la ligne 220 du fichier MshParallelMeshReader.cc.
|
private |
Liste des rangs qui participent à la conservation des données.
Définition à la ligne 228 du fichier MshParallelMeshReader.cc.
Référencé par _addCellOrNodeGroup(), _addFaceGroup(), _computeNodesPartition(), _readOneElementBlock(), _setNodesCoordinates(), et readMeshFromMshFile().