Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::IMeshCompacterabstract

Gestion d'un compactage de familles du maillage. Plus de détails...

#include <arcane/core/IMeshCompacter.h>

+ Graphe de collaboration de Arcane::IMeshCompacter:

Types publics

enum class  ePhase {
  Init = 0 , BeginCompact , CompactVariableAndGroups , UpdateInternalReferences ,
  EndCompact , Finalize , Ended
}
 Indique les différentes phases du compactage. Plus de détails...
 

Fonctions membres publiques

virtual void doAllActions ()=0
 Exécute successivement toutes les actions de compactage.
 
virtual void beginCompact ()=0
 
virtual void compactVariablesAndGroups ()=0
 
virtual void updateInternalReferences ()=0
 
virtual void endCompact ()=0
 
virtual void finalizeCompact ()=0
 
virtual IMeshmesh () const =0
 Maillage associé à ce compacter.
 
virtual const ItemFamilyCompactInfosfindCompactInfos (IItemFamily *family) const =0
 Informations de compactage pour la famille family.
 
virtual ePhase phase () const =0
 Phase de l'échange dans laquelle on se trouve.
 
virtual void setSorted (bool v)=0
 Indique s'il faut trier les entités lors du compactage.
 
virtual bool isSorted () const =0
 Indique si souhaite trier les entités en plus de les compacter.
 
virtual ItemFamilyCollection families () const =0
 Familles dont les entités sont compactées.
 
virtual void _setCompactVariablesAndGroups (bool v)=0
 

Description détaillée

Gestion d'un compactage de familles du maillage.

Les instances de cette classe sont créée via le gestionnnaire IMeshCompactMng. Un seul compactage peut avoir lieu à la fois.

Par compactage, on entend toute modification de la numérotation locale des entités d'une famille. Il peut donc rester des trous dans la numérotation après appel à un compactage (même si actuellement ce n'est pas le cas des implémentations disponibles dans Arcane).

Le compactage concerne soit toutes les familles d'un maillage, soit une seule famille. La méthode families() permet de retourner la liste des familles compactées.

Même si une famille n'est pas compactée directement elle participe à certaines opérations du compactage car elle peut faire référence à des entités compactées.

Les différentes opérations d'un compactage sont les suivantes:

  1. beginCompact():calcul de la nouvelle numération locale des entités des familles compactées. Après appel à cette méthode, il est possible d'appeler findCompactInfos() pour obtenir pour une famille les correspondances entre nouveaux et anciens numéros locaux.
  2. compactVariablesAndGroups(): mise à jour des groupes et des variables des familles compactées en fonction de cette nouvelle numérotation.
  3. updateInternalReferences(): mise à jour des références aux entités. Cela concerne toutes les familles et pas seulement celles compactées.
  4. endCompact(): finalise le compactage des familles. Après appel à cette méthode il n'est plus possible de récupérer les informations de correspondance via findCompactInfos().
  5. finalizeCompact(): notification à toutes les familles que le compactage est terminé. Cela permet par exemple de faire un nettoyage ou de mettre à jour certaines informations.

La méthode doAllActions() permet de faire toutes ces phases en une seule fois. C'est la méthode recommandé pour effectuer un compactage. Le code suivant montre comment effectuer un compactage sur toutes les familles:

IMeshCompactMng* compact_mng = mesh()->_compactMng();
IMeshCompacter* compacter = compact_mng->beginCompact();
try{
compacter->doAllActions();
}
catch(...){
compact_mng->endCompact();
throw;
}
compact_mng->endCompact();
Interface du gestionnaire des compactages de familles d'un maillage.
virtual void endCompact()=0
Signale que le compactage est terminé.
virtual IMeshCompacter * beginCompact()=0
Débute un compactage sur toutes les familles du maillage.
Gestion d'un compactage de familles du maillage.
virtual IMesh * mesh() const =0
Maillage associé à ce compacter.
virtual void doAllActions()=0
Exécute successivement toutes les actions de compactage.

Définition à la ligne 88 du fichier IMeshCompacter.h.

Documentation des énumérations membres

◆ ePhase

enum class Arcane::IMeshCompacter::ePhase
strong

Indique les différentes phases du compactage.

Définition à la ligne 92 du fichier IMeshCompacter.h.

Documentation des constructeurs et destructeur

◆ ~IMeshCompacter()

virtual Arcane::IMeshCompacter::~IMeshCompacter ( )
inlinevirtual

Définition à la ligne 104 du fichier IMeshCompacter.h.

Documentation des fonctions membres

◆ findCompactInfos()

virtual const ItemFamilyCompactInfos * Arcane::IMeshCompacter::findCompactInfos ( IItemFamily family) const
pure virtual

Informations de compactage pour la famille family.

Le pointeur retourné peut être nul si la famille spécifiée ne fait pas partie des familles compactées.

◆ setSorted()

virtual void Arcane::IMeshCompacter::setSorted ( bool  v)
pure virtual

Indique s'il faut trier les entités lors du compactage.

Précondition
phase()==ePhase::Init.

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