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

Fusion de nœuds d'un maillage. Plus de détails...

#include <arcane/mesh/MeshNodeMerger.h>

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

Fonctions membres publiques

 MeshNodeMerger (IMesh *mesh)
 
void mergeNodes (Int32ConstArrayView nodes_local_id, Int32ConstArrayView nodes_to_merge_local_id, bool allow_non_corresponding_face=false)
 
- 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.
 
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 = nullptr
 
NodeFamilym_node_family = nullptr
 
EdgeFamilym_edge_family = nullptr
 
FaceFamilym_face_family = nullptr
 
CellFamilym_cell_family = nullptr
 
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 Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Fusion de nœuds 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 52 du fichier MeshNodeMerger.h.

Documentation des constructeurs et destructeur

◆ MeshNodeMerger()

Arcane::mesh::MeshNodeMerger::MeshNodeMerger ( IMesh * mesh)
explicit

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

Documentation des fonctions membres

◆ mergeNodes()

void Arcane::mesh::MeshNodeMerger::mergeNodes ( Int32ConstArrayView nodes_local_id,
Int32ConstArrayView nodes_to_merge_local_id,
bool allow_non_corresponding_face = false )

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 82 du fichier MeshNodeMerger.cc.

Références ARCANE_FATAL, Arcane::Face::backCell(), Arcane::FaceReorienter::checkAndChangeOrientation(), ENUMERATE_, ENUMERATE_CELL, Arcane::mesh::ItemTools::findFaceInNode2(), Arcane::TraceAccessor::info(), Arcane::Item::localId(), Arcane::Face::nbCell(), Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::nodes(), Arcane::Item::null(), Arcane::Array< DataType >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::Item::type(), et Arcane::Item::uniqueId().

Référencé par Arcane::UnstructuredMeshUtilities::mergeNodes().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

Documentation des données membres

◆ m_cell_family

CellFamily* Arcane::mesh::MeshNodeMerger::m_cell_family = nullptr
private

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

◆ m_edge_family

EdgeFamily* Arcane::mesh::MeshNodeMerger::m_edge_family = nullptr
private

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

◆ m_face_family

FaceFamily* Arcane::mesh::MeshNodeMerger::m_face_family = nullptr
private

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

◆ m_faces_correspondance

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

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

◆ m_mesh

IMesh* Arcane::mesh::MeshNodeMerger::m_mesh = nullptr
private

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

◆ m_node_family

NodeFamily* Arcane::mesh::MeshNodeMerger::m_node_family = nullptr
private

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

◆ m_nodes_correspondance

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

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


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