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

Construction des uniqueId() des faces. Plus de détails...

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

Classes

class  AnyFaceBitonicSortTraits
 Fonctor pour trier les AnyFaceInfo via le tri bitonic. Plus de détails...
 
class  AnyFaceInfo
 Infos pour gérer les faces des sous-domaines. Plus de détails...
 
class  BoundaryFaceBitonicSortTraits
 Fonctor pour trier les BoundaryFaceInfo via le tri bitonic. Plus de détails...
 
class  BoundaryFaceInfo
 Infos pour gérer les faces frontières des sous-domaines. Plus de détails...
 
class  NarrowCellFaceInfo
 Stocke les infos sur une face d'une maille. Plus de détails...
 
class  ResendCellInfo
 
class  UniqueIdSorter
 
class  WideCellFaceInfo
 Stocke les infos sur une face d'une maille. Plus de détails...
 

Types publics

typedef NarrowCellFaceInfo CellFaceInfo
 

Fonctions membres publiques

 FaceUniqueIdBuilder2 (DynamicMesh *mesh)
 Construit une instance pour le maillage mesh.
 
void computeFacesUniqueIdAndOwnerVersion3 ()
 Calcul les numéros uniques de chaque face en parallèle.
 
void computeFacesUniqueIdAndOwnerVersion5 ()
 Calcule les uniqueId() via un hash généré par les uniqueId() des noeuds.
 
- 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
 

Fonctions membres privées

void _resendCellsAndComputeFacesUniqueId (ConstArrayView< AnyFaceInfo > all_csi)
 
void _checkFacesUniqueId ()
 Vérifie que toutes les faces ont un uid valide.
 
void _unsetFacesUniqueId ()
 Invalide les uid pour être certain qu'ils seront tous positionnés.
 
void _computeAndSortBoundaryFaces (Array< BoundaryFaceInfo > &boundary_faces_info)
 Détermine la liste des faces frontières de chaque sous-domaine et les trie sur tous les procs.
 
void _computeParallel ()
 Calcul les numéros uniques de chaque face en parallèle.
 
void _computeSequential ()
 Calcul les numéros uniques de chaque face en sequentiel.
 

Attributs privés

DynamicMeshm_mesh = nullptr
 
IParallelMngm_parallel_mng = nullptr
 
bool m_is_verbose = false
 

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

Construction des uniqueId() des faces.

Cette classe permet de calculer les uniqueId() des faces. Après appel à computeFacesUniqueId(), les champs uniqueId() et owner() de chaque face sont positionnés.

Cette algorithme garanti que la numérotation est la même indépendamment du découpage et du nombre de processeurs. En séquentiel, l'algorithme peut s'écrire comme suit:

// Parcours les mailles en supposant les uniqueId() croissants.
ENUMERATE_CELL(icell,allCells()){
Cell cell = *icell;
Face face = *iface;
// Si je n'ai pas déjà un uniqueId(), en affecte un et incrémente le compteur
if (face.uniqueId()==NULL_ITEM_UNIQUE_ID){
face.setUniqueId(face_unique_id_counter);
}
}
}
#define ENUMERATE_FACE(name, group)
Enumérateur générique d'un groupe de faces.
#define ENUMERATE_CELL(name, group)
Enumérateur générique d'un groupe de mailles.
Maille d'un maillage.
Definition Item.h:1178
FaceConnectedListViewType faces() const
Liste des faces de la maille.
Definition Item.h:1258
Face d'une maille.
Definition Item.h:932
ItemUniqueId uniqueId() const
Identifiant unique sur tous les domaines.
Definition Item.h:216
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

L'algorithme séquentiel suppose qu'on parcourt les mailles dans l'ordre croissant des uniqueId(). Pour une face donnée, c'est donc la maille de plus petit uniqueId() qui va donner le uniqueId() de la face et par la même le propriétaire de cette face.

Cette version utilise un tri parallèle pour garantir que le nombre de messages augmente en log2(N), avec N le nombre de processeurs. Cela évite d'avoir potentiellement un grand nombre de messages, ce qui n'est pas supporté par certaines implémentations MPI (par exemple MPC).

Définition à la ligne 69 du fichier FaceUniqueIdBuilder2.cc.

Documentation des définitions de type membres

◆ CellFaceInfo

Documentation des constructeurs et destructeur

◆ FaceUniqueIdBuilder2()

Arcane::mesh::FaceUniqueIdBuilder2::FaceUniqueIdBuilder2 ( DynamicMesh mesh)
explicit

Construit une instance pour le maillage mesh.

Définition à la ligne 470 du fichier FaceUniqueIdBuilder2.cc.

Documentation des fonctions membres

◆ _checkFacesUniqueId()

void Arcane::mesh::FaceUniqueIdBuilder2::_checkFacesUniqueId ( )
private

Vérifie que toutes les faces ont un uid valide.

Définition à la ligne 1063 du fichier FaceUniqueIdBuilder2.cc.

Références ARCANE_FATAL, Arcane::Face::cell(), Arccore::TraceAccessor::info(), et Arcane::Item::uniqueId().

◆ _computeAndSortBoundaryFaces()

void Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces ( Array< BoundaryFaceInfo > &  boundary_faces_info)
private

◆ _computeParallel()

void Arcane::mesh::FaceUniqueIdBuilder2::_computeParallel ( )
private

◆ _computeSequential()

void Arcane::mesh::FaceUniqueIdBuilder2::_computeSequential ( )
private

Calcul les numéros uniques de chaque face en sequentiel.

Définition à la ligne 500 du fichier FaceUniqueIdBuilder2.cc.

Références _unsetFacesUniqueId(), Arcane::Cell::faces(), et Arccore::TraceAccessor::info().

Référencé par computeFacesUniqueIdAndOwnerVersion3().

◆ _resendCellsAndComputeFacesUniqueId()

void Arcane::mesh::FaceUniqueIdBuilder2::_resendCellsAndComputeFacesUniqueId ( ConstArrayView< AnyFaceInfo all_csi)
private

Définition à la ligne 802 du fichier FaceUniqueIdBuilder2.cc.

◆ _unsetFacesUniqueId()

void Arcane::mesh::FaceUniqueIdBuilder2::_unsetFacesUniqueId ( )
private

Invalide les uid pour être certain qu'ils seront tous positionnés.

Définition à la ligne 1049 du fichier FaceUniqueIdBuilder2.cc.

Références Arcane::Item::mutableItemBase().

Référencé par _computeSequential().

◆ computeFacesUniqueIdAndOwnerVersion3()

void Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion3 ( )

Calcul les numéros uniques de chaque face en parallèle.

Définition à la ligne 486 du fichier FaceUniqueIdBuilder2.cc.

Références _computeParallel(), _computeSequential(), et Arcane::IParallelMng::isParallel().

◆ computeFacesUniqueIdAndOwnerVersion5()

void Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion5 ( )

Documentation des données membres

◆ m_is_verbose

bool Arcane::mesh::FaceUniqueIdBuilder2::m_is_verbose = false
private

Définition à la ligne 100 du fichier FaceUniqueIdBuilder2.cc.

◆ m_mesh

DynamicMesh* Arcane::mesh::FaceUniqueIdBuilder2::m_mesh = nullptr
private

Définition à la ligne 98 du fichier FaceUniqueIdBuilder2.cc.

◆ m_parallel_mng

IParallelMng* Arcane::mesh::FaceUniqueIdBuilder2::m_parallel_mng = nullptr
private

Définition à la ligne 99 du fichier FaceUniqueIdBuilder2.cc.


La documentation de cette classe a été générée à partir du fichier suivant :