Arcane  v3.14.10.0
Documentation développeur
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 d'héritage de Arcane::IMeshCompacter:
+ 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é.
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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

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

Documentation des énumérations membres

◆ ePhase

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

◆ _setCompactVariablesAndGroups()

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

Implémenté dans Arcane::MeshCompacter.

◆ doAllActions()

virtual void Arcane::IMeshCompacter::doAllActions ( )
pure virtual

Exécute successivement toutes les actions de compactage.

Implémenté dans Arcane::MeshCompacter.

Référencé par Arcane::mesh::ItemFamily::_compactItems().

◆ families()

virtual ItemFamilyCollection Arcane::IMeshCompacter::families ( ) const
pure virtual

Familles dont les entités sont compactées.

Implémenté dans Arcane::MeshCompacter.

◆ 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.

Implémenté dans Arcane::MeshCompacter.

◆ isSorted()

virtual bool Arcane::IMeshCompacter::isSorted ( ) const
pure virtual

Indique si souhaite trier les entités en plus de les compacter.

Implémenté dans Arcane::MeshCompacter.

◆ mesh()

virtual IMesh * Arcane::IMeshCompacter::mesh ( ) const
pure virtual

Maillage associé à ce compacter.

Implémenté dans Arcane::MeshCompacter.

◆ phase()

virtual ePhase Arcane::IMeshCompacter::phase ( ) const
pure virtual

Phase de l'échange dans laquelle on se trouve.

Implémenté dans Arcane::MeshCompacter.

◆ 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.

Implémenté dans Arcane::MeshCompacter.

Référencé par Arcane::mesh::ItemFamily::_compactItems().


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