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

Implémentation d'un groupe d'entités de maillage. Plus de détails...

#include <arcane/core/ItemGroupImpl.h>

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

Classes

class  ItemSorter
 

Fonctions membres publiques

 ItemGroupImpl ()
 Construit un groupe nul.
 
 ItemGroupImpl (IItemFamily *family, const String &name)
 Construit un groupe. Construit un groupe vide de nom name, associé à la famille family.
 
 ItemGroupImpl (IItemFamily *family, ItemGroupImpl *parent, const String &name)
 Construit un groupe fils d'un autre groupe. Construit un groupe de nom name fils du groupe parent. Le genre de ce groupe est le même que celui de la famille à laquelle il appartient.
 
virtual ~ItemGroupImpl ()
 Libère les ressources.
 
virtual ISharedReferencesharedReference ()
 
const Stringname () const
 Nom du groupe.
 
const StringfullName () const
 Nom complet du groupe (avec maillage + famille)
 
virtual Integer nbRef () const
 Nombre de références sur le groupe.
 
ItemGroupImplparent () const
 Groupe parent (0 si aucun)
 
bool null () const
 Retourne true si le groupe est nul.
 
bool isOwn () const
 Retourne si le groupe contient uniquement des éléments propres au sous-domaine.
 
void setOwn (bool v)
 Positionne la propriété de groupe local ou non.
 
ItemGroupImplownGroup ()
 Groupe des entité propres des entités de ce groupe.
 
ItemGroupImplghostGroup ()
 Items in the group not owned by the subdomain.
 
ItemGroupImplinterfaceGroup ()
 
ItemGroupImplnodeGroup ()
 Groupe des noeuds des éléments de ce groupe.
 
ItemGroupImpledgeGroup ()
 Groupe des arêtes des éléments de ce groupe.
 
ItemGroupImplfaceGroup ()
 Groupe des faces des éléments de ce groupe.
 
ItemGroupImplcellGroup ()
 Groupe des mailles des éléments de ce groupe.
 
ItemGroupImplcreateSubGroup (const String &suffix, IItemFamily *family, ItemGroupComputeFunctor *functor)
 Crée un sous-groupe calculé
 
ItemGroupImplfindSubGroup (const String &suffix)
 Accède à un sous-groupe calculé
 
ItemGroupImplinnerFaceGroup ()
 Groupe des faces internes des éléments de ce groupe.
 
ItemGroupImplouterFaceGroup ()
 Groupe des faces externes des éléments de ce groupe.
 
ItemGroupImplactiveCellGroup ()
 AMR.
 
ItemGroupImplownActiveCellGroup ()
 Groupe des mailles propres actives de ce groupe.
 
ItemGroupImpllevelCellGroup (const Integer &level)
 Groupe des mailles actives de ce groupe.
 
ItemGroupImplownLevelCellGroup (const Integer &level)
 Groupe des mailles propres actives de ce groupe.
 
ItemGroupImplactiveFaceGroup ()
 Groupe des faces actives propres au domaine.
 
ItemGroupImplownActiveFaceGroup ()
 Groupe des faces externes actives des éléments de ce groupe.
 
ItemGroupImplinnerActiveFaceGroup ()
 Groupe des faces internes actives des éléments de ce groupe.
 
ItemGroupImplouterActiveFaceGroup ()
 Groupe des faces externes actives des éléments de ce groupe.
 
bool isLocalToSubDomain () const
 AMR OFF.
 
void setLocalToSubDomain (bool v)
 Positionne le booléen indiquant si le groupe est local au sous-domaine.
 
IMeshmesh () const
 Maillage auquel appartient le groupe (0 pour le groupe nul).
 
eItemKind itemKind () const
 Genre du groupe. Il s'agit du genre de ses éléments.
 
IItemFamilyitemFamily () const
 Familly à laquelle appartient le groupe (ou 0 si aucune)
 
Integer size () const
 Nombre d'entités du groupe.
 
bool empty () const
 Vrai si le groupe est vide.
 
void clear ()
 Supprime les entités du groupe.
 
ItemGroup parentGroup ()
 Groupe parent.
 
void invalidate (bool force_recompute)
 Invalide le groupe.
 
void addItems (Int32ConstArrayView items_local_id, bool check_if_present)
 Ajoute les entités de numéros locaux items_local_id.
 
void setItems (Int32ConstArrayView items_local_id)
 Positionne les entités du groupe à items_local_id.
 
void setItems (Int32ConstArrayView items_local_id, bool do_sort)
 Positionne les entités du groupe à items_local_id en les triant éventuellement.
 
void removeItems (Int32ConstArrayView items_local_id, bool check_if_present)
 Supprime les entités items_local_id du groupe.
 
void removeAddItems (Int32ConstArrayView removed_local_id, Int32ConstArrayView added_local_id, bool check_if_present)
 Supprime et ajoute les entités removed_local_id et added_local_id du groupe.
 
void removeSuppressedItems ()
 Supprime du groupe les entités dont le flag isSuppressed() est vrai.
 
void checkValid ()
 Vérifie que le groupe est valide.
 
bool checkNeedUpdate ()
 Réactualise le groupe si nécessaire.
 
Int32ConstArrayView itemsLocalId () const
 Liste des numéros locaux des entités de ce groupe.
 
void beginTransaction ()
 Débute une transaction.
 
void endTransaction ()
 Termine une transaction.
 
ItemInternalList itemsInternal () const
 Liste des entités sur lesquelles s'appuie le groupe.
 
ItemInfoListView itemInfoListView () const
 Liste des entités sur lesquelles s'appuie le groupe.
 
void setIsAllItems ()
 Indique à ce groupe qu'il s'agit du groupe de toutes les entités de la famille.
 
bool isAllItems () const
 Indique si le groupe est celui de toutes les entités.
 
void changeIds (Int32ConstArrayView old_to_new_ids)
 Change les indices des entités du groupe.
 
void applyOperation (IItemOperationByBasicType *operation)
 Applique l'opération operation sur les entités du groupe.
 
bool needSynchronization () const
 Indique si le groupe a structurellement besoin d'une synchro parallèle.
 
Int64 timestamp () const
 Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.
 
void attachObserver (const void *ref, IItemGroupObserver *obs)
 Attache un observer.
 
void detachObserver (const void *ref)
 Détache un observer.
 
bool hasInfoObserver () const
 Indique si le contenu de ce groupe est observé.
 
void setComputeFunctor (IFunctor *functor)
 Définit une fonction de calcul de groupe.
 
bool hasComputeFunctor () const
 Indique si le groupe est calculé
 
void destroy ()
 Détruit le groupe. Après cet appel, le groupe devient un groupe nul.
 
SharedPtrT< GroupIndexTablelocalIdToIndex ()
 Table des local ids vers une position pour toutes les entités du groupe.
 
IVariableSynchronizersynchronizer ()
 Synchronizer du groupe.
 
bool hasSynchronizer ()
 Indique si ce groupe possède un synchroniser.
 
bool checkIsSorted () const
 Vérifie et retourne si le groupe est trié par uniqueId() croissants.
 
bool isContigousLocalIds () const
 Indique si les entités du groupe ont des localIds() contigüs.
 
void checkLocalIdsAreContigous () const
 Vérifie si les entités du groupe ont des localIds() contigüs.
 
void shrinkMemory ()
 Limite au maximum la mémoire utilisée par le groupe.
 
Int64 capacity () const
 Nombre d'éléments alloués.
 
ItemGroupImplInternal_internalApi () const
 API interne à Arcane.
 
Int32ArrayunguardedItemsLocalId (const bool self_invalidate=true)
 Liste des numéros locaux des entités de ce groupe.
 
- Fonctions membres publiques hérités de Arcane::SharedReference
void addRef () override
 Incrémente le compteur de référence.
 
void removeRef () override
 Décrémente le compteur de référence.
 
Int32 refCount () const override
 Retourne la valeur du compteur de référence.
 
- Fonctions membres publiques hérités de Arcane::ISharedReference
virtual ~ISharedReference ()
 Libère les ressources.
 

Fonctions membres publiques statiques

static ItemGroupImplcheckSharedNull ()
 
static void _buildSharedNull ()
 
static void _destroySharedNull ()
 

Fonctions membres privées

void _initChildrenByType ()
 Initialisation des sous-groupes par types.
 
void _computeChildrenByType ()
 Méthode de calcul des sous-groupes par type.
 
void _initChildrenByTypeV2 ()
 Initialisation des sous-groupes par types.
 
void _computeChildrenByTypeV2 ()
 Méthode de calcul des sous-groupes par type.
 
void _executeExtend (const Int32ConstArrayView *info)
 Invalidation des sous-groupes.
 
void _executeReduce (const Int32ConstArrayView *info)
 Invalidation des sous-groupes.
 
void _executeCompact (const Int32ConstArrayView *info)
 Invalidation des sous-groupes.
 
void _executeReorder (const Int32ConstArrayView *info)
 Invalidation des sous-groupes.
 
void _executeInvalidate ()
 Invalidation des sous-groupes.
 
void _updateNeedInfoFlag (const bool flag)
 Mise à jour forcée du flag d'information de restructuration.
 
void _forceInvalidate (const bool self_invalidate)
 Invalidate forcée récursive.
 
void _checkUpdateSimdPadding ()
 
virtual void deleteMe ()
 Notification de SharedReference indiquant qu'il faut détruire l'instance.
 
void _removeItems (SmallSpan< const Int32 > items_local_id)
 Supprime les entités items_local_id du groupe.
 
bool _checkNeedUpdateNoPadding ()
 
bool _checkNeedUpdateWithPadding ()
 
bool _checkNeedUpdate (bool do_padding)
 

Attributs privés

friend ItemGroup
 
ItemGroupInternalm_p = nullptr
 Implémentation du groupe.
 

Attributs privés statiques

static ItemGroupImplshared_null = 0
 

Description détaillée

Implémentation d'un groupe d'entités de maillage.

Un groupe est un ensemble d'entité du maillage (noeuds,faces,mailles,...) de même genre.

Une instance de cette classe ne doit pas s'utiliser directement, mais par l'intermédiaire d'une instance de ItemGroup.

Une entité élément ne peut être présente qu'une seul fois.

Le développeur ne doit pas conserver directement des instances de cette class mais passer par un ItemGroup. Certains groupes étant déterminés dynamiquement suivant le contenu d'un autre groupe (par exemple, les groupes d'entités propres aux sous-domaines sont calculés à partir du groupe de toutes les entités du sous-domaine), ceci garantit que les mises à jour des groupes se font correctement.

Cette instance est géré par un compteur de référence et est détruite automatiquement lorsqu'il arrive à zéro.

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

Documentation des constructeurs et destructeur

◆ ItemGroupImpl() [1/3]

Arcane::ItemGroupImpl::ItemGroupImpl ( )

Construit un groupe nul.

Définition à la ligne 146 du fichier ItemGroupImpl.cc.

◆ ItemGroupImpl() [2/3]

Arcane::ItemGroupImpl::ItemGroupImpl ( IItemFamily family,
const String name 
)

Construit un groupe. Construit un groupe vide de nom name, associé à la famille family.

Définition à la ligne 128 du fichier ItemGroupImpl.cc.

◆ ItemGroupImpl() [3/3]

Arcane::ItemGroupImpl::ItemGroupImpl ( IItemFamily family,
ItemGroupImpl parent,
const String name 
)

Construit un groupe fils d'un autre groupe. Construit un groupe de nom name fils du groupe parent. Le genre de ce groupe est le même que celui de la famille à laquelle il appartient.

Définition à la ligne 137 du fichier ItemGroupImpl.cc.

◆ ~ItemGroupImpl()

Arcane::ItemGroupImpl::~ItemGroupImpl ( )
virtual

Libère les ressources.

Définition à la ligne 155 du fichier ItemGroupImpl.cc.

Références m_p.

Documentation des fonctions membres

◆ _buildSharedNull()

void Arcane::ItemGroupImpl::_buildSharedNull ( )
static

Définition à la ligne 1727 du fichier ItemGroupImpl.cc.

Référencé par Arcane::ArcaneMain::arcaneInitialize().

◆ _checkNeedUpdate()

bool Arcane::ItemGroupImpl::_checkNeedUpdate ( bool  do_padding)
private

Définition à la ligne 1111 du fichier ItemGroupImpl.cc.

◆ _checkNeedUpdateNoPadding()

bool Arcane::ItemGroupImpl::_checkNeedUpdateNoPadding ( )
private

Définition à la ligne 1142 du fichier ItemGroupImpl.cc.

◆ _checkNeedUpdateWithPadding()

bool Arcane::ItemGroupImpl::_checkNeedUpdateWithPadding ( )
private

Définition à la ligne 1151 du fichier ItemGroupImpl.cc.

◆ _checkUpdateSimdPadding()

void Arcane::ItemGroupImpl::_checkUpdateSimdPadding ( )
private

Définition à la ligne 1169 du fichier ItemGroupImpl.cc.

◆ _computeChildrenByType()

void Arcane::ItemGroupImpl::_computeChildrenByType ( )
private

◆ _computeChildrenByTypeV2()

◆ _destroySharedNull()

void Arcane::ItemGroupImpl::_destroySharedNull ( )
static

Définition à la ligne 1739 du fichier ItemGroupImpl.cc.

Référencé par Arcane::ArcaneMain::arcaneFinalize().

◆ _executeCompact()

void Arcane::ItemGroupImpl::_executeCompact ( const Int32ConstArrayView info)
private

Invalidation des sous-groupes.

Définition à la ligne 1552 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par _updateNeedInfoFlag().

◆ _executeExtend()

void Arcane::ItemGroupImpl::_executeExtend ( const Int32ConstArrayView info)
private

Invalidation des sous-groupes.

Définition à la ligne 1528 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par _updateNeedInfoFlag().

◆ _executeInvalidate()

void Arcane::ItemGroupImpl::_executeInvalidate ( )
private

Invalidation des sous-groupes.

Définition à la ligne 1564 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par _updateNeedInfoFlag(), et createSubGroup().

◆ _executeReduce()

void Arcane::ItemGroupImpl::_executeReduce ( const Int32ConstArrayView info)
private

Invalidation des sous-groupes.

Définition à la ligne 1540 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par _updateNeedInfoFlag().

◆ _forceInvalidate()

void Arcane::ItemGroupImpl::_forceInvalidate ( const bool  self_invalidate)
private

Invalidate forcée récursive.

Ne notifie pas les observers. Devra être suivi d'un invalidate() normal

Définition à la ligne 1600 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_need_invalidate_on_recompute, m_p, et Arcane::ItemGroupInternal::m_sub_groups.

Référencé par unguardedItemsLocalId().

◆ _initChildrenByType()

void Arcane::ItemGroupImpl::_initChildrenByType ( )
private

◆ _initChildrenByTypeV2()

void Arcane::ItemGroupImpl::_initChildrenByTypeV2 ( )
private

Initialisation des sous-groupes par types.

Définition à la ligne 1407 du fichier ItemGroupImpl.cc.

Références Arccore::TraceAccessor::info(), Arcane::ItemGroupInternal::m_children_by_type_ids, m_p, name(), Arcane::ItemTypeMng::nbBasicItemType(), et Arcane::IMeshBase::traceMng().

Référencé par applyOperation().

◆ _internalApi()

ItemGroupImplInternal * Arcane::ItemGroupImpl::_internalApi ( ) const

API interne à Arcane.

Définition à la ligne 1799 du fichier ItemGroupImpl.cc.

Références m_p.

◆ _updateNeedInfoFlag()

void Arcane::ItemGroupImpl::_updateNeedInfoFlag ( const bool  flag)
private

Mise à jour forcée du flag d'information de restructuration.

Définition à la ligne 1574 du fichier ItemGroupImpl.cc.

Références _executeCompact(), _executeExtend(), _executeInvalidate(), _executeReduce(), attachObserver(), detachObserver(), Arcane::ItemGroupInternal::m_observer_need_info, m_p, Arcane::newItemGroupObserverT(), et parent().

Référencé par attachObserver(), et detachObserver().

◆ activeCellGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::activeCellGroup ( )

AMR.

Groupe des mailles actives de ce groupe

Une maille active est une maille feuille dans l'arbre AMR.

Définition à la ligne 483 du fichier ItemGroupImpl.cc.

Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_active_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ activeFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::activeFaceGroup ( )

Groupe des faces actives propres au domaine.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne active si elle connectée à deux mailles actives de ce groupe.

Définition à la ligne 556 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_active_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ addItems()

◆ applyOperation()

◆ attachObserver()

void Arcane::ItemGroupImpl::attachObserver ( const void ref,
IItemGroupObserver obs 
)

◆ beginTransaction()

◆ capacity()

Int64 Arcane::ItemGroupImpl::capacity ( ) const

Nombre d'éléments alloués.

Définition à la ligne 1769 du fichier ItemGroupImpl.cc.

Références m_p.

◆ cellGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::cellGroup ( )

Groupe des mailles des éléments de ce groupe.

Définition à la ligne 430 du fichier ItemGroupImpl.cc.

Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ changeIds()

◆ checkIsSorted()

bool Arcane::ItemGroupImpl::checkIsSorted ( ) const

Vérifie et retourne si le groupe est trié par uniqueId() croissants.

Définition à la ligne 1684 du fichier ItemGroupImpl.cc.

Références m_p, et null().

◆ checkLocalIdsAreContigous()

void Arcane::ItemGroupImpl::checkLocalIdsAreContigous ( ) const

Vérifie si les entités du groupe ont des localIds() contigüs.

Si c'est le cas, alors isContigousLocalIds() retournera vrai.

Définition à la ligne 1760 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::checkIsContigous(), et m_p.

◆ checkNeedUpdate()

bool Arcane::ItemGroupImpl::checkNeedUpdate ( )

Réactualise le groupe si nécessaire.

Un groupe doit être réactualisée lorsqu'il est devenu invalide, par exemple suite à un appel à invalidate().

Valeurs retournées
truesi le groupe a été réactualisé,
falsesinon.

Définition à la ligne 1160 du fichier ItemGroupImpl.cc.

Référencé par changeIds(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), et invalidate().

◆ checkSharedNull()

ItemGroupImpl * Arcane::ItemGroupImpl::checkSharedNull ( )
static

Définition à la ligne 114 du fichier ItemGroupImpl.cc.

◆ checkValid()

void Arcane::ItemGroupImpl::checkValid ( )

Vérifie que le groupe est valide.

Définition à la ligne 1102 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par addItems(), removeAddItems(), removeSuppressedItems(), et setItems().

◆ clear()

void Arcane::ItemGroupImpl::clear ( )

Supprime les entités du groupe.

Définition à la ligne 1178 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_need_recompute, m_p, et Arcane::ItemGroupInternal::m_sub_groups.

◆ createSubGroup()

◆ deleteMe()

void Arcane::ItemGroupImpl::deleteMe ( )
privatevirtual

Notification de SharedReference indiquant qu'il faut détruire l'instance.

Implémente Arcane::SharedReference.

Définition à la ligne 1713 du fichier ItemGroupImpl.cc.

◆ destroy()

void Arcane::ItemGroupImpl::destroy ( )

Détruit le groupe. Après cet appel, le groupe devient un groupe nul.

Avertissement
Cette méthode ne doit être appelé qu'avec une extrème précaution même dans le code bas niveau de Arcane. S'il reste des références sur ce groupe le comportement est indéfini.

Définition à la ligne 1617 du fichier ItemGroupImpl.cc.

Références detachObserver(), Arcane::ItemGroupInternal::m_is_all_items, Arcane::ItemGroupInternal::m_observers, et m_p.

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

◆ detachObserver()

void Arcane::ItemGroupImpl::detachObserver ( const void ref)

Détache un observer.

Paramètres
refréférence de l'émetteur de l'observer

Définition à la ligne 1327 du fichier ItemGroupImpl.cc.

Références _updateNeedInfoFlag(), Arcane::ItemGroupInternal::m_group_index_table, Arcane::ItemGroupInternal::m_observers, m_p, et Arcane::ItemGroupInternal::m_synchronizer.

Référencé par _updateNeedInfoFlag(), destroy(), et Arcane::ItemPairGroupImpl::~ItemPairGroupImpl().

◆ edgeGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::edgeGroup ( )

Groupe des arêtes des éléments de ce groupe.

Définition à la ligne 398 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::edgeFamily(), Arcane::IK_Edge, itemKind(), Arcane::ItemGroupInternal::m_edge_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ empty()

bool Arcane::ItemGroupImpl::empty ( ) const

Vrai si le groupe est vide.

Définition à la ligne 191 du fichier ItemGroupImpl.cc.

Références Arccore::ArrayView< T >::empty(), et m_p.

◆ endTransaction()

◆ faceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::faceGroup ( )

Groupe des faces des éléments de ce groupe.

Définition à la ligne 414 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Face, itemKind(), Arcane::ItemGroupInternal::m_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ findSubGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::findSubGroup ( const String suffix)

Accède à un sous-groupe calculé

Le gestion mémoire du functor est alors délégué au groupe

Définition à la ligne 646 du fichier ItemGroupImpl.cc.

Références m_p, Arcane::ItemGroupInternal::m_sub_groups, et name().

◆ fullName()

const String & Arcane::ItemGroupImpl::fullName ( ) const

Nom complet du groupe (avec maillage + famille)

Définition à la ligne 173 du fichier ItemGroupImpl.cc.

Références m_p.

◆ ghostGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::ghostGroup ( )

Items in the group not owned by the subdomain.

Définition à la ligne 352 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::ItemGroupInternal::m_ghost_group, Arcane::ItemGroupInternal::m_item_family, et m_p.

◆ hasComputeFunctor()

bool Arcane::ItemGroupImpl::hasComputeFunctor ( ) const

Indique si le groupe est calculé

Définition à la ligne 1379 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_compute_functor, et m_p.

Référencé par Arcane::mesh::ItemFamily::notifyItemsOwnerChanged(), Arcane::mesh::ItemFamily::prepareForDump(), et shrinkMemory().

◆ hasInfoObserver()

bool Arcane::ItemGroupImpl::hasInfoObserver ( ) const

Indique si le contenu de ce groupe est observé.

Ceci a pour effet d'embrayer des mécanismes de modification incrémentaux.

Un groupe peut n'être observé que pour sa structure par des objets recalculés non incrémentalement.

Définition à la ligne 1360 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_observer_need_info, et m_p.

Référencé par Arcane::ItemGroupsSynchronize::synchronize().

◆ hasSynchronizer()

bool Arcane::ItemGroupImpl::hasSynchronizer ( )

Indique si ce groupe possède un synchroniser.

Définition à la ligne 1675 du fichier ItemGroupImpl.cc.

Références m_p, et Arcane::ItemGroupInternal::m_synchronizer.

◆ innerActiveFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::innerActiveFaceGroup ( )

Groupe des faces internes actives des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne active si elle connectée à deux mailles actives de ce groupe.

Définition à la ligne 589 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_inner_active_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ innerFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::innerFaceGroup ( )

Groupe des faces internes des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne si elle connectée à deux mailles de ce groupe.

Définition à la ligne 446 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_inner_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ interfaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::interfaceGroup ( )

Définition à la ligne 366 du fichier ItemGroupImpl.cc.

◆ invalidate()

void Arcane::ItemGroupImpl::invalidate ( bool  force_recompute)

Invalide le groupe.

Opération très violente qui induit une invalidation de toutes les dépendances autant des observers que des sous-groupes construits.

Définition à la ligne 712 du fichier ItemGroupImpl.cc.

Références checkNeedUpdate(), Arccore::TraceAccessor::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_mesh, m_p, name(), et Arcane::IMeshBase::traceMng().

Référencé par shrinkMemory().

◆ isAllItems()

bool Arcane::ItemGroupImpl::isAllItems ( ) const

Indique si le groupe est celui de toutes les entités.

Définition à la ligne 999 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_is_all_items, et m_p.

Référencé par addItems(), changeIds(), removeAddItems(), et setOwn().

◆ isContigousLocalIds()

bool Arcane::ItemGroupImpl::isContigousLocalIds ( ) const

Indique si les entités du groupe ont des localIds() contigüs.

Définition à la ligne 1751 du fichier ItemGroupImpl.cc.

Références m_p.

◆ isLocalToSubDomain()

bool Arcane::ItemGroupImpl::isLocalToSubDomain ( ) const

AMR OFF.

Vrai si le groupe est local au sous-domaine

Définition à la ligne 751 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_is_local_to_sub_domain, et m_p.

◆ isOwn()

bool Arcane::ItemGroupImpl::isOwn ( ) const

Retourne si le groupe contient uniquement des éléments propres au sous-domaine.

Définition à la ligne 289 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_is_own, et m_p.

Référencé par removeAddItems().

◆ itemFamily()

◆ itemInfoListView()

ItemInfoListView Arcane::ItemGroupImpl::itemInfoListView ( ) const

Liste des entités sur lesquelles s'appuie le groupe.

Définition à la ligne 742 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par setItems().

◆ itemKind()

eItemKind Arcane::ItemGroupImpl::itemKind ( ) const

◆ itemsInternal()

ItemInternalList Arcane::ItemGroupImpl::itemsInternal ( ) const

Liste des entités sur lesquelles s'appuie le groupe.

Définition à la ligne 733 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par removeAddItems().

◆ itemsLocalId()

Int32ConstArrayView Arcane::ItemGroupImpl::itemsLocalId ( ) const

Liste des numéros locaux des entités de ce groupe.

Définition à la ligne 200 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par Arcane::mesh::DynamicMeshKindInfos::beginCompactItems(), Arcane::mesh::DynamicMesh::build(), et Arcane::mesh::DynamicMeshKindInfos::clear().

◆ levelCellGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::levelCellGroup ( const Integer &  level)

Groupe des mailles actives de ce groupe.

Une maille active est une maille feuille dans l'arbre AMR.

Définition à la ligne 519 du fichier ItemGroupImpl.cc.

Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_level_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.

◆ localIdToIndex()

SharedPtrT< GroupIndexTable > Arcane::ItemGroupImpl::localIdToIndex ( )

Table des local ids vers une position pour toutes les entités du groupe.

Définition à la ligne 1643 du fichier ItemGroupImpl.cc.

Références Arccore::ITraceMng::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_group_index_table, Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_name, m_p, et Arcane::IMeshBase::traceMng().

◆ mesh()

◆ name()

◆ nbRef()

virtual Integer Arcane::ItemGroupImpl::nbRef ( ) const
inlinevirtual

Nombre de références sur le groupe.

Définition à la ligne 118 du fichier ItemGroupImpl.h.

◆ needSynchronization()

bool Arcane::ItemGroupImpl::needSynchronization ( ) const

Indique si le groupe a structurellement besoin d'une synchro parallèle.

Définition à la ligne 1286 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_is_local_to_sub_domain, Arcane::ItemGroupInternal::m_is_own, et m_p.

◆ nodeGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::nodeGroup ( )

Groupe des noeuds des éléments de ce groupe.

Définition à la ligne 382 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IK_Node, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_node_group, m_p, et Arcane::IMeshBase::nodeFamily().

◆ null()

bool Arcane::ItemGroupImpl::null ( ) const

Retourne true si le groupe est nul.

Définition à la ligne 280 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par checkIsSorted().

◆ outerActiveFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::outerActiveFaceGroup ( )

Groupe des faces externes actives des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe active si elle n'est connectée qu'à une maille de ce groupe et est active.

Définition à la ligne 606 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_outer_active_face_group, et m_p.

◆ outerFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::outerFaceGroup ( )

Groupe des faces externes des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe si elle n'est connectée qu'à une maille de ce groupe.

Définition à la ligne 463 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_outer_face_group, et m_p.

◆ ownActiveCellGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::ownActiveCellGroup ( )

Groupe des mailles propres actives de ce groupe.

Définition à la ligne 501 du fichier ItemGroupImpl.cc.

Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_active_cell_group, et m_p.

◆ ownActiveFaceGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::ownActiveFaceGroup ( )

Groupe des faces externes actives des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe active si elle n'est connectée qu'à une maille de ce groupe et est active.

Définition à la ligne 573 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_active_face_group, et m_p.

◆ ownGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::ownGroup ( )

Groupe des entité propres des entités de ce groupe.

Définition à la ligne 331 du fichier ItemGroupImpl.cc.

Références createSubGroup(), Arcane::ItemGroupInternal::m_is_own, Arcane::ItemGroupInternal::m_item_family, Arcane::ItemGroupInternal::m_own_group, et m_p.

◆ ownLevelCellGroup()

ItemGroupImpl * Arcane::ItemGroupImpl::ownLevelCellGroup ( const Integer &  level)

Groupe des mailles propres actives de ce groupe.

Définition à la ligne 537 du fichier ItemGroupImpl.cc.

Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_level_cell_group, et m_p.

◆ parent()

◆ parentGroup()

ItemGroup Arcane::ItemGroupImpl::parentGroup ( )

Groupe parent.

Définition à la ligne 1195 du fichier ItemGroupImpl.cc.

Références m_p.

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

◆ removeAddItems()

◆ removeItems()

void Arcane::ItemGroupImpl::removeItems ( Int32ConstArrayView  items_local_id,
bool  check_if_present 
)

Supprime les entités items_local_id du groupe.

Définition à la ligne 845 du fichier ItemGroupImpl.cc.

Références m_p.

Référencé par Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), et removeAddItems().

◆ removeSuppressedItems()

◆ setComputeFunctor()

void Arcane::ItemGroupImpl::setComputeFunctor ( IFunctor functor)

Définit une fonction de calcul de groupe.

Définition à la ligne 1369 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_compute_functor, et m_p.

◆ setIsAllItems()

void Arcane::ItemGroupImpl::setIsAllItems ( )

Indique à ce groupe qu'il s'agit du groupe de toutes les entités de la famille.

Définition à la ligne 990 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_is_all_items, et m_p.

◆ setItems() [1/2]

◆ setItems() [2/2]

void Arcane::ItemGroupImpl::setItems ( Int32ConstArrayView  items_local_id,
bool  do_sort 
)

Positionne les entités du groupe à items_local_id en les triant éventuellement.

Définition à la ligne 974 du fichier ItemGroupImpl.cc.

Références itemFamily(), itemInfoListView(), et setItems().

◆ setLocalToSubDomain()

void Arcane::ItemGroupImpl::setLocalToSubDomain ( bool  v)

Positionne le booléen indiquant si le groupe est local au sous-domaine.

Définition à la ligne 760 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::m_is_local_to_sub_domain, et m_p.

◆ setOwn()

void Arcane::ItemGroupImpl::setOwn ( bool  v)

Positionne la propriété de groupe local ou non.

Définition à la ligne 298 du fichier ItemGroupImpl.cc.

Références ARCANE_THROW, isAllItems(), Arcane::ItemGroupInternal::m_is_own, Arcane::ItemGroupInternal::m_own_group, et m_p.

◆ sharedReference()

virtual ISharedReference & Arcane::ItemGroupImpl::sharedReference ( )
inlinevirtual

Définition à la ligne 107 du fichier ItemGroupImpl.h.

◆ shrinkMemory()

void Arcane::ItemGroupImpl::shrinkMemory ( )

Limite au maximum la mémoire utilisée par le groupe.

Si le groupe est un groupe calculé, il est invalidé et toute sa mémoire allouée est libérée.

Si le groupe est un groupe créé par l'utilisateur (donc persistant), s'assure que la mémoire consommée est minimale. Normalement Arcane alloue un peu plus d'éléments que nécessaire pour éviter de faire des réallocations trop souvent.

Définition à la ligne 1779 du fichier ItemGroupImpl.cc.

Références Arcane::ItemGroupInternal::applySimdPadding(), hasComputeFunctor(), invalidate(), m_p, Arcane::IVariable::shrinkMemory(), et Arcane::VariableRef::variable().

◆ size()

◆ synchronizer()

◆ timestamp()

Int64 Arcane::ItemGroupImpl::timestamp ( ) const

Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.

Définition à la ligne 1297 du fichier ItemGroupImpl.cc.

Références m_p.

◆ unguardedItemsLocalId()

Int32Array & Arcane::ItemGroupImpl::unguardedItemsLocalId ( const bool  self_invalidate = true)

Liste des numéros locaux des entités de ce groupe.

Avertissement
a utiliser avec moult précaution, en général uniquement par le functor de recalcul.

Définition à la ligne 236 du fichier ItemGroupImpl.cc.

Références _forceInvalidate(), ARCANE_FATAL, Arccore::ITraceMng::debug(), Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_mesh, m_p, Arcane::ItemGroupInternal::m_transaction_mode, Arccore::Trace::Medium, name(), et Arcane::IMeshBase::traceMng().

Documentation des données membres

◆ ItemGroup

friend Arcane::ItemGroupImpl::ItemGroup
private

Définition à la ligne 76 du fichier ItemGroupImpl.h.

◆ m_p

◆ shared_null

ItemGroupImpl * Arcane::ItemGroupImpl::shared_null = 0
staticprivate

Définition à la ligne 99 du fichier ItemGroupImpl.h.


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