Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MeshNodeMerger

Fusion de noeuds d'un maillage. Plus de détails...

#include <arcane/mesh/MeshNodeMerger.h>

+ Graphe d'héritage de Arcane::MeshNodeMerger:
+ Graphe de collaboration de Arcane::MeshNodeMerger:

Fonctions membres publiques

 MeshNodeMerger (IMesh *mesh)
 
void mergeNodes (Int32ConstArrayView nodes_local_id, Int32ConstArrayView nodes_to_merge_local_id)
 
- 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.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () 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

IMeshm_mesh
 
NodeFamily * m_node_family
 
EdgeFamily * m_edge_family
 
FaceFamily * m_face_family
 
CellFamily * m_cell_family
 
std::map< Node, Nodem_nodes_correspondance
 
std::map< Face, Facem_faces_correspondance
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Fusion de noeuds d'un maillage.

L'implémentation actuelle ne traite que les maillages 'classiques' et ne traite que les familles de noeuds, arêtes, faces et mailles.

De plus, pour la partie 3D n'a pas été testée. Elle devrait fonctionner tant que les arêtes ne sont pas actives. Idem pour la partie parallèle mais elle n'a pas été testée non plus.

Définition à la ligne 49 du fichier MeshNodeMerger.h.

Documentation des constructeurs et destructeur

◆ MeshNodeMerger()

Arcane::mesh::MeshNodeMerger::MeshNodeMerger ( IMesh mesh)

Définition à la ligne 44 du fichier MeshNodeMerger.cc.

Documentation des fonctions membres

◆ mergeNodes()

void Arcane::mesh::MeshNodeMerger::mergeNodes ( Int32ConstArrayView  nodes_local_id,
Int32ConstArrayView  nodes_to_merge_local_id 
)

Le principe de l'algorithme est le suivant:

  1. Détermine l'ensemble des faces et des mailles qui ont au moins un noeud modifié. Ce sont celles qu'il faudra traiter.
  2. Pour les faces, détermine celles qui ont tous leur noeuds fusionnées. Ces faces seront fusionnées et disparaitrons. Il faut déterminer avec quelle faces elles vont fusionner. En 3D, il faudra faire de même pour les arêtes.
  3. Une fois tout calculé, il faut mettre à jour les connectivités des entités (mailles, faces et arêtes) qui sont modifiées.
  4. Enfin, il faut détruire les noeuds, arêtes et faces fusionnées.

Il faudra éventuellement adapter cet algorithme lorsque les nouvelles connectivités seront en place.

Définition à la ligne 84 du fichier MeshNodeMerger.cc.

Références ARCANE_FATAL, ENUMERATE_CELL, ENUMERATE_FACE, Arcane::Item::localId(), Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::nodes(), Arcane::Item::type(), et Arcane::Item::uniqueId().

Documentation des données membres

◆ m_cell_family

CellFamily* Arcane::MeshNodeMerger::m_cell_family
private

Définition à la ligne 62 du fichier MeshNodeMerger.h.

◆ m_edge_family

EdgeFamily* Arcane::MeshNodeMerger::m_edge_family
private

Définition à la ligne 60 du fichier MeshNodeMerger.h.

◆ m_face_family

FaceFamily* Arcane::MeshNodeMerger::m_face_family
private

Définition à la ligne 61 du fichier MeshNodeMerger.h.

◆ m_faces_correspondance

std::map<Face,Face> Arcane::MeshNodeMerger::m_faces_correspondance
private

Définition à la ligne 64 du fichier MeshNodeMerger.h.

◆ m_mesh

IMesh* Arcane::MeshNodeMerger::m_mesh
private

Définition à la ligne 58 du fichier MeshNodeMerger.h.

◆ m_node_family

NodeFamily* Arcane::MeshNodeMerger::m_node_family
private

Définition à la ligne 59 du fichier MeshNodeMerger.h.

◆ m_nodes_correspondance

std::map<Node,Node> Arcane::MeshNodeMerger::m_nodes_correspondance
private

Définition à la ligne 63 du fichier MeshNodeMerger.h.


La documentation de cette classe a été générée à partir des fichiers suivants :